Anzeige
Anzeige
Kolumne
Artikel merken

Mein erstes Mal programmieren: Wie ich mir nebenbei selbst Python beibrachte

Bis Ende 2015 hatte Martin Weigert keinen blassen Schimmer vom Programmieren, schon gar nicht mit Python. Das sollte sich 2016 ändern. Was sich seitdem getan hat? Dieses Mal in Weigerts World.

Von Martin Weigert
4 Min. Lesezeit
Anzeige
Anzeige

(Bild: Shutterstock / kikujungboy)

Zum Jahresbeginn startete ich mit einem Python-Anfängerkurs beim Onlinedienst Codecademy. Es war abgesehen von passiven Grundkenntnissen in HTML das erste Mal, dass ich mich an einer Programmiersprache versuchte. In meinem ersten Erfahrungsbericht nach einem Monat klang ich optimistisch bis begeistert. Ich war beeindruckt davon, wie es Codecademy gelang, mich mit regelmäßigen kleinen Erfolgserlebnissen bei Laune zu halten. Ob ich aber durchhalten würde, war zu diesem Zeitpunkt aber völlig unklar.

Anzeige
Anzeige

Nun, elf Monate später, ist es Zeit für ein erneutes Fazit. Das Wichtigste zuerst: Ich bin noch immer aktiv und weiterhin überraschend begeistert bei der Sache. Schrittweise ein tieferes Verständnis für die Funktionsweisen und Prinzipien des Fundaments zu erhalten, auf dem die Digitalisierung fußt, ist ein unheimlich zufriedenstellendes Gefühl.

Codecademy ist der ideale Einstieg, aber…

Rückblickend konstatiere ich, dass der Codecademy-Anfängerkurs in Python der ideale Einstieg war. Der einzige Nachteil: Es gibt nur diesen einen. Ist man mit ihm fertig, muss man sich eine andere Option zum Weiterlernen suchen. Ich hatte den Kurs Mitte Mai abgeschlossen. Kurz darauf probierte ich es noch testweise mit einem kostenpflichtigen Codecademy-Pro-Konto (für 19,90 US-Dollar pro Monat), um einige angebotene Zusatzaufgaben zu erledigen. So richtig ergiebig war dies aber nicht, weshalb es bei diesem einen Monat blieb.

Anzeige
Anzeige

Mein Wunsch wäre, dass Codecademy einen Fortsetzungs-Kurs anböte. Dafür hätte ich gerne bezahlt. Aber Fehlanzeige. Jüngst kündigte der Dienst an, dass der bisherige Python-Kurs im ersten Quartal 2017 durch eine völlig neue, überarbeitete Variante ersetzt werden soll. Ich bin gespannt.

Anzeige
Anzeige

Learn Python the Hard Way

Nach Codecademy versuchte ich mich als nächstes am bekannten Buch „Learn Python the Hard Way“, das auch in einer kostenlosen Online-Version angeboten wird. Der Autor Zed A. Shaw liefert gut erklärte Python-Aufgaben mit von Kapitel zu Kapitel zunehmendem Anspruchslevel. Um diese auszuführen, musste ich erstmals mit einem Code-Editor (TextWrangler) sowie einem Kommandozeileninterpreter (Terminal auf Mac OS) arbeiten. Bei Codecademy läuft alles virtuell direkt im Browser. Das war bequem, aber der Wechsel zu „Profi“-Tools fühlte sich richtig an.

Learn Python the Hard Way richtet sich ebenfalls an Anfänger. Mein bei Codecademy erlerntes Wissen half mir aber sehr, schnell voranzukommen. Gleichzeitig lernte ich viel Neues. In den letzten Kapiteln allerdings wuchsen mir die Aufgaben über den Kopf, weshalb ich schließlich die Motivation verlor, mit dem Buch und den finalen Projekten bis zum Ende weiterzumachen. Mir war klar: Gerade, weil ich maximal zwei Stunden pro Woche in das Lernen von Python investieren möchte, aufgeteilt in drei oder vier kurze Sessions, darf die erforderliche Lernkurve nicht zu steil sein.

Anzeige
Anzeige

Google hilft

Nun stand ich wieder vor der Frage: Wie weiter?! Ich schaute mir kurz die Python-Kurse bei Coursera und Treehouse an. Bei beiden stehen Videolektionen im Vordergrund. Viele bevorzugen diesen Ansatz, ich lese lieber und bestimme die Geschwindigkeit der Informationsaufnahme selbst. Auch sagten mir die starke Fragmentierung der Kursangebote sowie (bei Coursera) das vorgegebene zeitliche Korsett nicht zu.

Schließlich fand ich doch die ultimative Fortsetzung meiner noch sehr jungen Python-„Karriere“: Google bietet einen eigenen Python-Kurs an, der sich an Personen mit „ein wenig Programmiererfahrung” richtet. In einigen sehr kompakten Kapiteln werden die wichtigsten Komponenten der Sprache nochmals zusammengefasst. Zu jedem Bereich stellt Google lokal auf dem Rechner auszuführende Übungen bereit. Das Anforderungslevel entsprach genau meinem Kenntnisstand. Der Google-Kurs half mir, das Gelernte aufzufrischen — und präsentierte die ein oder andere knifflige Aufgabe, die zwar einige Onlinerecherche erforderte, aber letztlich jeweils gelöst werden konnte.

Mit Googles Übungen bin ich noch nicht ganz durch. Trotzdem habe ich jetzt damit begonnen, meine eigene Aufgabe zu gestalten — indem ich eine Art sehr simplen Chatbot schreibe, den ich sukzessive um Fähigkeiten erweitere. Dabei tauchen natürlich ständig Fragen auf. Häufig muss ich Codeschnipsel suchen, doch fast immer gibt es bei der Programmierer-Community Stackoverflow eine Antwort. In der Regel genügt eine wörtliche englischsprachige Google-Suche (wie „how to raw_input only integer python“). Der Moment, in dem Terminal beim Ausführen einer Python-Datei genau das macht, was man sich erhofft hat, ist immer wieder großartig.

Anzeige
Anzeige

Fazit und Ausblick

Aus meiner aktuellen Sicht empfehle ich an Python Interessierten den Lernpfad Codecademy (wobei man vielleicht auf die neue Version warten sollte), Learn Python the Hard way und dann Google Python Course. Ist man bereit, drei- bis viermal pro Woche 30 Minuten zu investieren, kann man innerhalb von weniger als zwölf Monaten an einen Punkt gelangen, an dem einem Programmieren nicht mehr wie Magie erscheint, und an dem man rudimentäre Alltagsprobleme lösende, über die Kommandozeile ausführbare Programme selbst schreiben kann.

Als konkretes, ernsthaftes Projekt schwebt mir mittlerweile die Schaffung eines Online-Bots vor, der sich beispielsweise für das Verbreiten von Links nutzen ließe. Allerdings kann ich aktuell nicht einschätzen, wie weit der Weg dorthin noch ist, zumal ich vorläufig mit dem bisherigen Zeitinvestment weitermachen möchte. Ich sehe Python für mich als Langzeit-Lernprojekt mit geringer Intensität. Man muss wohl der Typ für solch einen Ansatz sein. Mir liegt er. Aber natürlich könnte man den von mir beschriebenen Weg auch als Intensivvariante mit mehreren Stunden pro Tag in Angriff nehmen. Dann wäre man wohl nach wenigen Wochen da, wo ich nach elf Monaten stehe.

Weitere Kolumnen der Serie Weigerts World findet ihr hier. Ihr könnt dem Autor auf Twitter folgen, seine kuratierten News zur Netzwirtschaft abonnieren oder seinen wöchentlichen E-Mail-Newsletter mit Leseempfehlungen beziehen.

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
11 Kommentare
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Viel Erfolg

Man kann ja auch sein Leben anreichern und sich kleine Tools für wiederkehrende Alltags-Aufgaben programmieren.

– CSV-Kontoauszüge scannen und Extract für den Steuerberater.
– Duplikate finden
– Regelmäßig Backups von Dokumenten.
– google-Suchanfragen in RSS-Feed umwandeln (bietet Google aber vielleicht für Google-Alerts selber an)
– Daten holen/auswerten/… in sqlite (oder mysql) reinschieben. Die Datenauswertung ist dann aber oft wohl eher SQL-Kenntnisse oder Fähigkeiten der SQL-Engine und ob und wie gut die Daten auswertbar sind. PDF-Rechnungen tun sich da beispielsweise oft eher schwer…
Dann ist man „hungrig“ und denkt im Hintergrund über Realisierungs-Wege nach.

Grundproblem: Man programmiert gegen APIs und nutzt Infrastrukturen – interagiert also mit anderen Systemen oder Unix-Kommandozeilen-Befehlen. Um um Data-Scraping zu verhindern, ist aus UDDI und XML leider nicht viel geworden. Sonst könnte man automatisch alle Bilanzen runter-sucken und automatisch durchchecken lassen.
Wenn man sich die Daten anschaut soll man sich die Werbung anschauen. Und Verlinkungen werden vielleicht bald verboten oder kostenpflichtig…

Viele Aspekte braucht man auch nicht unbedingt oder setzt sie erst später ein.

Das erinnert an die aktuelle Programmier-Algorithmen-Forderung in der Zeitung: Alle sollten erstmal wissen was eine SQL-Datenbank macht und wie man in Excel seine Wohngeld-Abrechnung macht und wie man per Recording und Abwandlung sein System „scripten“ kann. Dann if-this-than-that usw. HTML und Javascript weil das schnellen Erfolg liefert.
Die meisten Lehrer sind völlig überqualifiziert weil Theorie der Berechenbarkeit und Turing-Äquivalenz-Beweise fürs wahre Leben eher unnötig sind aber komischerweise keiner hier das weiss. Chomsky-Hierarchien und simple Daten-Vorhaltung (CSV,…) hingegen sollte jedem ins Blut übergehen so wie vor der Kurve bremsen und erst am Scheitelpunkt wieder Gas geben. Denn Daten und strukturierte Daten sind überall und wollen (endlich mal) nützlich weiter-verarbeitet werden…
Auch Megabyte, Gigabyte,… sollte und kann man Rentnern schnell verklickern und Hausfrauen und jedem. Der Durchsatz sollte eine innere Frage werden also wieso man die SD-Karte so langsam ausgelesen kriegt. Bei Formel-1 weiss man ja auch wie viel langsamer ein Auto fährt weil es mit bestimmten Reifen fahren muss. Auch Farbmodelle und 2D/3D-Aspekte der Computergrafik gehören dazu.
Viel Spaß wenn die WINTEL und BITKOM die Bildungs-Zilliarden bekommen…
Dez 2002: http://www.informationsdienst.ruhr/archiv/detail/archiv/2002/december/artikel/nrw-studenten-haben-mangelhafte-mathe-kenntnisse.html
Okt 2016: http://www.general-anzeiger-bonn.de/news/politik/nrw/Studenten-sind-zunehmend-studierunfähig-article3390759.html
Das nennt man induktives Prinzip. So kriegt das System dank Übervölkerung billige Arbeiter, Wähler und natürlich Soldaten… Und alles geht kaputt und muss ständig nachgekauft werden. Die Reichen freuen sich…

Antworten
sygnal

Hallo Martin,
sehr interessante Serie, danke!
Noch ein kleiner Hinweis: Im Fazit ist das Buch noch nicht richtig verlinkt.

Antworten
Martin Weigert

Gern. Und danke, ist gefixt.

Antworten
Marius

Hallo Martin,

sehr inspirierender Artikel. Als HTML / CSS – Profi und hauptberuflicher Designer scheue ich mich immer wieder vor den „richtigen“ Programmiersprachen. Auf der anderen Seite möchte ich unbedingt mehr von dem verstehen, was sich unter der Oberfläche abspielt, die ich gestalte. Deine mit uns geteilte Erfahrung ermutigt mich die Scheu zu überwinden und einfach mal anzufangen. Vielen Dank dafür.

LG
Marius

Antworten
Frank

@Marius
Es kann passieren, dass die Inspiration für das Designen sich desto mehr verliert, je mehr man in die Tiefe des Programmierens einsteigt. Scheints harmoniert das nicht gut miteinander.
Es würde sicher reichen, wenn man als Designer die Logik der Programme unter der Oberfläche versteht, ohne es gleich programmieren zu können. Das Zusammenspiel von Datenbank (z.B. MySQL), Serverprogramm (z.B. PHP) und Clientprogramm (Javascript) und wo hierbei HTML und CSS eingreift und umgekehrt.
Das hilft auch Programmierern enorm, wenn Designer etwas von dem verstehen, was dahinter passiert, denn nicht selten bekommt man Design-Layouts geliefert, die technisch so gar nicht umsetzbar sind oder nur mit teurem Aufwand gelöst werden können oder sogar umständlich hingebastelt werden müssen.

Antworten
Seb

den Ansatz finde ich auch immer wieder interessant…gibt es sowas? Also eine Erklärung der Logiken von Programmiersprachen und generell Webtechnologien und wofür diese jeweils verwendet werden (können)? Das wäre

Bulls Hit

Der Screenshot passt nicht so recht zum Artikel?

Antworten
Martin Weigert

Ja stimmt. Bildwahl mache nicht ich, aber ich hab gerade einen Screenshot meines Codes übermittelt, sollte asap ausgetauscht werden.

Antworten
Bulls Hit

Für unterwegs (Smartphone) gefallen mir die (kostenlosen) Apps von SoloLearn (sololearn.com) ganz gut, die auch offline funktionieren. Für Python und viele gängige Sprachen. Wohl eher was zum Auffrischen.

Antworten
Martin Weigert

Was mir gerade noch empfohlen wurde bezüglich praktischer Use Cases: https://automatetheboringstuff.com/

Antworten
Bulls Hit

Das fand ich seinerzeit lehrreich und eindrucksvoll:

http://www.dabeaz.com/pydata/

Antworten

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige