Wie würdet ihr euch Programmieren beibringen, wenn ihr neu anfangen könntet?
Hi, ich stelle diese Frage, da ich gerne C# (C Sharp) lernen möchte.
Weil ich erstens, es in der Schule lerne seit meinen Zweiten Jahr dort (bin schon im 4ten Jahr dort und habe die Matura (=ist wie Abi) erst in der 5ten) und ich Schwierigkeiten habe es zu lernen, weil die Schule und die Professoren es mir kaum gescheit beibringen leider, sonst hätte ich diese Frage nie geschrieben.
Zweitens, ich mag Informatik und Computer sehr und würde sehr gerne eine Programmiersprache lernen, das ich auch mal was selber programmieren will und eigene Projekte machen will.
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.
Was ich sagen kann ist, dass Mathe und meine Englischkenntnisse nicht meine Probleme/Gründe sind, warum ich nicht so gut programmieren kann.
Also wie kann ich programmieren lernen und wie würdet ihr es lernen, wenn ihr es euch nochmal beibringen müsstest?
Bin m18
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.
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/
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).
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.
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?
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.
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)?
Ich kann dir aus Erfahrung sagen, dass sich die Qualität der Software von Hobbyprogrammieren und Studenten mit einem Informatik Abschluss nicht unterscheiden.
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.
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.
Meine Beobachtung im Software-Engineering-Bereich über ganze 30 Jahre hinweg hat mir das Gegenteil bewiesen.
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?
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.
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.
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.
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.
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:
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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.
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.
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?^^
Aber mich würde es interessieren, wo Du arbeitest, bei BMW etc. definitiv nicht.
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.
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.
- Zusammengefasst — /M /Bestes Buch zum Einstieg
- An alle, die lernen wollen zu programmieren — z.B. Java oder C#
- Wie man vorgehen sollte, um programmieren zu lernen.
- Wie lange dauert es, bis man perfekt programmieren kann?
- Welche Programmiersprache Deine erste sein sollte.
- Welches Online-Handbuch nutzen? + zu .NET Mitte 2022: Palladin007
- Learn C# ausgehend von HIER — /m
- Konsultiere ein gutes Lehrbuch zur Programmiersprache deiner Wahl.
- C# und dieses Buch — der derzeit einfachste Weg, programmieren zu lernen. /Buch /M /MM
- Ein noch umfangreicheres Buch zu C# (1400 Seiten) — und Paladins Kommentare
- Microsoft's Lernmaterial zu C#
Also die meisten Software Entwickler die ich kenne, haben sich das Programmieren eigenständig beigebracht.