Ask HN: Wo kann man die Grundlagen der Softwareentwicklung lernen?

Ask HN: Where to learn software engineering fundamentals?

Ask HN: Wo kann man die Grundlagen der Softwareentwicklung lernen?

Ich habe nie Informatik studiert, aber ich habe die meiste Zeit meines Lebens einfachen Code geschrieben (jetzt beschleunigt durch KI). Ich frage mich, wo der beste Ort ist, um die Grundlagen der Softwareentwicklung zu lernen.

Es ist schwierig, genaue Empfehlungen zu geben, aber erkunden Sie die Materialien aus der MOOC-Ära, etwa 2012-2017, als hochwertige Online-Bildung kostenlos zur Verfügung gestellt wurde. Zum Beispiel: MIT OCW 6.0001 und 6.0002, die Einführungen in das Denken in Algorithmen und numerische Analyse in Python sind. Oder die Kurse der University of British Columbia über funktionale Programmierung, bei denen Sie ein Space-Invaders-Spiel in Racket bauen. Und Computation Structures, wo Sie eine CPU aus grundlegenden Gattern bauen und viele Informatikthemen kennenlernen.
Eine Sache, die ich zu den hervorragenden Vorschlägen oben hinzufügen möchte, ist, dass es überraschend nützlich sein kann, eine Ebene unter das zu gehen, was normalerweise als 'Grundlagen der Softwareentwicklung' betrachtet wird. Ich unterrichte Mathematikstudenten, und im Laufe der Jahre bin ich immer mehr davon überzeugt, dass das Verständnis der Maschine darunter das Verständnis vieler höherer Konzepte später erleichtert: Speicher und Adressen, eine einfache CPU, Assembler, Aufrufkonventionen und schließlich, wie ein Compiler eine Programmiersprache in etwas übersetzt, das die Maschine ausführen kann. Es gibt ein pädagogisches Prinzip, das ich mag: Lerne die Lösung nicht, bevor du das Problem kennst. Zum Beispiel werden Zeiger viel weniger mysteriös, sobald Speicher und Adressen konkret sind.
Für CS, im Sinne von 'Grundlagen, die hinter dem liegen, womit sich ein typischer Programmierer täglich beschäftigt', gibt es eine gute Ressource: https://teachyourselfcs.com/.
https://aosabook.org/en/
Fragen Sie einfach GPT oder Claude nach guten Kursen und Lernpfaden auf GitHub. Beginnen Sie damit, Demos zu bauen – lernen Sie durch Handeln.