Ich habe zehn Jahre in der Informatik als Systemadmin, Teamleiter, Netzwerkbetreuung und Verkäufer einer Software. Bis anhin habe ich Software / Scripte angepasst, integriert oder kleine Scripte selbst geschrieben. Dies in verschieden Sprachen: JavaScript, Java, Ruby, Python, PHP, SQL oder HTML, css. Während meiner Ausbildung zum Wirtschaftsinformatiker habe ich die Programmiermethoden, Datenstrukturen, Modellierung, Objektorientierung gelernt bekommen, aber nie wirklich Programmieren gelernt. Einfach, dass ihr wisst, über welches programmiertechnische Level ich verfüge.
Jetzt möchte ich mich tiefer mit Python beschäftigen und habe mir ein Flask Projekt ausgesucht, das im weitesten Sinn als Protokollwerkzeug während Meetings eingesetzt werden kann. Dies, weil ich an vielen gelesen habe, dass dies eine gute Methode für das Erlernen einer Sprache darstellt. Ausserdem bin ich eher der Macher als der Theoretiker.
Im Moment sieht mein Programmierprozess etwa so aus:
Dokumentationen lesen - Tutorial suchen - copy, paste - basics lesen - ausprobieren - Beispiele verstehen - Fehler - ausprobieren - Fehler - youtube video schauen - neues Beispiel - copy, paste - basics lesen - in ein Forum posten - es geht - nächstes Feature etc. etc.
Sollte man die Basics am besten auswendig lernen? Versteht mich nicht falsch, ich kenne die Basics, ich muss nur gelegentlich die Syntax überprüfen oder nachlesen, ob ich den richtigen Datentyp verwende. Ich habe einfach noch nie irgendwelche Algorithmen auswendig gelernt oder entsprechende Aufgaben gelöst.
Ich wisst, glaube ich, was ich meine. Jetzt frage ich mich halt, ob dies Zielführend ist? Habt ihr ähnliche Erfahrungen gemacht oder wie ist es euch am Anfang ergangen ist?
Grüsse
Andreas Hupfer
Geht programmieren so?
Es gibt eine durchaus relevante Menge an Leuten, die nicht ganz zu unrecht die Fokussierung auf Algorithmen in der Ausbildung bzw. Bewerbungsprozessen kritisch sehen. Weil es eben doch oft nur “Kleber” zu programmieren gilt. Ich selbst sehe das nur als so halb wahr. Es stimmt, dass oft die Schöpfungshöhe eher gering ist. Aber ein solides Verständnis der Komplexität bestimmter Algorithmen und Datenstrukturen halte ich für durchaus relevant.
Aber um deine Frage etwas klarer zu beantworten: ja, oft sieht Programmierung so aus.
Aber um deine Frage etwas klarer zu beantworten: ja, oft sieht Programmierung so aus.
Ich habe schon ewig nichts mehr auswendig gelernt. Wenn man irgendwelche Sachen immer wieder braucht, weiß man sie einfach irgendwann, und man muß sie nicht mehr umständlich nachschlagen. Das wichtigere ist, zu wissen, wo man nachschlagen muß.
- noisefloor
- User
- Beiträge: 4157
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
Copy & Paste halte ich am Anfang eher für suboptimal, weil man IMHO beim Tippen gerade am Anfang bewusster lernt. Lese mache ich auch viel bzw. habe ich auch viel gemacht, YouTube halte ich für suboptimal, weil man das Tempo nicht selber bestimmen kann. Ist aber sicherlich Geschmackssache. Ansonsten passt das IMHO schon ganz gut.
Gruß, noisefloor
Copy & Paste halte ich am Anfang eher für suboptimal, weil man IMHO beim Tippen gerade am Anfang bewusster lernt. Lese mache ich auch viel bzw. habe ich auch viel gemacht, YouTube halte ich für suboptimal, weil man das Tempo nicht selber bestimmen kann. Ist aber sicherlich Geschmackssache. Ansonsten passt das IMHO schon ganz gut.
+1 . Ich denke, dass man effizienter (=schneller) sein kann, wenn man weiß, wie man richtig sucht. Wenn man halt schneller an brauchbare Suchtreffer kommt kann man schneller weiter programmieren.Das wichtigere ist, zu wissen, wo man nachschlagen muß.
Gruß, noisefloor
Ich hatte auch irgendwann vor mir Python beizubringen, also Tutorials lesen, ausprobieren und viel Code kopieren. Dann war aber leider die Erfolgskurve sehr flach, weil fast nie etwas von dem kopierten Code funktionierte.
Also, hinsetzen und mir ein Projekt ausgedacht. Und dann ran an die Umsetzung. Der Plan war mit PyQT5 eine Anwendung zu programmieren, es war ein langer Weg bis ich es halbwegs rund hatte.
Habe sehr viel dabei gelernt und kann mir heute gut selber helfen, wenn es mal klemmt. In seltenen Fällen, wenn ich das Problem eines Fehlers nicht verstehe, frage ich hier im Forum gerne nach.
Mittlerweile habe ich eine Anwendung geschrieben, die mittlerweile auch mit PyQt6 läuft. Wenn ich mal drüber nachdenke, bin ich da jetzt fast zwei Jahre dran. Immer mal wieder, auch mal längere Pausen usw.
Wichtig ist eine ordentliche Programmierumgebung und das man weiß wie man das benutzt (VSCodium, pipenv, git usw.) Und wichtig war für mich, zu verstehen wie man die Dokumentation von PyQt lesen muss. Ich denke, das es wie bei Dir oft so läuft. Für mich persönlich steht der Spaß im Vordergrund. Wenn mich Fehler mal richtig nerven, mach ich VSCodium zu
Also, hinsetzen und mir ein Projekt ausgedacht. Und dann ran an die Umsetzung. Der Plan war mit PyQT5 eine Anwendung zu programmieren, es war ein langer Weg bis ich es halbwegs rund hatte.
Habe sehr viel dabei gelernt und kann mir heute gut selber helfen, wenn es mal klemmt. In seltenen Fällen, wenn ich das Problem eines Fehlers nicht verstehe, frage ich hier im Forum gerne nach.
Mittlerweile habe ich eine Anwendung geschrieben, die mittlerweile auch mit PyQt6 läuft. Wenn ich mal drüber nachdenke, bin ich da jetzt fast zwei Jahre dran. Immer mal wieder, auch mal längere Pausen usw.
Wichtig ist eine ordentliche Programmierumgebung und das man weiß wie man das benutzt (VSCodium, pipenv, git usw.) Und wichtig war für mich, zu verstehen wie man die Dokumentation von PyQt lesen muss. Ich denke, das es wie bei Dir oft so läuft. Für mich persönlich steht der Spaß im Vordergrund. Wenn mich Fehler mal richtig nerven, mach ich VSCodium zu

Das geht mir natürlich auch so. Ich hatte bis jetzt auch immer mal längere Pausen zwischen den 'Programmieranfällen', man verlernt schnell.
Kann ich dies als alter Sack noch irgendwo auffrischen? Hat wahrscheinlich einiges mit Mathematik zu tun, evtl. wären da die eine oder andere Auffrischungsaufgabe noch kann lustig?
Ladet ihr auch manchmal fremden Source Code runter und analysiert diesen? Gibt es da eine Vorgehensweise, kann man so etwas lernen? Ich arbeite mit Pycharm; gibt es da ein Debugging Guide um fremden Code besser lesen zu können?
Grüsse
Andreas
Hallo,
ich versuche oft Fragen aus Foren zu beantworten und wenn es nur für mich. Man muss ja nicht gleich bis zu den Antworten runter scrollen.
Was auch gut ist:
https://adventofcode.com/
Damit wirst du auch mathematisch etwas gefordert. Die Schwierigkeit steigt mit den Aufgaben.
Grüße
Dennis
ich versuche oft Fragen aus Foren zu beantworten und wenn es nur für mich. Man muss ja nicht gleich bis zu den Antworten runter scrollen.
Was auch gut ist:
https://adventofcode.com/
Damit wirst du auch mathematisch etwas gefordert. Die Schwierigkeit steigt mit den Aufgaben.
Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
- __blackjack__
- User
- Beiträge: 13931
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@ahupfer: Kannst ja mal schauen was Unis so für Bücher in den Vorlesungen verwenden. Ein Klassiker ist „der Cormen“, also „Introduction to Algorithms“ von Cormen, Leiserson, Rivest, und Stein. Speziell bei dem würde ich persönlich die englische Ausgabe empfehlen. Denn zumindest ”damals” als ich den angeschafft hatte, wurde in der Übersetzung einiges an Text umorganisiert und der Haupttext ”mathematischer” gemacht, was im Original in einem Kapitel ganz hinten, zum Nachschlagen ”versteckt” war. IMHO sind englischsprachige Fachbücher manchmal besser verständlich, während deutsche Autoren manchmal dazu neigen das schön kompliziert oder extra ”mathematisch” kompakt zu schreiben, und so ein bisschen Elite-Denke fördern, nach dem Motto das muss ja nicht jeder verstehen, sondern nur die, die sich da hart durch kämpfen.
Fremden, guten Code analysieren ist eine gute Idee. Da kann man sehen wie andere Leute, bestimmte Probleme lösen und den Code aufteilen, und auch wie automatisiertes testen aussehen kann, und so weiter.
Fremden, guten Code analysieren ist eine gute Idee. Da kann man sehen wie andere Leute, bestimmte Probleme lösen und den Code aufteilen, und auch wie automatisiertes testen aussehen kann, und so weiter.
“Java is a DSL to transform big Xml documents into long exception stack traces.”
— Scott Bellware
— Scott Bellware