Seite 1 von 1

Python oder doch Java in 2020

Verfasst: Freitag 27. November 2020, 11:48
von Hag2bard
Hallo alle Zusammen,

Erstmal muss ich sagen, dass ich es toll finde, dass die Beteiligung hier im Forum wirklich großartig ist.
Kurz zu mir:

Ich strebe eine Ausbildung in der Anwendungsentwicklung an und habe keinerlei Vorkenntnisse.
In einem Vorstellungsgespräch wurde mir bewusst, dass das Gespräch dadurch vollkommen in die Hose gegangen ist.

Ich sollte erklären, was ich mache  wenn ich eine Textdatei mit 1000 Zufallszahlen habe und diese sortieren möchte.

Also habe ich angefangen mir Java Tutorials durch zu lesen, kam allerdings nicht besonders weit (Hello World, paar rechenoperationen).
Dann habe ich Python entdeckt und damit recht schnell geschafft ein Programm zu schreiben welches mir 1000 Zufallszahlen in eine txt Datei zu schreiben inkl. Input Funktion um den Dateinamen zu bestimmen und die Überprüfung ob die Datei existiert.

Jetzt hab Ich mich wieder verrückt gelesen und glaube dass Python ein falscher Einstieg ist um Anwendungsentwickler zu werden.
Die Diskussion war allerdings von vor 15 Jahren und ich denke in der Zeit hat sich viel getan bei Python (Python 3).

Also nun eine Frage an euch:

Soll ich Python aufgeben und mir die Zeit nehmen Java zu lernen oder wie seht ihr das?

Danke im Voraus Christian

Re: Python oder doch Java in 2020

Verfasst: Freitag 27. November 2020, 13:41
von __deets__
Was sind denn die Argumente, die du dir erlesen hast, warum Python vermeintlich weniger geeignet wäre? Und wofür genau? Meine Partnerin arbeitet bei Amazon, und mit Java. Außer wenn es um ML Anwendungen geht. Dann mit Python. Weder mit Python noch mit Java kann ich die für meine Arbeit benötigten Kernel-Treiber oder Audio-Anwendungen schreiben.

Es kommt also darauf an, was man machen will, um so eine Aussage belastbar zu gestalten.

Und allgemein gilt: hast du eine Sprache durchdrungen, fällt die nächste leichter.

Re: Python oder doch Java in 2020

Verfasst: Freitag 27. November 2020, 13:49
von DasIch
Grundsätzlich bieten sich mit Java oder PHP sicherlich mehr Möglichkeiten als mit Python. Allerdings spielt dies keine sonderlich große Rolle da:

1) Du auch mit Python problemlos einen Job bekommst im aktuellen Markt
2) Sich die Frage stellt ob man einen beliebigen 08/15 Java oder PHP Job haben möchte

Mittel- bis Langfristig sollte man sich ohnehin andere Sprachen zumindest einmal angeschaut haben. Nur mit einer einzigen Sprache kommt man mit der Karriere nämlich nicht sonderlich weit.

Re: Python oder doch Java in 2020

Verfasst: Freitag 27. November 2020, 14:11
von snafu
Programmier-Konzepte kann man für den Einstieg am besten mit der Sprache lernen, mit der man am besten klar kommt. Das hast du ja selber bei deinem Sortier-Beispiel gesehen. Auf lange Sicht ist es schon sinnvoll, sich auch mit anderen populären Sprachen zu beschäftigen. Du wirst aber merken: Wenn du einmal den Dreh raus hast, dann fällt dir auch das Lernen neuer Sprachen leichter, zumindest sofern sich diese einigermaßen ähnlich sind.

Wenn du andere Sprachen probierst, dann siehst du schnell, dass die Namen von typischen Operationen bzw die Bezeichnung von Methoden und Objekten zwar andere sind, aber der Grundgedanke meist sehr ähnlich ist. Manchmal vermisst man Dinge, die Python schon eingebaut hat. Und manchmal werden Dinge anders, aber nicht unbedingt schlechter gelöst.

Das Denken in logischen Abläufen, Programm-Strukturen, usw eignet man sich aber bereits mit der ersten Sprache, die einem zusagt, an (d.h. die Sprache, mit der man sich intensiv beschäftigt). Und darauf kann man dann sein weiteres Fortkommen als Programmierer aufbauen.

Re: Python oder doch Java in 2020

Verfasst: Freitag 27. November 2020, 14:13
von nezzcarth
Ausbildungsstellen für Anwendungsentwickler richten sich ja in der Regel an junge Menschen, die gerade die Schule mit einem Realschulabschluss oder besser beendet haben (in der Realität hat man es zunehmend überwiegend mit Abiturienten zu tun). Da verlangt niemand, dass du schon ein ausgewachsener Programmierer bist. An deiner Beispielfrage (sortieren von Zufallszahlen) kann man halt aber schon feststellen, ob jemand mal mit Programmierung und einfachen Algorithmen in Kontakt gekommen ist, oder, wenn nicht, trotzdem die notwendige Denkweise demonstrieren kann. Diese Personen können dann grob so etwas Bubblesort erklären (auch wenn sie vielleicht den Namen nicht kennen) und es besteht die Chance für die, die schon etwas mehr können, besonders zu glänzen, indem sie eines der komplexeren Sortierverfahren beschreiben.

Vor diesem Hintergrund ist es, wie anderen schon sagten, im Grunde nicht so entscheidend, ob du jetzt Python oder Java lernst. Nimm halt die, in die du leichter einen Einstieg findest. Was dann konkret bei deinem Arbeitgeber verlangt wird, hängt ja auch von diesem mit ab. Die Azubis, die von denen ich es weiß, lernen in den drei Jahren, soweit ich das mitbekommen habe, verschiedene Sprachen. Oft bekommen sie auch kleinere Projekte zugeteilt und da ist dann durchaus auch Teil des Lerneffekts, dass sie eine neue Sprache/Technologie kennenlernen.

Re: Python oder doch Java in 2020

Verfasst: Freitag 27. November 2020, 14:49
von Bolitho
Mein Sohn beginnt nächstes Jahr seine Ausbildung zum Fachinformatiker Anwendungsentwicklung. Durch sein Hobby Minecraft ist er bereits mit den Themen Server, Linux, SSH, uvm in Verbindung gekommen, um den Server für seine Freunde und sich zu administrieren. Auch andere Dienste/Konzepte hat er sich dadurch schon angegeignet. z.B. Discord, Docker, VM. Im ersten Praktikum war er bei einem Spieleentwickler und ist dort mit Java in Kontakt gekommen. Aber auch z.B. mit Swift. Im zweiten Praktikum bei einem Entwicklungshaus für größere Projekte haben sie auch mit Java gearbeitet und dabei aber Grundlagen für das Verständnis agiler Softwareentwicklung gelegt. TDD, PP, Refactoring, Sprints und was alles dazu gehört.
Im Jahrespraktikum (Web-Development-Agentur) im Rahmen der Fachoberschule kam dann Javascript, Typescript dazu. Auch Sachen wie React, node.js, git usw..

Mit Python hat er sich nie beschäftigt, versteht aber vieles von dem, was ich in Python baue. Einfach, weil er schon die Konzepte aus anderen Sprachen kennt. Und den Rest sich dann eben erschließen kann. Für mich wäre Java oder C++ oder was auch immer kein guter Einstieg gewesen. Python war genau richtig und das habe ich auch gespürt.

Will sagen, es ist ziemlich egal was du machst. Eben solange es in die richtige Richtung gehst. Wenn dir nachher was fehlt, kann man sich das i.d.R. leicht erschließen. Was ich für elementar halte ist, dass es Spaß macht und von innen heraus motiviert. Das du selbst nicht locker lässt, wenn du vor einem Problem stehst, und solange am Ball bleibst, bis es gelöst ist. Das schafft man nur, wenn man daran Freude hat was man tut.

Re: Python oder doch Java in 2020

Verfasst: Freitag 27. November 2020, 15:59
von __blackjack__
@Hag2bard: Eine Datei mit Zufallszahlen einlesen, sortieren, und ausgeben ist jetzt in Java aber auch nicht sooo schwer. Das raussuchen der nötigen Klassen/statischen Methoden dauert nur länger als bei Python und man lernt bei den Java-Grundlagen erst einmal alles möglich andere bevor man zur Streams-API kommt:

Code: Alles auswählen

package de.python_forum.blackjack;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

public class Test {
    public static void Main(String... args) throws IOException {
        Files.lines(Paths.get("/home/bj/1000_random_numbers.txt"))
                .mapToDouble(Double::parseDouble)
                .sorted()
                .forEach(System.out::println);
    }
}
In Python:

Code: Alles auswählen

#!/usr/bin/env python3


def main():
    with open("/home/bj/1000_random_numbers.txt") as lines:
        for line in sorted(lines, key=float):
            print(line)


if __name__ == "__main__":
    main()

Re: Python oder doch Java in 2020

Verfasst: Freitag 27. November 2020, 17:34
von sls
@__blackjack__: war das für den TE schon als Knobelaufgabe gedacht, oder warum ist das Java-Beispiel nicht ohne weiteres lauffähig? :mrgreen:

@Hag2bard: Meine erste Programmiersprache war Visual C# und das hat mir überhaupt keinen Spaß gemacht. Ich habe dann glücklicherweise Python entdeckt. Ich habe auch die Ausbildung als Fachinformatiker absolviert und kann dich in soweit beruhigen, dass man in der Berufsschule bei den Fächern Anwendungsentwicklung- und Programmierung in Java wirklich beim Urschleim anfängt.

Die Vorkenntnisse in Python gerade in bezug auf OOP und Design-Patterns haben mir enorm geholfen den Einstieg in Java zu finden. Mit Sprachen wie Rust oder C tue ich mich da einfach schwieriger, da hier andere Sprachkonzepte greifen.

Re: Python oder doch Java in 2020

Verfasst: Freitag 27. November 2020, 18:30
von __blackjack__
@sls: Was meinst Du mit nicht ohne weiteres lauffähig? Man muss es kompilieren. Und ggf. den Dateipfad/-namen anpassen, aber zumindest letzteres muss man beim Python-Programm ja auch machen.

Edit: Wie zur Hölle… Ich schwöre ich habe das aus der IDE direkt in den Beitrag kopiert und in der IDE ist `main` korrekt klein geschrieben! Ich habe keine Ahnung wie das M da zustande gekommen ist. 😱

Re: Python oder doch Java in 2020

Verfasst: Freitag 27. November 2020, 18:57
von ThomasL
Ich steuere mal diesen Link bei: https://www.tiobe.com/tiobe-index/

Re: Python oder doch Java in 2020

Verfasst: Freitag 27. November 2020, 20:26
von /me
ThomasL hat geschrieben: Freitag 27. November 2020, 18:57 Ich steuere mal diesen Link bei: https://www.tiobe.com/tiobe-index/
Das kann ich nicht ernst nehmen. Da stehen ja alle wichtigen Programmiersprachen (also das was ich früher mal gemacht habe) nur unter ferner liefen: Forth, RPG, PL/I
:D

Re: Python oder doch Java in 2020

Verfasst: Freitag 27. November 2020, 20:56
von Hag2bard
Vielen Dank für die zahlreichen Antworten, ich finde es gut wenn hier eventuell so etwas wie eine Diskussion entsteht, auch wenn man von mir wahrscheinlich keine rege Beteiligung erwarten kann.

Da es dann doch recht viele Antworten geworden sind, würde ich doch gerne auf jede einzelne eingehen.

Ich denke, es ist nicht verkehrt mit einer Sprache anzufangen, die einem Spaß macht. Und wenn ich da von mir reden darf, dann muss ich sagen, dass ich mich seit fast 2 Wochen mit dem Programmieren auseinander setze und ich sehr viel Gefallen daran gefunden habe.

Java hat mich anfangs doch schon recht frustriert, auch wenn die IDE (Eclipse) schon sehr viel Händchen hält beim Programmieren.
Wenn man bei 0 anfängt und dann mit Klassen und Objekten usw bombardiert wird, dann steht man erstmal im Dunkeln.

Was möchte ich damit machen?
Ich habe momentan noch keinen genauen Plan welche Bereiche es genau gibt und welche bloß Theorie sind.

Mir ist es wichtig endlich meinen Traum zu verwirklichen und nicht in meinen rein geborenem Beruf zu versauern, der mich geistig nie gefordert hat und mich in 10 oder 15 Jahren im Rollstuhl sitzen lässt, weil man im Handwerk verheizt wird.

Ich repariere seit 15 Jahren Computer für Freunde und Bekannte aber als ich vor eine solche "Herausforderung" gestellt wurde, war ich mir sicher was ich eigentlich möchte.

Die Frage ist natürlich noch immer, welche Sprache wird von den meisten Firmen verwendet. Die Firma bei der ich das besagte Gespräch hatte arbeitet im Web Bereich und die nutzen Java.
Ich glaube nicht dass ich ein guter Web Designer wäre, ich bin nicht sonderlich kreativ oder habe eine Vorstellung von Stil.

Ich geh davon aus dass Treiber oder die erwähnten Audio Anwendungen mit C programmiert werden.

Es klingt auf jeden Fall schonmal beruhigend, wenn ihr vom Durchdringen einer Sprache redet und dies den Rest einfacher gestaltet.

Was mich an Java verzweifeln lassen hat war alleine schon die erste Zeile

public static void Main(String... args) throws IOException {

Da fragt man sich als Anfänger, was zum Teufel das alles bedeuten soll und wenn man sich ein Tutorial dazu durch liest, dann ist man verunsichert und weiß weniger als vorher.
Ich könnte natürlich erstmal akzeptieren, dass das meine erste Zeile ist und mich auf Grund anderer Aufgaben langsam mit solchen Sachen beschäftigen muss aber das schreckt mich doch schon ziemlich ab.

Das Python Beispiel müsste ich auch erstmal auseinander nehmen vorallem deshalb da mein Programm die geordneten Zahlen (Liste mit Strings) nicht unter einander schreibt.
Dein Beispiel ist schon wieder ganz anders als meine.

Tipps aus dem Internet funktionieren nicht immer und den Code eines anderen übernehmen  dafür bin ich zu stur.

Ich verstehe nicht wieso du die Funktion definiert hast und was das hier dann bedeutet

if __name__ == "__main__": main()


Danke nochmal für alle Antworten

Re: Python oder doch Java in 2020

Verfasst: Freitag 27. November 2020, 21:19
von nezzcarth
Hag2bard hat geschrieben: Freitag 27. November 2020, 20:56 Die Firma bei der ich das besagte Gespräch hatte arbeitet im Web Bereich und die nutzen Java.
Ich glaube nicht dass ich ein guter Web Designer wäre, ich bin nicht sonderlich kreativ oder habe eine Vorstellung von Stil.
Webdesign und Webentwicklung sind zwei verschiedene Dinge. Es gibt zwar Webdesigner, die auch programmieren können (gerade in kleineren Agenturen/Firmen oder als Freiberufler). Aber eigentlich sind das schon eher zwei verschiedene Berufsbilder. Und gerade Java ist, was Webentwicklung angeht, jetzt nicht unbedingt die Technologie, die bei kleinen Fünf-Personen-Webagenturen oder Startups bevorzugt zum Einsatz zu kommt; nach meinem Eindruck zumindest nicht.