"Wie" programmieren lernen

Was ein gewisser Programmcode macht habe ich persönlich am besten verstanden als ich für eine Abschlussarbeit in der Schule mehrere Microcontroller mit C programmieren musste. (damals noch irgendwelche Atmega mit myAVR Boards) Es hat zwar ewig gedauert bis ich nur eine einzige LED zum blinken gebracht habe (wegen der ziemlich hardwarenahen Programmierung), aber es hat mir gut gezeigt wie so ein Board und ein Microcontroller überhaupt arbeitet.
Ist zwar was ganz was anderes wie reine Softwareprogrammierung, aber dadurch das ein konkretes Lastenheft vorhanden war, habe ich und meine Kollegen damals durchgebissen.

Wie schon andere geschrieben haben wird es wohl nötig sein sich ein reales Ziel zu setzen und sich daran zu machen es zu erreichen. Rein nur Tutorials durcharbeiten bringt nicht sehr viel wenn man es dann nicht in anderer Form in einem Projekt anwendet.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: _RM_ und mental.dIseASe
bananen_admiral schrieb:
Dem würde ich widersprechen. Es sollte schon ein Grundlagenkurs sein, das ist richtig, am besten nur die nativen Sprachfeatures abdecken ohne den Einsatz von zusätzlichen Libraries oder Frameworks.
Aber man muss zu Beginn einfach ein paar Grundtechniken vermittelt bekommen, sonst kann man nicht mit einem eigenen Projekt starten.
Alles richtig, nur wie gesagt keiner wird es sich antun, wenn er kein Ziel hat welches er mit der Programmiersprache erreichen will.

Vielleicht ein plastischer Vergleich, aber du würdest nicht Jagen lerenen, wenn du weißt, dass es auch in einem Supermarkt ohne anstrengung zu hollen ist ;).
 
G-Red schrieb:
Vielleicht ein plastischer Vergleich, aber du würdest nicht Jagen lerenen, wenn du weißt, dass es auch in einem Supermarkt ohne anstrengung zu hollen ist ;).

Dann kauf dir einen Entwickler für deine Projekte ein. ;)
 
+1 für Scratch, das hatte ich gar nicht mehr auf dem Zettel. Damit habe ich zB mit meinem Neffen (damals 10) angefangen. Anfangs hatte er große Probleme Dinge wie ein "Wenn a dann b" oder auch "Wiederhole x genau y Mal" zu verstehen, aber als er das Prinzip raushatte, fing er an kreativ zu werden. Und das ist der Knackpunkt, die Kreativität. Sowas eignet sich also gut dazu, das Zusammenspiel von grundlegenden Programmierstrukturen kennenzulernen.



Übrigens: Wenn es später um große Softwareprojekte geht, wird auch nicht einfach drauflos programmiert. Ich arbeite momentan zum Beispiel an einer neuen Maschinensteuerung und bevor ich da in der Visualisierung überhaupt etwas programmiere, muss ich mich mit unserem SPS-Entwickler über Ablaufschemata unterhalten. Aktuell programmiere ich daher gar keinen Code, sondern zeichne nur Workflow-Diagramme, etc. auf deren Basis ich dann später die Funktionen, Klassen, etc. programmiere. Vor dem Programmieren kommt also das Konzept ;)
 
  • Gefällt mir
Reaktionen: bananen_admiral
G-Red schrieb:
Alles richtig, nur wie gesagt keiner wird es sich antun, wenn er kein Ziel hat welches er mit der Programmiersprache erreichen will.

Eins nach dem anderen.
Nur weil du mal im großen Schwimmbecken schwimmen gehen willst, heißt das nicht, dass du den Grundlagenkurs fürs Seepferdchen schwänzen sollst.
Klar kannst du direkt ins große Becken springen, aber dann muss dich ggf. der Bademeister wieder rausziehen.
Wenn man allerdings Schwimmen an sich nicht mag, dann sollte man vielleicht nicht ins Schwimmbad gehen.

Ein gewisses langfristiges Ziel muss am Anfang vorhanden sein, aber dieses Ziel ist nicht das erste Arbeitspaket, woran man sich ranmacht.
 
  • Gefällt mir
Reaktionen: Riou
Ich würde tatsächlich mit Python und evtl Pygame anfangen und versuchen ein kleines Spiel auf die Reihe zu bekommen.. Das hat bei meinem kleinen Neffen mit 12 Jahren sehr gut funktioniert. OOP, Typisierung und verschiedenste Design Pattern, kann man bei Bedarf immer noch lernen. Aber so versteht man schonmal die grundlegenden Konzepte der Programmierung.

Eine andere Möglichkeit wäre auch SonicPi, quasi Musik programmieren.

Grüße
/gob
 
Wenn du selbst nix findest was du bauen kannst gibt es im Internetz unmengen an Listen mit Ideen: https://github.com/florinpop17/app-ideas

Aber etwas zu finden was du selbst interessant findest ist wichtig, muss nichtmal irgendwas riesiges oder sinnvolles/effektives sein.

Ganz nach dem Motto "Wieso jeden Tag 30sec für eine Aufgabe verschwenden wenn ich das in 10h automatisieren kann". Hatte jeden Tag ne URL wo ich kurz über aktuelle Posts geguckt habe und wollte mal was mit Svelte machen.
Hab mir dann ne kleine Svelte-Webapp gebaut wo ich Keywords eingeben kann und der Server checkt dann die URL ein paar mal und liest Infos aus der Seite. Wenn was interessantes dabei ist bekomme ich am Handy ne Nachricht.

In 3 Jahren habe ich die 10h dafür wieder rein bekommen, aber so lernt man eben neue Sachen. Hab Svelte gelernt, weiß wie ich Puppeteer eine Seite parsen lasse auch wenn Javascript einiges rendert und hab einiges über Webpush gelernt.
War kein Projekt wo man nur copy&pasted und war auch nicht die 10.000te Todo-App die ich nach dem programmieren nie wieder benutze.


Auf Sprachen würde ich mich gar nicht so festlegen, klar musst du mit irgendwas anfangen aber die Konzepte in Sprachen lassen sich wunderbar übernehmen auch wenn der Syntax anders ist.
Wenn du irgendein Problem hast was man mit nem Programm beheben kannst brech es in kleine Teile auf und bau ein Teil nach dem anderem.
Um die trockenen Basics kommst du nicht drum rum, aber die lernt man am Ende auch nur indem man programmiert und nicht indem man ein Buch abliest und so tut als wenn man es verstanden hat.
 
  • Gefällt mir
Reaktionen: Reinh4rd, Riou, new Account() und eine weitere Person
Ich kann dich verstehen.
Ich bin selbst aktuell dabei, Python zu lernen.
Habe mir dann mal einen Kurs bei Udemy gekauft und dort erstmal die ganzen Grundlegenden Dinge/Videos davon angeschaut. Im Studium (Fahrzeugtechnik) habe ich selbst mal ein Semester Programmieren (Java) gehabt, jedoch ist da kaum etwas übrig.

Zurück zu Udemy: Ich finde es unglaublich trocken, zumindest am Anfang. Alles ist wirklich sehr theoretisch.
Klar programmiere ich immer wieder seine Beispiele mit, aber es ist trotzdem sehr mühsam...

Aktuell bin ich bei Webcrawling. Das ist wirklich schon sehr interessant. Der Typ der das macht hat auch extra eine eigene Homepage, und mit deren Basis kann man sich dann einen eigenen Webcrawler bauen, das hat bei mir dann auch geklappt.
Aus eigenem Interesse wollte ich mir auf Mindfactory die verkauften CPUs bei selbst crawlen. Leider ist der Aufbau nicht mehr so einfach wie auf der Test-Homepage und ich bekomme den Link auf die Seite 2 nicht extrahiert. Leider weiß ich nicht, wo man so kleine Problemchen irgendwie mit Hilfe diskutieren kann. Deshalb habe ich nach 2 Stunden herumtesten irgendwann die Lust verloren.

Praktische Ideen habe ich so viele die ich gerne programmieren würde, aber dafür bin ich leider zu schlecht :(

Um es kurz zu machen, ich weiß was du meinst :(
 
  • Gefällt mir
Reaktionen: new Account()
Ich denke am Anfang ist es wichtig die Grundlagen durchzukauen (auch wenn es mühsam ist) um zumindest grundlegend zu verstehen worum es beim programmieren geht und eben grundlegende Dinge wie Variablen, Schleifen, Rekursion, Verzweigungen usw. zu kennen oder zumindest schon einmal davon gehört zu haben.

Ob man das nun per Buch oder Videokurs macht bleibt jedem selbst überlassen.
Für mich persönlich hat es sich aber bewährt Onlinekurse (z.B. Youtube,Udemy usw.) auf dem Zweitmonitor, Tablet oder zusätzlichem Notebook zu schauen und das gezeigte 1zu1 in der eigenen Ide mit zu tippen und zu testen.
So geht dann doch das ein oder andere in "Fleisch und Blut" über und man schweift mit den Gedanken nicht ab.

Sobald die Grundlagen drinnen sind geht es an eigene Projekte.
Dabei sollte man es natürlich nicht übertreiben. Wer gerade erst Autofahren gelernt hat macht auch nicht gleich bei der Formel 1 mit. ;)
Erstmal einfache Dinge und dann langsam steigern, ansonsten ist man nur frustriert wenn nichts klappt.
Ist man selbst nicht so kreativ beim überlegen eigener kleiner Projekte lässt sich durch googeln einiges finden:
Meine ersten Suchergebnisse sehen schon ganz brauchbar aus:
https://pythonbuch.com/aufgabensammlung.html
https://wiki.freitagsrunde.org/Javakurs/Übungsaufgaben
https://www.programmieraufgaben.ch/aufgaben/topSolutions
oder z.B. codewars wenn man Probleme knacken will: https://www.codewars.com/
 
  • Gefällt mir
Reaktionen: Riou und bananen_admiral
Ich kann das Problem verstehen: Solange man auf der Kommandozeile ein paar Primzahlen ausgibt etc., hat man nicht das Gefühl, ein "richtiges" Programm zu haben, das man als User zumeist mit einer grafischen Oberfläche assoziiert.
Leider ist es aber so, dass man erstmal eine Menge grundlegender Konzepte verstanden haben muss, bevor man sich an so etwas Aufwändiges wie eine GUI machen kann.
Von daher ist es auch schwierig, sich ein Projekt zu suchen, das einen motiviert hält, aber trotzdem nicht überfordert. Hier helfen tatsächlich nur Geduld, Ausdauer und kleine Schritte. Es ist wie beim Musizieren: Wenn man Mozart spielen will, kommt man um langwierige und vielleicht ein wenig eintönige Fingerübungen nicht herum.

Gruß Jens
 
  • Gefällt mir
Reaktionen: Riou
uburoi schrieb:
Leider ist es aber so, dass man erstmal eine Menge grundlegender Konzepte verstanden haben muss, bevor man sich an so etwas Aufwändiges wie eine GUI machen kann.
Wurde mir früher auch gesagt.
Und ich versteh bis heut nicht warum.

GUI ist so einfach, solange man nicht den Anspruch hat ne C-API o.ä. zu nutzen.
 
  • Gefällt mir
Reaktionen: downforze, Hayda Ministral, BeBur und eine weitere Person
new Account() schrieb:
GUI ist so einfach, solange man nicht den Anspruch hat ne C-API o.ä. zu nutzen.
Und solange man nicht jede Code Zeile in der Tiefe verstehen will. Ich glaube für die Motivation ist es für viele viel cooler eine GUI per Point and Click zu bauen und bisschen Funktionalität dazu zu programmieren, z.b. TicTacToe oder vier Gewinnt oder so.


Infect007 schrieb:
Leider weiß ich nicht, wo man so kleine Problemchen irgendwie mit Hilfe diskutieren kann.
Na, hier natürlich!!
 
  • Gefällt mir
Reaktionen: Riou und Raijin
new Account() schrieb:
GUI ist so einfach, solange man nicht den Anspruch hat ne C-API o.ä. zu nutzen.
Das stimmt meiner Erfahrung als Amateur nach nur so weit, wie einem vorgegebene Basisfunktionenen ausreichen.
Abgesehen davon ist eine GUI aber gerade am Anfang m.E. nur eine Baustelle mehr, die vom Grundlegenden ablenkt, so hübsch sie auch sein mag. Das Entscheidende passiert ja hinter den Kulissen.

Gruß Jens
 
  • Gefällt mir
Reaktionen: bananen_admiral
Naja, die ersten Gehversuche beim Programmieren laufen ja in der Regel eh auf Consolen-Anwendungen ohne GUI, aber dafür mit einem kleinen Text-Menü hinaus.
 
ghecko schrieb:
1. Du musst es wollen
2. Denk dir ein Projekt aus, was du umsetzen willst
3. Fang an

Auf den Punkt gebracht.

Ich würde nur noch hinzu fügen:

4. Such Dir Gleichgesinnte.

Alleine arbeiten ist möglich. Aber in der (Lern-)Gruppe bist Du stärker. Die muss nicht groß sein, meine Lerngruppe besteht aus zwei Mann.
 
Hayda Ministral schrieb:
4. Such Dir Gleichgesinnte.
Das ist tatsächlich ein wichtiger Aspekt, der einem auf dem Weg Unterstützung und Motivation bieten kann.
Vielleicht gibt es in der Nähe einen Hacker Space, wo man hin könnte.
 
Vielleicht hast du auch jemanden im Bekanntenkreis, der sich auskennt. Mir persönlich hat es immer geholfen, wenn mir jemand etwas direkt erklären konnte, wenn ich nicht weiterkam.
Im Übrigen stimme ich dem Vorherigen zu: Ohne Foren geht gar nichts. ☺️

Gruß Jens
 
Freu mich über soviel Beteiligung, soviel Input hab ich gar nicht erwartet! :)

Da es oft kam, ein "Projekt" hab ich in dem Sinne.
Habe mitgekriegt, dass oft Ping Pong genommen wird, als 1. Spiel.
Da ich das nicht sonderlich interessant finde, dachte ich an 4-Gewinnt, dass sollte meine ich schaffbar sein!
Alternativ ein altes nicht mehr existentes Browsergame als App entwickeln...

ich werde mir Labview und Scratch anschauen.

Danke für den github Link mit Projekten @Joshinator auf den ersten Blick sind da ein paar Interessante dabei, an denen ich mich versuchen könnte.
Und auch Danke für die Links @Xes da klingen ein paar Aufgaben auch sehr interessant.

Zu Gleichgesinnten...
Da hätte ich eig eine gute Freundin, hat Informatik studiert...kann in dem Bereich also das grundlegende,hat nur absolut kein Interesse daran... Sodass ich sie da nicht soviel nerven kann.
Der Rest aus meinen Freunden/Bekanntenkreis hat damit leider nichts am Hut... Könnt nur unsere Entwickler auf Arbeit ansprechen...
 
Riou schrieb:
Da hätte ich eig eine gute Freundin, hat Informatik studiert...kann in dem Bereich also das grundlegende,hat nur absolut kein Interesse daran... Sodass ich sie da nicht soviel nerven kann.

Also meine Erfahrung, ganz ehrlich.
Ich kenne einige Studierte aus dem Bereich, sind alles Pappnasen bis auf einen sehr guten Kollegen von mir.
Bei den Leuten fehlen absolute Grundlagen, sowohl in der Theorie, als auch in der Praxis.
"Kein Interesse" kann sein, dass sie legitimerweise keine Lust hat, jemandem absolute Grundlagen beizubringen, kann aber auch heißen, dass sie keine Ahnung hat.

Meine Erfahrung ist hier Ausbildung > Studium.
 
Zurück
Oben