Python nur brauchbar im mathematischen Umfeld?

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.
Antworten
Dragonstar
User
Beiträge: 2
Registriert: Freitag 30. März 2018, 15:42

Ein freundliches Hallo an das Forum :)

Ich möchte mir autodidaktisch das Programmieren beibringen. Seit einer Woche lerne ich Javaskript, da es hierfür viele Onlineressourcen gibt und keine so großen Anforderungen an eine eingerichtete IDE existieren, wie bei anderen Programmiersprachen.

Jedoch möchte ich nicht primär in die Webprogrammierung, sondern lieber eigenständige Programme und Apps programmieren lernen.

Auch ist mir wichtig, dass die Sprache auch im beruflichen Umfeld gefragt ist, da ich gerne in der Zukunft als Software Developer arbeiten möchte.

Nach meiner Recherche fällt meine Wahl auf Python oder Java.

Ich persönlich favorisiere Python, da ich überall lese, dass es eine anfängerfreundliche (einfache Syntax) Sprache sein soll, welche gut lesbar ist und schon von Anfang an Erfolgserlebnisse bietet, was für mich sehr wichtig ist. Ich bin ein klarer Learning by Doing Lernender.

Java hätte den Vorteil, dass es die Sprache für Android Apps ist. Dafür soll es umständlicher und umfangreicher als Python sein.

Jobchancen sind mit Java wohl auch höher, da es die nachgefragteste Programmiersprache auf dem deutschen Jobmarkt sein soll. Jedoch ist Python als andere als eine Exotensprache und man sollte, die entsprechenden Skills vorausgesetzt, auch hier einen Job finden dürfen.

Was mich von Python jedoch abhält ist die Tatsache, dass häufig erwähnt wird, dass Python schwerpunktmäßig im Umfeld von Machine Learning, Data Science & K.I. eingesetzt wird.

Hier ein beispielhafter Absatz:

"Python mainly aims for Machine Learning, AI and machine automations. While Java focuses on software development. Also for Android Java is a prerequisite."

https://www.quora.com/Which-language-is ... mar-Pathak

Meine Mathematikkenntnisse reichen für "normale" Programmierung, aber Machine Learning, fortgeschrittene Statistikkenntnisse (Data Scientist) und K.I. assoziiere ich mit Hardcore Mathematik. Und wenn Python nur in diesem Umfeld nachgefragt wird, dann würde ich mich doch für Java entscheiden.

Daher meine Frage an euch. Ist es so, dass Python zwar eine recht einsteigerfreundliche Programmiersprache ist, aber mehrheitlich nur da zum Einsatz kommt, wo exzellente Mathematikkenntnisse benötigt werden?

Vielen Dank im voraus für Feedback!

Gruß Martin
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

Dragonstar hat geschrieben:"Python mainly aims for Machine Learning, AI and machine automations. While Java focuses on software development. Also for Android Java is a prerequisite."

https://www.quora.com/Which-language-is ... mar-Pathak
Von der Aussage stimmt nur der letzte Satz. Richtig ist, dass Python zur Zeit gerade im Bereich Data Science stark an Bedeutung gewinnt. Falsch ist, dass Python genau dafür konzipiert wurde. Also fang einfach an. Als Programmierer sollte man ohnehin mehrere Sprachen aktiv genutzt haben.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Python ist im Data Science Bereich gerade deswegen sehr stark weil es überhaupt nicht dafür gedacht ist und trotzdem sehr gute Libraries in dem Bereich hat so dass man Python dafür nutzen kann. Die Kombination aus den beiden Sachen macht es möglich die Ergebnisse aus dem Data Science Bereich in der Praxis in anderen Bereichen wie z.b. Web Anwendungen zu nutzen. Es gibt keine andere Sprache in der sich diese Bereiche so gut verbinden lassen
Benutzeravatar
MagBen
User
Beiträge: 799
Registriert: Freitag 6. Juni 2014, 05:56
Wohnort: Bremen
Kontaktdaten:

Schau dir die Stellenanzeigen an:
Java Programmierer werden gesucht,
Python Programmierer eher nicht.
Ich denke das liegt nicht daran, dass Python wenig genutzt wird, sondern dass Java Programmierer ein Beruf ist und Python Programmierer nicht. Python wird beruflich von Leuten genutzt, die eine andere Qualifikation noch haben, die deren Hauptqualifikation ist. Dagegen reicht es aus Java zu können, um einen Job zu kriegen.
a fool with a tool is still a fool, www.magben.de, YouTube
__deets__
User
Beiträge: 14528
Registriert: Mittwoch 14. Oktober 2015, 14:29

Steile These. Aber das ist ja nix neues...

Ich bin Programmierer. Und als solcher habe ich sowohl Java als auch Python beruflich genutzt. Ersteres persönlich nicht mehr, letzteres immer noch, zusammen mit C und C++ dieser Tage. Über einen Mangel an Interesse als Python-Entwickler kann ich mich auch nicht beklagen. Ganz generell ist der Markt ja aber gut.

Pythons Vorteil ist sicher, das es in vielen Bereichen präsent ist, und auch dank vielseitiger Sprachfeatures eine breiteres Spektrum von Möglichkeiten abdeckt. Python zu kennen und zu programmieren hat mich definitiv zu einem besseren Java Programmierer gemacht. Umgekehrt eher nicht so. Und in der Java Welt hat Kotlin ja nicht umsonst eingeschlagen - weil es viel an unnötigem Aufwand und holperigen Abstraktionen von Java ausmerzt.

Nachteil von Python ist sicher die geringere Ausführungsgeschwindigkeit. Und manche mögen halt statische Typprüfung.
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@__deets__: wahr ist, dass viele kleine Softwareklitschen und die ganzen IT-Abteilungen großer Firmen noch irgendwo in den 90ern herumhängen und deshalb viel Java machen. Der Rest ist Microsoftverseucht und macht C#. Wo innovativ gearbeitet wird, sind auch andere Sprachen zuhause und dass Python so beliebt ist, liegt sicher auch daran, dass Java so schlecht ist.

Wer sich über die langsame Geschwindigkeit von Python aufregt, hatte meist noch nie ein Problem mit der Geschwindigkeit, weil sonst hätte er eine der vielen Lösungen benutzt. Und statische Typprüfung ist einer der Gründe, warum ich keine andere Programmiersprache mehr schreiben kann.
Benutzeravatar
noisefloor
User
Beiträge: 3854
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

also Python erfunden wurde, waren Sachen wir Data Science und Maschine Learning ja noch Exotisch oder gar nicht existent. Von daher ist die Threse, dass es nur dafür gut geeignet ist, falsch. Python ist eine universelle Programmiersprache.

Ich bin ja "nur" Hobbyprogrammierer, aber IMHO spielt Java wenn nur noch im Entreprise Umfeld ein Rolle und auch da ist Python auf dem Vormarsch - zumindest, wenn man diversen Statistiken, Trends etc. glauben darf. Für "meine" Programmierprobleme gab es aber noch nie eins, was ich nicht zufriedenstellend mit Python hätte lösen können.

Wenn du später als Entwickler arbeiten willst, schadet es so wie so nicht, wenn du "polyglott" bist. Wenn du JacaScript kannst, ist das IMHO schon makl gut. Hilfreich ist IMHO auch immer noch C/C++.
Letztendlich kommt es aber auch drauf an, in welche Bereich die Arbeiten möchtest. Wenn es um Webprogrammierung geht, kommst du sicherlich auch ohne C/C++ aus.

Gruß, noisefloor
__deets__
User
Beiträge: 14528
Registriert: Mittwoch 14. Oktober 2015, 14:29

@Sirius3: ich kenne diverse Leute die zb bei Amazon oder Zalando arbeiten, und da durchaus auch neue Systeme mit Java entwickeln. Ganz so schlimm wie mit COBOL ist es nun auch nicht...

Man kann auch viel tun um Python schnell zu kriegen, und die ganzen ML/scientific computing Leute tun ja genau das. Es bleibt aber langsam als Sprache, und zb auf dem Pi bezahlt man eine „Python-Steuer“ von etwa Faktor zwei - wahrscheinlich weil die kleinen caches das nicht verkraften.

Pypy ist schon deutlich besser natürlich, und hat mir persönlich auch schon den arsch gerettet bei einem PI-Projekt. Aber den warmup des jit kann sich nicht jeder leisten, und der speicherverbrauch ist ja auch nicht trivial. Cython ist cool, aber im Grunde „nur“ bequemer als direkt mit C/C++ zu arbeiten. Der Aufwand für eine Optimierung wird dann schon gewichtig.

Ich halte nach wie vor viel von Python, und würde es in diesem Kontext auch gegenüber Java empfehlen, weil man mE mehr lernen kann. Aber soooo schlimm wie hier dargestellt steht’s um Java nun doch nicht.
narpfel
User
Beiträge: 645
Registriert: Freitag 20. Oktober 2017, 16:10

@__deets__: Dass etwas benutzt wird, heißt nicht, dass es auch gut ist.

@Dragonstar: Hier sind ja jetzt schon einige Sprachen genannt worden, aber funktionale Sprachen wie zum Beispiel Haskell sind bisher zu kurz gekommen. Abgesehen davon, dass funktionale Programmierung auch in Multiparadigmensprachen wie Python hilfreich sein kann, zeigt Haskell, dass statische Typisierung auch angenehm sein kann und dass das „Typsystem“ von Java nicht der Weisheit letzter Schluss ist.

Python ist für den Anfang eine gute Sprache, auch weil die Sprache und auch die Community den Programmierer in Richtung eines „sauberen“ Programmierstils drängen. JavaScript hat meiner Meinung nach das Problem, dass viele Programmierfehler einfach zu machen sind und einem Anfänger nur schwer auffallen.

Wenn man eine Sprache sicher beherrscht, sollte man aber IMHO in jede der hier genannten Sprachen (gut, COBOL vielleicht nicht) zumindest mal für ein paar Tage reinschnuppern.
__deets__
User
Beiträge: 14528
Registriert: Mittwoch 14. Oktober 2015, 14:29

narpfel hat geschrieben:@__deets__: Dass etwas benutzt wird, heißt nicht, dass es auch gut ist.
Sicher. Gilt dann aber auch für Python. Oder Haskell. Die Aussage richtet sich eher dagegen, das Java nur in so marginalisierten Kontexten vorkommt, die Sirius beschrieben hat. Es gibt durchaus große Technologieführer, die es im Einsatz haben. Und AUCH Python, aber eben auch Java, C++ etc.
addi
User
Beiträge: 28
Registriert: Donnerstag 29. März 2018, 22:54

Hey ich bin zwar recht neu hier und habe nicht mal ansatzweise so viel Erfahrung wie die anderen, aber als Anfänger kann ich folgendes berichten:

Python ist echt genial. Und Java ist naja. Ich hatte letztens ein Angebot für ein Duales Studium von SAP angeboten bekommen und mir wurde geraten Java zu lernen. Gesagt getan. Ich versuchte mich einzuarbeiten, aber Java ist eindeutig nicht Anfängerfreundlich, wohingegen es für Pyhton zb. Learn Python the hard way usw. gibt. Das hat mich zum programmieren motiviert (obwohl ich ehrlich gesagt eher in der Mathematik beheimert bin) und sogar motiviert im Wintersemester Info zu studieren (also nicht bei SAP).

Wenn man sich noch dazu zb. Yolo anguckt, dann merkt man, das Python sehr sehr sehr viel möglich ist.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

__deets__ hat geschrieben:@Sirius3: ich kenne diverse Leute die zb bei Amazon oder Zalando arbeiten, und da durchaus auch neue Systeme mit Java entwickeln. Ganz so schlimm wie mit COBOL ist es nun auch nicht...
Der Trend bei Zalando unter den Teams die Java nutzen geht aber stark Richtung Scala, einige nutzen auch Clojure.

Wobei man schon gute Gründe hat nicht unbedingt Java aber Sprachen die schon innerhalb von Zalando etabliert sind zu nutzen. Man hat dann nämlich schon eine "Standard Library" für die üblichen Probleme wie OAuth2, Nakadi usw.

Eine neue Sprache zu nutzen ist also mit größeren Kosten verbunden als man vielleicht denkt auch bei einem komplett neuen Projekt. Trotzdem kann man eigentlich für zumindest kleinere neue Microservices auch durchaus mal eine neue Sprache ausprobieren, wenn man keine Microservice Architektur hat ist sowas einfach nicht praktikabel.
Dragonstar
User
Beiträge: 2
Registriert: Freitag 30. März 2018, 15:42

Hallo,

vielen dank für eure Rückmeldungen. Ich werde dann mit Python anfangen und dafür das hochgelobte Buch "Learn Python the Hard Way" durcharbeiten. Später kann ich mich ja immer noch entscheiden, ob ich Python vertiefen oder auf Java umsatteln möchte. Schädlich auf Python zu setzen, um das Programmieren zu lernen, scheint es auf keinen Fall zu sein.

Habt noch einen schönen Samstag!

Gruß Martin
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Dragonstar hat geschrieben:Ich werde dann mit Python anfangen und dafür das hochgelobte Buch "Learn Python the Hard Way" durcharbeiten.
Das Buch fand ich eigentlich nie wirklich gut, aber die Überarbeitung jetzt auf Version 3 (die der Autor jahrelang ablehnte) hat vielleicht etwas gebracht.
addi
User
Beiträge: 28
Registriert: Donnerstag 29. März 2018, 22:54

Gibt es dafür einen besonderen Grund?

Ich lerne auch mit seinen Buch/Videos C, was mich bloß etwas nervt ist seine etwas arrogante Art. Aber damit kann man sich abfinden.
Benutzeravatar
MagBen
User
Beiträge: 799
Registriert: Freitag 6. Juni 2014, 05:56
Wohnort: Bremen
Kontaktdaten:

addi hat geschrieben:Ich hatte letztens ein Angebot für ein Duales Studium von SAP angeboten bekommen und mir wurde geraten Java zu lernen. Gesagt getan. Ich versuchte mich einzuarbeiten, aber Java ist eindeutig nicht Anfängerfreundlich,
Es ist kein Nachteil, wenn die Dinge schwierig sind, mit denen man sein Geld verdienen will.
a fool with a tool is still a fool, www.magben.de, YouTube
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Java wird oft für große Projekte eingesetzt und auf mobilen Geräten. Für Hobbyprojekte eignen sich meist andere Sprachen. Python ist eine davon.

Java kann man sich natürlich vorher mal ansehen, aber intensiv eingestiegen bin ich da erst im Studium. Wirklich Spaß macht mir die Sprache nicht.
Antworten