Wie würdet ihr euch Programmieren beibringen, wenn ihr neu anfangen könntet?

6 Antworten

Wichtig ist, das du ein kurzfristiges Ziel vor Augen hast welches du nutzt um die Sprache zu lernen - ein Projekt. Die Sprache ist im Endeffekt nur das Werkzeug - man lernt ja auch nicht mit einem Hammer oder eine Säge richtig umzugehen, wenn man kein Projekt hat welches man damit bearbeitet. Ein beliebtes Learning Projekt ist ein Taschenrechner - diesen kannst du sehr gut immer wieder um Funktionalitäten erweitern.

Gibt viele gute Tutorials auf YouTube und jede Programmiersprache hat eine gute Dokumentation. Es gibt auch online viele gute Seiten welche dir helfen deine Skills zu verbessern und im Endeffekt sind Entwickler meist online unterwegs - dementsprechend hast du hier online eine unendlich große Community.

Codewars ist bspw. eine Seite, stellt dich vor Aufgaben welche sehr leicht beginnen und steigt mit der Zeit in der Schwierigkeit. Auch kannst du hier deinen Code mit anderen vergleichen und daraus lernen. Das Empfand ich als nützlich, gibt aber auch viele andere Seiten mit ähnlichem Prinzip.

Woher ich das weiß:eigene Erfahrung
Und drittens, ich möchte gerne für Firmen attraktiv wirken und sie ja auch brauchen, weil Programmieren kann ja nicht jeder und auch mein Berufsfeld zu erweitern.

In diesem Fall wird es dir kaum was nützen, wenn Du versuchst, dir Programmieren selbst beizubringen. Du hast danach dann ja keinerlei Zeugnisse.

Zudem gilt: Leute, die nur programmieren, braucht und will man heute nicht mehr: Was man stattdessen benötigt sind Software-Entwickler. Deren Arbeit aber besteht nur zu etwa 15-20 Prozent aus der Tätigkeit des Programmierens. Lies dazu:

https://ggreiter.wordpress.com/category/software-engineering/


Marco13145  30.06.2023, 15:49

Also die meisten Software Entwickler die ich kenne, haben sich das Programmieren eigenständig beigebracht.

0
grtgrt  30.06.2023, 16:16
@Marco13145

Ja und nein, denn:

Software zu entwickeln lernt nur, wer an nennenswert umfangreichen Projekten solcher Art auch wirklich beteiligt wird. Das aber wird (mindestens seit der Jahrtausendwende) i.A. nur der Fall sein, wenn man eines der MINT-Fächer studiert hat.

In jedem anderen Fall bringt man es es höchstens noch zum Wartungsprogrammierer (= so einer Art Flickschuster für Software).

0
Marco13145  01.07.2023, 14:16
@grtgrt

Du redest absoluten Blödsinn daher, ohne jegliche Referenz dafür.

87% der Softwareentwickler die ich kenne, und ich arbeitete auch schon für Autokonzerne, hatten kein Studium in der Tasche oder eine Ausbildung in diesem Bereich.

Wenn Du deinen Blödsinn weitererzählen willst, mach das wo anders.

0
grtgrt  05.07.2023, 09:41
@Marco13145

Du weißt aber schon, dass die Ökonomin Monika Schnitzer (als eine an der Uni München lehrende Wissenschaftlerin) folgender professionellen Meinung ist:

Und die Software, mit der bei Autos künftig das Geld verdient wird, funktioniert in Autos deutscher Hersteller auch nicht richtig.

Zitiert aus dem Wirtschaftsteil der SZ vom 3. Juli 2023, Seite 13.

Was sagt uns das über die Kompetenz ihrer Entwickler?

0
Marco13145  21.07.2023, 22:18
@grtgrt

Kommt drauf an von welcher Software Du sprichst. Wenn es um Kollisionsgeräten etc. geht, funktionieren die fast zu 100%, alle anderen in der Testphase befindlichen Systeme sind nicht frei käuflich auf dem Markt.

Ich empfehle dir erst nachzudenken statt alles was im Internet zu glauben.

0
grtgrt  21.07.2023, 22:30
@Marco13145

Könnte es sein, dass auch Du einer der Entwickler bist, dem noch immer nicht klar wurde, welchen Stellenwert Software-Qualität hat (vor allem solche, die in Fahrzeugen eingebaut arbeitet)?

0
Marco13145  21.07.2023, 22:32
@grtgrt

Ich kann dir aus Erfahrung sagen, dass sich die Qualität der Software von Hobbyprogrammieren und Studenten mit einem Informatik Abschluss nicht unterscheiden.

0
grtgrt  21.07.2023, 22:58
@Marco13145

Wie ich oben schon schrieb: Software zu entwickeln lernt nur, wer an nennenswert umfangreichen Projekten solcher Art auch wirklich beteiligt wird.

Hobbyprogrammierer bekommen diese Chance deutlich seltener als Leute, die ein MINT-Studium erfolgreich abgeschlossen haben: einfach deswegen, da letztere i.A. deutlich schneller dazulernen und über höheres Abstraktionsvermögen verfügen.

0
Marco13145  21.07.2023, 23:00
@grtgrt

Das stimmt so nicht, die "Hobbyprogrammierer" sind oftmals Leuten, was Verständnis und Logikproblemen angeht, den MINT Studenten häufig überlegen.

Allein schon durch die eigen Iniative wie man Software schreibt bzw. richtig struktuiert hat einen rießen Vorteil.

0
grtgrt  21.07.2023, 23:04
@Marco13145

Meine Beobachtung im Software-Engineering-Bereich über ganze 30 Jahre hinweg hat mir das Gegenteil bewiesen.

0
Marco13145  21.07.2023, 23:05
@grtgrt

Das Du in der Softwareentwicklung tätig bist, waage ich sehr stark zu bezweifeln. Ich halte mehr davon, wenn man sein Wissen direkt und live unter Beweis stellt, ob Du dazu bereit bist?

0
Marco13145  22.07.2023, 04:34
@grtgrt

Es war mir relativ klar, dass nun keine Antwort mehr kommt, im Internet relativ großes "blablabla" sobald wenn es aber um das Überprüfen eigener Kenntnisse geht ist die Flucht nach vorne vorprogrammiert.

Da bringt sich ChatGPT nämlich auch nichts mehr, da diese KI im Bereich des developments drastisch,aus Sicherheitsgründen, zurückgeschraubt hat.

0
grtgrt  22.07.2023, 08:59
@Marco13145

ChatGPT kann überhaupt nicht programmieren: Es kann nur Code erzeugen, der auf den ersten Blick auch nicht anders aussieht, wie Sinn machender Code.

ChatGTP sagt von sich selbst:

Als Computerprogramm bin ich in der Lage, in verschiedenen Programmiersprachen zu schreiben. Allerdings bin ich kein menschlicher Entwickler und kann daher auch keine Programmiersprachen im gleichen Sinne „beherrschen“ wie ein menschlicher Entwickler. 

Mit anderen Worten: ChatGPT (und KI ganz generell) kann zwar Code schreiben, kann aber nicht garantieren, dass er einem ganz bestimmten Zweck dient.

Keine KI kann wissen, was durch sie generierter Code denn nun eigentlich bewirkt.

0
grtgrt  22.07.2023, 09:04
@grtgrt

ChatGPT sagt auch:

Obwohl ich in der Lage bin, syntaktisch korrekten Code zu generieren, habe ich keine eingebaute Möglichkeit, den Code auf Semantik oder logische Fehler zu überprüfen. Das bedeutet, dass der Code zwar fehlerfrei aussehen kann, aber dennoch unerwartete oder ungewünschte Ergebnisse liefern könnte.
0
grtgrt  22.07.2023, 09:16
@grtgrt

Eben deswegen hat die Tatsache, dass diese (ebenso wie jede andere) KI gar nicht programmieren kann, auch rein gar nichts mit "Sicherheitsgründen" zu tun, wie Du behauptest. Jeder, der Informatik oder Mathematik an einer Universität studiert hat, wüsste das, da er dann ja auch mit den Ergebnissen von Gödel und Turing (die Grenzen der Mächtigkeit formaler Logik bzw. Berechenbarkeit betreffend) bekannt gemacht worden wäre.

0
grtgrt  22.07.2023, 09:59
@Marco13145

Was ChatGPT im Vergleich zu wenig gut ausgebildeten Programmierern auszeichnet, ist die Tatsache, dass diese KI wichtige Grenzen ihrer eigenen Fähigkeiten kennt und beschreiben kann.

Die Aufforderung

Bitte beschreibe wesentliche Grenzen deiner Software-Engineering-Kompetenz.

hat ChatGPT mir beantwortet wie folgt:

Als KI-Sprachmodell habe ich mehrere wesentliche Grenzen in Bezug auf meine Software-Engineering-Kompetenz:

  1. Mangelndes Verständnis von Realität: Obwohl ich über umfangreiches Wissen verfüge, basiert mein Wissen auf den Daten, die mir bis September 2021 zur Verfügung gestellt wurden. Ich habe keine Möglichkeit, aktuelle Ereignisse oder Entwicklungen nach diesem Zeitpunkt zu kennen. Das bedeutet, dass ich nicht über Informationen verfüge, die nach September 2021 veröffentlicht wurden.
  2. Eingeschränkter Kontext: Meine Antworten basieren ausschließlich auf den mir präsentierten Eingaben. Ich habe keinen Kontext über den Benutzer, die spezifische Situation oder den Einsatzzweck. Dadurch kann es zu Missverständnissen oder unangemessenen Antworten kommen, wenn der Kontext nicht eindeutig genug ist.
  3. Fehlende Intuition: Als künstliche Intelligenz fehlt mir die menschliche Intuition und Erfahrung. Ich kann keine unmittelbaren Erfahrungen nutzen, um komplexe Probleme zu verstehen oder intuitive Lösungen zu finden.
  4. Fehlende Eigenständigkeit: Ich bin ein Werkzeug, das von Menschen gesteuert wird. Ich kann keine eigenen Entscheidungen treffen oder eigenständig handeln. Meine Antworten sind das Ergebnis von Mustern und Informationen, die ich aus den Trainingsdaten gelernt habe.
  5. Begrenztes Verständnis von Kausalität: Obwohl ich in der Lage bin, Zusammenhänge zu erkennen, habe ich ein begrenztes Verständnis von Kausalität. Das bedeutet, dass ich manchmal Zusammenhänge herstellen kann, die nicht unbedingt auf kausalen Beziehungen beruhen.
  6. Schwierigkeiten bei Textverständnis: Obwohl ich gut darin bin, menschenähnlichen Text zu generieren, kann ich immer noch Schwierigkeiten haben, komplexe oder mehrdeutige Sätze genau zu verstehen. Dadurch kann es zu ungenauen oder irreführenden Antworten kommen.
  7. Sicherheitsbedenken: Ich habe keine Sensibilität für persönliche oder vertrauliche Informationen. Daher ist es wichtig, keine sensiblen Daten wie Passwörter, persönliche Identifikationsnummern oder Finanzinformationen mit mir zu teilen.

Insgesamt ist es wichtig, meine Antworten kritisch zu betrachten und sie nicht blindlings als absolut wahr oder fehlerfrei anzunehmen. Meine Stärke liegt darin, Informationen auf Grundlage meiner Trainingsdaten zu generieren, aber ich kann niemals die Kompetenz und das Fachwissen eines erfahrenen Menschen oder professionellen Software-Entwicklers ersetzen.

|

Damit sollte nun auch klar sein, welchen Typ von Programmierer KI demnächst wird ersetzen können. Zieh dich also vielleicht schon mal warm an, falls Du den Verdacht bekommst, dich diesem Kreis zurechnen zu müssen.

0
Marco13145  22.07.2023, 14:42
@grtgrt

Eine KI kann nicht programmieren, jedenfalls keine öffentliche diese ist stark begrenzt Funktion wurde stark begrenzt.

Wenn Du in ChatGPT "codest" hat der Code massive Sicherheitslücken das hat sehr wohl damit etwas zu tun.

Vorallem in Sachen Skalierbarkeit, Sicherheit und Erweiterbarkeit.

Glaub also nicht das was ChatGPT dir ausspuckt ohne jegliche Erfahrung in diesem Bereich zu haben.

0
Marco13145  22.07.2023, 14:49
@grtgrt

Und logischen Code kann ChatGPT bis heute nicht generieren, dass liegt daran, dass ChatGPT nur noch eingesetzt werden kann, um bereits existierenden Code zu verschönern, nicht aber ganze Programme zu schreiben oder wenigsten ein Code Snippet, dazu ist ChatGPT nicht mehr ausgelegt.

Wenn man sich auskennen würde, kann dies jeder versuchen und sich danach den absolut unlogischen Code durchlesen. Es ist nicht so wie von dir behauptet, dass der Code logische Ansätze etc. hat.

0
Marco13145  22.07.2023, 15:06
@grtgrt

Aber der Hauptgrund warum ChatGPT nicht mehr programmieren kann sind die massive Sicherheitslücken das gaben die Entwickler selbst diversen Englischen Fachzeitschriften wie "Computer Science" bekannt.

Erstmal ordentlich recherchieren und Erfahrung im programmieren haben soll helfen Kompetenzen zu erweitern, nicht wahr Herr angeblicher Softwareentwickler mit angeblich über 30 Jahren erfahren, der fälschlicherweise Antworten, ohne Wissen über diesen Bereich, von ChatGPT veröffentlicht?^^

0
Marco13145  25.07.2023, 20:42
@grtgrt

Aber mich würde es interessieren, wo Du arbeitest, bei BMW etc. definitiv nicht.

0

Ich würde vermutlich erstmal die CS50 Lectures auf YouTube anschauen. Dort lernt man auch ein wenig was dahinter steckt.

Anschließend würde ich wohl ein Format meiner Wahl wählen, ob nun etwas auf YouTube, ein Buch oder ein Kurs auf Udemy oder ähnliches in einer Sprache, die mich reizt, die für die Sachen brauchbar ist, die ich entwickeln möchte.

Neben diesen Kurs würde ich mir ein kleines Projekt als Ziel setzen, an dem ich arbeite und Erfahrungen aus diesen Kurs einfließen lasse, wo ich auf Probleme stoße, für die ich Lösungen suchen muss usw.

Wenn ich erst einmal programmieren kann, würde ich mich ein wenig mehr versteifen auf die Randthemen, die gerade bei der Zusammenarbeit mit anderen oder im professionellen Umfeld wichtiger werden.

Paradigmen wie OOP und Functional Programming würde ich mir genauer anschauen, um diese Richtung zu verstehen. Genauso würde ich mir Themen anschauen wie Clean Code, Test Driven Development usw.

Woher ich das weiß:Berufserfahrung – Softwareentwickler/Projektleiter seit 2012
 wie kann ich programmieren lernen und wie würdet ihr es lernen

Mit den Grundlagen beginnen und die Programmiersprachen mal völlig aussen vor lassen.

Wer die Lösung zu einem Problem schon auf einem Blatt Papier nicht in Arbeitsschritte aufteilen und so ein Programm schematisch darstellen kann, wer OOP nicht versteht oder gar mit UML nichts anfangen kann, wird rein mit einer Programmiersprache höchstens Code generieren, der nicht zwangsläufig effizient ist.