Programmieren lernen! Kennt sich jemand von euch mit Programmieren aus?

5 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet
Einleitung
Suche jemanden der mir zeigen könnte wie man Programmieren lernen kann

Wie stellst du dir das vor? Über Skype? Nein, das würde mehr als ein halbes Jahr dauern. Außerdem ist Kontaktsuche richtlinienwidrig auf gutefrage.

schaue mir schon tutorials auf Youtube an

Womit lernen?

Davon rate ich ab. Ich würde eher ein Buch mit Übungsaufgaben empfehlen.

Dies hat ein paar entscheidende Vorteile:

  • Tempo: Ein Tutorial richtet sich oft nicht nach deinem Tempo, bei einem Buch kannst du hingegen bequem zurückblättern oder auch Teile überspringen.

  • Vermittlung: Ein guter Programmierer ist nicht zwangsläufig ein guter Lehrer. Die Leute, die Bücher schreiben, besitzen in der Regel die Fähigkeit, anderen Leuten Wissen anschaulich zu vermitteln und Dinge gut zu erklären. Zudem handelt es sich um richtige Autoren, d.h. sie können die in der Sprache zur Verfügung stehende Mittel besonders gut dazu verwenden, um bestimmte Dinge klar zu stellen. Häufig sind sie auch sehr kreativ, sodass sie geniale Beispielprogramme schreiben können, die man sonst so nirgendwo im Internet findet.

    Es mag sein, dass die YouTuber auch ganz gut programmieren können, und dies glaube ich auch, doch die wenigsten von ihnen können dir das, was sie wissen, auf einem solch verständlichen Wege vermitteln wie Buchautoren.

  • Struktur und Vollständigkeit: Man merkt es oft erst im Nachhinein, wenn man ein Tutorial durchgeschaut hat und dann in das Inhaltsverzeichnis eines Buches reinschaut. Dann stellt man nämlich häufig fest, dass doch so viele Begriffe, die dort vorkommen, für einen gänzlich unbekannt sind. 

    Häufig konzentriert man sich in Tutorials nämlich auf bestimmte Aufgaben und lässt dabei die strukturierte Vorgehensweise nach Teilgebieten der Programmiersprache völlig außer Acht.

    Bücher dagegen schaffen es, nicht nach Projekten, sondern nach Teilgebieten zu gliedern, diese aber dennoch verständlich und aufeinander ausbauend zu sortieren.

  • Sauberkeit: Nein, nicht Sauberkeit im Sinne von Hygiene, sondern gemeint ist hier die Sauberkeit des Programmierstils. Häufig begegnen mir viele Leute im Internet, welche Programmieren durch Videos "gelernt" haben. Diese Leute weisen oft einen "pfuschigen" Programmierstil auf. Bestimmte Dinge werden unleserlich, unüblich oder ineffizient implementiert. Häufig fehlt das tiefere Hintergrundwissen und dann fängt das Hüpfen von einem Tutorial zum nächsten an.

  • Übungsaufgaben: Die Übungsaufgaben der Bücher haben den entscheidenden Vorteil, dass man sie nicht einfach wie in Videos sturr nachprogrammiert und sich denkt: Ach, so wird das gemacht. Sondern stattdessen wird man in die Thematik eingewiesen, auch anhand anderer Beispiele, muss die Übungsaufgaben allerdings selbstständig bearbeiten.

    Daran sieht man, ob man den Stoff des Kapitels bereits verstanden hat oder sich das ganze nochmals ansehen muss, ggf. mit Unterstützung von Videos und Online-Tutorials, falls es selbst nach dem zweiten Lesen nicht deutlicher wird. Manchmal muss man sich auch durch das ganze Internet "durchwühlen", bis man ein bestimmtes Thema verstanden hat. Das ist ganz normal und von Mensch zu Mensch unterschiedlich.

    Sobald man alles verstanden hat, wird man es schaffen, die Übungsaufgaben zu bearbeiten. Wenn die Programme korrekt funktionieren, kann man in den Lösungen nachschauen, was man am Programm noch verbessern könnte, und versuchen, dies nachzuvollziehen sowie sich für nächstes mal zu merken.

Aus den genannten Gründen würde ich definitiv in Richtung Buch tendieren. Man kann sie häufig auch in Bibliotheken ausleihen, sodass man nicht dafür zahlen braucht.

Videos und Online-Tutorials würde ich eher als Unterstützung verwenden, wenn etwas aus dem Buch unklar ist. Auch Foren wie Stackoverflow können recht hilfreich sein (nachdem man nachgesehen hat, ob diese Frage nicht anderswo schon ausreichend gut beantwortet wurde).

aber so einen Experten an der Seite zu haben wäre auch nicht sehr schlecht ! Jemanden der mit mir von vornherein alles durchgeht und mir alles erklärt bis ich alles gut verstehe

Du könntest höchstens an einem Kurs teilnehmen oder dich mit einem Studenten absprechen, aber ansonsten wird dir, glaube ich, keiner weiterhelfen können, weil es einfach viel zu zeitaufwendig ist.

aber verstehe manche sachen manchmal nicht weil sie zu kompliziert sind

Steck den Kopf nicht in den Sand, denn es gibt unterschiedliche Lerntypen. Es gibt Leute, die schnell verstehen. Es gibt aber auch Leute, die länger brauchen, es sich dann aber besser merken können.

Welche Sprache?

am liebsten mir Java genau ich lerne jetzt schon etwas länger

Ich empfehle dir generell, auch ohne zu wissen, was du vor hast, für den Einstieg die Programmiersprache Java, die du nun auch ganz vorbildlich lernst. Heutzutage ist nämlich das Prinzip der objektorientierten Programmierung (OOP) sehr essentiell. Gerade bei größeren Programmen ist es sinnvoller, anstatt prozedural (Zeile für Zeile, alle Befehle hintereinander) oder funktional (häufig vorkommende Prozeduren oder Funktionen auslagern, um sie mehrfach verwenden zu können, anstatt sich ständig zu wiederholen), objektorientiert zu programmieren.

Dabei werden Objekte genutzt, die den Objekten in der Realität entsprechen: Jedes Objekt hat gewisse Eigenschaften und Methoden. Diese werden in einer Klasse festgelegt, welche sozusagen ein Bauplan für Objekte darstellt. Aus diesem Bauplan können schließlich mehrere Objekte "gebaut" werden.

Das klingt zwar erst einmal sehr theoretisch, jedoch erleichtert es die Lesbarkeit größerer Projekte und ermöglicht die einfachere Wiederverwendbarkeit bereits entworfener Problemlösungen.

Diese objektorientierte Programmierung ist z.B. in Python, welches auch gerne für den Einstieg empfohlen wird, nur teilweise umgesetzt, viele wichtige Features fehlen vollkommen. Java dagegen unterstützt nur OOP und keinen anderen Stil. Zudem ist Java wesentlich strenger und erlaubt dir bestimmte Dinge nicht, bei denen dir Python einen gewissen Freiraum bietet. Diesen Freiraum nutzen Anfänger aufgrund von Bequemlichkeit sehr gerne und erlernen somit einen "pfuschigen"/unsauberen Programmierstil.

Um jedoch ordentlich Programmieren zu lernen und gleichzeitig das zukunftsentscheidende Prinzip der objektorientierten Programmierung kennen zu lernen, würde ich auf eine Sprache setzen, die dir diese Möglichkeiten bietet.

Java tut das und ist darüber hinaus für Einsteiger ziemlich einfach gehalten. Diese Sprache ist eine Interpreter-Sprache, also auch plattformunabhängig. Allerdings wird nicht der Java-Code interpretiert, sondern der Bytecode, in den der Programmcode zuvor kompiliert wird, was Java wesentlich schneller als viele andere Interpreter-Sprachen macht.

Zudem ist die Sprache sehr universell und kann in vielen Bereichen eingesetzt werden, z.B. GUI-Programmierung, einfache Spiele, Android-Apps, Webdevelopment, AI und Machine Learning, Minecraft Plugins, Robotik, Datenbank-Programmierung, Netzwerk-Programmierung, wissenschaftliche Programmierung, Cloud-Development, etc.


Wie lernen?

Für Java empfehle ich dir folgendes folgendes Buch zum Einstieg:

https://www.amazon.de/Programmieren-lernen-mit-Java-WindowBuilder/dp/3836241307/ref=sr_1_1?ie=UTF8&qid=1503873351&sr=8-1&keywords=programmieren+lernen+mit+java

Anschließend heißt es jede Menge Erfahrung sammeln (mindestens ein Jahr). Zur Erweiterung des Wissens eignet sich dann folgendes Buch:

https://www.amazon.de/Java-auch-eine-Insel-Java-Entwickler/dp/3836241196/ref=sr_1_1?s=books&ie=UTF8&qid=1503873413&sr=1-1&keywords=java+insel

Und falls du vollends ein Java-Profi werden willst, auch noch dieses:

https://www.amazon.de/Java-auch-eine-Insel-Java-Entwickler/dp/3836241196/ref=sr_1_1?s=books&ie=UTF8&qid=1503873413&sr=1-1&keywords=java+insel

Ansonsten kann auch die App-Entwicklung (Android), die ebenfalls mit Java vonstatten geht, interessant sein:

https://www.amazon.de/Android-Praxisbuch-Entwickler-Android-Funktionen-Datenbanken/dp/3836242001/ref=sr_1_1?s=books&ie=UTF8&qid=1503873507&sr=1-1&keywords=android+7

Dies wird wohl immer stärker die Zukunft sein. Meine vorgeschlagenen Bücher gibt es übrigens in vielen Bibliotheken, sodass du kein Geld ausgeben musst.


Was tun, wenn ich Schwierigkeiten habe?

Zum Nachschlagen eignet sich bei Java wunderbar Google. Vor allem die Docs

https://docs.oracle.com/en/

und Stackoverflow

https://stackoverflow.com/

sind gute Anlaufstellen.


Und dann?

Allgemein ist es besser, wenn man mehrere Programmiersprachen beherrscht. Nachdem du Java sicher im Schlaf beherrscht, kannst und solltest du auch mit Python, C und C++ etc. weiter machen. Jede Sprache hat ihre Daseinsberechtigung und wird für verschiedene Anwendungsbereiche verstärkt genutzt. Es gibt keine "beste" Programmiersprache. Deswegen sollte man nicht nach einer aufhören, sondern besser sein Wissen erweitern.

Letztendlich sind diese Programmiersprachen aber nur das Mittel zum Zweck. Viel wichtiger sind die Konzepte und das "Drumherum", was man dabei lernt. Diese Erfahrung macht einen guten Entwickler aus. Andere Sprachen zu lernen, sollte sowieso kein großes Problem darstellen, wenn man bereits eine beherrscht. Man sollte sich schnell in unbekannte Felder einarbeiten können.


Aber Achtung!

um meine eigene App zu entwickeln

Lass dir auf jeden Fall genügend Zeit und sammel jede Menge Erfahrung. Sicherlich ist in den Android-Büchern oftmals auch Java enthalten, jedoch ist das so kurz, dass du dann ein wackeliges Fundament hast. Wenn das Fundament nicht stabil ist, wird auch das Gebäude wackeln. Bitte lerne Java wirklich separat, denn die gesamte Logik deiner Apps basiert auf Java.

Swing, JavaFX und co. brauchst du nicht so stark lernen, weil das in der Android-Programmierung natürlich nicht erforderlich ist. Aber ansonsten muss alles sitzen.

Ansonsten schau mal hier in meine Antwort rein, sobald du soweit bist: https://www.gutefrage.net/frage/welche-programmiersprache-ist-die-beste-fuer-mich-----101?foundIn=list-answers-by-user#answer-264722172


Solltest du noch Fragen haben, kannst du dich gerne melden.

Ich wünsche dir viel Spaß !


WombatCC  20.11.2017, 07:31

Processing ist tatsächlich sehr gut zum lernen. Außerdem läuft Processing ein bisschen eingeschränkt auch auf dem Handy. Man kann also seine auf dem Computer erstellten Programme auch als App verwenden(aber Achtung: Die Steuerung mit Maus- oder Tastaturbefehlen ist auf dem Touchscreen nicht so leicht).

0
Scriptim  20.11.2017, 06:48

Naja, Java ist nicht *wirklich* objektorientiert. Das, was du als "prozedural" bezeichnest, heißt eigentlich "imperativ" und das, was du als "funktional" bezeichnest, heißt eigentlich "prozedural".

0
tavkomann  20.11.2017, 18:50
@Scriptim

In welchem Sinne ist Java nicht wirklich objektorientiert? Was ist es denn sonst???

Mit prozedural und imperativ hast du natürlich Recht, da war ich wohl unaufmerksam...

0
Scriptim  20.11.2017, 20:02
@tavkomann

Definiere mal Objektorientierung... Wenn ich nach der Definition von Alan Kay gehe, ist in einer objektorientierten Sprache "alles" ein Objekt. Das ist bei primitiven Datentypen nicht der Fall und static Methoden kann ich auch ohne Objekte verwenden. Außerdem heißt es, dass Objekte nur über Nachrichten kommunizieren können, das ist in Java offensichtlich auch nicht gegeben. Genauso wenig nutzt Java late-binding. Zwar unterstützt Java objektorientierte Grundideen wie Kapselung, Vererbung und Polymorphie, man kann aus genannten Gründen dennoch nicht von einer *wirklichen* Objektorientierung sprechen. Objektorientierte Sprachen sind z. B. smalltalk, Eiffel und Ruby.

1
Scriptim  20.11.2017, 20:48
@tavkomann

Und dieses Ziel haben sie deutlich verfehlt.

Man muss ja auch nicht unbedingt eine alternative Bezeichnung haben, aber wenn du unbedingt eine möchtest, dann finde ich die Umschreibung als "verbesserte ADTs" nicht ganz unpassend.

0
KilluaZoldyck66 
Beitragsersteller
 20.11.2017, 01:10

Hey ich habe noch eine Frage an dich zurzeit besitze ich leider ein 4Gb ram Laptop auf dem läuft Android Studio gerade so aber leider die Virtual Console nicht also das Handy kannst du mir da weiterhelfen kaufe mir balld evtl am Black Friday oder an weihnachten ein Pc :) bis dorthin würde ich schon sehr gerne Programmieren mit Java kannst du mir da ein Programm empfehlen können wir evtl mal sprechen ? Discord Skype ? dann könntest du mir ja was beibringen nur falls du Zeit hast würde auch bezahlen falls ich noch was vom Taschengeld übrig habe denn du scheinst dich damit echt gut auszukennen :) 

0
tavkomann  20.11.2017, 01:19
@KilluaZoldyck66

ich leider ein 4Gb ram Laptop auf dem läuft Android Studio gerade so aber leider die Virtual Console nicht also das Handy

Dann würde ich es vielleicht mit einem GNU/Linux-System wie Ubuntu oder Linux Mint statt Windows probieren. 4GB RAM sind eigentlich genug, ich habe auch nicht mehr :)

Aber befasse dich erst einmal nur mit Java und noch nicht mit Android, wie ich in meiner Antwort schon schrieb.

bis dorthin würde ich schon sehr gerne Programmieren mit Java kannst du mir da ein Programm empfehlen

Wenn du nur mit Java programmieren willst, also noch keine Android-Programmierung, solltest du eine IDE wie IntelliJ, Eclipse oder NetBeans verwenden. Welche dir am besten gefällt, musst du selbst herausfinden.

können wir evtl mal sprechen ? Discord Skype ?

Nutze ich beides nicht. Wenn du weitere Fragen hast, kannst du sie hier gerne als Kommentar stellen.

dann könntest du mir ja was beibringen nur falls du Zeit hast würde auch bezahlen falls ich noch was vom Taschengeld übrig habe

Zeit habe ich leider nicht wirklich viel. Ich möchte in meiner Freizeit auch weiterhin noch anderen Menschen gerne bei gutefrage helfen. Ich glaube, du wirst das auch mit den Büchern und dem Internet schaffen. Geld nehme ich sowieso nicht so gerne an ;)

0
KilluaZoldyck66 
Beitragsersteller
 20.11.2017, 01:33
@tavkomann

ok sehr nett hab alles verstanden und abgespeichert :D nadann vielen vielen dank nochmal wünsche dir noch einen angenehmen Abend! :) 

1
tavkomann  20.11.2017, 01:36
@KilluaZoldyck66

Gerne. Ich wünsche dir ebenfalls noch einen schönen Abend sowie viel Erfolg und Spaß weiterhin! ;-)

0

Ich würde dir auch empfehlen ein wenig Geld zu investieren lohnt sich wirklich. Hab bis jetzt 2 Programmiersprachen gelernt die eine durch viele Websites und YouTube Videos, und die andere dich ein Videoseminar(bin lesefaul xD kommt aber bei über 20h Umfang auf das gleiche raus) und ich muss sagen das es VIEL besser ist etwas „richtig“ zu lernen anstatt auf YouTube. Dann kommt man auch später bei komplexeren Aufgaben auf die Lösung, und nicht zum CopyPasteDebakel wobei man nichts lernt…

Kostenlos wirst du wohl niemand fähigen finden, außerdem gibt es wirklich viele Video reihen auf YouTube welche in jeder Folge nur ein bis zwei Sachen erklären damit es eben verständlich bleibt. Da du wohl Java lernen möchtest kannst du es mal bei thenewboston auf Youtube versuchen.


KilluaZoldyck66 
Beitragsersteller
 20.11.2017, 00:42

Vielen dank ! 

0

Youtube Tutorials helfen dir nicht weiter bei einer so komplexen und individuellen Matterie.

Kauf dir mehrere Bücher, welche dir genau das beibringen, was du machen möchtest. Du kannst nicht einfach ein Buch Kaufen das dir beibringt wie du deine App machst, das Thema ist dazu viel zu individuell.

Viele gute Einsteigerbücher zu Programmiersprachen sind etwa 1200-1500 Seiten dick, und diese Bücher sind ein Fundament, du wirst auf jeden fall nicht deine Wunschapp nur mit einem dieser Bücher machen können.

Am besten wäre es, wenn du einen Kurs besuchst, oder einen Freund hast der das kann, da sich ein Mensch zum Gegensatz zum Buch den jeweiligen Bedürfnissen anpassen kann.

Lg, Victor.


KilluaZoldyck66 
Beitragsersteller
 20.11.2017, 00:40

Hey victor vielen dank würde am liebsten mit Java programmieren habe leider keine Freunde die das können und suche deswegen einen Experten oder jamden der sich damit auskennt :) 

0
MarklinHD  20.11.2017, 00:47
@KilluaZoldyck66

Dann bleibt dir wohl nichts anderes übrig, als ein langer Kurs oder das lesen durch viele Bücher.

Ich wünsche dir viel Glück, jedoch wird das noch eine lange Reise.

0

Reden wir hier von Java oder C++? App schätze ich eher Java. Ich könnte Buchempfehlungen geben, denn Programmieren ist selbst machen!


KilluaZoldyck66 
Beitragsersteller
 20.11.2017, 00:36

am liebsten mir Java genau ich lerne jetzt schon etwas länger aber verstehe manche sachen manchmal nicht weil sie zu kompliziert sind und die in Büchern oder Videos zb kein alternativen weg haben :) 

0
chipi92  20.11.2017, 00:37
@KilluaZoldyck66

Also auf Youtube und und Video to Brain sind super tolle Erklärungen für Java

0
KilluaZoldyck66 
Beitragsersteller
 20.11.2017, 00:41
@chipi92

habe schon viele gehesen aber machmal ist es wirklich sehr schwer das zu verstehen :/ naja vielendank für deine Hilfe

0
chipi92  20.11.2017, 00:42
@KilluaZoldyck66

dazu müsste man wissen was genau du nicht verstehst? threads, strings, variablen, die wörter, oder die allgemeine Schreibweise? Es gibt so viel was man bei java nicht verstehen kann...

0