Programmieren für Anfänger - Wie fange ich an?

Nequeox

Komplett-PC-Käufer(in)
Programmieren für Anfänger - Wie fange ich an?

Hey Leute,

ich hatte schon immer eine kleine Faszination für's Programmieren, aber mich nicht getraut, weil es mir zu schwierig vor kam. Jetzt wurde ich durch einen Post auf Reddit aber dazu inspiriert und da ich bald 2 Monate Semesterferien habe und ich meine Zeit endlich mit einem sinnvollen Hobby nutzen möchte, welches ich evtl später einmal brauchen kann, dachte ich, dass im programmieren ja die Zukunft liegt.
Dazu kommt, dass ich BWL studiere und anscheinend zu blöd bin für Kapitalmarkttheorie, unsere Uni aber auch eine gute Auswahl an Wirtschaftsinformatikkursen anbietet, welche ich nun wohl belegen werde, darunter SAP und Supply Chain Management und da kann die ein oder andere Programmierkenntniss auch vom Vorteil sein hoffe ich.

Allerdings weiß ich nicht wo man anfangen soll bei all den unterschiedlichen Sprachen. Ich habe mir mal einen Account auf codeacadamy.com angelegt und die fangen an mit einem Grundkurs für CSS und HTML. Ist das zu empfehlen? Oder doch das Buch "C: Programmieren von Anfang an " von Amazon kaufen?
Ich weiß ehrlich gesagt nicht, was ich programmieren möchte, ich bin nur fasziniert davon. Ich habe seitdem ich ein kleines Kind bin mit Computern zu tun, verstehe aber nicht wie sie funktionieren, geschweige denn wie man einen PC richtig zusammenbaut. Dies möchte ich ein bisschen ändern, zumindest was die Software anbelangt. Wenn es mich nach einer Weile langweilt kann ich immer noch aufgeben, nur möchte ich es wenigstens versucht haben.

Danke im Voraus,

Nequeox.
 
AW: Programmieren für Anfänger - Wie fange ich an?

Nunja, wenn man davon absieht, dass CSS und HTML keine richtigen Programmiersprachen (eher Textformatierungssprachen) sind ;)
C, C++ würde ich persönlich nicht als Einstieg verwenden (Wird äußerst schnell äußerst Komplex), aber da hat jeder andere Ansichten. Ich habe selbst mit Java angefangen und mich auch mal, im Zusammenhang mit Unity3D, mit C# beschäftigt, sowie etwas C++ mal nebenher. Für Java kann ich dir das Openbook hier empfehlen: Rheinwerk Computing :: Java ist auch eine Insel - index

Aus persönlicher Erfahrung kann ich dir sagen, dass man am meisten lernt, wenn man versucht Spiele zu programmieren, anstatt von stupiden Verwaltungsprogrammen, wie es von den meisten Informatik-Lehrern in der Schule leider bevorzugt wird (Fehler in der Programmierung eines Verwaltungsprogramms äußern sich meistens nur in Rechenfehlern, während man in Spielen auch den ein oder anderen Bug mit "interessantem Effekt haben kann, was die Motivation oben hält. Zumal man bei manchen Bugs sich auch denkt, dass sie für eine zukünftige Funktion des Spiels noch nützlich sein kann, z.B. durch Wände laufende Gegner zur Verwendung als Geister, weshalb man die Ursache des Fehlers noch genauer untersucht :P). Diese Erfahrung basiert darauf, dass wir zwei Wochen lang ein Java-Seminar bei einem Dozenten hatten, welcher aus der Spieleprogrammierung kam und ich in diesen zwei Wochen mehr gelernt habe, als in den drei Jahren Abitur mit Leistungskurs Informatik :ugly:
 
AW: Programmieren für Anfänger - Wie fange ich an?

Die Diskussion hatten wir natürlich schon 100 mal hier, und jedes mal scheiden sich die Geister an der Frage, welche Programmiersprache für Anfänger zu empfehlen ist ;-)

HTML / CSS sind ja jetzt keine klassischen Programmiersprachen, die fallen eigentlich direkt raus.

Mit Python kann man sehr schnell die ersten richtigen Programme und Skripte schreiben und es ist sehr einfach zu erlernen. Rechenintensive Anwendungen wirst du mit Python zwar nicht realisieren können, dafür führt Python dich sehr schnell an die Objektorientierte Programmierung heran.

Vorteil ist, dass man bei Python anfangs sehr leicht rumprobieren kann, da man nicht kompilieren muss, und somit Änderung am Code sehr leicht & schnell testen kann.
 
AW: Programmieren für Anfänger - Wie fange ich an?

Mir ist gerade vielleicht etwas eingefallen, was ich programmieren möchte. Ich wollte ein Haushaltsbuch führen, worin ich Einträge über mein Smartphone (Android) und meinen PC machen kann, allerdings gib es entweder Apps für den PC oder das Smartphones und nicht beides zusammen. Im Moment benutze ich daher Excel und habe mir da Tabellen und so weiter angelegt.
Wäre es möglich eine App und ein Programm für den PC zu entwickeln, welches eventuell das selbe Dateiformat beutzt indem es die Daten speichert und man dieses in einer Cloud zB speichert und dann über die App/Windows Programm darauf zugreifen kann?

Das klingt natürlich erstmal ziemlich umfangreich für einen Anfänger, aber sowas wäre doch ein schönes langfristiges Ziel, wenn es sich denn machen lässt. Welche Sprachen müsste ich dafür beherrschen und wie gehe ich sowas am besten an. Java für Android, richtig?
 
AW: Programmieren für Anfänger - Wie fange ich an?

Wenn du wirklich für Android programmieren möchtest, dann kommst du um Java kaum drumrum.

Es gibt zwar Alternativen, aber einfacher sind die auch nicht.

Ich würde allerdings nicht direkt mit dem Smartphone anfangen. Lerne erst einmal, wie Java auf dem PC funktioniert, und guck dir dann die smartphonespezifischen Änderungen an, wenn du die PC App fertig geschrieben hast.

Schritt 1: Lade dir JRE (Java Runtime Environment) und Java SDK (Software Development Kit) herunter.

Schritt 2: Installiere dir Notepadd++. Es gibt zwar 300 Millionen tolle Entwicklungsumgebungen, aber für den Anfang empfehle ich einen stinknormalen Texteditor. Autovervollständigung und Klassenbäume sind später zwar tolle Sachen, aber für den Anfang musst du erst einmal die Syntax begreifen und die wichtigsten Befehle auswendig können, und da hilft nur: Tippen, tippen, tippen. Wenn du so weit bist, dass du die Grundlagen verstanden hast, kannst du dich gerne mit Entwicklungsumgebung und Versionskontrolle beschäftigen. Vorher ist das einfach zu viel auf einmal.

Schritt 3: Es gibt im Internet 300 Millionen gute Anleitungen für Java. Such dir eine aus. Am besten direkt eine englischsprachige, denn alle wichtigen Programmierseiten (stackoverflow.com und die Java Documentation) sind ohnehin nur in Englisch verfügbar. Deswegen am besten direkt an die Englischen Begriffe gewöhnen. Viele sind den deutschen zwar sehr ähnlich (Class - Klasse; method - Methode) aber einige sind eben auch anders (inherit - erben; parent - übergeordnete Klasse).

Ein konkretes Tutorial kann ich dir allerdings nicht empfehlen. Was aber ganz wichtig ist: Spiele mit den Codebeispielen herum. Probier aus, was Änderungen am Code bewirken.

Wenn du soweit bist, dass du das Konzept der objektorientierten Programmierung verstanden hast, und zumindest die primitiven Datentypen sowie die wichtigsten Module der Standardbibliothek kennst, kannst du anfangen auf dein persönliches Ziel hinzuarbeiten.
 
AW: Programmieren für Anfänger - Wie fange ich an?

Zuerst mal schließe ich mich mal meinen Vorrednern an, CSS und HTML benutzt man zwar für Websites, sind aber keine "echten" Programmiersprachen.

Ich habe selbst mit VisualBasic.NET angefangen, würde ich aber nicht so als Anfang empfehlen (Ist zwar recht einfach, aber die Syntax unterscheidet sich recht häufig von den anderen gängigen Sprachen).
Java ist zurzeit wahrscheinlich einfach der beste Einstieg (sogar bei mir im Informatikstudium wird fast nur Java verwendet) und für Androidapps ist es wohl auch die beste Wahl (für Spiele sollte man jedoch zu Unity3D und damit zu C# greifen).
C# benutzt zum Großteil Javasyntax, hat aber hier-und-da mehr Möglichkeiten, ist jedoch nicht so einfach für andere Betriebssysteme, wie Android, verwendbar.
C und C++ sind zum Anfang eher nicht zu empfehlen.
Zu anderen Sprachen wie Python kann ich leider nichts sagen.

Zu Tutorials:
Ich habe am Anfang viel über die VideoTutorials von ScratchForFun gelernt. (--> auf Englisch, nur ein paar konkrete Projekte)
Ein Kumpel, der jetzt mit mir Informatik studiert, hat Java komplett von Brotcrunsher gelernt. (habe hier selbst nur Einzelnes nachgeschaut) (-->auf Deutsch, zum Großteil einzelne Aspekte von Java, teils aber auch ganze Projekte und auch andere Programmiersprachen)

Zur Entwicklungsumgebung:
Einfach das neueste JDK(manchmal auch JavaSDK) herunterladen und installieren(das JRE ist meines Wissens nach darin enthalten, wenn nicht einfach nach installieren).
Ich würde jedoch gleich mit einer IDE(Programmierumgebung) anfangen (z.B. Eclipse), da die meisten Tutorials darauf aufbauen und man es beim testen ("Debuggen") leichter hat.
 
AW: Programmieren für Anfänger - Wie fange ich an?

Schritt 2: Installiere dir Notepadd++. Es gibt zwar 300 Millionen tolle Entwicklungsumgebungen, aber für den Anfang empfehle ich einen stinknormalen Texteditor.
Warum einfach, wenn es auch kompliziert geht? Auch mit Syntax-Prüfung und Autovervollständigung kommt man nicht daran vorbei, den Syntax der Sprache zu lernen (und natürlich auch alle anderen Grundlagen).

Alleine der Verzicht auf ein IDE wird sich rächen, sobald mal das erste Programm im Debugger laufen soll. Aber man kann es natürlich auch so machen wie in Kapitel 1.5 des Rheinwerk-Buches beschrieben.
 
AW: Programmieren für Anfänger - Wie fange ich an?

Ich habe damals (= vor 15 Jahren) mit C angefangen und finde immernoch, dass es richtig war. Mittlerweile programmiere ich in Java, C/C++ (C vor allem im Embedded Umfeld), C#, etwas Assembler (wenn C zu langsam ist) und VB.

Sprache ist nur ein Werkzeug, mehr nicht. Man muss die Algorithmen dahinter verstehen, was ist eine Schleife, was ist eine Verzweigung, eine Klasse, Methode, ein Attribut. Wenn man das alles verinnerlicht hat, hat man schon gewonnen. Ob es am Ende dann C++, Java, C# oder sonstwas ist, ist absolut egal.
 
AW: Programmieren für Anfänger - Wie fange ich an?

Youtube ist ein guter Anfang.
Die Leute haben ordentliche Videos online, und der großteil erklärt es einfach und langsam.

Zusammen mit dem bewegendem Bild (Praktisches Beispiel) und der Theorie, konnte ich mir schon so einige Programmierschnipsel selbst bei bringen.
Vorwiegend in Excel bzw. VBA, aber das ist auch für andere Sprachen möglich.
Youtube bietet da einiges an Videos.
 
AW: Programmieren für Anfänger - Wie fange ich an?

Frag tausend Programmierer, und du wirst tausend verschiedene Antworten erhalten.
Wir sind ein eigenartiges Volk, bei dem jeder gern behauptet, dass die jeweils andere Sprache nicht so toll ist - und nur die, die man selbst gern verwendet das einzig wahre ist. Und man selbst ist überhaupt der einzige, der so programmiert, wie es sich gehört. :D

Wenn du nicht allzu trocken anfangen möchtest, dann sind die kostenlosen und interaktiven Online-Kurse vielleicht etwas für dich. Z.B. Codecademy. Da lernt man interaktiv programmieren. Es werden einem immer kleine Schnipsel gegeben und erklärt, und man kann sich dann direkt daran probieren: Learn to code | Codecademy

Den besonders leichten Einstieg bietet ansonsten imho die Web-Programmierung, bzw. Script Sprachen. Da wären Javascript und/oder PHP. Mit Javascript kann man eigentlich am einfachsten starten, weil man dazu nicht mehr benötigt als einen Text-Editor (Plain-Text Editor). Das geht zB mit Notepad von Windows. Besser noch mit Notepad++. Dazu dann nur noch ein Browser, und fertig ist die Programmierumgebung.
Dafür gibt es unter anderem auch ein Tutorial auf Codecademy: Learn JavaScript | Codecademy

Sprachen wie Java, C++, C#, PHP, sind schon etwas aufwändiger, weil hierfür in der Regel erstmal etwas mehr "Handwerkszeug" benötigt wird. Das sind etwa ein Compiler (C/C++/C#), eine zusätzliche VM zum Compiler (Java), oder auch ein Webserver Programm (etwa Apache für PHP).

Ich wünsch dir viel Spaß beim Lernen. Den wichtigsten Tipp, den ich Dir geben kann ist:

Programmieren lernst du nur durch Programmieren. Also probiere so viel wie möglich aus. Versuche es nachzumachen und zum Laufen zu bekommen. Dadurch lernt man am Effektivsten und Schnellsten das Programmieren.
 
AW: Programmieren für Anfänger - Wie fange ich an?

Frag tausend Programmierer, und du wirst tausend verschiedene Antworten erhalten.
Wir sind ein eigenartiges Volk, bei dem jeder gern behauptet, dass die jeweils andere Sprache nicht so toll ist - und nur die, die man selbst gern verwendet das einzig wahre ist. Und man selbst ist überhaupt der einzige, der so programmiert, wie es sich gehört. :D

Ich sage mal so, ich persönlich nehme die Sprache, die sich am besten für den UseCase eignet. Für dynamische Web Geschichten Java, für GUI C# oder Java, wenn es um komplexe Berechnungen geht, dann C ggf. mit Assembler und so weiter...

Ich wünsch dir viel Spaß beim Lernen. Den wichtigsten Tipp, den ich Dir geben kann ist:

Programmieren lernst du nur durch Programmieren. Also probiere so viel wie möglich aus. Versuche es nachzumachen und zum Laufen zu bekommen. Dadurch lernt man am Effektivsten und Schnellsten das Programmieren.

Und wenn man was macht, sollte man sich immer fragen: "was macht der Compiler draus und wie wird es abgearbeitet".
 
AW: Programmieren für Anfänger - Wie fange ich an?

Persönlich finde ich Python für Anfänger relativ gut geeignet. Da die Syntax hier strikt vorgegeben ist, ist es gerade für Anfänger schön, da hier "rumgesaue" schon von Anfang an etwas eingedämmt wird. Dazu lassen sich viele Paradigmen gut lernen, weswegen Python auch von vielen US-Universitäten genutzt wird anstatt, wie bei uns in Deutschland oft, Pascal.

Für erste Erfahrungen in meinen Augen definitiv besser als C, C++ oder PHP. Vor allem nicht PHP, dort ist die Funktionsbibliothek leider so zugesaut mit Altlasten, dass man als Anfänger sich leicht schlechte Eigenschaften aneignet.

C# und Java sehen auch aber bringen natürlich direkt die volle OOP-Keule mit, welche ich für Anfänger auch eher unpassend empfinde. Darauf kann man umsatteln, wenn man erst einmal etwas Boden unter den Füßen hat.

Daher empfehle ich Python! Ein gutes Buch oder Tutorial online (aufpassen, das man hier keinen Mist liest, auf Youtube sind auch die meisten Videos Schrott) und man macht erste Gehversuche. Dann spielt man damit etwas rum und will dann etwas machen, was mit Python ggf. nicht so einfach möglich ist. Dann schaut man sich nach einer passenden Sprache um und entwickelt sich. Je nach Interessen und Situation.

Die eine Programmiersprache gibt es eh nicht. Es ist nur ein Handwerkszeug und ein guter Handwerker nimmt für die aktuelle Arbeit immer das passende Werkzeug und nicht immer das gleiche Werkzeug ;)

Vote 4 Python
 
AW: Programmieren für Anfänger - Wie fange ich an?

@Shutterfly
Ich persönlich mache einen großen Bogen um Python, weil ich die Syntax einfach extrem hässlich und unübersichtlich finde (Bin halt explizite Trennung und Klammer-Setzung gewohnt), ist halt Geschmackssache ;)

Also z.B. Syntax-Vergleich von C und Python:

C(++)-Code:
Code:
int fakultaet(int x)
{
    if (x > 1) {
         return x * fakultaet(x - 1);
    } else {
         return 1;
    }
}

Python-Code:
Code:
def fakultaet(x):
    if x > 1:
        return x * fakultaet(x - 1)
    else:
        return 1

Bei größeren Programmen, wird das schnell unleserlich (Aufgrund fehlender Klammerstrukturen und Semicolas), nach meinen Erfahrungen. Erschwerend kommt noch die Unterscheidung zwischen Tabulator und Leerzeichen hinzu, falls die Entwicklungsumgebung falsch eingestellt ist ;)
Deswegen hat mich Python auch ziemlich abgeschreckt und ich habe mit Java und C++ angefangen :P

Ist aber, wie gesagt, Geschmackssache, was man jetzt nimmt.
 
AW: Programmieren für Anfänger - Wie fange ich an?

Für erste Erfahrungen in meinen Augen definitiv besser als C, C++

Weil?

In C/C++ hast Du genau so eine sehr strikte Syntax und Abläufe. Dazu kommt noch, dass man in C/C++ sich über Speicherverwaltung Gedanken machen muss und das ist auch gut so. Wenn ich den wundervollen Garbage Collector von Java sehe, kriege ich einen zu viel. Ich mag Java sehr gern, aber der GC ist eine absolute Gurke.

C# und Java sehen auch aber bringen natürlich direkt die volle OOP-Keule mit, welche ich für Anfänger auch eher unpassend empfinde. Darauf kann man umsatteln, wenn man erst einmal etwas Boden unter den Füßen hat.

Und was ist an OOP so schwierig? Ein Objekt (= Zug) besteht aus Eigenschaften (= Farbe) und Methoden (= fährt).

Bei größeren Programmen, wird das schnell unleserlich (Aufgrund fehlender Klammerstrukturen und Semicolas), nach meinen Erfahrungen. Erschwerend kommt noch die Unterscheidung zwischen Tabulator und Leerzeichen hinzu, falls die Entwicklungsumgebung falsch eingestellt ist ;)

WTF???? Echt jetzt? Dafür gehören sie verprügelt...
 
AW: Programmieren für Anfänger - Wie fange ich an?

Ich gebe mal meinen Senf dazu....

Meine Vorredner haben alle im Großen und Ganzen recht.
Aus meiner eigenen Erfahrung kann ich nur sagen, dass mir C# besonders gefallen hat.
Es ist ähnlich wie Java, aber trotzdem irgendwie einfacher zu verstehen.
Ich hatte an zwei verschiedenen Schulen Java und C# gelernt und jedes Mal war C# für mich das Einfachere.
Außerdem hat es beim Programmieren weniger Fehler verursacht. Es war nicht so zickig wie Java.
Bei Java konnte ich einen Quelltext der eindeutig funktioniert, kopieren und einfügen und er hat nicht mehr funktioniert.
Außerdem kann man mittlerweile auch mit C# für Android und Co. programmieren.
Wenn du dir die Visual Studio Community Edition holst, hast du da alles was du brauchst.
Auf dieser Seite gibt es kleine Programm "Stückchen", an denen man auch die C# Syntax kennen lernen kann: dotnet-snippets.de
Außerdem wäre folgende Seite nützlich: C# - Rheinwerk openbook
 
AW: Programmieren für Anfänger - Wie fange ich an?

Naja, bei Java kommen die "Zicken" meistens von:

  • Classpath
  • Imports
  • Package
Wenn das passt, zickt auch Java nicht mehr.
 
AW: Programmieren für Anfänger - Wie fange ich an?

@xNeo92x
Danke für die 'Snippets'-Seite :daumen:
Ich hab mir schon an manchen Tagen echt nen Wolf gesucht um bestimmte Programmteile bzw. Umsetzungen zu finden :ugly: (Hauptsächlich für Unity3D)
 
AW: Programmieren für Anfänger - Wie fange ich an?

Und was ist an OOP so schwierig? Ein Objekt (= Zug) besteht aus Eigenschaften (= Farbe) und Methoden (= fährt).

Darauf versuche ich heute Abend im Detail einzugehen. Weil ja, so kann man es machen. Wenn man dann jedoch das Ganze mit dem Fachwissen bzgl. Polymorphie, Liskovsches Substitutionsprinzip, Kovarianz und Kontravarianz etc. anreichern will, finde ich es für den Einstieg unpassend. Immerhin hat man gar keine Ahnung ;)
 
AW: Programmieren für Anfänger - Wie fange ich an?

Darauf versuche ich heute Abend im Detail einzugehen. Weil ja, so kann man es machen. Wenn man dann jedoch das Ganze mit dem Fachwissen bzgl. Polymorphie, Liskovsches Substitutionsprinzip, Kovarianz und Kontravarianz etc. anreichern will, finde ich es für den Einstieg unpassend. Immerhin hat man gar keine Ahnung ;)
Also von drei der vier Begriffe habe ich noch nicht mal was gehört und es schränkt mich beim Programmieren auch absolut nicht ein :ugly:
 
AW: Programmieren für Anfänger - Wie fange ich an?

Also von drei der vier Begriffe habe ich noch nicht mal was gehört und es schränkt mich beim Programmieren auch absolut nicht ein :ugly:

Kommt drauf an wie du "Einschränkung" betrachtest. Oder ob du dir dessen überhaupt bewusst bist. Zugegeben die mit den Begriffen verbundenen Verhalten und Tatsachen kann man meist irgendwie indirekt nutzen ohne sich dessen Bewusst zu sein. Für mich unterscheidet sich jedoch hier die Spreu vom Weizen.

Jeder kann irgendwie etwas programmieren, in der Umgangssprache auch "hinrotzen" genannt. Es wird erst dann interessant wenn man diese Werke mal gewissen Aspekten wie Stabilität, Wartbarkeit, Performance, Flexibilität etc. betrachtet, wo dann solches Wissen den feinen Unterschied machen kann. Es macht für mich einen großen Unterschied, ob ein Programmierer sein Handeln auch technisch begründen kann und nicht mit purer Ahnungslosigkeit glänzt.

Und je mehr du in höhere Sprachen einsteigst, desto mehr Konzepte gibt es, welche man eigentlich kennen und verstehen sollte. Ansonsten lassen sich die Mächtigkeit von z.B. Design Pattern gar nicht wirklich ausspielen.

Vielleicht sind meine persönlichen Ansprüche für einen Anfänger auch viel zu hoch ;)
 
Zurück