Python lernen mit Tigerjython noch sinnvoll/zeitgemäß?
Macht es noch Sinn, Python mit Tigerjython zu lernen, das auf Python 2 basiert? Wie schwer ist es von Python 2 auf Python 3 umzusteigen? Mich interessiert erstmal nur, wie Programmierung funktioniert, also die Konzepte dahinter. Wenn es mir Spaß macht, würde ich natürlich gerne weitermachen.
3 Antworten
Macht es noch Sinn, Python mit Tigerjython zu lernen, das auf Python 2 basiert?
Der Fokus von TigerJython liegt darauf, Anfängern einen tendentiell spielerischeren Einstieg in erste allgemeine Konzepte der Programmierung (z.B. Variablen, Kontrollstrukturen; erste Ansätze für Problemlösungen) zu geben. Bestimmte Python-Features werden bewusst nicht unterstützt, um zum einen das Entwicklungsumfeld einfach zu halten und zum anderen, da der Fokus nicht auf Python selbst liegt. Stattdessen gibt man eigene Module (wie gturtle) für ein abgestecktes Spielfeld vor, um es Anfängern erlauben, schnell und einfach zu (visuell) motivierenden Erfolgen zu kommen.
Demzufolge würde ich TigerJython für einen grundsätzlichen Einstieg in die Programmierung noch empfehlen. Für Python hingegen solltest du mit aktuellen Lernquellen für Python 3 in einem Python-Entwicklungsumfeld arbeiten.
Wie schwer ist es von Python 2 auf Python 3 umzusteigen?
Ich halte es nicht für schwer. Es gibt zwar ein paar Unterschiede in der Syntax oder dem Verhalten von Funktionen (Bsp.: In Python 3 liest die input-Funktion immer Strings ein, der Divisionsoperator liefert stets eine Fließkommazahl zurück, alle Strings sind standardmäßig Unicode, die print-Funktion erfordert Klammern für die Parameterliste), doch die sind überschaubar. Gerade für jemanden, der noch nicht viel mit Python 2 programmiert hat, sollte eine Umgewöhnung keinerlei Probleme bereiten.
Die gleiche Einschätzung habe ich für einen Umstieg von TigerJython auf Python 3. Neben den oben erwähnten Unterschieden kommen zwar noch verschiedene Features hinzu (z.B. Lambda-Ausdrücke, Generatoren, Dekoratoren, Typannotationen), aber keine besonderen Differenzen, die alles was du bisher gelernt hast, wieder komplett auf den Kopf werfen.
Nichtsdestotrotz würde ich dir empfehlen, dir passende Lernquellen zu Python 3 herauszusuchen und die auch von Anfang bis Ende durchzugehen.
Ein paar Quellen, die ich hierbei empfehlen kann:
- Natürlich die offizielle Dokumentation: python.org (dort findest du auch Downloads, weitere empfohlene Einstiegsreferenzen, usw.)
- Die Kurse auf Hyperskill
- RealPython (eine Plattform, die Artikel zu den unterschiedlichsten Tools oder Anwendungsgebieten von Python beinhaltet)
- Bücher von Apress, O'Reilly, packt, Rheinwerk oder Springer
Als Entwicklungsumgebung kannst du PyCharm nutzen. Alternativen wären Thonny (explizit für Anfänger) oder ein entsprechend konfiguriertes VS Code.
Mich interessiert erstmal nur, wie Programmierung funktioniert, also die Konzepte dahinter.
Dafür ist TigerJython wie schon geschrieben, eine passende Wahl.
Es gibt aber auch noch Alternativen:
- WebTigerJython (ist mehr auf Python 3 ausgerichtet)
- Das turtle-Modul in Python (Einstieg; Referenz)
- Processing.py
Ja, da hast du Recht, im direkten Vergleich hat Python 3 noch die vielen zusätzlichen Features, die so über die Jahre dazugekommen sind. Ich habe es aus der Perspektive betrachtet, inwiefern er sich bei dem, was er ungefähr schon alles gelernt haben könnte, für das Equivalent in Python 3 umstellen müsste. Gäbe es bei dem so eklatante Unterschiede, sodass er völlig von Null anfangen müsste, hätte ich einen Umstieg als schwer bewertet. Nach einem Umstieg müsste es unzweifelhaft damit weitergehen, die für Python 3 spezifischen Features und Konzepte, sowie erweiterte, allgemeine Softwarekonzepte zu lernen.
Wow, sehr informativ, vielen Dank für die ausführliche Antwort und die Tipps👍🙏
Das Sunset von Python 2 wurde von 2015 immer wieder verschoben bis 2020 - Das sidn nun aber auch schon 5 Jahre.
Es gab einige inkompatible Änderungen beim Wechsel von 2 zu 3.
Auch innerhalb des 3er Zweiges kamen über die Zeit diverse neue Sprachfeatures und Funktionalitäten.
Insofern würde ich nicht mehr mit Python 2 anfangen und auch im 3er Zweig nichts zu altes - Warum z.B. mit if-elif-Tiraden rumeiern, wenn es structural matching gibt?
Ich würde niemandem heutzutage noch empfehlen, mit Python 2 zu programmieren. Wenn du aber eigentlich nur lernen möchtest, dann geht das bestimmt. Hauptsache anfangen, da kann man wenig falsch machen.
Die Konzepte des Programmierens kannst du damit auf jeden Fall lernen, es ist ja trotzdem noch eine Programmiersprache. Bestimmte Sprachen-spezifische Designentscheidungen haben sich zu Python 3 schon signifikant geändert. Es ist also schon etwas, wie eine neue Sprache zu lernen. Da ist aber eben nichts dabei, wenn es ums Lernen geht.
Grundsätzlich eine sehr gute Antwort, ich wäre aber hier etwas vorsichtig. Python 3 hat viele neue Features bekommen, die einige Sachen schon ändern (ich will nie wieder ohne f-Strings programmieren). Der Umstieg von C auf C++ treibt die Analogie auf die Spitze: Es ist relativ leicht, weiterhin Code zu programmieren, der irgendwie durch läuft. Aber wirklich (zeitgemäßes) C++ kann man nicht, wenn man von C umsteigt und einfach nur stdio durch iostream ersetzt.