Pyhton und Java gleichzeitig lernen?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Andreas123
User
Beiträge: 9
Registriert: Montag 27. Mai 2019, 13:50

Derzeit befinde ich mich in einer Ausbildung wo wir Java als Einstieg in die Programierung
genutzt haben. Hauptsähclich hab ich zu Hause ein Windows System, möchte aber in der Zukunft
für IOS Apps entwicklen, so dass ich mir ein Mac holen muss/werde.

Ich weiß, Java und Pyhton lassen sich gleichermaßen auch auf Mac ausführen da plattformunabhängig.

Nun wüsste ich gern ob es sich lohnt beide Sprachen gleichzeitig zu erlenen? Wenn ja wie würdet
ihr vorgehen? Oder wäre es günstiger nacheinander anzufangen oder nur eine der beiden zu erlernen?
Wenn ja, welche Reihenfolge wäre da günstig?
Welche Vorteile bzw. Nachteile gibt es zwischen beiden?
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wenn dein Ziel iOS ist, helfen dir weder Java noch Python wirklich. Sondern Swift. Investier also lieber dort. Grundsätzlich sind mehrere Sprachen gut, aber sich zu überfordern nicht so.
Benutzeravatar
__blackjack__
User
Beiträge: 14044
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Andreas123: Ergänzend zu __deets__ Antwort vielleicht noch die Praxiserfahrung, die ich aber auch schon im Studium gemacht habe wo hauptsächlich Java verwendet wurde: Man braucht für verschiedene Aufgaben verschiedene Programmiersprachen. In den Werkzeugkasten des Programmierers gehört auf jeden Fall eine Sprache in der man kleine „one off“ Programme schreiben kann, um sich hier und Da mal Sachen zu automatisieren, Testdaten zu generieren, Daten in die passende Form bringen, und so weiter – also das was man im Allgemeinen als ”Skripte” bezeichnet. Und dafür will man eher eine Sprache wie Python (oder CoffeeScript, JavaScript, Perl, PHP, Ruby, Tcl, …) nehmen als Java (oder C, C#, C++, Kotlin, Rust, Swift, VB.NET, …).
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Andreas123
User
Beiträge: 9
Registriert: Montag 27. Mai 2019, 13:50

Derzeit habe ich ja noch keinen Mac, sowie wird es wohl erst in 1-2 Jahren werden. Daher wollte ich noch etwas für "Windows" haben.

@_blackjack_
Wenn ich es richtig raus gelesen haben, dann Java für "große" Sachen und für kleinen Sktipte, Tools dann Pyhton nehmen?

Bei Windows Anwendungen wäre da besser Pyhton oder Java geeignet? Will mehr oder weniger kleiner Anwendungen schreiben um Hobbymäßig einiges zu verarbeiten. Bzw. wo die Anwendung mich unterstützen soll.
Benutzeravatar
__blackjack__
User
Beiträge: 14044
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Andreas123: Also ich nehme Python für die grossen *und* die kleinen Sachen. 😀

Für Windows-Anwendungen sind Python und Java gleichermassen (un)geeignet. Wenn Du wirklich *speziell* für Windows programmieren willst, würde ich irgendeine .NET-Sprache nehmen. Für Deine persönlichen Anwendungen ist das dann aber wahrscheinlich wieder egal welche Programmiersprache Du verwendest, solange sich damit Deine Probleme lösen lassen, und Du mit der Sprache klar kommst.

Sorry wenn das vielleicht nicht die definitive Antwort ist, die Du hören möchtest. Du fragst in einem Python-Forum, also kannst Du davon ausgehen, das die Leute hier Python gut finden, und das auch empfehlen, was ich hiermit auch ausdrücklich tue. Aber ich bin natürlich nicht unvoreingenommen, wie die anderen Regulars hier das auch nicht sind. Es gibt Programmiersprachen von denen ich eher abraten würde, wie C++ oder Perl, weil ich mit denen so gar nicht warm werde/geworden bin. Allerdings gibt es Bereiche wo man an C++ nicht wirklich vorbei kommt, oder wo das zumindest die beste Option ist.

Man wird als Programmierer letztlich mehr als eine Programmiersprache lernen müssen. Zum Teil weil die tatsächlich eingesetzt werden, und weil nicht jede Programmiersprache ”überlebt”. Zum anderen kann es aber auch Sinn machen Sprachen zu lernen, die man gar nicht in tatsächlichen Projekten einsetzen wird. Um den Horizont zu erweitern oder bestimmte Konzepte mal in ”Reinform” zu sehen. Also zum Beispiel könnte ich mir nicht vorstellen etwas in Haskell oder Prolog zu programmieren. Aber funktionale Programmierung und deklarative Programmierung mal gelernt und ausprobiert zu haben, hat einen Einfluss darauf wie man andere Programmiersprachen sieht, und wie man über Probleme und Lösungen denken kann. Ich Programmiere in C anders seit dem ich objektorientierte und funktionale Programmierung kennengelernt habe, obwohl C weder das eine noch das andere mit Sprachmitteln wirklich unterstützt.

Die Kombination von Java und Python kann IMHO durchaus Sinn machen, auch um beide Sprachen auf diese Weise besser zu lernen, weil man Unterschiede und Gemeinsamkeiten kennenlernen und vergleichen kann. Wichtig ist was __deets__ angesprochen hat: Du musst schauen, dass Dich das nicht überfordert, denn dann leidet wahrscheinlich das Verständnis von beiden Sprachen. Und man muss immer ein wenig aufpassen, dass man in einer Programmiersprache nicht programmiert wie man das in einer anderen gelernt hat. Es ist oft leicht einen Java-Programmierer oder Pascal-Programmierer daran zu erkennen wie er in Python programmiert, wenn er sich nicht wirklich auf die Sprache einlässt. Jede Sprache hat ihre eigenen Idiome und Konventionen.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Andreas123
User
Beiträge: 9
Registriert: Montag 27. Mai 2019, 13:50

Ok, die definitive Aussage was ich machen soll war es nicht. Aber es sind ja schon mehr positive Sachen gekommen.

Wie denkt ihr darüber dass ich das am günstige bewältigen kann. Suche ich mir ein Projekt und programiere es zeitgleich jeweils in einer Sprache. Oder mache ich ein Thema in der einen Sprache und danach das gleiche Thema in der anderen?
Andreas123
User
Beiträge: 9
Registriert: Montag 27. Mai 2019, 13:50

Hab gelesen das man Pyhton Code auch auf einem Iphone und Ipad schreiben kann. Auch wenn es da nicht direkt als eingenständiges Programm ausführbar ist würde dies dafür sprechen doch erst mit Python anzufangen.
Benutzeravatar
__blackjack__
User
Beiträge: 14044
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Andreas123: Also ich würde auf einem Telefon oder Tablet (ohne ”richtigem” Betriebssystem) keine Programme entwickeln wollen. Ohne Tastatur, vernünftigen Editor, und Shell…
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Andreas123
User
Beiträge: 9
Registriert: Montag 27. Mai 2019, 13:50

Würde das programieren schon auf einem "großen" System machen. Hatte nur eine App gefunden wo man Pyhton auch auf Iphone testen kann.
Bin einfach hin und her gerissen zwischen Java und Pyhton. Kann mich einfach nicht entscheiden.

Kann bitte jemand mal ein paar Vorzüge zwischen den Sprachen aufzählen?
Benutzeravatar
__blackjack__
User
Beiträge: 14044
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Andreas123: Ich dachte Du wolltest beide gleichzeitig lernen, dann brauchst Du Dich doch auch nicht entscheiden. 😉

Vorzüge aufzählen ist schwierig. Die Sprachen haben Gemeinsamkeiten und Unterschiede. Die Unterschiede sind im grossen und ganzen erst einmal neutral, allerdings dann auch wieder nicht, denn in einem Python-Forum wird die Vorliebe für die Art wie die Unterschiede bei Python im Gegensatz zu Java gehandhabt werden, naturgemäss überwiegen. Und hier weiss halt auch keiner was Du lieber mögen wirst, das kannst Du letztlich nur durch eigene Erfahrung heraus finden. IMHO sind beide Sprachen sowohl zum programmieren lernen, als auch in der Praxis für vieles tauglich. Beide sind sowohl in der Ausbildung als auch in der Praxis zu finden. Also kann man mit beiden (IMHO) nichts falsch machen.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Andreas123
User
Beiträge: 9
Registriert: Montag 27. Mai 2019, 13:50

Bisher bin ich mir allerdings noch nicht sicher ob ich es gleichzeitig lerne oder nacheinander.

Weis grad ehrlich nicht wie ich es am besten machen, die Sprachen gleichzeitig zu lernen. Welches System nehme ich da.
1. Thema für Thema ?
2. Einmal kompletten Grundkurs in einer, dann in der anderen Sprache?
3. Ein eigenes Projekt in beiden Sprachen entwickeln?

Wie habt ihr angefangen?
Benutzeravatar
__blackjack__
User
Beiträge: 14044
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Andreas123: Da es Jahre dauert bis man eine Sprache richtig gut beherrscht, siehe auch Peter Norvig's Essay Teach Yourself Programming in Ten Years, stellt sich die Frage nacheinander wahrscheinlich nicht ernsthaft. Eher ob man tatsächlich auf den Punkt zeitgleich mit beiden Anfangen sollte.

Das wichtigste ist das anfangen überhaupt. Und beobachte Dich selbst, wie gut das funktioniert. Wenn es nicht gut funktioniert, dann ändere die Taktik.

Ich habe mit BASIC auf dem C64 angefangen, und dann mit Assembler als ich beim BASIC recht schnell an die Grenzen gestossen bin. Teilweise weil das BASIC auf dem C64 die Hardware nicht gut unterstützt, so dass man da gezwungenermassen schnell mit hardwarenaher Programmierung konfrontiert wird. Java habe ich ab dem zweiten Semester in der Uni und zu Python bin ich nach Perl und PHP gekommen, weil ich mich nach einer Alternative für Perl umgeschaut habe, was ich bis dahin für kleine Hilfsprogramme verwendet hatte. Ich hätte problemlos Java und Python parallel lernen können, aber die Situation ist nicht vergleichbar, weil ich programmieren an sich zu dem Zeitpunkt schon konnte. Zwischen C64 und Uni war auch noch Schule und Freizeit mit BASIC-Dialekten, Pascal, C, und Maschinensprache auf dem PC.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Üpsilon
User
Beiträge: 225
Registriert: Samstag 15. September 2012, 19:23

Wenn du schon so direkt nach den Vorzügen von Python und Java fragst: Python ist eine Sprache, die einem ermöglicht, Sachen geschickt, elegant, mit wenig Code zu erledigen. Meiner Erfahrung nach ist Java eine Sprache, die einen dafür bestraft, wenn man versucht, Sachen schlau zu machen. In Python hat man Ducktyping und kann relativ frei zwischen verschiedenen Datentypen herumwechseln, in Java muss man, wenn man den Datentyp ändert, nicht nur die Deklarationen ändern, sondern oft das halbe Programm über den Haufen werfen, weil irgendeine Methode beim neuen Datentyp nicht mitmacht. (Das ist meine persönliche Ansicht und jetzt wird vielleicht erwidert "Das liegt etzadla nur daran, dass du Java nicht gut genug kannst". Ich habe weder Interesse an noch Argumente für einen Sprachkrieg.)

Jetzt ist wahrscheinlich schon sehr durchgeklungen, was ich von Java und Python halte. Aber unabhängig davon, was man wovon hält, sollte man aufpassen, dass man nicht gedankenlos Konzepte von einer auf die andere Programmiersprache überträgt. (Vielleicht ist meine Abneigung gegenüber Java auch darin begründet, dass ich erfolglos versucht habe, Pythonkonzepte auf Java zu übertragen.) Darüber, welche Java-Konzepte man nicht auf Python übertragen soll, steht auch etwas in diesem gerade mal 15 Jahre alten Artikel: http://dirtsimple.org/2004/12/python-is-not-java.html

Ansonsten würde ich dir dazu raten, vorerst bei einer Sprache zu bleiben. Java ist schon vielseitig genug, dass du damit gewisse Hobbyprojekte erledigen kannst. Bei Python ist der Einstieg vergleichsweise einfach, wenn du das irgendwann unbedingt brauchst, kannste's immer noch lernen. Und wenn du Erfahrung mit Java sammelst, ist das sicher für deine Ausbildung hilfreich.
Benutzeravatar
__blackjack__
User
Beiträge: 14044
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Im gleichen Blog gibt es auch einen Artikel für die Gegenrichtung: http://dirtsimple.org/2004/12/java-is-n ... ither.html
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Üpsilon hat geschrieben: Dienstag 28. Mai 2019, 18:37 In Python hat man Ducktyping und kann relativ frei zwischen verschiedenen Datentypen herumwechseln, in Java muss man, wenn man den Datentyp ändert, nicht nur die Deklarationen ändern, sondern oft das halbe Programm über den Haufen werfen, weil irgendeine Methode beim neuen Datentyp nicht mitmacht. (Das ist meine persönliche Ansicht und jetzt wird vielleicht erwidert "Das liegt etzadla nur daran, dass du Java nicht gut genug kannst". Ich habe weder Interesse an noch Argumente für einen Sprachkrieg.)
In Java oder anderen statisch typisieren Sprachen muss man da zwar viel ändern. IDEs nehmen einem solche Arbeit in der Regel aber ab. Außerdem stellt man dadurch auch durchaus fest ob so eine Änderung tatsächlich akzeptabel war oder nicht, bei Python merkt man dies halt erst später.

Wir haben vor kurzem ein Projekt mit Rust gestartet und ich muss sagen es macht schon qualitativ einen ganz gewaltigen Unterschied, wenn man sieht der Code kompiliert und man sich halbwegs sicher sein kann er funktioniert dann auch, so dass man sich bei Tests auf Business Logik und Integration konzentrieren kann.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wobei Rust ja auch in dieser Beziehung deutlich fortgeschrittener ist, als die aktuellen Sprachen wie etwa Java oder C++. Da hast du so viele Probleme die trotz Compiler-Daumen-hoch doch noch reinhauhen koennen (es gibt einen Grund, warum NullPointer oder ClassCast-Exceptions Runtime und nicht checked sind...), dass testen unabdingbar ist. So wie eben bei Python auch.
Benutzeravatar
sls
User
Beiträge: 480
Registriert: Mittwoch 13. Mai 2015, 23:52
Wohnort: Country country = new Zealand();

Andreas123 hat geschrieben: Montag 27. Mai 2019, 13:57 Derzeit befinde ich mich in einer Ausbildung wo wir Java als Einstieg in die Programierung
Ich habe auch in der Ausbildung Java gelernt, hatte da aber schon ca. 2 Jahre Erfahrung mit Python. Grundsätzlich half mir das schon enorm, andere hatten da bspw. noch grundsätzliche Verständnisschwierigkeiten *warum* man die Instanz einer Klasse benötigt o.ä. Hin und wieder habe ich auch Sachen in Java gelernt, die dann für mich in Python mehr Sinn ergaben. Ich glaube dass es nie ein Fehler ist, andere Konzepte zu lernen, oder herauszufinden wie es andere Sprachen umsetzen.
Andreas123 hat geschrieben: Montag 27. Mai 2019, 13:57möchte aber in der Zukunft
für IOS Apps entwicklen, so dass ich mir ein Mac holen muss/werde.

Ich weiß, Java und Pyhton lassen sich gleichermaßen auch auf Mac ausführen da plattformunabhängig.


Nun wüsste ich gern ob es sich lohnt beide Sprachen gleichzeitig zu erlenen? Wenn ja wie würdet
ihr vorgehen? Oder wäre es günstiger nacheinander anzufangen oder nur eine der beiden zu erlernen?
Wenn ja, welche Reihenfolge wäre da günstig?
Wenn bei dir Java sowieso schon auf der Tagesordnung steht, bleib ruhig dabei. Ich glaube nicht dass es am Anfang sinnvoll ist, mehrere Sprachen zu lernen.

Wenn du mit IOS herum machst wirst du um Swift (ggf. auch Objective C) nicht herum kommen. Der Einstieg wird dir allerdings einfacher fallen, sobald eine erste Programmiersprache wie Java so einigermaßen sitzt.

Ich habe mir jetzt auch monatelang den Kopf darüber zerbrochen welche Programmiersprache man denn nochmal lernen könnte. Ich entwickle zwar viel mit Python, bis man da allerdings mal richtig gut ist, puh, das dauert einfach. Es ist ja nicht nur das Ökosystem einer Programmiersprache, sondern auch grundlegende Konzepte der Software-Entwicklung.
When we say computer, we mean the electronic computer.
PyByte
User
Beiträge: 25
Registriert: Samstag 16. Oktober 2010, 03:32

Ich sehe keinen großen Vorteil Python und Java intensiv zu lernen. Für mich sind beide Sprachen auf einem ähnlichen Bereich was die Eigenschaften angeht. Ich versuche neben Python noch C/C++ zu lernen. Mit Python kann man sehr effektiv programmieren, vieles lässt sich sehr einfach und schnell entwickeln. C bzw. C++ Programme sind dafür meistens oder häufig performanter und lassen sich auch für hardwarenahe Programmierung nutzen. Somit ergänzt sich beides gut.
Python und Java ist für mich wie C# und Java, macht auch wenig Sinn, wenn man nicht dazu beruflich gezwungen ist.

Will man im unternehmerischen Bereich entwickeln eignet sich vermutlich Java mehr als Python. Weil es einfach sehr viele Tools und Frameworks für den Bereich gibt. Auch die GUI Entwicklung ist mit Java denke ich je nach Tool mächtiger oder einfacher als die eher bescheidenen GUI Builder Tools für Tkinter. Wobei man aber in Verbindung mit Pyside bzw. PyQT auch den QT Designer nutzen kann. Trotzdem trifft man eher selten auf Python QT GUI Anwendungen.
Benutzeravatar
sls
User
Beiträge: 480
Registriert: Mittwoch 13. Mai 2015, 23:52
Wohnort: Country country = new Zealand();

@PyByte: 1997 hätte ich dir diesbezüglich noch voll zugestimmt. In unserem Unternehmen ist ein Großteil der Applikationslandschaft auch in Java entwickelt worden, wir brechen die damit verbunden technischen Schulden allerdings nach und nach auf (großer Monolith: schwer zu erweitern, nicht performant) - ein erster Ansatz ist die Umsetzung durch kleine, schlanke Mikroservices. Und da macht das einen riesen Unterschied ob so ein Service 300 Zeilen oder 3000 lang ist.

Die Einschätzung über die Eigenschaften von Java und Python und dass diese zu "ähnlich" sind, kann ich nicht teilen.
When we say computer, we mean the electronic computer.
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

Ich sehe zwischen Python und Java auch keine großen Gemeinsamkeiten. Beide Sprachen zu kennen halte ich aber nicht für schädlich, weil sie verbreitet sind und unterschiedliche Ansätze verfolgen. Es gibt schlechtere Kombinationen.
Antworten