Anfänger sucht Hilfe

Itairs

Komplett-PC-Aufrüster(in)
Anfänger sucht Hilfe

Hiho!

Ich weiß nicht ob ich hier richtig bin dachte mir aber fragen kann nicht schaden.

Ich will seit einiger zeit das Programmieren lernen und anfangen wollte ich mit c++
Das einzigste was ich bisher zustande gebracht habe ist ein kleines programm das mir eine einzigste rechnung macht und sich dann schließt.

Die frage lautet einfach nur kennt wer eine gute möglichkeit um einen einstieg zu bekommen sich das beizubringen?
Ich bin für alles offen und da ich noch unerfahren bin bin ich auch gerne offen für alternativen wie man beginnen sollte.


Ich bin über jeden tipp der mir weiterhilft dankbar!
 
Hi,
ich wuerde erstmal mit C anfangen, und dann mit C ++ weiter arbeiten. (Vorteil, man versteht C ++ besser, da es aufeinander aufbaut, falls du sehr hardwarenah arbeiten / Microcontroller programmieren willst, lohnt es sich mit C zu beginnen.)

Was hast du dir als Ziel gesetzt ?

Im Netz finden sich zahlreiche Tutorials und auf amazon etc. zahlreiche Fachbücher und mehr zu dem Thema.

Grüsse, Cryonics
 
Ich würde erst C, dann Java für die Objektoriantierung und dann C++ lernen.
C ist unabdingbar für die Grundlagen unf Java ist eine sehr einfache Sprache mit der man gut OOP lernen kann.

C++ ist meiner Meinung nach das Komplizierteste was es gibt und somit überhaupt nicht für einen Anfänger geeignet.
 
AW: Anfänger sucht Hilfe

ich wuerde erstmal mit C anfangen...
Ich würde erst C,...

Nein. Hört auf mit C. Versteht mich nicht falsch, C ist cool und ohne C hätte es die meisten wichtigen Sprachen von heute nicht gegeben (jedenfalls nicht in der Form). Aber
1. C ist für die meisten Aufgaben nicht mehr zeitgemäß. Halt stopp, hört auf mich anzubrüllen. C hat bietet kaum die Möglichkeit zu abstrahieren. Manche sagen sicher, dass sie das nicht brauchen, aber das ist dann sicher der selbe Schlag von Mensch, der andere Menschen für doof hällt, nur weil sie nicht mit vi programmieren auf einem selbst eingerichteten ArchLinux.
2. Wenn man C++ lernen möchte, lernt man C++ und nicht C. Ich möchte nochmal kurz erwähnen: C++ ist nicht "C mit Klassen". Das war die Anfangsbezeichnung von Stroustrup für sein Projekt, die allerdings 1983 wieder abgelegt wurde. Das ist schon ungefähr genau 30 Jahre her. Würde am liebsten diverse Professoren und Übungsleiter meiner Uni mit Blumentöpfen beschmeißen für diese Aussage.


[Ab hier Informationen relevant für den Threadersteller]
Crymes hat eine wichtige Anmerkung gemacht: C++ ist verdammt schwer, wenn man richtig eintauchen will. C++ ist die Komplexeste unter den bekannten Sprachen. Sie bietet irre viele Möglichkeiten, die dem Entwickler mehr Möglichkeiten bieten aber auch mehr Gefahren.
Ich habe mit C++ angefangen und bin darüber auch ziemlich froh, allerdings habe ich jetzt.. nach ca. 6 Jahren erst richtig das Gefühl die Sprache durchblickt zu haben.

Es kommt ganz auf dich an. Du sagst du bist Anfänger, also denke ich mal, dass du noch nicht großartig anders programmiert hast. Das Problem ist, dass beim Programmieren viele Dinge auf einen zukommen, die man lernen muss. Und es wäre ja ganz nett, wenn man sich erst nur mit einem Ding beschäftigen muss, anstatt gleich alle zu behandeln.
Daher ist nur noch die Frage, was du dir zutraust. Ich würde dir entweder zu Java oder zu C++ raten. Und ich mag Java echt nicht.. aber denke dass es schon eine gute Anfängersprache ist.
Bei Java kannst du zumindest erstmal dich auf deine Programmlogik konzentrieren und musst nicht großartig an die Hardware denken. In C++ kommen schon ziemlich schnell komische Dinge auf dich zu, die du erstmal so hinnehmen müsstest. Führt auch oft zu Fehlern, die man als Anfänger garnicht verstehen kann. In C++ musst du dich direkt ein wenig mehr mit ... den "Innereien" außernander setzen.

tl;dr:
C++ ist meine absolute Liebslingssprache und wenn du C++ kannst, kannst du dich recht schnell in jede andere Sprache einarbeiten. Nur bei C++ kommen viele Dinge auf einmal auf dich zu. Muss nicht schiefgehen, könnte aber durchaus demotivierend am Anfang wirken.
Java mag ich nicht, weil es nicht annähernd so viele Möglichkeiten bietet wie C++ und Java eine komplett andere Philosophie hat. Trotzdem dürftest du da recht schnell die Möglichkeit haben, dich auf deine Programmlogik zu konzentrieren (auf deine Algorithmen).


Und um eventuell auf deine richtige Frage zu antworten: Bücher können gut helfen, aber es gibt auch meist echt gute Online Tutorials. Helfen tun auch immer Ansprechpartner, die deine Fragen beantworten können. Es gibt auch Unis, die Vorlesungen aufzeichnet und ins Internet stellt (Schleichwerbung für meine Uni: http://www-lehre.inf.uos.de/~ainf/2013/index.html Die Vorlesung behandelt grundlegende Algorithmen, die Einführung in die Informatik und das Programmieren in Java).

Grüße,
Lukas
 
@CrysisNerd : Da stimm ich dir zu ... C++ ist sehr komplex, aber für uns wäre es wichtig zu wissen, was Itairs überhaupt sich als Ziel gesetzt hat ...
C++ hat zwar "unendliche" Anwendungsmöglichkeiten, könnte aber auch für einen Anfänger einen "Umweg" zum Ziel bedeuten.
C++ zu erlernen lohnt sich dennoch, denn es bringt fast nur Vorteile mit sich ;-)

Grüsse,
Cryonics
 
AW: Anfänger sucht Hilfe

Streng genommen ist ja völlig egal womit man anfängt, man wird immer das Gefühl bekommen man hätte es besser anders gemacht. :D

Viel wichtiger als womit, ist meiner Meinung nach ehr, dass man anfängt! Ok, ob C noch Sinn macht sei dahin gestellt, vielleicht sollte man wirklich nur noch Sprachen mit Objekt Orientieren hintergrund wie C++, Java oder so lernen.
 
AW: Anfänger sucht Hilfe

Mein Tipp für Programmieranfänger ist es zu googlen wenn man nicht weiter weiß. Für den Anfang würde ich nach "c++ tutorial 2013" suchen. Wenn du ein bisschen fortgeschrittener bist kannst du dir z.B. das hier anschauen: openFrameworks Damit kannst du nette grafische Spielchen programmieren.
 
AW: Anfänger sucht Hilfe

Also erstmal bin ich sehr überrascht über die Zahlreichen antworten! WoW :D

Ziele die ich habe sind ich kann das nicht so gut erklären aber ich versuche es mal

Ein freund von mir hat einen Server wo einige spiele für uns Privat drauf laufen kann aber selber nicht Programmieren.
Den Server haben wir samt SQL Datenbanken irgendwann zum laufen gebracht und damit kommen wir auch mittlerweile ganz gut klar!
(z.B neue sachen einfügen bla bla bla^^)

Nun irgendwann möchte man das aber ohne Fremde hilfe verwalten können und dazu habe ich im endeffekt einen Großen Spielplatz!


am rande ich habe gehört c sei viel schwerer als c++ als beginner
Was daran stimmt kann ich nicht sagen da ich beides nicht kann^^

Nehmen wir als Beispiel ich möchte Tool schreiben können um im spiel sachen zu verwalten
Oder den Spielchat mit einen IRC verbinden
und und und.

Im Endeffekt sind das keine Ziele ich mag es aus Spaß an der sache Lernen weil ich es wirklich Interessant finde was man alles machen kann!

PC warten, reparieren, bauen, netzwerke einrichten bla bla kann ich soweit und ist vom Lernstand mittlerweile langweilig ich (das sind halt so die standartdinge für den Privatgebrauch)

Irgendwann kamm halt das Verlangen auf mehr zu lernen da ich Keinen Schulplatz dafür ergattern konnte wollte ich mich selbst daran Probieren!
Das kommt hinzu.

Es ist also schon länger die idee da mich daran zu probieren nur der Server den ich jetzt zur verfügung hätte hat mich dazu gebracht nach hilfe zu suchen wo ich denn einen guten Start finden würde :).


Ich hoffe ich habe das verständlich gemacht ich bin nicht gut darin sachen zu erklären :D
 
Zuletzt bearbeitet:
AW: Anfänger sucht Hilfe

hmm, bei nem server mit sql (mysql?) finde ich ganz persönlich php am einfachsten zu handhaben. is ja im grunde auch nich sooo verschieden von c usw. natürlich sind alle sprachen irgendwo "dialekte", aber die grundlagen braucht man nur einmal lernen ^^ vorteil von php: grafische ausgaben sind das geringste problem, da man es ja über html dem browser vordiktiert. nachteil is natürlich, dass man mindestens html auch noch können sollte, was "programmiertechnisch" halt wieder was ganz anderes is (paar tags zusammenwurschteln hat halt nich wirklich was mit proggen im tieferen sinne zu tun ^^).

in c... jetz noch irgendwelche bibliotheken einbinden und was weis ich fänd ich viel schlimmer irgendwie. habs daher selber noch nie gemacht, auch wenns mich tierisch reizt irgendwie >< kann da also nur von vermutungen meinerseits sprechen - vllt isses ja viel simpler, als ich mir das ausmale :ka:
 
AW: Anfänger sucht Hilfe

Nun irgendwann möchte man das aber ohne Fremde hilfe verwalten können
Das und..

Nehmen wir als Beispiel ich möchte Tool schreiben können um im spiel sachen zu verwalten
Oder den Spielchat mit einen IRC verbinden
..das sind zwei ziemlich unterschiedliche Sachen.
Das eine sind die SysAdmins (System Administratoren), das andere sind die Devs (Developer). Klar gibt es überschneidungen und Wissen aus dem einen Gebiet kann man im anderen anwenden, aber wohl nicht so viel, wie du denkst. Um eine gute Verwaltung eines Servers sicherzustellen und dort seine Kenntnisse zu verbessern, habe ich noch keine wirklich bessere Methode gefunden als: Praxis. Einfach viel machen und man lernt es mit der Zeit. Könntest auch mal aus Spaß versuchen unter einem Linux Server eine ordentliche LDAP Authentifizierung hinzubekommen oder eine Visualiserungssoftware ordentlich einzurichten :P. Nein du das lieber nicht, jedenfalls nicht für den Anfang ;)

Was den Bereich "Dev" angeht, so ist..
Im Endeffekt sind das keine Ziele ich mag es aus Spaß an der sache Lernen weil ich es wirklich Interessant finde was man alles machen kann!
..die richtige Einstellung! Anders kommt man auch nicht weit.

Allerdings nochmal zu den "Tools", die du schreiben möchtest. Was sowas angeht, wirst du mit einer Programmiersprache nicht weit kommen. Denn um irgendwas zu schreiben, was mit einem Spiel oder TS oder IRC kommuniziert, musst du dich irgendwie an die Vorgaben von dem Spiel, TS oder deinem IRC-Server halten. Das ist leider nicht alles so einfach, dass du jetzt C++ kannst und dann einfach zack etwas für ein Spiel schreiben kannst.
Wenn das Spiel überhaupt irgendeine Art API (Application Programming Interface, eine Schnittstelle mit der man als Entwickler arbeiten kann) hat, was selten ist, wird diese meist in einer speziellen Sprache sein. Oft werden da Scriptsprachen wie Python oder Perl genutzt (also für kleinere Spieleplugins). Wenn du diverse andere Plugins schreiben willst, musst du manchmal sogar auf Sprachen wie C oder C++ zurückgreifen. Jedenfalls eine Sprache, die... (schwer zu erklären wenn man einfach bleiben möchte) eine gewisse Vorgabe einhalten, damit man das fertige Programm woanders standardisiert benutzten kann.
Wenn es um Minecraft geht, bist du so oder so auf Java angewiesen. Wenn du etwas in Richtung Webinterface entwickeln willst (sodass man im Browser sehen kann, wie viel Leute auf dem Server sind z.B.), bist du wieder auf andere Sprachen angewiesen. Das ist in dieser Sparte jetzt nicht so einfach. Oft gibt es auch schon Plugins und Programme, die du einfach nur einpflegen musst.

Oke nochmal tl;dr:
Du wirst in dieser Spiele/Server-Branche keinen unmittelbaren Erfolg haben. Aber wenn es dich interessiert, wird dir eine Programmiersprache trotzdem viel Spaß machen und dir auch irgendwann weiterhelfen. Ich möchte dir auch nicht die Motivation nehmen, aber es gibt bei Softwareprojekten folgende Regeln:
Regel 1: Es dauert immer länger, als man erwartet.
Regel 2: Es dauert auch länger, selbst wenn man Regel 1 kennt.
Regel n: Es dauert auch länger, selbst wenn man Regel n-1 kennt.



am rande ich habe gehört c sei viel schwerer als c++ als beginner
Was daran stimmt kann ich nicht sagen da ich beides nicht kann^^
Naja das ist Ansichtssache. Was Anfängererlernbarkeit angeht, haben beide Sprachen Vor- und Nachteile. Wie schon erwähnt, lässt C++ eine große Abstraktion zu. Das ist oft für Menschen leichter lesbar und verstehbar. Auch das Paradigma der OOP (Objekt Orientierten Programmierung) ist für Menschen recht leicht verständlich, weil es dem menschlichen Denken nahe kommt. Zu der Abstraktion mal folgendes Beispiel:
Code:
C:
if(strcmp(myString, "kuchen") == 0)

Java:
if(myString.equals("kuchen"))

C++:
if(myString == "kuchen")
Dir als Programmierer sagt das wohl alles noch nichts, aber die anderen hier werden mir wohl in dieser Hinsicht Recht geben:
C++ ist das intuitivste, gefolgt von Java, da man dort die Funktionalität direkt im Methodennamen sieht. C hingegen.. Ich hoffe ich entzürne keine C'ler, aber das ist absolut nicht intuitiv. Man kann eventuell gerade noch erraten, dass strcmp für string-compare stehen soll, aber dass man dann den Rückgabewert noch mit 0 vergleichen muss, kann nun niemand "ahnen".
Also hierbei: C++ ist am intuitivsten und in gewissen Sachen auch einfach für Menschen verständlich.
ABER: C++ ist wesentlich komplexer und diese zusätzliche Komplexität kann man leider nicht komplett ignorieren. Denn hin und wieder treten Fehler auf, die nicht trivial sind. Letztendlich ist das alles nicht so wichtig, denn ich möchte Evandar zustimmen: Hauptsache man fängt was an und zieht es durch. Und wenn man halt ein Jahr Java lernt und merkt "ih ne", kann man immer noch zu C++ wechseln und dort aber noch jede Menge Wissen mitnehmen.

Also: Fang ruhig mit C++ an, beiß dich durch und hab Spaß dran!
Ich kann dann übrigens wohl gerne dir da zu Seite stehen, bin immer daran interessiert motivierten Neulingen diese herrliche Sprach beizubringen ;)
Heißt da wäre ich erstmal immer ansprechbar, wenn ich Zeit habe. (Aber das nur nebenbei)

LG
Lukas


PS:
[...] finde ich ganz persönlich php am einfachsten zu handhaben. is ja im grunde auch nich sooo verschieden von c usw[...]
*ähem*
Sagen wir: "Die Syntax ist nicht sooo verschieden von C-Syntax". Das kommt eventuell hin... Ich fang aber nicht noch an, die Unterschiede aufzuzählen, der Post ist schon lang genug :P
 
AW: Anfänger sucht Hilfe

ja das mein ich ja. also if schleifen und weis der geier. halt so die basics ^^ das mit der öh... typenfreiheit? wie will mans nennen ^^ gefällt mir noch sehr gut als bsp. is beim proggen halt ebees simpler. gut, bei ner fehlersuche kanns einen wieder nerven xD aber diese arrays mit string-keys waren für mich immer ä träumsche :P
 
AW: Anfänger sucht Hilfe

Hinweis an den Threadersteller: Dir wird der folgende Beitrag wohl garnichts nützen... Er geht zumindest nicht auf das wirkliche Thema ein.

das mit der öh... typenfreiheit? wie will mans nennen ^^ gefällt mir noch sehr gut als bsp. is beim proggen halt ebees simpler. gut, bei ner fehlersuche kanns einen wieder nerven xD
Mit Typenfreiheit meinst du dynamische Typisierung bzw. ein schwaches Typsystem (Dynamische Typisierung). Viele Scriptsprachen haben ein schwaches Typsystem, was man erstmal als total toll empfindet, besonders wenn man noch nicht so viel Erfahrung hat. Und klar, es hat auch Vorteile, nur die wichtigsten Vorteile sieht man als Anfänger nicht. Sondern wenn man anfängt, freut man sich erstmal darüber, dass es keine Type-mismatch Compilerfehler gibt ;)
Dummerweise hat diese Art auch eine Menge Nachteile, z.B., wie du schon sagst, die Fehlererkennung. Dynamische Typisierung kann komische Nebeneffekte haben, die man nicht sofort überblickt. Starke Typisierung hat den Vorteil, dass man viele Fehler schon beim Compilieren bemerkt und nicht erst später irgendwann. Es ist das selbe Spiel mit const-correctness in C++ z.B.: Man möchte damit, dass Fehler früher erkannt werden, was grundsätzlich sehr gut ist. Wann ist es gut Fehler zu erkennen (best to worst):
1. Nur durch Nachdenken und auf den Code gucken, besser als ...
2. Beim Compilieren, besser als ...
3. Beim ersten Ausführen, besser als ...
4. Nach 2,5 Jahren, nachdem das Programm schon beim Kunden im Atomkraftwerk läuft und die Welt untergeht.

Als Anfänger sieht man diesen Vorteil jedoch nicht, möchte sein Programm erstmal zum laufen bekommen und ärgert sich über Compilerfehler. Das will ich auch nicht verübeln, nur kann man schon mit Blick auf seine Zukunft (wenn man mehr Erfahrung hat) an sowas denken.

Naja so viel zum Exkurs "Sinn von starker Typisierung" :P
Dann hätte ich noch eben was zu PHP zu sagen. Vorweg: Ich habe PHP auch viel genutzt und werde es für kleinere Dinge sicher noch nutzen, ABER:
PHP ist grundsätzlich eine schreckliche Sprache. Wer genau wissen möchte, was schlecht ist und warum, dem sei dieser ausführliche Artikel ans Herz gelegt: PHP: a fractal of bad design - fuzzy notepad
Aber hier ein kurzer Abriss, in Bezug auf das schwache Typsystem: Vergleiche haben ein absolut komisches Verhalten. Hier ein paar boolische Ausdrücke, die alle true sind.
Code:
"foo" == TRUE
"foo" == 0
TRUE != 0

NULL < -1
NULL == 0
Das zeigt die Inkonsistenz der Sprache und die Überraschungen, die so ein schwaches Typsystem mit sich bringen kann (es ist nur bei den wenigsten Sprachen so schlimm wie hier). Dazu kommt, dass sich PHP Konzepte aus anderen Sprachen leiht, aber die irgendwie nicht in einem erkennbaren Zusammenhang gewählt wurden. Vieles passt einfach nicht so gut zueinander.

aber diese arrays mit string-keys waren für mich immer ä träumsche :P
Das nennt sich "assoziative Arrays". Man findet sowas in den meisten Sprachen, in Scriptsprachen meist als build-in array type, in kompilierten Sprachen meistens als Klasse in der Standardbibliothek, wo sich der Name "Map" durchgesetzt hat (es mappt einen Wert auf einen anderen). Klar ist es bequem damit zu arbeiten, als wären es normale Arrays, aber das ist auch ein "Problem" an PHP, dass man nie weiß, was man bekommt. Es gibt diverse grundlegende Datenstrukturen, und welche PHP nutzt ist nicht immer ganz so eindeutig. Nur als Hinweis nebenbei: In C++ kann man mit std::map zwei Typen aufeinander mappen und nicht nur int und string als Key nutzen. Sondern auch Objekte, Enumerations und vieles mehr. Später kann man es ähnlich wie ein Array benutzten, insgesamt extrem komfortable.


ja das mein ich ja. also if schleifen und weis der geier. halt so die basics ^^
Und kann mir mal jemand erklären, was es mit dieser berühmt, berüchtigten "if-schleife" auf sich hat? Wie kommt man darauf, if eine Schleife zu nennen...

Grüße
 
AW: Anfänger sucht Hilfe

indem man an while und for und if und so denkt und dabei alles schön gedanklich zum misch masch wird :ugly:
 
Zurück