Python beruflich

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Antworten
FrankKazka
User
Beiträge: 3
Registriert: Freitag 12. Juli 2019, 23:38
Wohnort: Frankfurt

Hallo,

ich habe meine Informatik-Abschlussarbeit (Bachelor) vor 2 Jahren zum Thema Textklassifizierung geschrieben und mich ein bisschen in Python verguckt. Ich habe Erfahrung mit C++, Java, Objective-C, PHP, JavaScript, Webkram allgemein und ein bisschen Ruby - neben Ruby hat mir Python bisher klar am besten gefallen.

Mein derzeitiger Job war mal als "Data Scientist" gedacht, der Fokus hat sich dann aber recht bald von Python & ML zu PHP-Webentwicklung verschoben.. ML interessiert mich auf jeden Fall, ist für mich aber kein Muss - insbesondere weil ich den Eindruck habe, dass ML-Jobangebote sich fast immer an "Senior Data Scientists" richten, was ich aus fachlicher Sicht sehr klar (noch) nicht bin. Ich bin aber ein fähiger Softwareentwickler (bin 31) - und ich sage absichtlich Entwickler, weil ich darunter mehr als nur Programmieren verstehe.


Wenn man gerne mit Python in einem professionellen Umfeld arbeiten möchte, mit oder ohne ML, welche Jobs, Bereiche oder Branchen kommen da am ehesten in Frage? Gibt es neben ML einen Markt für Python?

Vielen Dank :)
anonym44

Was für ein Arbeitsverhältnis stellst Du dir vor?
Und was für Projekt Erfahrungen hast Du?

Bist du für ein Gespräch offen, ich bin auf diesem web.py Sprachkanal.
https://discord.gg/7AWTbB6
Benutzeravatar
MagBen
User
Beiträge: 799
Registriert: Freitag 6. Juni 2014, 05:56
Wohnort: Bremen
Kontaktdaten:

Python ist nice to have.
Viele Ingenieure und Naturwissenschaftler nutzen Python als Hilfsmittel.
In der Software-Entwicklung ist Python eine tolle Erweiterung zu C++. Du bist als C++ Entwickler viel effektiver, wenn du alles was mit Python geht nicht mit C++ entwickelst.
Die Tools für ML sind inzwischen so gut, dass nicht mehr die Bibliotheks-Syntax das Problem ist, sondern man skiziert seine Schichten vom neuronalen Netz und die Lernfälle auf Papier und dann wird das in Python umgesetzt.

Python ist ein Schraubenschlüssel, du wirst aber in der KFZ-Werkstatt nicht dafür eingestellt, dass du Muttern anziehen kannst, sondern du musst wissen, wie du den Motor auseinander und wieder zusammenkriegst. Deshalb klappt es nicht eine gute Entwickler-Stelle zu bekommen nur mit der Qualifikation Python-Entwickler. Bei C++ und Java geht das, aber nicht bei Python.
a fool with a tool is still a fool, www.magben.de, YouTube
__deets__
User
Beiträge: 14522
Registriert: Mittwoch 14. Oktober 2015, 14:29

@FrankKazka hoer nicht auf den Troll. Er ist boese, weil wir seine Elaborate nicht auf den Knien rutschend und gen Bremen betend entgegen genommen haben. Sondern es gewagt haben, seine Machwerke aus der perspektive von gutem Software-Enginieering zB bezueglich Namenskonventionen, nicht-globalem Zustand etc zu kritisieren. Das hat ihm nicht gefallen. Und spricht Baende bezueglich der Erfahrung mit "professioneller Entwicklung". Ebenso die Annahme, man wuerde mit Java irgendwie naeher an der zerlegten Maschine sein...

Wir nutzen sowohl C++ als auch Python, und es gibt fuer beides Stellen die auch ohne prinzipiellen Unterschied in Wahrnehmung und Gehalt sind. Dass *mehr* Sprachen zu beherrschen etwas gutes ist, ist davon unabhaengig natuerlich wahr, und erlaubt einem dann den Schwerpunkt der Aufgaben zu wechseln. Was in beiden Richtungen auch regelmaessig passiert.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

MagBen hat geschrieben: Montag 22. Juli 2019, 09:13 In der Software-Entwicklung ist Python eine tolle Erweiterung zu C++. Du bist als C++ Entwickler viel effektiver, wenn du alles was mit Python geht nicht mit C++ entwickelst.
C++ ist unglaublich komplex. Ein Großteil der Komplexität ist vollkommen unnötig. Es ist im Vergleich zu C viel schwieriger C++ mit anderen Sprachen zu kombinieren. Es hat darüberhinaus keinerlei Vorteile gegenüber anderen Sprachen es sei dann man braucht tatsächlich die Performance. Das ist in der Praxis quasi nie der Fall, womit man besser bei Java aufgehoben.

Die Tools für ML sind inzwischen so gut, dass nicht mehr die Bibliotheks-Syntax das Problem ist, sondern man skiziert seine Schichten vom neuronalen Netz und die Lernfälle auf Papier und dann wird das in Python umgesetzt.
ML ist weit mehr als neuronale Netzwerke. Die Tools für ML sind auch nicht sonderlich gut. Sobald es über lokales rumspielen wesentlich hinausgeht und du ML tatsächlich produktiv einsetzen willst, wird es sehr schnell kompliziert. Wie managed man die Daten für Training, die Models selbst usw. richtig? Wie mache ich backtesting? Wie bringe ich das zu Produktion? Wie mache ich daraus eine Pipeline so dass ich Models kontinuerlich verbessern kann?

Deshalb klappt es nicht eine gute Entwickler-Stelle zu bekommen nur mit der Qualifikation Python-Entwickler. Bei C++ und Java geht das, aber nicht bei Python.
Naja, wenn du "gute" weg gelassen hättest würde ich zustimmen. Man findet für Java definitiv problemlos eine Entwicklerstelle, dass ist halt die simple Standardsprache die jeder noch so schlechte Programmierer irgendwie hinbekommt und niemand fragt nach wieso man Java nutzt, was bei Python oder noch exotischeren Sprachen schon anders ist. Ich glaub aber nicht dass die meisten dieser Stellen sonderlich gut sind. Unternehmen die auch andere Sprachen nutzen, sich also bewusst mit dem Thema der Sprachwahl auseinandersetzen, hab ich da doch eher in Verdacht auch tatsächlich gut Entwicklerstellen zu haben.
__deets__
User
Beiträge: 14522
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich denke das "Python-Paradoxon" wie es mal von Paul Graham (glaube ich) beschrieben wurde gibt's nicht mehr. Das besagt, dass Python-Programmierer bessere Programmierer sind, weil sie sich fuer eine eher abseitige Sprache interessieren, und daher waere das ein Indikator fuer tatsaechliches Interesse am Programmieren. Dazu ist Python inzwischen zu populaer. Und ich wuerde MagBen ja sogar zustimmen, dass Python's starke Verbreitung gerade im wissenschaftlich/data-scientist-Bereich dazu gefuehrt hat, das man eine Menge Leute hat, die nur noch pandas + matplotlib-Fragmente aufeinander hauen, bis was dabei rum kommt. Nur ist es eben unredlich im Umekehrschluss zu unterstellen, deshalb waere mit Python kein vernuenftiger Job zu bekommen. Die Aufgabe, aus den Bewerbern die kompetenten auszufiltern nimmt einem leider keiner ab. Und C++ ist da auch kein Garant fuer irgendwas, frei nach dem Motto wenn der Berg nur hoch genug ist, dann sind die Leute die den bestiegen haben schon faehig. Klappt nicht am Mount Everest, und klappt nicht bei den hunderten von C++-Bewerbern die wir gescreent und ausgesiebt haben, mit Einstellungsquoten im niedrigen einstelligen Prozentbereich.
Benutzeravatar
MagBen
User
Beiträge: 799
Registriert: Freitag 6. Juni 2014, 05:56
Wohnort: Bremen
Kontaktdaten:

DasIch hat geschrieben: Dienstag 23. Juli 2019, 11:02C++ ist unglaublich komplex. Ein Großteil der Komplexität ist vollkommen unnötig.
Die Welt ist unnötig komplex, Ingenieure und Rechtsanwälte leben sehr gut davon.
DasIch hat geschrieben: Dienstag 23. Juli 2019, 11:02Es ist im Vergleich zu C viel schwieriger C++ mit anderen Sprachen zu kombinieren.
Ich finde Swig ist sehr einfach. Sogar extrem einfach im Vergleich zu MATLAB & MEX.
DasIch hat geschrieben: Dienstag 23. Juli 2019, 11:02Es hat darüberhinaus keinerlei Vorteile gegenüber anderen Sprachen es sei dann man braucht tatsächlich die Performance.
Es gibt noch einen weiteren Vorteil: die Bezahlung.
a fool with a tool is still a fool, www.magben.de, YouTube
__deets__
User
Beiträge: 14522
Registriert: Mittwoch 14. Oktober 2015, 14:29

MagBen hat geschrieben: Dienstag 23. Juli 2019, 11:29 Es gibt noch einen weiteren Vorteil: die Bezahlung.
Komisch, stackoverflow kennt da keine Unterschiede

https://stackoverflow.com/jobs/salary/r ... %5D=python
https://stackoverflow.com/jobs/salary/r ... 5D=c%2b%2b

Sondern das Gehalt haengt von dem Aufgabenfeld und er Erfahrung ab. Aber hey, das sind nur Daten! Meinungen sind so viel bequemer.
Benutzeravatar
__blackjack__
User
Beiträge: 13068
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Hey, Meinungen und Gefühle sind auch Fakten. Alternative Fakten. 😉
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

@__deets__: ich wollte gerade schon schreiben, dass die Zahlen unabhängig von der Programmiersprache sind, dann habe ich PHP ausprobiert...
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

__deets__ hat geschrieben: Dienstag 23. Juli 2019, 11:17 Und ich wuerde MagBen ja sogar zustimmen, dass Python's starke Verbreitung gerade im wissenschaftlich/data-scientist-Bereich dazu gefuehrt hat, das man eine Menge Leute hat, die nur noch pandas + matplotlib-Fragmente aufeinander hauen, bis was dabei rum kommt.
Das ist doch auch ok. Der Analyst oder Data Scientist wird ja auch nicht als Software Entwickler oder für seine Fähigkeiten im Bereich Software Entwicklung eingestellt, sondern für seine Fähigkeiten im Bereich Mathematik und Statistik.
__deets__
User
Beiträge: 14522
Registriert: Mittwoch 14. Oktober 2015, 14:29

Jein. Grundsaetzlich ist es natuerlich richtig, das die Qualifikation nicht primaer gutes Softwareengineering ist. Nur hat man doch auch oft genug den Fall, dass die geschriebene Software eben aufgrund von mangelndem Verstaendnis etc zu Fehlern fuehrt. Sei es fuer Publikationen, sei es fuer zB Geschaefts- und Sicherheitsrelevante Dokumentation von Pruefverfahren, Chargen und so weiter. Da wird es dann schon etwas relevanter. Ich habe eine Freundin, deren Aufgabe es mal war, den Zoo von Excel-Sheets in ihrem grossen Pharmakonzern irgendwie einzuhegen, damit der Regulierer nicht mit dem grossen Hammer kommt. Da prallten Welten aufeinander.

Es *sollte* also zumindest eine Rolle spielen, oder man sollte den data-scientist mit einer Entwicklerin zusammen packen, damit dann das Ergebnis aus allen Perspektiven rund ist. Allerdings daempft das nicht die Gehaltserwartungen, das stimmt natuerlich.
anonym44

FrankKazka hat geschrieben: Freitag 12. Juli 2019, 23:44 Hallo,

ich habe meine Informatik-Abschlussarbeit (Bachelor) vor 2 Jahren zum Thema Textklassifizierung geschrieben und mich ein bisschen in Python verguckt. Ich habe Erfahrung mit C++, Java, Objective-C, PHP, JavaScript, Webkram allgemein und ein bisschen Ruby - neben Ruby hat mir Python bisher klar am besten gefallen.

Mein derzeitiger Job war mal als "Data Scientist" gedacht, der Fokus hat sich dann aber recht bald von Python & ML zu PHP-Webentwicklung verschoben.. ML interessiert mich auf jeden Fall, ist für mich aber kein Muss - insbesondere weil ich den Eindruck habe, dass ML-Jobangebote sich fast immer an "Senior Data Scientists" richten, was ich aus fachlicher Sicht sehr klar (noch) nicht bin. Ich bin aber ein fähiger Softwareentwickler (bin 31) - und ich sage absichtlich Entwickler, weil ich darunter mehr als nur Programmieren verstehe.


Wenn man gerne mit Python in einem professionellen Umfeld arbeiten möchte, mit oder ohne ML, welche Jobs, Bereiche oder Branchen kommen da am ehesten in Frage? Gibt es neben ML einen Markt für Python?

Vielen Dank :)
Wenn Du oder jemand Anderes als Python-Entwickler arbeiten möchte, einfach eine PM an mich mit deinen Kontaktdaten(Vorzugsweise Telegram oder Skype), bei uns wird nicht lange gefackelt sondern gleich losgelegt, Bezahlung geschieht am gleichen Tag .

Glaub mir, Du kommst keinen Schritt weiter, wenn Du dich nur umhörst.
FrankKazka
User
Beiträge: 3
Registriert: Freitag 12. Juli 2019, 23:38
Wohnort: Frankfurt

Danke für die vielen Beiträge! Ist sehr interessant zu lesen und freut mich dass so eine Diskussion entstanden ist :)
__deets__ hat geschrieben: Dienstag 23. Juli 2019, 11:17 Ich denke das "Python-Paradoxon" wie es mal von Paul Graham (glaube ich) beschrieben wurde gibt's nicht mehr. Das besagt, dass Python-Programmierer bessere Programmierer sind, weil sie sich fuer eine eher abseitige Sprache interessieren, und daher waere das ein Indikator fuer tatsaechliches Interesse am Programmieren. Dazu ist Python inzwischen zu populaer.
Tatsächlich ist das schon einer der wesentlichen Punkte warum ich es interessant fand nach Stellen mit Python zu suchen. Aber stimmt natürlich, dass Python mittlerweile wegen Popularität sehr viel weniger Aussagekraft in diese Richtung hat.

Letzlich möchte ich persönlich auch nicht zwangsweise eine Pythonstelle, aber ich will in einem Unternehmen arbeiten das sich eben bewusst für bestimmte Technologien, Sprachen, Frameworks etc. entschieden hat - und PHP ist in der Regel ja schon das genaue Gegenteil. Wo wird schon PHP aus Überzeugung eingesetzt und nicht weil es die Webprogrammiersprache ist für die man die meisten günstigen Entwickler findet die einem mal schnell irgendwas hinklatschen.. Leider trifft dieses Klischee bei meinem aktuellen Arbeitgeber zu 100% zu.

Wie erkennt man denn von außen Unternehmen bei denen fähige Entwickler arbeiten von denen man lernen kann, wo TDD oder zumindest Unit/Integrationtests mehr sind als etwas "was man mal gehört hat" und wo vielleicht als Kirsche oben drauf auch aus Überzeugung Wert auf ein gewisses Maß an Code-Qualität gelegt wird und nicht nur weil sonst alles dauernd explodieren würde? Ich bin mir sehr sicher dass ich in so einem Umfeld mich mit so ziemlich jeder Sprache zufrieden geben könnte, auch wenn basierend auf meinem Wissensstand Python, C++ oder Java bestimmt am besten für mich persönlich geeignet wären.

Wie geht ihr bei so einer Suche vor?
Benutzeravatar
__blackjack__
User
Beiträge: 13068
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@FrankKazka: Man kann PHP schon aus Überzeugung einsetzen. Ein grosser Pool von Leuten die das können, und damit nicht nur Geld verlangen weil sie eine ”exotischere” Sprache drauf haben, kann ja durchaus ein legitimer Grund sein. PHP gibt es schon ewig und das wird mit Sicherheit morgen auch noch da sein. Ich glaube beim Umbruch von Python 2 nach Python 3 gab es doch ein paar Leute die das potentielle Bruchstelle für Python gesehen haben, an der auch etwas an der Basis hätte bröckeln können. Was ich von der Sprachentwicklung bei PHP so am Rande mitbekomme scheinen die zumindest in eine bessere Richtung zu gehen (Namensräume, weniger eigenartige Einschränkungen bei OOP, Abschaffen des MySQL-Funktions-Zoos zugunsten von PDO, …). Ich mag PHP nicht wirklich und es gibt viel Schrott in PHP und schlechte Entwickler, aber das muss halt nicht so sein.

Von aussen ein gutes Unternehmen zu erkennen könnte schwierig sein. Man sollte bei Vorstellungsgesprächen immer daran denken, dass man sich dabei nicht nur bei einem potentiellen Arbeitgeber vorstellt, sondern der stellt sich dabei auch dem Bewerber vor. Man kann also durchaus auch Fragen stellen und eventuell auch mal mit Kollegen in Spe reden. Und sich im Internet auf Bewertungsplattformen umschauen.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Benutzeravatar
sls
User
Beiträge: 480
Registriert: Mittwoch 13. Mai 2015, 23:52
Wohnort: Country country = new Zealand();

@FrankKazka: ich habe beim damaligen Bewerbungsgespräch genau den Ansatz von __blackjack__ verfolgt und das als beidseitige Vorstellung betrachtet. Ich hatte dann darum gebeten mir mal das ein oder andere Projekt zu zeigen bzw. Quellcode, da durch ein paar Worte alles irgendwie immer toll und schön klingt, ich mir aber nicht so wirklich was darunter vorstellen kann.

Ich glaube, bis zu dem Zeitpunkt der Frage hatte ich mit dem Chef-Entwickler nur 2-3 Sätze gewechselt und den Rest des Gespräches mit der Personalerin. Das schlug ein wie eine Bombe und wir haben uns über all möglichen Sprach-Features und Design-Patterns unterhalten, über Computer-Netzwerke, Datenbanken und weiß der Geier was.

Vielleicht ist das ja etwas, was du in künftigen Interviews mitnehmen kannst. Aus deiner ehrgeizigen Selbstbeschreibung entdecke ich Muster mit Stellen die bereits hier im Forum ausgeschrieben sind und sich fast 1zu1 so lesen ;) (Da ist übrigens so ein typischer Markt für Python)
When we say computer, we mean the electronic computer.
__deets__
User
Beiträge: 14522
Registriert: Mittwoch 14. Oktober 2015, 14:29

@FranzKazka: wenn du schon so genaue Vorstellungen hast, ist das ja super. Denn genau die kannst du dann ja auch vorbringen, und dir erzaehlen lassen, wie es da aussieht. Desweiteren kannst du schauen, ob es von den betreffenden Unternehmen Talks auf Konferenzen oder Meetups gibt, die dir einen Einblick geben. Meine Kollegen und ich tun das zB. Und last but not least: ein neuer Kollege hatte bei einem anderen Unternehmen gewisse Eindruecke gewonnen und Versprechen erhalten. Die waren dann nicht eingehalten, und er hat den Job dann innerhalb der Probezeit oder weniger als einem Jahr gewechselt. Natuerlich ist das nicht toll, vor allem, wenn man dafuer umziehen musste etc. Doch die Oekonomie ist sehr gut fuer Entwickler, dass du ja nicht am Job kleben bleiben musst. Es kann ja auch noch lauter ANDERE Gruende geben, die du nicht aufgezaehlt hast: toxische Persoenlichkeiten, welche die Zusammenarbeit schwer machen. Druck vom Management. Ethisch fragwuerdiges Verhalten. Und so weiter. Und DIE lassen sich deutlich schlechter erfassen, denn ob man CI und TDD benutzt ist klar zu beantworten. Dem zukuenftigen Chef die Aussage abzupressen er oder sie sei ein Arschloch eher nicht so ;)
FrankKazka
User
Beiträge: 3
Registriert: Freitag 12. Juli 2019, 23:38
Wohnort: Frankfurt

__blackjack__ hat geschrieben: Mittwoch 24. Juli 2019, 23:00 [...]
sls hat geschrieben: Donnerstag 25. Juli 2019, 07:04 [...]
__deets__ hat geschrieben: Donnerstag 25. Juli 2019, 09:57 [...]
Vielen Dank für eure ausführlichen Antworten. Damit habt ihr meine Sichtweise doch noch weiter positiv beeinflusst - so kann ich Vorstellungsgesprächen entspannter und gleichzeitig deutlich gespannter entgegenschauen ;)
Antworten