Ich würde noch die 10 Tipps mitgeben (ohne konkrete Reihenfolge): 1: Lerne 10-Fingertippen (vertrau mir, ist das beste, was ich je gelernt hab) 2: Hab eine echte Motivation, bleib an einem Projekt dran (selbst wenn's gerade schwer ist) 3: Benutz Stackoverflow, aber kopiere den Code nur, wenn du ihn verstehst (am besten du kopierst ihn nicht, sondern schreibst ihn ohne abgucken nach) 4: Lerne zuerst ein paar theroretische Basics, bevor du mit dem Coden anfängst (sonst wirst du nicht verstehen, was der Code macht oder wie man an Probleme rangehen kann), oder fang mit einem no-code Projekt an. Zum Beispiel Lego-Roboter (Mindstorms) programmieren oder so) 5: Hab keine Angst, dass andere viel weiter sind. Es wird immer Leute geben, die irgendwo besser sind, als du. Aber vor allem in der Informatik ist die Learning-Curve sehr steil, flacht dann aber irgendwann ein bisschen ab, wie ich finde. Du holst schon die Leute ein, mit denen du dich vergleichst, aber vergleich dich am besten gar nicht 6: Wenn es keinen neuen Konzepte sind, dann schau weniger Videos, sondern mach es selbst. Learning by Doing ist das beste überhaupt 7: Lerne Leute kennen, die du immer alles fragen kannst 8: Videos>Bücher, aber Clean Code solltest du lesen, wenn du weiter fortgeschritten bist 9: Sammle praktische Erfahrung (geht einfacher, als man denkt, hab nach dem 1. Semester mein erstes Praktikum bekommen und konnte vorher nicht programmieren) 10: Nimm Kritik von jedem dankend an. Man wird selten korrigiert und wenn man es wird, egal ob die Person an sich dümmer oder schlauer ist, ist es eine super Chance sich zu verbessern Bonustipp: (Tipp 0) Probier neue Features aus, zB adere IDE's, aber v.a. Shortcuts. Dadurch wirst du viel schneller und produktiver werden. Wenn du noch Pluspunkte in der B-Note haben willst hab ich die 5 Tipps: 1: Darkmode only 2: Benutz Linux 3: Mechanische Tastatur oder Laptop 4: Lange Haare und Bart 5: Anderer Tagesrhythmus -> kein Sonnenlicht -> keine Screen Reflection -> maximale Effizienz
10. das Wichtigste. Ohne konstruktive Kritik kann man nicht gut werden. Zumindest meine Meinung. 1. Kann ich nicht unterschreiben. Die menge an Buchstaben die man heutzutage tippt (IDE mit Autovervollständigung) hält sich echt in Grenzen. Es geht deutlich mehr Zeit für den Gedankengang als fürs eigentliche tippen drauf. Da dann noch viele Sonderzeichen und IDE-spezifische Tastenkombinationen dazu kommen macht einen echtes 10 Fingertippen nicht wirklich schneller. Und ja ich habe das früher auch trainiert. So ne komische Software mit nem buchstabenfressenden Chamäleon.
Also ich würde ergänzen: 1. Bei der Wahl von Tools,Libraries etc. immer vorher schauen, ob diese gut dokumentiert sind. Das hilft beim lernen, sorgt für weniger Ablenkungen und führt zu den größten Erfolgserlebnissen. 2. Daran anlehnend: Lerne Dokumentationen zu lesen und zu verstehen. Besonders in Hinblick auf Methoden, Objekte und Schnittstellen. Das hilft dir später im Berufsleben, wenn du in Brownfield-Projekten und/oder mit Legacy Systemen arbeiten musst. 3. Gib dir bei Problemen immer die Zeit, selbst eine Lösung zu finden. Dadurch lernst du langlebiger. 4. Teste deinen Code. So reflektierst du nicht nur über deinen geschriebenen Code, sondern hinterfragst dich automatisch auch konzeptionell.
> immer vorher schauen, ob diese gut dokumentiert sind. Ich habe mit MCP und Java damals angefangen, Docs sind was für Loser, für Pros gibt's den Decompiler und Source Code. Aber den daraus entstandenen Code würde ich jetzt nicht mit Lorbeeren beschmücken. Damn war das ne komische Zeit damals. (no joke, aber sich auf docs nicht zu verlassen hat mir nen Skill gegeben: Man lernt sich selber die Informationen im Notfall zu beschaffen.) > Lerne Dokumentationen zu lesen und zu verstehen Ich bin in einer Spigot-Plugin-Dev Community unterwegs, die meisten "Probleme" würden sich in Luft auflösen, wenn man nach englischen Suchbegriffen in den Javadocs sucht. > Teste deinen Code. Das erfordert erstmal einen Code, der sich testen lässt: Wer zu viel static benutzt erschafft Code, der sich schlecht einzeln testen lässt. Stichwort "pure functions". Leider mache ich das nicht immer und schreibe erstmal 1000 Zeilen code ohne zu testen, weil es von anderen Elementen abhängt, um dann später einen lästigen Bug zu finden und beheben zu müssen.
@The Morpheus Tutorials Danke für das wie immer tolle Video. @AgentSlippery stimme deinen Ergänzungen voll zu und finde besonders Punkt 3 sehr wichtig. Denn ja, im Notfall kann man v. a. heutzutage schnell im Netz Lösung(side)en finden, aber nur, wenn man's erstmal selbst versucht, erlernt man überhaupt "die richtige Programmier-Denke" :)
Wichtig wäre vielleicht eine Kategorisierung: It-Security -> fang mit Python an. Technischer Informatiker(Maschinennahe Programmierer) -> Fang mit C/C++ an. Angewandter Informatiker(App-Entwickler, etc.) -> Fang mit Java an. Als Beispiel warum ich eine Kategorisierung für wertvoll erachte: Als App-Entwickler hat man meist mit Programmiersprachen zu tun, welche Semikolon verwenden und Python zu Beginn würde mich total frustrieren, wenn ich z.B. mit Dart an einer Flutter App arbeite. Oder mit React/Angular an einer Web-App.
@@Amejonah haha ja hatte Java und Kotlin reingenommen um Android Entwicklung mit einfließen zu lassen 😂 aber stimmt schon was du sagst. Nur mein Punkt ist denke ich verständlich warum man das mit Python nicht generalisieren kann.
@@rebarius Python hat auch semikolons, sind nur optional xd Einer meiner Kommilitonen hat mal überall Semikolons gepackt weil er nicht wusste dass die optional sind.
1. nutzt english. fast alle hilfe, docs und foren sind auf english. formuliert suchanfragen auf english 2. programmiert was ihr selbst nutzen wollt, selbst wenn ihr was verkaufen wollt 3. ja, erstmal bei einer sprache bleiben, das stimmt, trotzdem hat es enorm meinen horizont erweitert, als ich dann andere programiersprachen ausprobiert habe, zumindest sollte man einmal eine dynamisch und einmal eine statisch typisierte sprache probiert haben. persönlich ist meine programmiersprache typescript, weil ich damit für alle OS programmieren kann, und zwischen frontend und backend code UND typen sharen kann
Danke, dass du das Thema so ehrlich beschreibst! Es gibt so viele auf TH-cam, die scheinbar gottesgleich Assembler Code in eine C Funktion schreiben und alles war „yeah so easy this is better than the compiler had done it“. In Wirklichkeit lagen auch Wochen davor, die sich damit für das Video beschäftigt wurde.
Ich habe damals mit 14 mit Visual Basic angefangen und bin seit dieses Jahr erst komplett auf Python gewechselt, die Sprache ist tausend mal einfacher und man hat so viele Bibiotheken und ist echt einfacher zu lernen, man kann sogut wie alles in Python programmieren. Egal ob Console Anwendung, GUI Anwendung oder Android Anwendung usw. Sowie kann man einfach sein Python Projekt komprieren als .exe ohne das der Nutzer extra Python / Bibiotheken installieren muss um deine Anwendung verwenden zu können. Das geht Kinder einfach mit auto-py-to-exe. Wegen dem Thema Dokumentierung ich bin ein Freund mir neben meinen Code per Commentar die Funktion was ich da mache, zu erklären somit lerne ich und verstehe meinen Code den ich geschrieben haben besser und schneller.
Programmieren - Cool bleiben, durchatmen, Aufgaben ruhen und reifen lassen - "Die Freiheit zu machen!" Wenn es läuft und keine Fehler hat > OK, es muss nicht immer alles perfekt sein. - Nicht Sprachen oder Frameworks zu oft wechseln > Master of None - Ausgleich finden, Pausen, Nichts tun! - Beim "Nichts tun" kannst Du Dich erholen und bekommst neue Ideen - Papier & Bleistift oder einfache Werkzeuge nutzen. Nutze Mittel die dich unterstützen und nicht ablenken/hindern - You can think it - you can make it ;) - Schreibe Deine Ideen und Vorstellungen auf! Erst denken, dann Coden! - Es ist noch kein Meister von Himmel gefallen. Einfach anfangen, sich mit anderen austauschen und lernen. Tipps für Lernprojekte: Alte manuelle Kaffeemühle standalone, standalone mit API (Rest), Server zu Server, Microservices (optional als Docker Container) Warum? Hat ein Objektmodell, Zustände, Mechaniken, Input/Output. Simples Modell, aber im Detail sehr interessant. Ich finde das Video super und hoffe, dass viele Einsteiger Spass an der Software Entwicklung haben. Später mal mit AWS Cloud, sehr großen Datenmengen und Datenbanken zu arbeiten macht Spass! Und wenn der eigene Code was Gutes leistet, Probleme löst etc. ist es ein Gewinn für viele/Alle ;-)
Ich hab zum Glück einen guten Informatik Lehrer, der uns immer kleine Projekte gibt und sagt, welche Befehle wir brauchen, dann aber uns selbst rausfinden lässt wie wir das anstellen. Ich unterhalte mich auch regelmäßig mit jemandem aus dem anderem Kurs beim gleichen Lehrer und wir sind schon soo oft auf neue/bessere Ideen gemeinsam gekommen. Aber deine Tipps sind alle ziemlich gut und wichtig . Starkes video
Sehr gutes Video. Du hast sehr viele wichtige Tipps gegeben. Für Fortgeschrittene, die mit dem Entwickeln schon Geld verdienen, würde ich noch Folgendes hinzufügen: 1. Wirtschaftlich arbeiten: Unsere User brauchen oft nicht die allerbeste Lösung. Und unsere Lösung wird oft von wenigen hundert Usern genutzt. Die IT-Kosten müssen verdient werden. Es ist nicht so wie bei Microsoft, wo eine Software millionenfach genutzt und bezahlt wird. 2. Immer den größtmöglichen Benefit anstreben. Vielleicht kann eine Entwicklung sogar Benefits hebeln/vervielfachen. Deshalb sollte man sich auf die Sachen konzentrieren, die den größten Benefit bringen. 3. Die User, Prozesse, das Unternehmen und die Ziele hinter den Zielen verstehen. Je besser wir Kunden für eine optimale Lösung beraten können, umso mehr werden wir selbst erfolgreich. Wir müssen wie ein innovatives Unternehmen denken. All das macht uns selbst wertvoller auf dem IT-Markt. Auch wenn es Entwicklern oft weh tut, aber Programmierung sollte nicht zum Selbstzweck werden, weil es an sich Spaß macht. Damit muss ein Nutzen erreicht und Geld verdient werden. Und zwar beim Kunden. ABER: Wir sollten natürlich unter allen Umständen immer die bestmögliche Lösung erarbeiten - aus technischer Sicht bzgl. Wiederverwendbarkeit, Wartung, Performance usw.
Lesbarkeit ist meistens um einiges wichtiger als Performance. Vergesst also die Performance (vor allem als Anfänger), und probiert stattdessen, den Code so selbsterklärend wie nur möglich zu machen.
Sehr wichtig ist auch dass man bereits als Programmieranfänger mit der Dokumentation arbeitet. Im Studium ist es mir so oft aufgefallen, dass Leute Fragen zu bestimmten Klassen bzw. Methoden stellen, die sie sich auch innerhalb von ein paar Sekunden mit der Java Dokumentation beantworten hätten können. Auch oft kamen Fragen wie sie denn dieses Problem lösen können usw. und meistens hat die Java Dokumentation (oder jede andere Dokumentation) eine passende Methode.
Ja das kenn ich. Bei mir schwankt es immer zwischen eigenes OS und einer Variable einen Wert zuweisen - jetzt überspitzt gesagt. Es ist sehr schwer als Anfänger die Projekte von ihren Anforderungen einzuschätzen. Man weiß einfach nicht was Anfängergerecht ist usw. mfg
Ein Freund hat mir mal empfohlen, einen Aufzug zu programmieren. Das fängt easy an und man kann es super simpel machen (auf Knopfdrücke reagieren) oder auch immer komplexer (Ein Fahrstuhl im Hochhaus, der priorisieren kann, Laufwege automatisch optimiert durch Einberechnen der verschiedenen Geschwindigkeiten beim anfahren, durchfahren und anhalten, Wohin wollen die meisten und wie viele sind an Bord, …..)
Noch ein Tipp: Deine Tutorial oder (bzw. besonders) solche Videos wie dieses hier gerne auch öfter mal guggen. Gerade wenn man mal nen Durchhänger hat, motiviert sowas ungemein und ich verspreche: Es bleibt immer immer immer etwas hängen oder es ist irgendwo ein kleiner Halbsatz, der sich als Schlüssel entpuppt, das eigene Chaos zu sortieren und für Durchblick zu sorgen. Ich finde deine Videos klasse und kann dich nur weiterempfehlen. Mein persönlicher Favorit: Dokumentieren! Sowohl das Projekt als solches (was mach ich eigentlich?) als auch im Code kommentieren.
Schaue jeden Abend ein Video und schreibe den Code auch nach wenn ich ihn interessant finde. Ein eigenes Projekt habe ich noch nicht gemacht. Vielen Dank für deine tollen Videos.
Meine Tipps fürs Programmieren (lernen): - Fangt mit HTML, CSS und JavaScript an. Warum? Ganz einfach dort könnt ihr von Anfang an grafische Bedienoberflächen erstellen und seit Plattformunabhängig. - Sucht euch Projekte heraus die ihr während des Lernprozesses erstellt. Wenn ihr nicht selbst Projekte erstellt, dann werdet ihr nie mals euer Gelerntes festigen. - Seit euch darüber im Klaren, dass das Coden im ganzen Programmierprozess einen eher kleineren Teil einnimmt. - Codet nicht will drauf los, sondern macht euch vorher mal eine Skizze wenn ihr vorhabt einen komplexeren Code-Snippet zu programmieren. - Bleibt dran, programmiert nicht voller Elan eine Woche lang und dann wieder eine Woche lang gar nicht. Auch wenn ihr mal keine Lust habt, versucht trotzdem mind eine Stunde am Tag zu programmieren. Selbst 10 Minuten sind besser als gar nichts. - Wenn euch mal eine Sprache, die ihr gerade lernt so gar nicht zu sagt, dann könnt ihr gerne wechseln, probiert euch aber nicht durch die ganze Palette an Sprachen, denn wenn ihr alles nur ein bisschen könnt, dann könnt ihr gar nichts. Wechselt also höchstens ein bis maximal zwei mal. - Nach euren ersten paar Projekten solltet ihr euch mit Frameworks vertraut machen. - Unterschätzt den Lernprozess nicht. Es kann theoretisch zwar jeder programmieren lernen, jedoch könnt ihr mit mindestens einem halben Jahr rechnen das es dauert bis ihr sagen könnt eine Sprache wirklich zu beherrschen. Ja, die Syntax habt ihr schnell drauf, die ganzen Libraries aber nicht. Macht euch mit APIs, JSONs, SQL und Regular Expressions vertraut.
ich mach noch 2 größere Projekte mit autoit fertig und dann fang ich bei den Python Videos an deshalb finde ich es gut das ein deutscher TH-camr so etwas mit seinem wissen in die Welt weiter trägt :) top
Ich will auch schnell Tips geben. Nach 10 Jahren IT einigen Firmen und einem breiten Wissen das aufgebaut wurde bringt das vielleicht mehr. Als Programmiersprache zum starten empfehle ich C#. Das liegt nicht nur dran das ihr zügig eine Grafische Oberfläche gestalten könnt und so mehr Spaß habt und dran bleibt. Nein, auch ist sie annähernd gleich mit anderen C basierenden Sprachen und auch nah an Java. Dann könnt ihr jedes Projekt in C# erstellen. Webseiten, wepservices, Desktopaplikationen, handyapplikationen, Computerspiele (unity 3d), Linux Windows Mac Programme (für Linux Oberflächen avalonia) usw. usw.. Und mit dem. Net framework auch core erhaltet ihr alles an Funktionalität was euer Herz begehrt. Ein weiterervorteil ist das man eine Menge Datenbanken leicht integrieren kann, testing leicht fällt und das man ohne SQL Kenntnisse mit Entity Framework auch core arbeiten kann. Ihr müsst für eine Datenbank App also kein zweite "Programmiersprache" lernen und erhöht eure Sicherheit. Kostenlose IDE! Dann kauft euch Bücher oder ladet eBooks. Das wird später den Unterschied machen ob ihr viel Zeit oder wenig braucht um euer Projekt umzusetzen aber auch zu aktualisieren, zu pflegen und zu erweitern. Ihr braucht ein Buch zu C#. Dann empfehle ich bas Buch Softwareentwicklung von head first. Das Buch objektorientierten Analyse und Design ebenfalls von head first. Diese beiden zeigen Java im Code aber vieles ist im Netz auch in c# veröffentlicht und die Sprachen ähneln sich so sehr das problemlos verstanden wird und nachprogrammiert werden kann. Dann desig patterns von head first aber es gibt auch ein Buch für c# ZUM THEMA. Ich würde wohl direkt die sprachelemete in Konsolen Programmen lernen. Dann direkt designpattern in die codebeispiele einfließen lassen. Und dann würde ich zur Vertiefung objektorientierte Analyse und Design lesen. Ausser ihr habt ein konkretes Projekt das ihr umsetzen wollt dann lest head first Softwareentwicklung zuerst. Ein weiteres wichtiges Buch, gerade wenn ihr nicht so viele Bücher lesen wollt, ist Clean Code. Neben schönen Code zu schreiben der leicht verstanden und leicht erweiterbar ist zeigt dieses Buch auch vieles aus den anderen Büchern. Zb objektorientierte Prinzipien. Bei Bücher lade ich mir meist erstmal ein eBook und kaufe das Buch wenn es gut ist direkt. Auch solltet ihr nach Mängelexemplaren schauen hier bekommt ihr die Bücher teils für 3 Euro die sonst 50 Euro kosten und die von mir aufgezählten Bücher sind alt und trotzdem aktuell also gute Chancen Geld zu sparen. Dann gibt es super videotrainings oft auch kostenlos von Microsoft und anderen. Dann noch zu dem auf dem Klo eine Idee haben und dem aufschreiben. Macht euch ne mind map aller Funktionen die euer Programm mal können soll. Diese könnt ihr später in Features also programmbausteine die programmiert werden sollen aufteilen. Denkt dran rom würde auch nicht in einem Tag erbaut. Bei diesen Features priorisiert ihr dann die einzelnen Features so das ihr eine minimale finktionsspanne und ein Programm habt das seine Aufgabe erfüllt alle andere Features ordnet ihr später eine abarbeitungsreihenfolge zu um optionale oder erweiterte Funktionalität hinzuzufügen. Und ja Git und so (svn, subversion, Microsoft tool wie auch immer das mittlerweile wieder heißt) alle sourcecontrol Programme bringen euch mega viel und Git und Microsoft sind gut integrierbar und bieten online Speicherung für alle die ihr Laptop gern mit Cola verwöhnen. Im Grund ist source control wie ein computerspielsavegame. Ihr schreibt Code checkt euer savegame ein, schreibt weiter checkt wieder ein und könnt wenn ihr lustig seid zurück zum ersten savegame eures Codes aber auch savegame vergleichen um zu sehen was ihr geändert habt. Und das beste es ist ein Programm das Teamarbeit stark verbessern kann! Wenn ihr eure Mindmap habt würde ich vor der feature reinfolge noch überlegen welche Technologien dazu gebraucht werden. Zb soll eure App eine Datenbank oder webservice haben, auf welchen Systemen soll eure App laufen, wie wollt ihr sie testen. Wie kommuniziert eure app und wie wird repliziert oder gesichert. Und dann bitte, bitte macht euch Gedanken wie gesichert werden muss. Owsap ist hierfür ein guter Start um zumindest etwas zu verstehen was hacker mit deinem Projekt so tun können. Dann bitte versuch keine Zahlungseingangsfunktionen selbst zu programmieren auch ein Shop macht heute wenig Sinn selbst zu programmieren. Übrigens gewöhne dir an nur mehrsprachige Apps mit dem Microsoft bestpractis für die Art deines Programms zu schreiben. Später das nachziehen ist oft mühsam und es gibt euch den Vorteil das ihr einfach die Datei in der die Texte stehen einem Übersetzer geben könnt und was ich noch besser finde Texte wiederverwenden könnt und so auch im Team ein einheitlichen schreibstiel im Programm schafft oder nicht überlegen müsst wie man das formuliert. Auch werden Schreibfehler besser gefunden. Dann zum debugging, wie Mehrsprachigkeit solltet ihr auch immer loging implementieren ausser in codebeispielen natürlich. Wenn ihr nach einem Jahr den Code nicht mehr versteht hilf euch das anschalten des logging oft den Fehler zu finden. Auch können eure Anwender so ohne debuggen zu können ihr Abbild an loging Infos zu euch senden damit ihr seht wo der Fehler liegen kann. Mehrsprachigkeit und loging kann oft in einer Art grundgerüst wiederverwendet werden wenn ihr das mal eingerichtet bzw programmiert habt. Dann macht euch Gedanken wie ihr testeten wollt und als tip testcases die eine InMemory Datenbank nutzen haben oft große Vorteile und in c# kann man momentan mit einer Zeile Code die Datenbank bei entity framework core wechseln. Was euch auch hilft den ihr wollt oder müsst vielleicht mehrere Datenbanken je Plattform verwenden. So das war mein tip um programmieren zu lernen und erfolgreich programmideen umzusetzen. Und ja Programmierer sind meist schwierige Menschen die keine echte Teamarbeit können und deswegen von Projektmanagement Konzepten wie Zb scrum aber auch pair programming zum teamplayer umerzogen werden müssen. Aber auch hier sind wir oft menschlich etwas anstrengend. Dann besteht oft das Problem das ihr ungleiche wissensstände habt und es zu kämpfen im Job kommt die oft heimtückisch enden indem der wissende aus der Firma gedrängt wird. Geht Änderungen und anderungsvorschläge also immer vorsichtig an und bringt eure vorgesetzt besser dazu die Idee selbst gehabt zu haben. Oh und eine Warnung noch ja man soll das Rad nicht neu erfinden aber hütet euch vor dritthersteller Bibliotheken. Ihr wisst nie wie lange diese gepflegt werden oft oft bezahlt ihr Lizenzen dafür und ein Wechsel auf andere moderne Systeme kann erschwert werden. Und ja ihr könnt die sicherste app haben, aber wenn der drittanbieter ein sicherheitsleck hat habt ihr das direkt auch und wie schnell und ob es Updates gibt habt ihr dann nicht in der hand. Auch hier ist Microsoft bzw. DotNet eine sichere bessere Wahl. Happy coding!
Danke! Schön das du dich selbst reflektierst und zeigst das du ein Mensch bist :D Das hat mir echt geholfen. Das Thema Programmieren ist echt erschreckend und mächtig. Ich habe mich dennoch dafür entscheiden es zu lernen und bald geht es los. Danke für deine Tipps ich werde sie auf Papier bei mir haben und Beherziegen :D
Ich schreibe oft eine übertrieben lange Funktion, und kopiere sie dann in einem zweiten Schritt in kleine Teilfunktionen. Ein anderes Vorgehen ist das erstellen von Skelett-Code. Also einfach Funktionen benutzen, die es noch gar nicht gibt, bis das komplette Programm (oder die komplette Funktion / das komplette Skript) da steht. Danach kann man einfach noch alle Teilfunktionen implementieren, und hat den fertigen Code, ohne dass man noch den ganzen Ablauf genau im Kopf haben muss, weil man ja nur noch die jeweilige Funktion verstehen muss, die man gerade implementiert.
Ich mache meine Projektplanung immer in der Schule. Für mein Leistung freut sich da zwar nicht aber da kommen mir immer die besten Ideen. Ich baue Smart Home mit Arduinos
Mein Problem ist eher, dass ich versuche, mit einem Buch Programmieren zu lernen, dann an eine Aufgabe stoße, die ich nicht schaffe, weil ich sie nicht richtig verstehe, gewisse Kenntnisse fehlen oder ich einfach nicht um die richtige Ecke denken kann. dann brennt irgendwann mein Hirn durch und meine Motivation ist so weit gesunken, dass ich erst mal ein paar Jahre nichts mehr damit zu tun haben will. und irgendwann fängt es dann von vorne an.
Es gibt auf diesem Kanal zwar eine Git-Playlist, aber wie verwendet man Git in einem Projekt? Das Projekt könnte etwa die Dokumentation eines Programms sein, selbstverständlich mit wechselnden Anforderungen. Also ein mehrfacher Wechsel der Detailliertheit, die Art der Anrede ändern, ganze Dateien löschen und dann, nach einiger Zeit, doch wieder verwenden.
Ich kann Dir nur zustimmen. im "Pair" zu lernen macht mehr Spaß und bringt einen echt weiter. Als ich vor fast 20 Jahren meine Ausbildung angefangen hab , war es echt vom Vorteil in eine Team zu lernen. Planung klingt immer so auf Zeit bezogen, ich persönlich finde es wichtiger eine grobe Architektur / die Features und deren Zusammenspiel zu beschreiben. (Bloß keine Klassendiagramme ). Und selbst nach den fast 20 Jahren ertappe ich mich immer noch , wenn ich irgendwo ein Print einbaue. Peinlich wirds erst , wenn man vergisst es wieder auszubauen und man die Console zuspammt ;)
Dank meiner Schule ist meine erste Programmier Sprache gebrochenes C++. Wir arbeiten mit der Arduino IDE, die auf C++ basiert, was super ist zum einsteigen. Wir lernen dabei die Grundlagen der Programmierung, also basic Sachen. Als zweite Sprache kann ich etwas C#, ich hab einfach mal versucht unsere Aufgaben im Unterricht in C# wieder zu geben, was auch gut funktioniert hat.
Zum Thema Perfektionismus: das Schöne ist ja, dass die allermeistenIDEs super Refactoring Tools anbieten. Also erstmal Code zum laufen bringen und danach optimieren ist sogar relativ einfach umsetzbar. Am besten hat man zusätzlich noch Unit-Tests, die einen sagen, ob der Code nach dem Refactoring weiterhin so funktioniert, wie er soll.
Mein größter Fehler war es unter anderem veraltete Pakete zu verwenden, die schon lange nicht mehr gewartet werden. Das Erweitern des Pakets um fehlende Features ging noch aber das Schreiben von Workarrounds für schon lange bekannte Bugs hat dann die meiste Zeit gefressen und war sehr frustrierend. Ich war aber zu verbissen das Paket zu verwenden, hätte aber besser einfach ein anderes genommen...
Die Sache, nicht mittendrin anzufangen, ist übrigens auch etwas, was sich so mancher Ersteller von Tutorials oder Autor von Lehrbüchern mal zu Herzen nehmen sollte. Gerade Buchautoren neigen dazu, dem Leser (die ja meist Anfänger sind) schon im ersten Kapitel einen vergleichsweise komplizierten Code hinzuwerfen und ihm dann Stück für Stück beibringen zu wollen, was der betreffende Teil nun macht. Dummerweise sind aber viele Sachen derart umfangreich, dass man als Anfänger sehr schnell den Überblick verliert. Mal ein ganz einfach einfaches Beispiel: Ich habe hier ein Buch namens "Schrödinger programmiert Java". Gleich im Kapitel 1 im ersten Code, dem obligatorischen "Hello World!"-Programm findet man den Import der java.io.exception-Bibliothek und das Werfen von einer IOExcetption. Im Buch selbst steht dazu "Das Programm kann eine IOException werfen. Mehr in Kapitel 9". Ähm..und warum verwurstet man das dann schon im 1.Kapitel ? Ein Anfänger muss und will das in Kapitel 1 dann noch nicht wissen, es verwirrt und demotiviert ihn nur.
zu mehreren sprachen lernen meinerseits ein klares JAIN also klar ganz am anfang die erste aussuchen und die ganzen konzepte verinnerlichen syntax und wie man code aufbaut sobald man aber ein einigermassen solides konzept hat kann es sehr hilfreich sein sich auch weitere sprachen anzueignen klar wenn man wieder zurückwechselt braucht man einen moment (je nach dem wie gut man das fundament gelegt hat) um wieder reinzukommen aber ich zum beispiel habe mit c++ (hauptsächlich microcontroller) gearbeitet und bin nach einem jahr dann zu python gewechselt (generel denke ich je mehr sprachen man schon kann um so schneller lernt man die nächste) und tatsächlich habe ich viele konzepte die ich mir in c antrainiert habe erst wirklich verstanden als ich mit anderen möglichkeiten (z.B deklarierung globale/locale variablen) konfrontiert war verstanden wieso (die vor und nachteile der method) ich dinge so mache und nicht nur so gemacht weil man es halt so machen muss... also ja nicht mehrere gleichzeitig lernen aber durchaus nach einem oder nem halben jahr mal andere ausprobieren ( also mal ein paar monate darauf focusieren) vor 2 1/2 jahren habe ich mit c++ gestartet mitlerweile bin ich mit python vertraut kann js ( grundlagend) und durch ein project( eine webseite apache2/django) in dem ich zwischen js und python hin und her wechseln muss kann ich relativ problemlos wechseln trotz sehr unterschiedlicher syntax. letzten endes ist denke ich auch genau das die anforderung an die meisten ITler flexibel sein und lernfähigkeit und ja ich würde mich auch nach 2 1/2 noch als anfänger bezeichnen das sich neue sachen anschauen ist ein habit das man sich recht früh angewöhnen sollte tl,dr danke für den guten content (leider nur auf deutsch ^^) ich sage nur nicht nur wechseln wenn man muss sondern auch um möglichkeiten paradigmen kennenzulernen 10:30 aus diesem ansatz heraus seh ich das
Stimme dir eigentlich bei allem zu, AUßER bei dem Debugger. Die funktionieren so lange gut, wie du keine Racecondition finden musst. Da verzerren Debugger nämlich das Bild und führen dazu, dass der Code immer in der gleichen Reihenfolge ausgeführt wird. Bei einem print hingegen siehst du die Racecondition, weil der Code auf "natürliche Weise" ablaufen kann. Das ist insbesondere bei JavaScript der Fall.
Ich programmier schon sein 20 Jahren und war noch nie in der Situation wo man einen Debugger unbedingt bräuchte. Ist halt persönlicher Stil ob man den Computer ein log schreiben lässt, Assertions baut, oder sich manuell durch die Verarbeitungschritte hangelt und die Werte dort ausließt. Es gibt genügend Bugs wo einem der Debugger nicht helfen würde, da es konzeptionelle Fehler sind.
In der Tat kann ich eine Reihe von No-Gos, gerade als Quereinsteiger nur unterstreichen. Auch wenn es eine Schnittmenge zu den Punkten Qualität, Dokumentation, etc. ist halte ich es mittlerweile auch für wichtig sich relativ früh mit Testautomatisierung zu beschäftigen. Mit einer neuen Funktion gleich die Unit Tests zu implementieren hilft zumindest uns im Team ungemein. Integration Tests und End 2 End ist aus meiner Sicht nix für den Beginn bzw. für kleinere Projekte. Es hilft auch besonders im Codereview, wenn man dann halt schnell feststellt, dass die Unit Tests und die geschriebene Funktion inkl. Dokumentation nicht vollständig oder gar widersprüchlich wirken.
Ich habe eine andere Einstellung zum "Einfach drauf los coden". Ich glaube, dass es viele gibt, die ihr erstes Programm nicht selbst geschrieben, sondern aus dem Internet kopiert haben. Niemand kann nur aufgrund der Syntax-regex ein Java HelloWorld Programn schreiben. In meinen Augen ist es eine gute Idee, sich ein kleines(!) Programm aus dem Internet zu kopieren, und damit herum zu spielen.
cooles Video und stimme allem voll zu. Aber gerade beim Debugger hab ich unglaubliche Schwierigkeiten ihn zu benutzen. Hast du vielleicht ein Video oder könntest du eins machen, über generelle Tipps wie man debuggen sollte und wie man einen Debugger benutzt?
Python als Anfängersprache würde ich heutzutage sofort unterschreiben. Als ich angefangen habe zu coden, war Python noch relativ unbekannt, die Version 2.0 noch lange nicht released, von daher fing es bei mir an mit Basic. Nicht ganz so klassisch wie bei anderen mit C64-Basic, sondern erst, als bei MS-DOS 5 QBasic dabei war. Mehrere Sprachen gleichzeitig zu erlernen ist sicher nicht hilfreich. Mehrere Sprachen zu beherrschen, indem man eine nach der anderen lernt, ist hingegen etwas, das ich für sehr sinnvoll halte. Beruflich bin ich in der Embedded-Welt unterwegs, und da geht bei uns, wie fast überall sonst auch, nichts über C. Trotzdem bin ich froh, daß ich auch Python beherrsche und noch Restkenntnisse anderer Sprachen, mit denen ich mal hier und da zu tun hatte, zu haben. Nicht genug, um direkt ein Programm zusammenzukloppen, aber genug, um zu wissen, wo ich im Zweifel nachschlagen kann. Ich habe damals zwangsläufig mich alleine reinfuchsen müssen. An Internet zu Hause war noch lange nicht zu denken (mein Google hieß Fachbuch, und selbst die waren schwer zu kriegen, unser Buchladen war nicht gut sortiert), und selbst Mailboxen waren für mich unerreichbar. Im direkten Freundeskreis hat sich dafür niemand interessiert. Mit den Möglichkeiten, die man heute hat, sollte man aber in der Tat anders an die Sache herangehen. Das Qualitätsthema kann ich gar nicht genug unterstreichen. Mit Code, der einfach nur grauenhaft zu lesen ist (aber seinen Zweck irgendwie erfüllt), kämpfe ich auf der Arbeit regelmäßig. Dabei kann man nicht mal den Kollegen, die ihn geschrieben haben, einen Vorwurf machen. Die wissen selbst, wie schlecht er ist, aber wenn das Management, das nicht mal ein "Hello World" auf der Kommandozeile hinbekommt, Druck macht und nicht versteht, welche Kosten es später verursacht, vorher Zeit für Qualität einzusparen, kann man halt nichts machen. Wenn man die Möglichkeit zum anständigen Debuggen hat, ist es geradezu dumm, diese nicht zu nutzen. Wer aber im Embedded-Bereich, gerade am unteren Ende der Skala, unterwegs ist, hat diese Möglichkeiten gar nicht. Privat bin ich viel auf AVRs unterwegs, die kleineren haben teils gar keine Debugmöglichkeiten, und die größeren, selbst wenn sie JTAG können - sorry, die passende Hardware, um das an den PC zu bringen, ist mir einfach zu teuer. Da bleiben nur Ausgaben über die serielle Schnittstelle, oder teils sogar nur Pulse auf Leitungen, die man sich mit dem Oszilloskop anschaut. Für mich hat jede Art von Debugging ihre Daseinsberechtigung, allerdings sollte man halt, um sich das Leben zu vereinfachen, immer die komfortabelste, die die jeweilige Situation bietet, nutzen. Anders gesagt, man kann Python auch mit einem einfachen Texteditor schreiben und über die Kommandozeile laufen lassen, aber wenn man mal den Debugger in PyCharm genutzt hat, kennt man eben auch die "dunkle Seite der Macht". 😎
Ich bin jetzt seit ca 6 Monaten auf einem beruflichen Gymnasium und mache praktische Informatik. Und auch ich habe erfahren müssen, dass man auf Dokumentation nur verzichten kann, wenn das Programm innerhalb der Unterrichtsstunde fertig wird und man es danach nicht mehr braucht. Ansonsten lernt man es auf die harte Tour
Hi Morpheus, danke für deine Videos! Ich wollte fragen, was du für Notizen benutzt - ich habe jetzt Joplin und experimentiere mit Logseq. Schöne Weihnachtszeit!
Ich bin inzwischen der Meinung, eine Programmiersprache und deren Syntax sind nur Mittel zum Zweck. Man sollte schon am Anfang mehr Wert auf Semantik legen, etwas, was ich erst viel später verstanden habe. Man sollte sich auch verschiedene Programmierparadigmen anschauen, also Imperativ, objektorientiert oder funktional. Natürlich nicht alles auf einmal, aber man sollte schon früh zumindest davon gehört haben. Ich bin auch gar nicht mehr davon überzeugt, dass Python eine gute Einsteigersprache ist. Man hat zwar schnell erste Erfolge, gewöhnt sich aber auch schnell gewisse Unarten an. Ich finde es inzwischen noch nicht einmal abwegig, mit einer rein funktionalen Sprache wie Elm anzufangen.
ich habe bisher für die Programmiersprachen die ich bis jetzt gelernt habe versucht alles aus der offiziellen Dokumentation rauszuholen, weil ich dann auch nützliche Sachen gefunden habe die auch mit der Programmiersprache zu tun hat die man sonst anders oder umständlicher gelöst hat.
Hallo Morpheus, Erstmal einen riesen Lob für deine Tutorials und Vlogs. Ich arbeite mich gerade durch das Buch „Python 3 von Rheinwerk“ und deine Tutorials sind da eine sehr große Hilfe. Ich habe ein Problem und vielleicht geht es anderen auch so. Mein Verstand ist sehr Visuell, Objektiv und Räumlich orientiert. Ich versuch es mit dem KFZ-Mechaniker zu vergleichen. Wenn ein KFZ-Lehrling an seinem ersten Tag etwas über Reifen erklärt bekommt, dann weiß er dass es 4 Stück sind und wo die ungefähr am Auto sitzen. Jeder auch noch so Technik unbegabte Mensch wird wissen wo der Motor und wo der Kofferraum ist. Es gibt das Video „HTML und CSS in 90min“. Niemand lernt es in 90min aber man hat einen Überblick wo alles hingehört. Mein Python-Auto steht aufgebockt mit dem Motor auf der Rückbank und der Fahrersitz klebt kopfüber am rechten Kotflügel. Du erklärst das Programmieren sehr verständlich aber in deinem Kopf haben die Schleifen und Funktionen schon ihren Platz. Für mich sind es Puzzleteile ohne das Bild auf der Packung. Wahrscheinlich bin ich zu ungeduldig und es ist nur eine Idee. Mach weiter so und danke für deine Videos. MfG Alex.
Den Punkt 'Kein Sozialleben' find ich gut :D ich hab im Praktikum von meinem Studium erstmals ein großes Projekt selbst programmiert. Das ging dann echt soweit, dass ich schon überall vor meinem geistigen Auge nur noch Code gesehen hab. Ich hab sogar davon geträumt, was man noch verbessern kann. Vllt hat sich mein Gehirn dort auch wirklich auf den Modus 'Programmierer' umgestellt. Aber ernsthaft: Die besten Ideen kommen IMMER, wenn man mal etwas Abstand von der Materie hat!
könntest du bitte vllt auch mal für absolut unerfahrene die nichts von verstehen ein tutorial generieren, für jemand der überhaupt nichts von versteht :) ein einfaches idee von a bis z ... also wie das geschrieben werden soll, wo und wie umgesetzt werden muss, und wie das am ende angewendet werden kann, wäre das eventuell möglich(?, wäre echt dankbar!
Ich kann dem nur zustimmen, wenn ich damals diese Tipps bekommen hätte, wäre mir viel Arbeit erspart geblieben. Vielleicht noch ein Punkt der nicht erwähnt worden ist : Sucht euch für den Beginn eine einfache Programmierumgebung aus!
Thema Tools: Man sollte immer die verwenden die den eigenen Workflow Beschleunigen und Unterstützen. Außerdem bringen einem viele Tools erst wirklich einen Nutzen wenn man mehr Erfahrung beim Programmieren und der verwendeten Sprache hat. Deswegen kann ich die Aussage man sollte auf jeden fall einen Debugger verwenden nicht Unterschreiben. Bei meiner Arbeit mit Webstorm habe ich eine ganze Weile geziehlt mit dem Debugger gearbeitet, weil ich Dachte er beschleunigt meine Arbeit. Nach einer Weile hab ich fest gestellt das er mich oftmals sogar ausbremst. Schuld daran waren falsch gesetzte Breakpoints (vergessen zu entfernen, versehentlich gesetzt), schleifen mit hunderten Durchläufen oder Breakpoints an denen der Debugger gar nicht gehalten hat obwohl der Code abgearbeitet wurde (eigenheit des Debuggers). In den meissten Fällen ist eine gezielte Logausgabe mit den relevanten variablen Schneller.
14:14 das war ein Fehler den ich gemacht habe. Nach 2 Jahren Programmieren hatte ich immer noch keine Ahnung und habs dann mal für eine Zeit lang gelassen. Jetzt bin ich aber wieder mit Kopf und Seele dabei am coden! :)
Danke 🥳 Hab mich jetzt doch endlich mal dazu durchgerungen mich mit git zu befassen (war einfach zu faul) und wow, mit der vsc Integration is das ja soooooo angenehm, ich ärgere mich jetzt direkt, dass ich das nicht vor Monaten schon gemacht habe 😄
Zu Planung: Aber schreibt euch eure Ideen trotzdem auf. Teile davon werdet ihr wieder nutzen - denn all eure Kreativität ist wertvoll. Nur vielleicht nicht für euer aktuelles Projekt; vielleicht auch nur als Steinbruch für zukünftiges. Ich bin seit 5 Jahren dabei, Stück für Stück auf Ideen aufzubauen, die ich ursprünglich mit einem Kollegen an einer Glaswand besprochen habe. Sie haben sich seitdem stark verändert, aber die Entwürfe von damals sind immernoch eine wertvolle Grundlage.
Gerade mit Python angefangen. Hier im Vorfeld den Hinweis erhalten, ein Grundverständnis in HTML und JS wäre hilfreich. Glaube der Tipp war gar nicht so blöde. Grundverständnis war zum Glück vorhanden, hatte ich nur nochmal aufgefrischt.
Zum Thema Tutorialhell kann man auch noch anfügen (als Fehler, den ich anfangs recht lange begangen hab), dass es auch wichtig ist, auch selbst mal was zu coden und das Erlernte wirklich in die Praxis umzusetzen, um es zu vertiefen oder zu sehen, wo noch Lücken bestehen. Ich kenne etliche und nehme mich da nicht aus, die zu Beginn einfach nur (beispielsweise) 5 Videoreihen und 2 Bücher zu C# durchsehen, ohne jemals eine Zeile Code zu schreiben und hoffen, dadurch programmieren zu lernen.^^
Ich nutze auch Python und ja ich mache diese Fehler teilweise immernoch und ärger mich jedesmal darüber. WTF ist dieses cdata ?! oder was macht easyfunc(stuff) ?! Zu glauben man wird immer wissen was man da gemacht hat, war mein erster Fehler. Das Problem dabei war. Ich hab dieses Programm gebraucht. Ich hatte 2 Wochen Zeit war nach 3 Tagen fast fertig, dachte mir: "joa bist ja eh fast fertig, machst mal pause und gehst zum strand". Als ich nach einer Woche das Projekt abgeben wollte, hatte ich ernsthaft geglaubt ich hab mein Projekt nicht gespeichert und dieses Spaghetti, was ich mir gerade anschaue habe ich doch niemals vor 1 Woche geschrieben. Ich durfte alles nochmal machen und habe es gerade noch so geschafft abzugeben. Bevor ihr euer Projekt aus Zeit, Frust oder sonstigen Gründen schließt, nehmt euch die 2 min und schreibt Kommentare für euer Zukünftiges ich :D. Mögen sie in Frieden ruhen, die Projekte welche nie fertig gestellt wurden weil der Entwickler keine Ahnung mehr hatte was er da eigentlich gemacht hatte und das neu schreiben schneller ging als das herauszufinden.
ja aber nur nötige kommentare, den rest mittels guter datei, funktionsnamen und variablennamen und guter code struktur implizit erklären. glaub mir, es macht kein spaß, seiten von kommentaren bei einem refactoring ebenfalls auf den neusten stand zu bringen
Meine Ergänzung: So schnell wie möglich damit anfangen, kontinuierlich Tests zu schreiben. Ich hab das irgendwie verpasst und mach das noch immer per Hand - dabei gibt es ja, abhängig von der Sprache, gute Frameworks dafür. Achja, und Dokumentationen am besten direkt im Code lernen und nicht »auf nem Blatt Papier«. 😏
mal zum Punkt 2: mir wurden im Laufe meiner Ausbildung über 7 Verschiedene Sprachen beigebracht. Mittlerweile bringe ich mir die achte (python) selber bei, um wenigstens eine richtig zu können
Im 1. Semester gabs bei uns ne dicke C-Prüfung wo es mal gleich geschmeidig zwischen 60 - 70% durchgehauen hat...man muss dazu noch anmerken dass mehr als 1/3 nichtmal angetreten ist lol
Bei mehreren Programmiersprachen bin ich nicht ganz der Meinung... Man sollte immer die Sprache auswählen, die für die Aufgabenstellung am besten passt. Man kann halt nicht mit allen Sprachen alles machen. Zwischen Sprachen zu wechseln kommt auch immer auf die Syntax an. Zwischen Java, C#, C++, C und JavaScript hin und her zu wechseln, ist kein großes Problem.
fände interessant zu wissen bzw zu sehen wo Schleifen in der Praxis eingesetzt werden ... ein paar simple Praxisbeispiele ... Websdesign, Games, KI, ... THX ♥
Der wohl nervigster Fehler in meiner Anfangszeit war Backuping. Habe nie richtig Wert draufgelegt und so 2 Projekte verloren. Das sollte auch mal erwähnt werden :) PS: Backuped eure Projekte ;)
Wobei das Ritual ein Backup zu machen das Wichtige ist, nicht ob man nun GIT verwendet, oder einfach per Batchdatei alles in ein ZIP packt und im Netzlaufwerk speichert. Git ist auch nur so sicher wie der Ort wo das Repository liegt.
Als ich begonnen hab, hab ich immer kleine bis mittlere Projekte gebaut. Wie heute 10 Jahre später noch mit einem Blatt Papier das Brainstorming gestartet. Wenn es dann mal funktionsfähig war, sind mir später immer wieder Pattern über den Weg gelaufen die perfekt auf das Problem gepasst hätten. Ich hab dann noch mal von 0 gestartet und das Pattern implementiert. So lernt man sehr schnell in größeren Problemen Pattern zu erkennen und verliert sich nicht in Details. Mein Tipp: Kauft euch ein Buch mit den wichtigsten Pattern und baut ein 2h Beispiel-Projekt zu jedem. Das coole ist das dieses Wissen nicht Programmiersprachenabhängig ist.
Du hast so recht... wenn ich etwas programmiere benutzte ich oft meine Lieblings Suchmaschine.... und bekomme dadurch neue Ideen oder Möglichkeiten aufgezeigt! Dies kommt nicht gleich am Anfang eines Programmes....sondern im Laufe der Zeit.... 1 Code... dann kommt der nächste Code... und dann wieder der nächste.... dann wieder prüfen .... und wieder von vorne.... haha! Ich hab angefangen C# zu lernen, wenn ich ehrlich sein soll aus Leidenschaft und denn Spaß denn ich dabei hatte... habe auch von hier am Anfang mit eine kleine Tutorial Reihe angesehn, wie z.b (IF-Befehle / else) (Mathematische Berechnungen ausführen) ( Schleifen und Variablen) und mein erstes Programm war dass Hello World Programm mit eingebautem IF-Befehl.... auch wenn die Consolen-APP nicht viel konnte, hatte ich richtig Spaß daran und konnte mich schon etwas hocharbeiten und einige Befehle mehr lernen. Viele Leute denken, wenn es sie Programmieren lernen, dass sie gleich Tools erstellen müssen wie Microsoft und mit Fenster und pi...pa...po! Und viele finden dann sowas langweilig, wenn sie Mathematische Berechnungen lernen müssen und wie der Code diese in Befehle ausführt.... aber genau dass sind die ersten Bausteine um Programmieren zu lernen! Binärzahlensystem und dass Verständnis dafür um schlussendlich zu verstehen was und wie eine Codezeile ausgeführt wird. Und Pausen sind Pflicht... Lernen ist anstregend!!! Und dass gilt für Coden 3x!!!! Hier kann ich auch nur die Leute sagen, entspannen und sich kreativ entfalten... denn Programmieren ist nicht nur schreiben... es ist Kunst! :-) Was mir mit Befehlen geholfen hat, war eine kleine Toolbox wo ich die Befehle dort alle gespeichert hatte und jeden Befehl am Anfang selbst versucht habe in die Software zu schreiben. Dass aller wichtigste ist Probleme die auf einen kommen, selbst zu lösen mit dem Debugger! Beherrscht man die Kunst der Problemlösung und man kann kleine Codes selbst wieder in Ordnung bringen.... ist man auch auf denn richtigen Weg! Wenn ich ein Problem in ein Code bekomme "Fehler" dann schaue ich nicht in eine Suchmaschine, sondern befasse mich damit was ich jetzt falsch gemacht habe und beginne wieder von vorne im Programm. So bekommt man auch ein Verständnis für die Fehlersuche.... Ich war am Anfang auch extrem überwältigt von der Visual Studio Software und soviel auf einmal am Anfang hätte mich auch überfordert....
Hallo "Morpheus", könntest du ein Einführungsvideo zum Thema "Compilerbau" machen? Meine Kommilitonen / Kommilitoninnen und ich verzweifeln gerade, weil die Skripte, mit denen wir lernen (müssen), nicht gut strukturiert sind. Es tauchen beispielsweise Größen auf, die vorher nicht definiert wurden. Wir haben uns jetzt zu Lerngruppen zusammengeschlossen und versuchen, anhand verschiedener Videos und Bücher, ein ordentliches Fundament zum Thema zu erarbeiten. Aber wir alle fragen uns, wo genau fängt man an? Vielleicht kannst du ja Abhilfe schaffen und eine allgemein verständliche Einführung geben. Vielen Dank im Voraus im Namen des ganzen Kurses.
Wurde "crafting interpreters" gelesen? Das ist meine aktuelle Empfehlung zu dem Thema. (Zu der toy language von LLVM kann ich aktuell noch nichts dazu sagen.)
Dem ist nichts hinzuzufügen :) Ich bin leider gezwungen alleine zu programmieren. Foren, Chats und TH-cam helfen dann aber auch nicht gleich verrückt zu werden. Motivationstechnisch kann das aber ein ganz schöner Killer sein, gerade wegen des fehlenden Austauschs wenn man mal festhängt. Geteiltes Leid ist halbes Leid oder wie war das :P
Hallo. Ja das mit dem alleine programmieren kenn ich. Bin da auch eher alleine. Ich hab vorwiegend das Problem, dass ich nie weiß ob es "richtig" oder "guter Stil" ist. Auch die Tutorialhell schlägt bei mir immer wieder zu. Ich kann die einzelnen Lektionen zwar abarbeiten und nachvollziehen, aber diese ordentlich in ein eigenes Projekt einzuarbeiten ist dann echt eine große Herausforderung. Was wirklich hilfreich wäre, wäre z.B. eine Website wo Projekte mit Sourcecode zum Download bereitgestellt werden und nach Schwierigkeitsgrad sortiert sind. Da könnte man sich dann auch ein paar Tipps holen. Keine Ahnung wie es dir dabei geht und wo deine Probleme liegen? Welche Sprache lernst du den gerade und was sind deine Ziele? MFG
@@francisj.hunter1843 du bekommt das "richtig" und "guter Stil" selbst heraus, weil dir das dein zukünftiges ich schon sagen wird, sofern du den code später nochmal nutzt :)
@@weirdwordcombo Ah meinst du diese Momente, wo man denkt man hat eigentlich noch nichts dazugelernt. Liest dann seinen alten Code und bekommt Schnappatmung und Anzeichen eines Herzinfarktes ? 😂😂. Ich muss mir auch immer vor Augen halten, es es komplett egal ist, dass mein Code nicht gut ist. Weil es jetzt ja kein Code für eine kritische Infrastruktur ist ;) MFG
@@francisj.hunter1843 Das sollte mit der Zeit tatsächlich von ganz alleine kommen. Dann steigen auch die eigenen Ansprüche an die Code-Qualität. Refactoring kann unglaublich befriedigend sein, man sollte das aber auch nicht übertreiben :)
@@francisj.hunter1843 ja genau das mein ich. schlechter code kann auch dazu führen, dass dir das projekt weniger spaß macht, und du merkst es vielleicht nichtmal bewusst
🤔 bringe ich in Erfahrung, aber im Zweifel kannst du sicher später dazu kommen. Alternativ gibt's noch weitere Workshops von der FHDW unter dem Link in der Beschreibung 👍
Ich stehe auf dem Standpunkt, wenn man das Grundprinzip der Programmierung verstanden hat, dann ist die Sprache fast nebensächlich. Ich programmiere seit etwa 38 Jahren und musste eigentlich immer nur die Sprache den Bedürfnissen anpassen, was aber auch der Bequemlichkeit entspringt, in Assembler geht alles ;)
Habe gerade erst dein Video gesehen - gibt es die Möglichkeit den Online Kurs vom 31.05. nachträglich noch einmal zu sehen? Der Kurs für Robotik interessiert mich auch sehr.
AutoIT ist top. Und die Beschreibung ist auch richtig top. Zuerst Java gelernt, dann zu AutoIt rüber. Reicht für mein tägliches doing. Python nerft richtig. Kannst gleich zu Powershell. 0.01 + 0.02 = 0.0300000000001
Mein größter Fehler war immer, dass ich mir keine Zeit gelassen und meinem Kopf zu wenige Pausen gegönnt habe. Wenn ich heute einen Bug habe, den ich auf anhieb nicht lösen kann, dann mache ich einfach mal ein paar Stunden oder ein paar Tage Pause. Das Problem löst sich dann meistens sogar fast wie von alleine :)
@Morpheus ich glaube du hast dich verschrieben und meintest im vorletzten Abschnitt (ich meine damit die Bezeichnung des Abschnittes) die Befürwortung aus der Sicht des Anwenders und nicht die Verneinung dessen. Viele Grüße und tausend Dank für deine Tutorials und Unterstützung!! kann man dich noch weiter Unterstützen außer mit einem Abo ?
Hab es Mal geändert 😅 es war glaube ich ein wenig missverständlich, da es ja um Fehler ging 🙈 Du kannst gerne bei meinen anderen Kanälen oder Patreon vorbeischauen, wenn du magst 😊 ich bedanke mich schonmal im Vorfeld
ist Python besser als Javascript zum anfangen? hab jetzt schon bisschen Javascript gemacht und paar Sachen nachgemacht die Grundsachen hab ich auch teilweise verstanden, heißt auch meistens das Javascript für Anfänger am besten geeignet sein soll 🤔
Immer wenn Ich dieses leidige Thema sehe, stimmt mich es mich traurig das Pascal so auf's Abstellgleis geschoben wurde. Die Sprache wurde gemacht um Programmieren zu lernen und ist genauso maechtig und Hardwarenah wie C und wenn man einer dieser beiden Sprachen gelernt hat, kann man jede Hoch-Programmiersprache. Ich habe in ueber 20 Jahren Projekte in 14 verschiedenen Programmiersprachen realisiert, aber mit der Antwort auf die Frage was denn die beste Programmiersprache sei, konnte ich bisher noch keines realisieren: "kommt drauf an"
Ich habe im Informatik-Unterricht Anfang der 80er Jahre UCSD-Pascal auf dem Papier gelernt. Später habe ich den Atari ST 7 Jahre lang in GfA-Basic (mein geliebtes "Interpreter-Pascal"), ST-Pascal und Assembler programmiert. Pascal war einfach nur geil!
@@fortunato1957 Da habe Ich echten Respekt vor ^^ aber Ich kann da gar nicht mitreden. Ich habe mal vor ziemlich genau 8 Jahren den Auftrag bekommen irgendwas zu finden das moeglichst unkonpliziert "Hello World" auf WindowsCE kompiliert und Free Pascal gewann den Zuschlag und obwohl Ich schon etlisches vorher realisiert habe, hab Ich erst durch Pascal begriffen was ich da genau, wann von dem prozessor abverlange und ueberlege nur deswegen heute immer 2 mal ob ich unbedingt neuen speicher auf dem heap beanspruchen muss
DIe Frage mag jetzt doof sein, aber das mit dem Textadventure klingt mega cool, meinst du das man das quasi mit Python machen kann oder hast du dazu schon was gemacht?
Witzig das du auch als erstes einen Virus programmieren solltest. Mein erstes Projekt war eine winzige Zip-Datei die sich selbstständig iterativ entpackt und dadurch eine unendliche Menge an Speicherplatz verbraucht bis die Festplatte vollgeschrieben ist und sich der PC nichtmehr bedienen lässt. Sehr unterhaltsam ;)
Ich würde noch die 10 Tipps mitgeben (ohne konkrete Reihenfolge):
1: Lerne 10-Fingertippen (vertrau mir, ist das beste, was ich je gelernt hab)
2: Hab eine echte Motivation, bleib an einem Projekt dran (selbst wenn's gerade schwer ist)
3: Benutz Stackoverflow, aber kopiere den Code nur, wenn du ihn verstehst (am besten du kopierst ihn nicht, sondern schreibst ihn ohne abgucken nach)
4: Lerne zuerst ein paar theroretische Basics, bevor du mit dem Coden anfängst (sonst wirst du nicht verstehen, was der Code macht oder wie man an Probleme rangehen kann), oder fang mit einem no-code Projekt an. Zum Beispiel Lego-Roboter (Mindstorms) programmieren oder so)
5: Hab keine Angst, dass andere viel weiter sind. Es wird immer Leute geben, die irgendwo besser sind, als du. Aber vor allem in der Informatik ist die Learning-Curve sehr steil, flacht dann aber irgendwann ein bisschen ab, wie ich finde. Du holst schon die Leute ein, mit denen du dich vergleichst, aber vergleich dich am besten gar nicht
6: Wenn es keinen neuen Konzepte sind, dann schau weniger Videos, sondern mach es selbst. Learning by Doing ist das beste überhaupt
7: Lerne Leute kennen, die du immer alles fragen kannst
8: Videos>Bücher, aber Clean Code solltest du lesen, wenn du weiter fortgeschritten bist
9: Sammle praktische Erfahrung (geht einfacher, als man denkt, hab nach dem 1. Semester mein erstes Praktikum bekommen und konnte vorher nicht programmieren)
10: Nimm Kritik von jedem dankend an. Man wird selten korrigiert und wenn man es wird, egal ob die Person an sich dümmer oder schlauer ist, ist es eine super Chance sich zu verbessern
Bonustipp: (Tipp 0) Probier neue Features aus, zB adere IDE's, aber v.a. Shortcuts. Dadurch wirst du viel schneller und produktiver werden.
Wenn du noch Pluspunkte in der B-Note haben willst hab ich die 5 Tipps:
1: Darkmode only
2: Benutz Linux
3: Mechanische Tastatur oder Laptop
4: Lange Haare und Bart
5: Anderer Tagesrhythmus -> kein Sonnenlicht -> keine Screen Reflection -> maximale Effizienz
Die letzten 5, beste 😂😂👍
Bart ist da, Haare wachsen gerade. Rest ist dann ja wohl trivial nehme ich an🫡
😂😂danke für die Tipps
10. das Wichtigste. Ohne konstruktive Kritik kann man nicht gut werden. Zumindest meine Meinung.
1. Kann ich nicht unterschreiben. Die menge an Buchstaben die man heutzutage tippt (IDE mit Autovervollständigung) hält sich echt in Grenzen. Es geht deutlich mehr Zeit für den Gedankengang als fürs eigentliche tippen drauf. Da dann noch viele Sonderzeichen und IDE-spezifische Tastenkombinationen dazu kommen macht einen echtes 10 Fingertippen nicht wirklich schneller. Und ja ich habe das früher auch trainiert. So ne komische Software mit nem buchstabenfressenden Chamäleon.
Also ich würde ergänzen: 1. Bei der Wahl von Tools,Libraries etc. immer vorher schauen, ob diese gut dokumentiert sind. Das hilft beim lernen, sorgt für weniger Ablenkungen und führt zu den größten Erfolgserlebnissen. 2. Daran anlehnend: Lerne Dokumentationen zu lesen und zu verstehen. Besonders in Hinblick auf Methoden, Objekte und Schnittstellen. Das hilft dir später im Berufsleben, wenn du in Brownfield-Projekten und/oder mit Legacy Systemen arbeiten musst. 3. Gib dir bei Problemen immer die Zeit, selbst eine Lösung zu finden. Dadurch lernst du langlebiger. 4. Teste deinen Code. So reflektierst du nicht nur über deinen geschriebenen Code, sondern hinterfragst dich automatisch auch konzeptionell.
That. Vielen Dank!
> immer vorher schauen, ob diese gut dokumentiert sind.
Ich habe mit MCP und Java damals angefangen, Docs sind was für Loser, für Pros gibt's den Decompiler und Source Code. Aber den daraus entstandenen Code würde ich jetzt nicht mit Lorbeeren beschmücken. Damn war das ne komische Zeit damals.
(no joke, aber sich auf docs nicht zu verlassen hat mir nen Skill gegeben: Man lernt sich selber die Informationen im Notfall zu beschaffen.)
> Lerne Dokumentationen zu lesen und zu verstehen
Ich bin in einer Spigot-Plugin-Dev Community unterwegs, die meisten "Probleme" würden sich in Luft auflösen, wenn man nach englischen Suchbegriffen in den Javadocs sucht.
> Teste deinen Code.
Das erfordert erstmal einen Code, der sich testen lässt: Wer zu viel static benutzt erschafft Code, der sich schlecht einzeln testen lässt. Stichwort "pure functions". Leider mache ich das nicht immer und schreibe erstmal 1000 Zeilen code ohne zu testen, weil es von anderen Elementen abhängt, um dann später einen lästigen Bug zu finden und beheben zu müssen.
@The Morpheus Tutorials Danke für das wie immer tolle Video.
@AgentSlippery stimme deinen Ergänzungen voll zu und finde besonders Punkt 3 sehr wichtig. Denn ja, im Notfall kann man v. a. heutzutage schnell im Netz Lösung(side)en finden, aber nur, wenn man's erstmal selbst versucht, erlernt man überhaupt "die richtige Programmier-Denke" :)
Brownfield?
Wichtig wäre vielleicht eine Kategorisierung: It-Security -> fang mit Python an. Technischer Informatiker(Maschinennahe Programmierer) -> Fang mit C/C++ an. Angewandter Informatiker(App-Entwickler, etc.) -> Fang mit Java an.
Als Beispiel warum ich eine Kategorisierung für wertvoll erachte: Als App-Entwickler hat man meist mit Programmiersprachen zu tun, welche Semikolon verwenden und Python zu Beginn würde mich total frustrieren, wenn ich z.B. mit Dart an einer Flutter App arbeite. Oder mit React/Angular an einer Web-App.
> Als App-Entwickler hat man meist mit Programmiersprachen zu tun, welche Semikolon verwenden
-> Kotlin: Am I a joke to you?
@@Amejonah haha ja hatte Java und Kotlin reingenommen um Android Entwicklung mit einfließen zu lassen 😂 aber stimmt schon was du sagst. Nur mein Punkt ist denke ich verständlich warum man das mit Python nicht generalisieren kann.
@@rebarius Python hat auch semikolons, sind nur optional xd
Einer meiner Kommilitonen hat mal überall Semikolons gepackt weil er nicht wusste dass die optional sind.
@@Amejonah Ich mach das auch immer so habe sonst Angst dass ich das bei anderen Sprachen aus Gewohnheit vergesse
@@Amejonah huhu :D
1. nutzt english. fast alle hilfe, docs und foren sind auf english. formuliert suchanfragen auf english 2. programmiert was ihr selbst nutzen wollt, selbst wenn ihr was verkaufen wollt 3. ja, erstmal bei einer sprache bleiben, das stimmt, trotzdem hat es enorm meinen horizont erweitert, als ich dann andere programiersprachen ausprobiert habe, zumindest sollte man einmal eine dynamisch und einmal eine statisch typisierte sprache probiert haben. persönlich ist meine programmiersprache typescript, weil ich damit für alle OS programmieren kann, und zwischen frontend und backend code UND typen sharen kann
Danke, dass du das Thema so ehrlich beschreibst! Es gibt so viele auf TH-cam, die scheinbar gottesgleich Assembler Code in eine C Funktion schreiben und alles war „yeah so easy this is better than the compiler had done it“. In Wirklichkeit lagen auch Wochen davor, die sich damit für das Video beschäftigt wurde.
Ich habe damals mit 14 mit Visual Basic angefangen und bin seit dieses Jahr erst komplett auf Python gewechselt, die Sprache ist tausend mal einfacher und man hat so viele Bibiotheken und ist echt einfacher zu lernen, man kann sogut wie alles in Python programmieren. Egal ob Console Anwendung, GUI Anwendung oder Android Anwendung usw. Sowie kann man einfach sein Python Projekt komprieren als .exe ohne das der Nutzer extra Python / Bibiotheken installieren muss um deine Anwendung verwenden zu können. Das geht Kinder einfach mit auto-py-to-exe. Wegen dem Thema Dokumentierung ich bin ein Freund mir neben meinen Code per Commentar die Funktion was ich da mache, zu erklären somit lerne ich und verstehe meinen Code den ich geschrieben haben besser und schneller.
Programmieren
- Cool bleiben, durchatmen, Aufgaben ruhen und reifen lassen
- "Die Freiheit zu machen!" Wenn es läuft und keine Fehler hat > OK, es muss nicht immer alles perfekt sein.
- Nicht Sprachen oder Frameworks zu oft wechseln > Master of None
- Ausgleich finden, Pausen, Nichts tun! - Beim "Nichts tun" kannst Du Dich erholen und bekommst neue Ideen
- Papier & Bleistift oder einfache Werkzeuge nutzen. Nutze Mittel die dich unterstützen und nicht ablenken/hindern
- You can think it - you can make it ;)
- Schreibe Deine Ideen und Vorstellungen auf! Erst denken, dann Coden!
- Es ist noch kein Meister von Himmel gefallen. Einfach anfangen, sich mit anderen austauschen und lernen.
Tipps für Lernprojekte: Alte manuelle Kaffeemühle standalone, standalone mit API (Rest), Server zu Server, Microservices (optional als Docker Container)
Warum? Hat ein Objektmodell, Zustände, Mechaniken, Input/Output. Simples Modell, aber im Detail sehr interessant.
Ich finde das Video super und hoffe, dass viele Einsteiger Spass an der Software Entwicklung haben. Später mal mit AWS Cloud, sehr großen Datenmengen und Datenbanken zu arbeiten macht Spass! Und wenn der eigene Code was Gutes leistet, Probleme löst etc. ist es ein Gewinn für viele/Alle ;-)
> - You can think it - you can make it ;)
The Feynman Algorithm:
Write down the problem.
Think real hard.
Write down the solution.
Ich hab zum Glück einen guten Informatik Lehrer, der uns immer kleine Projekte gibt und sagt, welche Befehle wir brauchen, dann aber uns selbst rausfinden lässt wie wir das anstellen.
Ich unterhalte mich auch regelmäßig mit jemandem aus dem anderem Kurs beim gleichen Lehrer und wir sind schon soo oft auf neue/bessere Ideen gemeinsam gekommen.
Aber deine Tipps sind alle ziemlich gut und wichtig .
Starkes video
Sehr gutes Video. Du hast sehr viele wichtige Tipps gegeben.
Für Fortgeschrittene, die mit dem Entwickeln schon Geld verdienen, würde ich noch Folgendes hinzufügen:
1. Wirtschaftlich arbeiten: Unsere User brauchen oft nicht die allerbeste Lösung. Und unsere Lösung wird oft von wenigen hundert Usern genutzt. Die IT-Kosten müssen verdient werden. Es ist nicht so wie bei Microsoft, wo eine Software millionenfach genutzt und bezahlt wird.
2. Immer den größtmöglichen Benefit anstreben. Vielleicht kann eine Entwicklung sogar Benefits hebeln/vervielfachen. Deshalb sollte man sich auf die Sachen konzentrieren, die den größten Benefit bringen.
3. Die User, Prozesse, das Unternehmen und die Ziele hinter den Zielen verstehen. Je besser wir Kunden für eine optimale Lösung beraten können, umso mehr werden wir selbst erfolgreich.
Wir müssen wie ein innovatives Unternehmen denken.
All das macht uns selbst wertvoller auf dem IT-Markt.
Auch wenn es Entwicklern oft weh tut, aber Programmierung sollte nicht zum Selbstzweck werden, weil es an sich Spaß macht. Damit muss ein Nutzen erreicht und Geld verdient werden. Und zwar beim Kunden.
ABER: Wir sollten natürlich unter allen Umständen immer die bestmögliche Lösung erarbeiten - aus technischer Sicht bzgl. Wiederverwendbarkeit, Wartung, Performance usw.
Lesbarkeit ist meistens um einiges wichtiger als Performance. Vergesst also die Performance (vor allem als Anfänger), und probiert stattdessen, den Code so selbsterklärend wie nur möglich zu machen.
Sehr wichtig ist auch dass man bereits als Programmieranfänger mit der Dokumentation arbeitet. Im Studium ist es mir so oft aufgefallen, dass Leute Fragen zu bestimmten Klassen bzw. Methoden stellen, die sie sich auch innerhalb von ein paar Sekunden mit der Java Dokumentation beantworten hätten können. Auch oft kamen Fragen wie sie denn dieses Problem lösen können usw. und meistens hat die Java Dokumentation (oder jede andere Dokumentation) eine passende Methode.
Nicht aufgeben - bester Tipp😂😂
DAAAAAAAANKEEEEEEEEEEEEE!!!
Ich fange gerade an zu programmieren und habe mich für Python entschieden. Mal schauen wohin das führt
mein größtes problem mit programmieren ist, dass ich nie weis, was ich programmieren soll, also was für ein projekt ich machen möchte...
Ja das kenn ich.
Bei mir schwankt es immer zwischen eigenes OS und einer Variable einen Wert zuweisen - jetzt überspitzt gesagt.
Es ist sehr schwer als Anfänger die Projekte von ihren Anforderungen einzuschätzen.
Man weiß einfach nicht was Anfängergerecht ist usw.
mfg
Meanwhile, es gibt Leute die zu viele sideprojects haben und nicht wissen welches sie gerade machen möchten.
Ich programmiere aktuell einen Bot, der Sudokus lösen kann. Manchmal fallen einem solche kleinen Dinge zwischendurch ein
Ein Freund hat mir mal empfohlen, einen Aufzug zu programmieren.
Das fängt easy an und man kann es super simpel machen (auf Knopfdrücke reagieren) oder auch immer komplexer (Ein Fahrstuhl im Hochhaus, der priorisieren kann, Laufwege automatisch optimiert durch Einberechnen der verschiedenen Geschwindigkeiten beim anfahren, durchfahren und anhalten, Wohin wollen die meisten und wie viele sind an Bord, …..)
Mit brute force?@@khtd2004
Noch ein Tipp: Deine Tutorial oder (bzw. besonders) solche Videos wie dieses hier gerne auch öfter mal guggen. Gerade wenn man mal nen Durchhänger hat, motiviert sowas ungemein und ich verspreche: Es bleibt immer immer immer etwas hängen oder es ist irgendwo ein kleiner Halbsatz, der sich als Schlüssel entpuppt, das eigene Chaos zu sortieren und für Durchblick zu sorgen.
Ich finde deine Videos klasse und kann dich nur weiterempfehlen.
Mein persönlicher Favorit: Dokumentieren! Sowohl das Projekt als solches (was mach ich eigentlich?) als auch im Code kommentieren.
Ha ha! Der Hinweis auf die Clean Code Playlist ist super! Bei meiner Abschlussprüfung zum FI AE wurde mir nahegelegt mich damit zu beschäftigen XD
Schaue jeden Abend ein Video und schreibe den Code auch nach wenn ich ihn interessant finde. Ein eigenes Projekt habe ich noch nicht gemacht. Vielen Dank für deine tollen Videos.
Meine Tipps fürs Programmieren (lernen):
- Fangt mit HTML, CSS und JavaScript an. Warum? Ganz einfach dort könnt ihr von Anfang an grafische Bedienoberflächen erstellen und seit Plattformunabhängig.
- Sucht euch Projekte heraus die ihr während des Lernprozesses erstellt. Wenn ihr nicht selbst Projekte erstellt, dann werdet ihr nie mals euer Gelerntes festigen.
- Seit euch darüber im Klaren, dass das Coden im ganzen Programmierprozess einen eher kleineren Teil einnimmt.
- Codet nicht will drauf los, sondern macht euch vorher mal eine Skizze wenn ihr vorhabt einen komplexeren Code-Snippet zu programmieren.
- Bleibt dran, programmiert nicht voller Elan eine Woche lang und dann wieder eine Woche lang gar nicht. Auch wenn ihr mal keine Lust habt, versucht trotzdem mind eine Stunde am Tag zu programmieren. Selbst 10 Minuten sind besser als gar nichts.
- Wenn euch mal eine Sprache, die ihr gerade lernt so gar nicht zu sagt, dann könnt ihr gerne wechseln, probiert euch aber nicht durch die ganze Palette an Sprachen, denn wenn ihr alles nur ein bisschen könnt, dann könnt ihr gar nichts. Wechselt also höchstens ein bis maximal zwei mal.
- Nach euren ersten paar Projekten solltet ihr euch mit Frameworks vertraut machen.
- Unterschätzt den Lernprozess nicht. Es kann theoretisch zwar jeder programmieren lernen, jedoch könnt ihr mit mindestens einem halben Jahr rechnen das es dauert bis ihr sagen könnt eine Sprache wirklich zu beherrschen. Ja, die Syntax habt ihr schnell drauf, die ganzen Libraries aber nicht.
Macht euch mit APIs, JSONs, SQL und Regular Expressions vertraut.
ich mach noch 2 größere Projekte mit autoit fertig und dann fang ich bei den Python Videos an deshalb finde ich es gut das ein deutscher TH-camr so etwas mit seinem wissen in die Welt weiter trägt :) top
Ich will auch schnell Tips geben. Nach 10 Jahren IT einigen Firmen und einem breiten Wissen das aufgebaut wurde bringt das vielleicht mehr.
Als Programmiersprache zum starten empfehle ich C#. Das liegt nicht nur dran das ihr zügig eine Grafische Oberfläche gestalten könnt und so mehr Spaß habt und dran bleibt. Nein, auch ist sie annähernd gleich mit anderen C basierenden Sprachen und auch nah an Java. Dann könnt ihr jedes Projekt in C# erstellen. Webseiten, wepservices, Desktopaplikationen, handyapplikationen, Computerspiele (unity 3d), Linux Windows Mac Programme (für Linux Oberflächen avalonia) usw. usw.. Und mit dem. Net framework auch core erhaltet ihr alles an Funktionalität was euer Herz begehrt. Ein weiterervorteil ist das man eine Menge Datenbanken leicht integrieren kann, testing leicht fällt und das man ohne SQL Kenntnisse mit Entity Framework auch core arbeiten kann. Ihr müsst für eine Datenbank App also kein zweite "Programmiersprache" lernen und erhöht eure Sicherheit. Kostenlose IDE!
Dann kauft euch Bücher oder ladet eBooks. Das wird später den Unterschied machen ob ihr viel Zeit oder wenig braucht um euer Projekt umzusetzen aber auch zu aktualisieren, zu pflegen und zu erweitern.
Ihr braucht ein Buch zu C#. Dann empfehle ich bas Buch Softwareentwicklung von head first. Das Buch objektorientierten Analyse und Design ebenfalls von head first. Diese beiden zeigen Java im Code aber vieles ist im Netz auch in c# veröffentlicht und die Sprachen ähneln sich so sehr das problemlos verstanden wird und nachprogrammiert werden kann.
Dann desig patterns von head first aber es gibt auch ein Buch für c# ZUM THEMA.
Ich würde wohl direkt die sprachelemete in Konsolen Programmen lernen. Dann direkt designpattern in die codebeispiele einfließen lassen. Und dann würde ich zur Vertiefung objektorientierte Analyse und Design lesen. Ausser ihr habt ein konkretes Projekt das ihr umsetzen wollt dann lest head first Softwareentwicklung zuerst.
Ein weiteres wichtiges Buch, gerade wenn ihr nicht so viele Bücher lesen wollt, ist Clean Code. Neben schönen Code zu schreiben der leicht verstanden und leicht erweiterbar ist zeigt dieses Buch auch vieles aus den anderen Büchern. Zb objektorientierte Prinzipien. Bei Bücher lade ich mir meist erstmal ein eBook und kaufe das Buch wenn es gut ist direkt. Auch solltet ihr nach Mängelexemplaren schauen hier bekommt ihr die Bücher teils für 3 Euro die sonst 50 Euro kosten und die von mir aufgezählten Bücher sind alt und trotzdem aktuell also gute Chancen Geld zu sparen.
Dann gibt es super videotrainings oft auch kostenlos von Microsoft und anderen.
Dann noch zu dem auf dem Klo eine Idee haben und dem aufschreiben. Macht euch ne mind map aller Funktionen die euer Programm mal können soll. Diese könnt ihr später in Features also programmbausteine die programmiert werden sollen aufteilen. Denkt dran rom würde auch nicht in einem Tag erbaut. Bei diesen Features priorisiert ihr dann die einzelnen Features so das ihr eine minimale finktionsspanne und ein Programm habt das seine Aufgabe erfüllt alle andere Features ordnet ihr später eine abarbeitungsreihenfolge zu um optionale oder erweiterte Funktionalität hinzuzufügen. Und ja Git und so (svn, subversion, Microsoft tool wie auch immer das mittlerweile wieder heißt) alle sourcecontrol Programme bringen euch mega viel und Git und Microsoft sind gut integrierbar und bieten online Speicherung für alle die ihr Laptop gern mit Cola verwöhnen. Im Grund ist source control wie ein computerspielsavegame. Ihr schreibt Code checkt euer savegame ein, schreibt weiter checkt wieder ein und könnt wenn ihr lustig seid zurück zum ersten savegame eures Codes aber auch savegame vergleichen um zu sehen was ihr geändert habt. Und das beste es ist ein Programm das Teamarbeit stark verbessern kann!
Wenn ihr eure Mindmap habt würde ich vor der feature reinfolge noch überlegen welche Technologien dazu gebraucht werden. Zb soll eure App eine Datenbank oder webservice haben, auf welchen Systemen soll eure App laufen, wie wollt ihr sie testen. Wie kommuniziert eure app und wie wird repliziert oder gesichert. Und dann bitte, bitte macht euch Gedanken wie gesichert werden muss. Owsap ist hierfür ein guter Start um zumindest etwas zu verstehen was hacker mit deinem Projekt so tun können.
Dann bitte versuch keine Zahlungseingangsfunktionen selbst zu programmieren auch ein Shop macht heute wenig Sinn selbst zu programmieren.
Übrigens gewöhne dir an nur mehrsprachige Apps mit dem Microsoft bestpractis für die Art deines Programms zu schreiben. Später das nachziehen ist oft mühsam und es gibt euch den Vorteil das ihr einfach die Datei in der die Texte stehen einem Übersetzer geben könnt und was ich noch besser finde Texte wiederverwenden könnt und so auch im Team ein einheitlichen schreibstiel im Programm schafft oder nicht überlegen müsst wie man das formuliert. Auch werden Schreibfehler besser gefunden.
Dann zum debugging, wie Mehrsprachigkeit solltet ihr auch immer loging implementieren ausser in codebeispielen natürlich. Wenn ihr nach einem Jahr den Code nicht mehr versteht hilf euch das anschalten des logging oft den Fehler zu finden. Auch können eure Anwender so ohne debuggen zu können ihr Abbild an loging Infos zu euch senden damit ihr seht wo der Fehler liegen kann.
Mehrsprachigkeit und loging kann oft in einer Art grundgerüst wiederverwendet werden wenn ihr das mal eingerichtet bzw programmiert habt.
Dann macht euch Gedanken wie ihr testeten wollt und als tip testcases die eine InMemory Datenbank nutzen haben oft große Vorteile und in c# kann man momentan mit einer Zeile Code die Datenbank bei entity framework core wechseln. Was euch auch hilft den ihr wollt oder müsst vielleicht mehrere Datenbanken je Plattform verwenden.
So das war mein tip um programmieren zu lernen und erfolgreich programmideen umzusetzen.
Und ja Programmierer sind meist schwierige Menschen die keine echte Teamarbeit können und deswegen von Projektmanagement Konzepten wie Zb scrum aber auch pair programming zum teamplayer umerzogen werden müssen. Aber auch hier sind wir oft menschlich etwas anstrengend. Dann besteht oft das Problem das ihr ungleiche wissensstände habt und es zu kämpfen im Job kommt die oft heimtückisch enden indem der wissende aus der Firma gedrängt wird. Geht Änderungen und anderungsvorschläge also immer vorsichtig an und bringt eure vorgesetzt besser dazu die Idee selbst gehabt zu haben.
Oh und eine Warnung noch ja man soll das Rad nicht neu erfinden aber hütet euch vor dritthersteller Bibliotheken. Ihr wisst nie wie lange diese gepflegt werden oft oft bezahlt ihr Lizenzen dafür und ein Wechsel auf andere moderne Systeme kann erschwert werden. Und ja ihr könnt die sicherste app haben, aber wenn der drittanbieter ein sicherheitsleck hat habt ihr das direkt auch und wie schnell und ob es Updates gibt habt ihr dann nicht in der hand. Auch hier ist Microsoft bzw. DotNet eine sichere bessere Wahl.
Happy coding!
Danke!
Schön das du dich selbst reflektierst und zeigst das du ein Mensch bist :D
Das hat mir echt geholfen. Das Thema Programmieren ist echt erschreckend und mächtig.
Ich habe mich dennoch dafür entscheiden es zu lernen und bald geht es los.
Danke für deine Tipps ich werde sie auf Papier bei mir haben und Beherziegen :D
Gute Entscheidung!
Ich schreibe oft eine übertrieben lange Funktion, und kopiere sie dann in einem zweiten Schritt in kleine Teilfunktionen.
Ein anderes Vorgehen ist das erstellen von Skelett-Code. Also einfach Funktionen benutzen, die es noch gar nicht gibt, bis das komplette Programm (oder die komplette Funktion / das komplette Skript) da steht. Danach kann man einfach noch alle Teilfunktionen implementieren, und hat den fertigen Code, ohne dass man noch den ganzen Ablauf genau im Kopf haben muss, weil man ja nur noch die jeweilige Funktion verstehen muss, die man gerade implementiert.
Ich mache meine Projektplanung immer in der Schule. Für mein Leistung freut sich da zwar nicht aber da kommen mir immer die besten Ideen. Ich baue Smart Home mit Arduinos
Mein Problem ist eher, dass ich versuche, mit einem Buch Programmieren zu lernen, dann an eine Aufgabe stoße, die ich nicht schaffe, weil ich sie nicht richtig verstehe, gewisse Kenntnisse fehlen oder ich einfach nicht um die richtige Ecke denken kann. dann brennt irgendwann mein Hirn durch und meine Motivation ist so weit gesunken, dass ich erst mal ein paar Jahre nichts mehr damit zu tun haben will. und irgendwann fängt es dann von vorne an.
Es gibt auf diesem Kanal zwar eine Git-Playlist, aber wie verwendet man Git in einem Projekt? Das Projekt könnte etwa die Dokumentation eines Programms sein, selbstverständlich mit wechselnden Anforderungen. Also ein mehrfacher Wechsel der Detailliertheit, die Art der Anrede ändern, ganze Dateien löschen und dann, nach einiger Zeit, doch wieder verwenden.
Du hast echt für alles ne Playlist gemacht xd
Danke für die tollen Videos :3
Ich kann Dir nur zustimmen. im "Pair" zu lernen macht mehr Spaß und bringt einen echt weiter. Als ich vor fast 20 Jahren meine Ausbildung angefangen hab , war es echt vom Vorteil in eine Team zu lernen. Planung klingt immer so auf Zeit bezogen, ich persönlich finde es wichtiger eine grobe Architektur / die Features und deren Zusammenspiel zu beschreiben. (Bloß keine Klassendiagramme ). Und selbst nach den fast 20 Jahren ertappe ich mich immer noch , wenn ich irgendwo ein Print einbaue. Peinlich wirds erst , wenn man vergisst es wieder auszubauen und man die Console zuspammt ;)
Dank meiner Schule ist meine erste Programmier Sprache gebrochenes C++. Wir arbeiten mit der Arduino IDE, die auf C++ basiert, was super ist zum einsteigen. Wir lernen dabei die Grundlagen der Programmierung, also basic Sachen.
Als zweite Sprache kann ich etwas C#, ich hab einfach mal versucht unsere Aufgaben im Unterricht in C# wieder zu geben, was auch gut funktioniert hat.
@@RamoBosnia Nah dran Abitur mit Fachrichtung Technologie in Niedersachsen
Zum Thema Perfektionismus: das Schöne ist ja, dass die allermeistenIDEs super Refactoring Tools anbieten. Also erstmal Code zum laufen bringen und danach optimieren ist sogar relativ einfach umsetzbar. Am besten hat man zusätzlich noch Unit-Tests, die einen sagen, ob der Code nach dem Refactoring weiterhin so funktioniert, wie er soll.
Danke für das plädieren von Grundlagenwissen 🙏
Mein größter Fehler war es unter anderem veraltete Pakete zu verwenden, die schon lange nicht mehr gewartet werden. Das Erweitern des Pakets um fehlende Features ging noch aber das Schreiben von Workarrounds für schon lange bekannte Bugs hat dann die meiste Zeit gefressen und war sehr frustrierend. Ich war aber zu verbissen das Paket zu verwenden, hätte aber besser einfach ein anderes genommen...
Die Sache, nicht mittendrin anzufangen, ist übrigens auch etwas, was sich so mancher Ersteller von Tutorials oder Autor von Lehrbüchern mal zu Herzen nehmen sollte. Gerade Buchautoren neigen dazu, dem Leser (die ja meist Anfänger sind) schon im ersten Kapitel einen vergleichsweise komplizierten Code hinzuwerfen und ihm dann Stück für Stück beibringen zu wollen, was der betreffende Teil nun macht. Dummerweise sind aber viele Sachen derart umfangreich, dass man als Anfänger sehr schnell den Überblick verliert.
Mal ein ganz einfach einfaches Beispiel: Ich habe hier ein Buch namens "Schrödinger programmiert Java". Gleich im Kapitel 1 im ersten Code, dem obligatorischen "Hello World!"-Programm findet man den Import der java.io.exception-Bibliothek und das Werfen von einer IOExcetption. Im Buch selbst steht dazu "Das Programm kann eine IOException werfen. Mehr in Kapitel 9". Ähm..und warum verwurstet man das dann schon im 1.Kapitel ? Ein Anfänger muss und will das in Kapitel 1 dann noch nicht wissen, es verwirrt und demotiviert ihn nur.
zu mehreren sprachen lernen meinerseits ein klares JAIN also klar ganz am anfang die erste aussuchen und die ganzen konzepte verinnerlichen syntax und wie man code aufbaut sobald man aber ein einigermassen solides konzept hat kann es sehr hilfreich sein sich auch weitere sprachen anzueignen klar wenn man wieder zurückwechselt braucht man einen moment (je nach dem wie gut man das fundament gelegt hat) um wieder reinzukommen aber ich zum beispiel habe mit c++ (hauptsächlich microcontroller) gearbeitet und bin nach einem jahr dann zu python gewechselt (generel denke ich je mehr sprachen man schon kann um so schneller lernt man die nächste) und tatsächlich habe ich viele konzepte die ich mir in c antrainiert habe erst wirklich verstanden als ich mit anderen möglichkeiten (z.B deklarierung globale/locale variablen) konfrontiert war verstanden wieso (die vor und nachteile der method) ich dinge so mache und nicht nur so gemacht weil man es halt so machen muss...
also ja nicht mehrere gleichzeitig lernen aber durchaus nach einem oder nem halben jahr mal andere ausprobieren ( also mal ein paar monate darauf focusieren) vor 2 1/2 jahren habe ich mit c++ gestartet mitlerweile bin ich mit python vertraut kann js ( grundlagend) und durch ein project( eine webseite apache2/django) in dem ich zwischen js und python hin und her wechseln muss kann ich relativ problemlos wechseln trotz sehr unterschiedlicher syntax.
letzten endes ist denke ich auch genau das die anforderung an die meisten ITler flexibel sein und lernfähigkeit und ja ich würde mich auch nach 2 1/2 noch als anfänger bezeichnen das sich neue sachen anschauen ist ein habit das man sich recht früh angewöhnen sollte
tl,dr
danke für den guten content (leider nur auf deutsch ^^) ich sage nur nicht nur wechseln wenn man muss sondern auch um möglichkeiten paradigmen kennenzulernen 10:30 aus diesem ansatz heraus seh ich das
Stimme dir eigentlich bei allem zu, AUßER bei dem Debugger. Die funktionieren so lange gut, wie du keine Racecondition finden musst. Da verzerren Debugger nämlich das Bild und führen dazu, dass der Code immer in der gleichen Reihenfolge ausgeführt wird. Bei einem print hingegen siehst du die Racecondition, weil der Code auf "natürliche Weise" ablaufen kann. Das ist insbesondere bei JavaScript der Fall.
Ich programmier schon sein 20 Jahren und war noch nie in der Situation wo man einen Debugger unbedingt bräuchte. Ist halt persönlicher Stil ob man den Computer ein log schreiben lässt, Assertions baut, oder sich manuell durch die Verarbeitungschritte hangelt und die Werte dort ausließt. Es gibt genügend Bugs wo einem der Debugger nicht helfen würde, da es konzeptionelle Fehler sind.
Endlich mal ein richtiges und gutes Infovideo. Es gibt so viel Scheiße mittlerweile auf TH-cam weil es ja jetzt "trendy" ist "coder" zu sein.
In der Tat kann ich eine Reihe von No-Gos, gerade als Quereinsteiger nur unterstreichen. Auch wenn es eine Schnittmenge zu den Punkten Qualität, Dokumentation, etc. ist halte ich es mittlerweile auch für wichtig sich relativ früh mit Testautomatisierung zu beschäftigen. Mit einer neuen Funktion gleich die Unit Tests zu implementieren hilft zumindest uns im Team ungemein. Integration Tests und End 2 End ist aus meiner Sicht nix für den Beginn bzw. für kleinere Projekte. Es hilft auch besonders im Codereview, wenn man dann halt schnell feststellt, dass die Unit Tests und die geschriebene Funktion inkl. Dokumentation nicht vollständig oder gar widersprüchlich wirken.
Ich habe eine andere Einstellung zum "Einfach drauf los coden". Ich glaube, dass es viele gibt, die ihr erstes Programm nicht selbst geschrieben, sondern aus dem Internet kopiert haben. Niemand kann nur aufgrund der Syntax-regex ein Java HelloWorld Programn schreiben. In meinen Augen ist es eine gute Idee, sich ein kleines(!) Programm aus dem Internet zu kopieren, und damit herum zu spielen.
cooles Video und stimme allem voll zu. Aber gerade beim Debugger hab ich unglaubliche Schwierigkeiten ihn zu benutzen. Hast du vielleicht ein Video oder könntest du eins machen, über generelle Tipps wie man debuggen sollte und wie man einen Debugger benutzt?
In der Python playlist ist eins afaik 🤔
Python als Anfängersprache würde ich heutzutage sofort unterschreiben.
Als ich angefangen habe zu coden, war Python noch relativ unbekannt, die Version 2.0 noch lange nicht released, von daher fing es bei mir an mit Basic. Nicht ganz so klassisch wie bei anderen mit C64-Basic, sondern erst, als bei MS-DOS 5 QBasic dabei war.
Mehrere Sprachen gleichzeitig zu erlernen ist sicher nicht hilfreich. Mehrere Sprachen zu beherrschen, indem man eine nach der anderen lernt, ist hingegen etwas, das ich für sehr sinnvoll halte. Beruflich bin ich in der Embedded-Welt unterwegs, und da geht bei uns, wie fast überall sonst auch, nichts über C. Trotzdem bin ich froh, daß ich auch Python beherrsche und noch Restkenntnisse anderer Sprachen, mit denen ich mal hier und da zu tun hatte, zu haben. Nicht genug, um direkt ein Programm zusammenzukloppen, aber genug, um zu wissen, wo ich im Zweifel nachschlagen kann.
Ich habe damals zwangsläufig mich alleine reinfuchsen müssen. An Internet zu Hause war noch lange nicht zu denken (mein Google hieß Fachbuch, und selbst die waren schwer zu kriegen, unser Buchladen war nicht gut sortiert), und selbst Mailboxen waren für mich unerreichbar. Im direkten Freundeskreis hat sich dafür niemand interessiert. Mit den Möglichkeiten, die man heute hat, sollte man aber in der Tat anders an die Sache herangehen.
Das Qualitätsthema kann ich gar nicht genug unterstreichen. Mit Code, der einfach nur grauenhaft zu lesen ist (aber seinen Zweck irgendwie erfüllt), kämpfe ich auf der Arbeit regelmäßig. Dabei kann man nicht mal den Kollegen, die ihn geschrieben haben, einen Vorwurf machen. Die wissen selbst, wie schlecht er ist, aber wenn das Management, das nicht mal ein "Hello World" auf der Kommandozeile hinbekommt, Druck macht und nicht versteht, welche Kosten es später verursacht, vorher Zeit für Qualität einzusparen, kann man halt nichts machen.
Wenn man die Möglichkeit zum anständigen Debuggen hat, ist es geradezu dumm, diese nicht zu nutzen. Wer aber im Embedded-Bereich, gerade am unteren Ende der Skala, unterwegs ist, hat diese Möglichkeiten gar nicht. Privat bin ich viel auf AVRs unterwegs, die kleineren haben teils gar keine Debugmöglichkeiten, und die größeren, selbst wenn sie JTAG können - sorry, die passende Hardware, um das an den PC zu bringen, ist mir einfach zu teuer. Da bleiben nur Ausgaben über die serielle Schnittstelle, oder teils sogar nur Pulse auf Leitungen, die man sich mit dem Oszilloskop anschaut. Für mich hat jede Art von Debugging ihre Daseinsberechtigung, allerdings sollte man halt, um sich das Leben zu vereinfachen, immer die komfortabelste, die die jeweilige Situation bietet, nutzen. Anders gesagt, man kann Python auch mit einem einfachen Texteditor schreiben und über die Kommandozeile laufen lassen, aber wenn man mal den Debugger in PyCharm genutzt hat, kennt man eben auch die "dunkle Seite der Macht". 😎
Tip 19: nicht immer SOFORT jedem 'neuen heissen Schei..' hinterher jagen. 😀
Oft ist es nur alter Sche... in neuem Gewand
Ich bin jetzt seit ca 6 Monaten auf einem beruflichen Gymnasium und mache praktische Informatik. Und auch ich habe erfahren müssen, dass man auf Dokumentation nur verzichten kann, wenn das Programm innerhalb der Unterrichtsstunde fertig wird und man es danach nicht mehr braucht. Ansonsten lernt man es auf die harte Tour
Hi Morpheus, danke für deine Videos! Ich wollte fragen, was du für Notizen benutzt - ich habe jetzt Joplin und experimentiere mit Logseq. Schöne Weihnachtszeit!
Richtig knorke wäre eine aktuelle reihe zu haskell, ich bin mathestudent und wir müssen das im Nebenfach belegen :)
Es gibt ne Reihe von mir dazu, aktuell ist die zwar nicht aber es sollte helfen
Ich bin inzwischen der Meinung, eine Programmiersprache und deren Syntax sind nur Mittel zum Zweck. Man sollte schon am Anfang mehr Wert auf Semantik legen, etwas, was ich erst viel später verstanden habe. Man sollte sich auch verschiedene Programmierparadigmen anschauen, also Imperativ, objektorientiert oder funktional. Natürlich nicht alles auf einmal, aber man sollte schon früh zumindest davon gehört haben.
Ich bin auch gar nicht mehr davon überzeugt, dass Python eine gute Einsteigersprache ist. Man hat zwar schnell erste Erfolge, gewöhnt sich aber auch schnell gewisse Unarten an.
Ich finde es inzwischen noch nicht einmal abwegig, mit einer rein funktionalen Sprache wie Elm anzufangen.
ich habe bisher für die Programmiersprachen die ich bis jetzt gelernt habe versucht alles aus der offiziellen Dokumentation rauszuholen, weil ich dann auch nützliche Sachen gefunden habe die auch mit der Programmiersprache zu tun hat die man sonst anders oder umständlicher gelöst hat.
Käse mag lecker sein, aber stellt euch vor ihr seid lacktoseintolerant. XD Sind aber auch enorm wertvolle Tipps. Danke dir.
Schönes Video. Unittesting wäre noch so auf meiner Liste.
Niemals schau ich mir das Video einen Tag vor ner Klausur an. 😂
Hallo Morpheus,
Erstmal einen riesen Lob für deine Tutorials und Vlogs.
Ich arbeite mich gerade durch das Buch „Python 3 von Rheinwerk“
und deine Tutorials sind da eine sehr große Hilfe.
Ich habe ein Problem und vielleicht geht es anderen auch so.
Mein Verstand ist sehr Visuell, Objektiv und Räumlich orientiert.
Ich versuch es mit dem KFZ-Mechaniker zu vergleichen. Wenn ein KFZ-Lehrling an seinem ersten Tag etwas über Reifen erklärt bekommt,
dann weiß er dass es 4 Stück sind und wo die ungefähr am Auto sitzen. Jeder auch noch so Technik unbegabte Mensch wird wissen
wo der Motor und wo der Kofferraum ist.
Es gibt das Video „HTML und CSS in 90min“. Niemand lernt es in 90min aber man hat einen Überblick wo alles hingehört.
Mein Python-Auto steht aufgebockt mit dem Motor auf der Rückbank und der Fahrersitz klebt kopfüber am rechten Kotflügel.
Du erklärst das Programmieren sehr verständlich aber in deinem Kopf haben die Schleifen und Funktionen schon ihren Platz.
Für mich sind es Puzzleteile ohne das Bild auf der Packung.
Wahrscheinlich bin ich zu ungeduldig und es ist nur eine Idee.
Mach weiter so und danke für deine Videos.
MfG Alex.
Das ist hilfreich für meine weiteren Videos, danke dir 😊
du hast mein problem richtig gut beschrieben. bist du zu einem ergebnis gekommen? was hast du gemacht?
Jepp, Refactoring ist geil und lässt sich selbst an den Kopf fassen :)
Hey,
cooles und interessantes Video :)
Woher nimmst du eigentlich immer deine ganzen Sportvideos, die du in deine Videos einbaust?
Interessant - Focus auf eine Programmiersprache u die zur absoluten Meisterschaft bringen ♥
Bist du zufällig Mi. auf der Hannover Messe?
Leider nein, ich wusste nichts von einer Messe🙈
@@TheMorpheusTutorials Hannover Industriemesse .- schöne Möglichkeit für persönliche Gespräche ...
Ich küsse doch dein herz❤️
Den Punkt 'Kein Sozialleben' find ich gut :D ich hab im Praktikum von meinem Studium erstmals ein großes Projekt selbst programmiert. Das ging dann echt soweit, dass ich schon überall vor meinem geistigen Auge nur noch Code gesehen hab. Ich hab sogar davon geträumt, was man noch verbessern kann. Vllt hat sich mein Gehirn dort auch wirklich auf den Modus 'Programmierer' umgestellt. Aber ernsthaft: Die besten Ideen kommen IMMER, wenn man mal etwas Abstand von der Materie hat!
könntest du bitte vllt auch mal für absolut unerfahrene die nichts von verstehen ein tutorial generieren, für jemand der überhaupt nichts von versteht :) ein einfaches idee von a bis z ... also wie das geschrieben werden soll, wo und wie umgesetzt werden muss, und wie das am ende angewendet werden kann, wäre das eventuell möglich(?, wäre echt dankbar!
Ich kann dem nur zustimmen, wenn ich damals diese Tipps bekommen hätte, wäre mir viel Arbeit erspart geblieben. Vielleicht noch ein Punkt der nicht erwähnt worden ist : Sucht euch für den Beginn eine einfache Programmierumgebung aus!
@Bloot King zb visual Studio
Thema Tools: Man sollte immer die verwenden die den eigenen Workflow Beschleunigen und Unterstützen. Außerdem bringen einem viele Tools erst wirklich einen Nutzen wenn man mehr Erfahrung beim Programmieren und der verwendeten Sprache hat.
Deswegen kann ich die Aussage man sollte auf jeden fall einen Debugger verwenden nicht Unterschreiben.
Bei meiner Arbeit mit Webstorm habe ich eine ganze Weile geziehlt mit dem Debugger gearbeitet, weil ich Dachte er beschleunigt meine Arbeit. Nach einer Weile hab ich fest gestellt das er mich oftmals sogar ausbremst.
Schuld daran waren falsch gesetzte Breakpoints (vergessen zu entfernen, versehentlich gesetzt), schleifen mit hunderten Durchläufen oder Breakpoints an denen der Debugger gar nicht gehalten hat obwohl der Code abgearbeitet wurde (eigenheit des Debuggers).
In den meissten Fällen ist eine gezielte Logausgabe mit den relevanten variablen Schneller.
14:14 das war ein Fehler den ich gemacht habe. Nach 2 Jahren Programmieren hatte ich immer noch keine Ahnung und habs dann mal für eine Zeit lang gelassen. Jetzt bin ich aber wieder mit Kopf und Seele dabei am coden! :)
Gutes Video, werde mir jz mal etwas zu git anschauen.
Danke 🥳
Hab mich jetzt doch endlich mal dazu durchgerungen mich mit git zu befassen (war einfach zu faul) und wow, mit der vsc Integration is das ja soooooo angenehm, ich ärgere mich jetzt direkt, dass ich das nicht vor Monaten schon gemacht habe 😄
StackOverflow als Bookmark im Browser speichern. Gaaaanz wichtig. :D
Zu Planung: Aber schreibt euch eure Ideen trotzdem auf. Teile davon werdet ihr wieder nutzen - denn all eure Kreativität ist wertvoll. Nur vielleicht nicht für euer aktuelles Projekt; vielleicht auch nur als Steinbruch für zukünftiges. Ich bin seit 5 Jahren dabei, Stück für Stück auf Ideen aufzubauen, die ich ursprünglich mit einem Kollegen an einer Glaswand besprochen habe. Sie haben sich seitdem stark verändert, aber die Entwürfe von damals sind immernoch eine wertvolle Grundlage.
Super gut wie immer.
Ich hab auch mit autoit angefangen. Auch genau so mousemoves und in autostart. Flashback
Gerade mit Python angefangen. Hier im Vorfeld den Hinweis erhalten, ein Grundverständnis in HTML und JS wäre hilfreich. Glaube der Tipp war gar nicht so blöde. Grundverständnis war zum Glück vorhanden, hatte ich nur nochmal aufgefrischt.
Zum Thema Tutorialhell kann man auch noch anfügen (als Fehler, den ich anfangs recht lange begangen hab), dass es auch wichtig ist, auch selbst mal was zu coden und das Erlernte wirklich in die Praxis umzusetzen, um es zu vertiefen oder zu sehen, wo noch Lücken bestehen. Ich kenne etliche und nehme mich da nicht aus, die zu Beginn einfach nur (beispielsweise) 5 Videoreihen und 2 Bücher zu C# durchsehen, ohne jemals eine Zeile Code zu schreiben und hoffen, dadurch programmieren zu lernen.^^
Dieser Moment, wenn man zu viele Projekte hat, aber auf keins so richtig Bock, und dann deswegen in der Qual der Wahl einfach nichts tut...
Dann such dir ein neues Projekt auf das du richtig bock hast. :)
Fühlen wir glaube ich fast alle 😂😂
Super motivierender Upload für Progrsmmieranfänger!
Ich nutze auch Python und ja ich mache diese Fehler teilweise immernoch und ärger mich jedesmal darüber. WTF ist dieses cdata ?! oder was macht easyfunc(stuff) ?! Zu glauben man wird immer wissen was man da gemacht hat, war mein erster Fehler. Das Problem dabei war. Ich hab dieses Programm gebraucht. Ich hatte 2 Wochen Zeit war nach 3 Tagen fast fertig, dachte mir: "joa bist ja eh fast fertig, machst mal pause und gehst zum strand". Als ich nach einer Woche das Projekt abgeben wollte, hatte ich ernsthaft geglaubt ich hab mein Projekt nicht gespeichert und dieses Spaghetti, was ich mir gerade anschaue habe ich doch niemals vor 1 Woche geschrieben. Ich durfte alles nochmal machen und habe es gerade noch so geschafft abzugeben. Bevor ihr euer Projekt aus Zeit, Frust oder sonstigen Gründen schließt, nehmt euch die 2 min und schreibt Kommentare für euer Zukünftiges ich :D. Mögen sie in Frieden ruhen, die Projekte welche nie fertig gestellt wurden weil der Entwickler keine Ahnung mehr hatte was er da eigentlich gemacht hatte und das neu schreiben schneller ging als das herauszufinden.
ja aber nur nötige kommentare, den rest mittels guter datei, funktionsnamen und variablennamen und guter code struktur implizit erklären. glaub mir, es macht kein spaß, seiten von kommentaren bei einem refactoring ebenfalls auf den neusten stand zu bringen
Koenntest du mal einen Stream machen, in welchem du Programme von Zuschauern bewertest und Tipps gibst?
Meine Ergänzung: So schnell wie möglich damit anfangen, kontinuierlich Tests zu schreiben. Ich hab das irgendwie verpasst und mach das noch immer per Hand - dabei gibt es ja, abhängig von der Sprache, gute Frameworks dafür.
Achja, und Dokumentationen am besten direkt im Code lernen und nicht »auf nem Blatt Papier«. 😏
mal zum Punkt 2:
mir wurden im Laufe meiner Ausbildung über 7 Verschiedene Sprachen beigebracht. Mittlerweile bringe ich mir die achte (python) selber bei, um wenigstens eine richtig zu können
Im 1. Semester gabs bei uns ne dicke C-Prüfung wo es mal gleich geschmeidig zwischen 60 - 70% durchgehauen hat...man muss dazu noch anmerken dass mehr als 1/3 nichtmal angetreten ist lol
danke für die tips
Wie tief in die Materie von Python dringt das Webinar ein?
Bei mehreren Programmiersprachen bin ich nicht ganz der Meinung... Man sollte immer die Sprache auswählen, die für die Aufgabenstellung am besten passt. Man kann halt nicht mit allen Sprachen alles machen. Zwischen Sprachen zu wechseln kommt auch immer auf die Syntax an. Zwischen Java, C#, C++, C und JavaScript hin und her zu wechseln, ist kein großes Problem.
fände interessant zu wissen bzw zu sehen wo Schleifen in der Praxis eingesetzt werden ... ein paar simple Praxisbeispiele ... Websdesign, Games, KI, ... THX ♥
Tolle Motivation
Der wohl nervigster Fehler in meiner Anfangszeit war Backuping. Habe nie richtig Wert draufgelegt und so 2 Projekte verloren.
Das sollte auch mal erwähnt werden :)
PS: Backuped eure Projekte ;)
Wobei das Ritual ein Backup zu machen das Wichtige ist, nicht ob man nun GIT verwendet, oder einfach per Batchdatei alles in ein ZIP packt und im Netzlaufwerk speichert. Git ist auch nur so sicher wie der Ort wo das Repository liegt.
Als ich begonnen hab, hab ich immer kleine bis mittlere Projekte gebaut. Wie heute 10 Jahre später noch mit einem Blatt Papier das Brainstorming gestartet. Wenn es dann mal funktionsfähig war, sind mir später immer wieder Pattern über den Weg gelaufen die perfekt auf das Problem gepasst hätten. Ich hab dann noch mal von 0 gestartet und das Pattern implementiert. So lernt man sehr schnell in größeren Problemen Pattern zu erkennen und verliert sich nicht in Details. Mein Tipp: Kauft euch ein Buch mit den wichtigsten Pattern und baut ein 2h Beispiel-Projekt zu jedem. Das coole ist das dieses Wissen nicht Programmiersprachenabhängig ist.
Du hast so recht... wenn ich etwas programmiere benutzte ich oft meine Lieblings Suchmaschine.... und bekomme dadurch neue Ideen oder Möglichkeiten aufgezeigt! Dies kommt nicht gleich am Anfang eines Programmes....sondern im Laufe der Zeit.... 1 Code... dann kommt der nächste Code... und dann wieder der nächste.... dann wieder prüfen .... und wieder von vorne.... haha! Ich hab angefangen C# zu lernen, wenn ich ehrlich sein soll aus Leidenschaft und denn Spaß denn ich dabei hatte... habe auch von hier am Anfang mit eine kleine Tutorial Reihe angesehn, wie z.b (IF-Befehle / else) (Mathematische Berechnungen ausführen) ( Schleifen und Variablen) und mein erstes Programm war dass Hello World Programm mit eingebautem IF-Befehl.... auch wenn die Consolen-APP nicht viel konnte, hatte ich richtig Spaß daran und konnte mich schon etwas hocharbeiten und einige Befehle mehr lernen. Viele Leute denken, wenn es sie Programmieren lernen, dass sie gleich Tools erstellen müssen wie Microsoft und mit Fenster und pi...pa...po! Und viele finden dann sowas langweilig, wenn sie Mathematische Berechnungen lernen müssen und wie der Code diese in Befehle ausführt.... aber genau dass sind die ersten Bausteine um Programmieren zu lernen! Binärzahlensystem und dass Verständnis dafür um schlussendlich zu verstehen was und wie eine Codezeile ausgeführt wird. Und Pausen sind Pflicht... Lernen ist anstregend!!! Und dass gilt für Coden 3x!!!! Hier kann ich auch nur die Leute sagen, entspannen und sich kreativ entfalten... denn Programmieren ist nicht nur schreiben... es ist Kunst! :-) Was mir mit Befehlen geholfen hat, war eine kleine Toolbox wo ich die Befehle dort alle gespeichert hatte und jeden Befehl am Anfang selbst versucht habe in die Software zu schreiben. Dass aller wichtigste ist Probleme die auf einen kommen, selbst zu lösen mit dem Debugger! Beherrscht man die Kunst der Problemlösung und man kann kleine Codes selbst wieder in Ordnung bringen.... ist man auch auf denn richtigen Weg! Wenn ich ein Problem in ein Code bekomme "Fehler" dann schaue ich nicht in eine Suchmaschine, sondern befasse mich damit was ich jetzt falsch gemacht habe und beginne wieder von vorne im Programm. So bekommt man auch ein Verständnis für die Fehlersuche.... Ich war am Anfang auch extrem überwältigt von der Visual Studio Software und soviel auf einmal am Anfang hätte mich auch überfordert....
Ok, jetzt hast du mich an den eiern, ich lerne jetzt Python
Hallo "Morpheus",
könntest du ein Einführungsvideo zum Thema "Compilerbau" machen? Meine Kommilitonen / Kommilitoninnen und ich verzweifeln gerade, weil die Skripte, mit denen wir lernen (müssen), nicht gut strukturiert sind. Es tauchen beispielsweise Größen auf, die vorher nicht definiert wurden.
Wir haben uns jetzt zu Lerngruppen zusammengeschlossen und versuchen, anhand verschiedener Videos und Bücher, ein ordentliches Fundament zum Thema zu erarbeiten. Aber wir alle fragen uns, wo genau fängt man an?
Vielleicht kannst du ja Abhilfe schaffen und eine allgemein verständliche Einführung geben. Vielen Dank im Voraus im Namen des ganzen Kurses.
Oh, vermutlich wird das schwer im der Zeit, wo ihr das braucht. Ich nehme nicht an, dass ihr erst in ein paar Semestern prüfen wollt
Wurde "crafting interpreters" gelesen? Das ist meine aktuelle Empfehlung zu dem Thema. (Zu der toy language von LLVM kann ich aktuell noch nichts dazu sagen.)
Du willst garnicht wissen wie viel du mir geholfen hast xd
Danke für den super Inhalt!!
Dem ist nichts hinzuzufügen :) Ich bin leider gezwungen alleine zu programmieren. Foren, Chats und TH-cam helfen dann aber auch nicht gleich verrückt zu werden. Motivationstechnisch kann das aber ein ganz schöner Killer sein, gerade wegen des fehlenden Austauschs wenn man mal festhängt. Geteiltes Leid ist halbes Leid oder wie war das :P
Hallo.
Ja das mit dem alleine programmieren kenn ich. Bin da auch eher alleine. Ich hab vorwiegend das Problem, dass ich nie weiß ob es "richtig" oder "guter Stil" ist.
Auch die Tutorialhell schlägt bei mir immer wieder zu. Ich kann die einzelnen Lektionen zwar abarbeiten und nachvollziehen, aber diese ordentlich in ein eigenes Projekt einzuarbeiten ist dann echt eine große Herausforderung.
Was wirklich hilfreich wäre, wäre z.B. eine Website wo Projekte mit Sourcecode zum Download bereitgestellt werden und nach Schwierigkeitsgrad sortiert sind.
Da könnte man sich dann auch ein paar Tipps holen.
Keine Ahnung wie es dir dabei geht und wo deine Probleme liegen?
Welche Sprache lernst du den gerade und was sind deine Ziele?
MFG
@@francisj.hunter1843 du bekommt das "richtig" und "guter Stil" selbst heraus, weil dir das dein zukünftiges ich schon sagen wird, sofern du den code später nochmal nutzt :)
@@weirdwordcombo Ah meinst du diese Momente, wo man denkt man hat eigentlich noch nichts dazugelernt. Liest dann seinen alten Code und bekommt Schnappatmung und Anzeichen eines Herzinfarktes ? 😂😂.
Ich muss mir auch immer vor Augen halten, es es komplett egal ist, dass mein Code nicht gut ist. Weil es jetzt ja kein Code für eine kritische Infrastruktur ist ;)
MFG
@@francisj.hunter1843 Das sollte mit der Zeit tatsächlich von ganz alleine kommen. Dann steigen auch die eigenen Ansprüche an die Code-Qualität. Refactoring kann unglaublich befriedigend sein, man sollte das aber auch nicht übertreiben :)
@@francisj.hunter1843 ja genau das mein ich. schlechter code kann auch dazu führen, dass dir das projekt weniger spaß macht, und du merkst es vielleicht nichtmal bewusst
Kann man sich irgentwie eine Wdh von dem Workshop ansehen? Ich wäre echt gerne dabei, habe jedoch zu diesem Zeitpunkt noch Schule.
🤔 bringe ich in Erfahrung, aber im Zweifel kannst du sicher später dazu kommen. Alternativ gibt's noch weitere Workshops von der FHDW unter dem Link in der Beschreibung 👍
Ich stehe auf dem Standpunkt, wenn man das Grundprinzip der Programmierung verstanden hat, dann ist die Sprache fast nebensächlich. Ich programmiere seit etwa 38 Jahren und musste eigentlich immer nur die Sprache den Bedürfnissen anpassen, was aber auch der Bequemlichkeit entspringt, in Assembler geht alles ;)
Grüße zurück ;)
Habe gerade erst dein Video gesehen - gibt es die Möglichkeit den Online Kurs vom 31.05. nachträglich noch einmal zu sehen? Der Kurs für Robotik interessiert mich auch sehr.
Gibt es, ich werde es überall teilen, sonst unter dem Link in der Beschreibung
@@TheMorpheusTutorials Danke Dir!
AutoIT ist top.
Und die Beschreibung ist auch richtig top.
Zuerst Java gelernt, dann zu AutoIt rüber. Reicht für mein tägliches doing.
Python nerft richtig. Kannst gleich zu Powershell.
0.01 + 0.02 = 0.0300000000001
Das ist aber in vielen Sprachen 😂 liegt an floating point arithmetik
Mein größter Fehler war immer, dass ich mir keine Zeit gelassen und meinem Kopf zu wenige Pausen gegönnt habe. Wenn ich heute einen Bug habe, den ich auf anhieb nicht lösen kann, dann mache ich einfach mal ein paar Stunden oder ein paar Tage Pause. Das Problem löst sich dann meistens sogar fast wie von alleine :)
@Morpheus ich glaube du hast dich verschrieben und meintest im vorletzten Abschnitt (ich meine damit die Bezeichnung des Abschnittes) die Befürwortung aus der Sicht des Anwenders und nicht die Verneinung dessen.
Viele Grüße und tausend Dank für deine Tutorials und Unterstützung!!
kann man dich noch weiter Unterstützen außer mit einem Abo ?
Hab es Mal geändert 😅 es war glaube ich ein wenig missverständlich, da es ja um Fehler ging 🙈
Du kannst gerne bei meinen anderen Kanälen oder Patreon vorbeischauen, wenn du magst 😊 ich bedanke mich schonmal im Vorfeld
Gibt's das Webinar auch als VOD? Würde das gerne machen aber ich arbeite bis 17:00 Uhr
Gerne trotzdem anmelden, in Nachgang können wir so das Webinar besser zur Verfügung stellen
ist Python besser als Javascript zum anfangen? hab jetzt schon bisschen Javascript gemacht und paar Sachen nachgemacht die Grundsachen hab ich auch teilweise verstanden, heißt auch meistens das Javascript für Anfänger am besten geeignet sein soll 🤔
Immer wenn Ich dieses leidige Thema sehe, stimmt mich es mich traurig das Pascal so auf's Abstellgleis geschoben wurde. Die Sprache wurde gemacht um Programmieren zu lernen und ist genauso maechtig und Hardwarenah wie C und wenn man einer dieser beiden Sprachen gelernt hat, kann man jede Hoch-Programmiersprache. Ich habe in ueber 20 Jahren Projekte in 14 verschiedenen Programmiersprachen realisiert, aber mit der Antwort auf die Frage was denn die beste Programmiersprache sei, konnte ich bisher noch keines realisieren: "kommt drauf an"
Ich habe im Informatik-Unterricht Anfang der 80er Jahre UCSD-Pascal auf dem Papier gelernt. Später habe ich den Atari ST 7 Jahre lang in GfA-Basic (mein geliebtes "Interpreter-Pascal"), ST-Pascal und Assembler programmiert. Pascal war einfach nur geil!
@@fortunato1957 Da habe Ich echten Respekt vor ^^ aber Ich kann da gar nicht mitreden. Ich habe mal vor ziemlich genau 8 Jahren den Auftrag bekommen irgendwas zu finden das moeglichst unkonpliziert "Hello World" auf WindowsCE kompiliert und Free Pascal gewann den Zuschlag und obwohl Ich schon etlisches vorher realisiert habe, hab Ich erst durch Pascal begriffen was ich da genau, wann von dem prozessor abverlange und ueberlege nur deswegen heute immer 2 mal ob ich unbedingt neuen speicher auf dem heap beanspruchen muss
Gutes Video
DIe Frage mag jetzt doof sein, aber das mit dem Textadventure klingt mega cool, meinst du das man das quasi mit Python machen kann oder hast du dazu schon was gemacht?
Genau, du kannst quasi mit meiner playlist immer dein Textadventure erweitern. Erstmal nur ein Dialog, dann Bewegung, Inventar,...
@@TheMorpheusTutorials mega dann kann ich das endlich damit anfangen
Witzig das du auch als erstes einen Virus programmieren solltest. Mein erstes Projekt war eine winzige Zip-Datei die sich selbstständig iterativ entpackt und dadurch eine unendliche Menge an Speicherplatz verbraucht bis die Festplatte vollgeschrieben ist und sich der PC nichtmehr bedienen lässt. Sehr unterhaltsam ;)
NoGo 19: Verwendung eines Debuggers. ;)