Für Quereinstieg: was draufpacken?

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
T.T. Kreischwurst
User
Beiträge: 52
Registriert: Dienstag 2. Februar 2016, 10:56

Ahoi, will den Aspekt "Codereview/(echtes) Projekt" mal kurz aufgreifen.
Ich habe jetzt als Beispiel eine Weile an einem kleinen Programm für meine Frau geschrieben, das der möglichst zügigen Dokumentation bestimmter Arbeitszeiten und Tätigkeiten für den Arbeitgeber dient. Es lassen sich Aufgaben definieren und diese per D&D in ein Viertelstunden-Zeitraster ziehen. Rechtsklick entfernt sie wieder; wenn man zufrieden ist, kann man das ganze speichern (in einer SQLite DB). Es ist auch möglich, alte Daten zu laden und zu bearbeiten. Zur Dokumentatin gibt es die Möglichkeit, einfache Diagramme ausgeben zu lassen, was man denn so in einem definierten Zeitraum gemacht hat (mittels Matplotlib, sehr lowlevel). Auch einen pdf-Export gibt es, aber den schreibe ich gerade neu, weil der alte Grütze war.
Das ist nun eine Fassung, die ich einmal komplett überarbeitet und neu geschrieben habe und daher so mein "state of the art". Das sind ca. 800 Zeilen Code, allerdings großzügig formatiert zur besseren Lesbarkeit.

Ich hab keine Ahnung, wie gut oder schlecht das ganze programmiert ist - was ich aber wissen müsste, um mich gezielt weiterzuentwickeln. Jedenfalls ist mir nicht egal, wie mein Code aussieht, solage er funktioniert - wer so lernt, arbeitet auch so und das ist schlichtweg Schlamperei. Ich kann zwar behaupten, dass ich nirgendwo sagen müsste (Zitat)"und hier passiert Magie", soweit durchdringe ich meinen Code schon. WIe genau die Module, die ich nutze, bestimmte Dinge umsetzen, weiß ich natürlich nicht - ich nutze sie einfach.
Insgsamt ist das Beispiel aber für ein Code review wohl etwas zu lang, fürchte ich...
Die andere Frage, die ich mir stelle ist: welche Projekt wäre sinnvoll, um daran zu wachsen. Das Netz ist voll davon, aber meist ist der Schwierigkeitsgrad nur schwer auf einen selbst zu beziehen: pack ich das oder ist das mometan viiiiel zu hoch? Usw.
BlackJack

800 Zeilen ist vielleicht zu lang für einen Forenbeitrag, aber das muss nicht zu lang für einen Codereview sein. Wenn nichts dagegen spricht das öffentlich zu zeigen, könntest Du es beispielsweise bei Bitbucket oder Github in einem Mercurial- oder Git-Repository hochladen und einen Link darauf hier veröffentlichen. Das Umgang mit GIT wichtig ist, hat __deets__ ja bereits erwähnt. Also falls Du damit noch keine Erfahrung hast, kannst Du die dabei dann auch gleich sammeln. :-)
Benutzeravatar
MagBen
User
Beiträge: 799
Registriert: Freitag 6. Juni 2014, 05:56
Wohnort: Bremen
Kontaktdaten:

Wenn Du all diese Funktionalität in 800 Zeilen Code bekommen hast, dann hast Du damit schon eine erste Arbeitsprobe. Wenn's funktioniert, dann würde ich nicht mehr Zeit reinstecken, sondern dafür sorgen, dass es auf einem Notebook ohne Netzanbindung läuft und die nächste Arbeitsprobe beginnen.

In einem Vorstellungsgespräch könnte diese Arbeitsprobe 5-10 Minuten füllen, Demo der GUI, ein bisschen Architektur-bla-bla und dann nochmal ganz kurz: so sieht der Code aus. Da wird der Code dann nicht im Detail diskutiert.

Zeige in einem Vorstellungsgespräch lieber viele Arbeitsproben, anstatt zu demonstrieren, dass Du so detailverliebt bist, dass Du beliebig viel Zeit in die erstbeste Aufgabe versenken kannst.
a fool with a tool is still a fool, www.magben.de, YouTube
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@MagBen: die Anzahl der Zeilen sagt überhaupt nichts über die Qualität. Natürlich soll man nicht beliebig viel Zeit in Details versenken, aber wenn man gar keinen Anhaltspunkt hat, ob das Problem einigermaßen elegant gelöst ist, ist eine Zweitmeinung unerläßlich. Es mag ja Leute geben, die nur für sich vor sich hinwerkeln, immer die selben Unschönheiten reproduzieren und auch sonst beratungsresisten sind. Die mögen zwar schnell schöne Fasaden bauen, aber sobald sie im Team arbeiten müssen, sind sie ein Klotz am Bein. Regelmäßiges Feedback-Holen ist eine Grundvoraussetzung um sich weiterentwickeln zu können.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

MagBen hat geschrieben:Wenn Du all diese Funktionalität in 800 Zeilen Code bekommen hast, dann hast Du damit schon eine erste Arbeitsprobe.
Bill Gates hat geschrieben:“Measuring programming progress by lines of code is like measuring aircraft building progress by weight.”
In einem Vorstellungsgespräch könnte diese Arbeitsprobe 5-10 Minuten füllen, Demo der GUI, ein bisschen Architektur-bla-bla und dann nochmal ganz kurz: so sieht der Code aus. Da wird der Code dann nicht im Detail diskutiert.
In einem Vorstellungsgespräch könnte denen eine Arbeitsprobe auch egal sein und dir wird eine Aufgabe gestellt die du am Whiteboard lösen musst oder dir wird schon vor dem Vorstellungsgespräch eine Aufgabe gegeben die du in einem Hangout oder bei Codility oder so erledigen musst. Man kann sich durchaus mit Code 30-60min beschäftigen und damit würde ich im Zweifel auch rechnen. Je nach Unternehmen macht es hier Sinn sich auch nochmal mit grundlegenden Algorithmen, Datenstrukturen und Komplexität zu beschäftigen.
Zeige in einem Vorstellungsgespräch lieber viele Arbeitsproben, anstatt zu demonstrieren, dass Du so detailverliebt bist, dass Du beliebig viel Zeit in die erstbeste Aufgabe versenken kannst.
Bei 5-10min pro Arbeitsprobe bleibt dir bei "vielen Arbeitsproben" aber nicht viel Zeit um noch über andere Dinge zu reden. Das trifft den Sinn eines Vorstellungsgesprächs nicht so ganz.
BlackJack

Arbeitsproben sehe ich eher gar nicht im Vorstellungsgespräch. Das ist eher etwas was bei den Bewerbungsunterlagen dabei ist (Links auf Projekte/Online-Repositories), und eventuell schon darüber mit entscheidet ob man zum Vorstellungsgespräch eingeladen wird oder nicht. Es kann sein, dass man dann darauf angesprochen wird oder man selbst ein Projekt mit in das Gespräch integrieren kann, zum Beispiel wenn das Projekt eine Aufgabe im/für's Vorstellungsgespräch berührt, oder wenn das Thema etwas mit der Stelle/Firma zu tun haben könnte.
T.T. Kreischwurst
User
Beiträge: 52
Registriert: Dienstag 2. Februar 2016, 10:56

BlackJack hat geschrieben:Wenn nichts dagegen spricht das öffentlich zu zeigen, könntest Du es beispielsweise bei Bitbucket oder Github in einem Mercurial- oder Git-Repository hochladen und einen Link darauf hier veröffentlichen. Das Umgang mit GIT wichtig ist, hat __deets__ ja bereits erwähnt. Also falls Du damit noch keine Erfahrung hast, kannst Du die dabei dann auch gleich sammeln. :-)
Github kenne ich natürlich, habe es (wie GITbasierte Software allgemein) aber noch ncht benutzt. Da in der Tat nichts dagegen spricht, den Quellcode dort hochzuladen, werde ich das tun - sobald ich noch 1-2 Bugs behoben habe. Einen Link poste ich dann hier im entpsrechenden Subforum.
@ MagBen, Sirius, DasIch, Blackjack:
obwohl es natürlich schon gut tut, mal lobende Worte zu hören (vielen Dank!), sehe ich das im Prinzip so wie Sirius. Quantität (hier im umgekehrten Sinn) sagt nicht zwangsläufig was über die Qualität meines Codes aus, zumal hier sehr viel über 3rd-Party-Module läuft. 100% Marke Eigenbau ist eigtl. nur das D&D, und was habe ich mit dem blöden Ding geflucht... Da ich den Verdacht nicht loswerde, dass das Script vom Desgin her nicht wirklich gut ist (Stichworte: OO, allgemeine Designprinzipien, Algorithmen, Komplexität), finde ich ebenfalls Zweitmeinungen und Feedback unerlässlich. Denn selbst wenn man mit einer Arbeitsprobe in ein Vorstellungsgespräch kommt, wird man dort in der einen oder anderen Weise nachweisen müssen, dass man auch mit unbekanntem Code zurecht kommt und sauber neuen Code schreiben kann. Das dafür nötige Allgemeinwissen versuche ich mir anzueignen: Bücher lesen, Feedback zu Code holen und wohl auch fremden COde lesen (wobei ich noch nicht weiß, was man sich da z.B. sinnvollerweise ansehen könnte).
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

@T.T. Kreischwurst:

Klingt ja doch so, als suchst du einen Fulltime-Coderjob (ich hätte Dich eher bei was Konzeptionellem und nicht in der Implementation vermutet). Wenn das Dein Ziel ist, dann brauchst Du Umgang/Erfahrung im Machen, also der Sprache Deiner Wahl (offensichtlich Python, hier musst Du Dich je nach Arbeitsfeld Deines potientiellen Arbeitgebers evtl. umorientieren/erweitern können). Hilfreich sind Erfahrungen in Workflows bzgl. test driven development und continous integration, da das immer stärker zum Einsatz kommt. Ein Repo bedienen zu können, gehört quasi schon zu den Standardanforderungen. Zudem sind Linux/Unix bzw. Konsole-Kenntnisse von Vorteil, da sehr viel Entwicklungsarbeit mittlerweile zu OSX/Linux gewandert ist und das Tooling entsprechend konsolenaffin ist (gilt vor allem für Webentwicklung, Windows hat bei Desktopentwicklung mit C# eine Hochburg).
Bei den theoretischen Sachen folge ich das DasIch - zu Datenstrukturen, Komplexität und Algorithmen solltest Du was Fundiertes sagen können. Und Basisdinge sowieso, also Grundlagenwissen/generelle Konzepte zu Rechnermodell usw. Es kommt einfach nicht gut, wenn man im Vorstellungsgespräch für ein Programmierjob nicht weiss, was ein Pointer ist oder was ein binäres AND macht.
Die Sache mit der Arbeitsprobe kenne ich von zwei Bekannten, die sich beworben hatten und initial kein Portfolio mitgaben. Die Firmen haben das dann quasi nachgefordert, allerdings spielte es ausser einer kurzen Erwähnung im Gespräch kaum eine Rolle mehr. Konkrete Problemstellungen in einer Art Sprint zu bearbeiten, kenne ich nur von größeren Firmen.
T.T. Kreischwurst
User
Beiträge: 52
Registriert: Dienstag 2. Februar 2016, 10:56

@Jerch: :mrgreen: Stimmt, gut erkannt. So ganz genau kann ich mangels Wissens meinen Platz nicht definieren. Ich hätte mich ursprünglich auch eher in der Konzeption gesehen, aber dort (sofern wir es als im weitesten Sinn quereinsteigergeeignet bezeichnen) gibt es entweder nix oder es wird werden auch dort Fachkenntnisse in objektorientierter Programmierung und ein bis vielen weiteren Spezialgebieten verlangt, von MySQL Kenntnissen über Linux/Unix Kenntnisse oder Netzwerkadministration bis hin zu Scrum o.ä.
Von daher würde ich vermuten, dass ein Fulltime-Coderjob eher über dem liegt, was realistisch erreichbar ist. Vgl. die zahlreichen Zusatzkenntnisse, die hier vermutlich noch viel breiter vorhanden sein müssen als in einem Schnittstellenjob: Linux UND (gute) test driven dev Kenntnisse UND continous integration UND so weiter...
Trotzdem sind fundierte Kentnisse in der Entwicklung, auch wenn man nicht den Professionalisierungsgrad eines vollen Entwicklers anstrebt, wohl die unabdingbare Grundlage. Darauf würde ich dann Spezialisierungen aufsetzen :K
aug_lager
User
Beiträge: 26
Registriert: Sonntag 4. Januar 2015, 12:01

Was gerade für Quereinsteiger aber auf jeden Fall auch für manche Hobbyprogrammierer interessant wäre: Gibt es eigentlich empfehlenswerte Standardwerke in Sachen Softwarearchitektur und Projektentwicklung? Vielleicht sogar in deutscher Übersetzung? Was mich persönlich besonders Interessieren würde wäre eine Art Einführungslektüre in das Thema, die verschiedene Modelle anreißt. Davon ausgehend kann man sich dann ja weiter informieren. Ich schreibe nur kleine Skripte für Uni und Job, über Vorgehensmodelle und Archtitektur mache ich mir da nicht besonders viel Gedanken. Aber das Thema würde mich interessieren.
Danke übrigens für die Diskussion, es ist schon erstaunlich, womit sich ein professioneller Softwarentwickler so rumschlagen darf.
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

@aug_lager:
Nichts gegen deine Frage, aber es gehört nicht ubedingt zum guten Ton, wenn man in einem Forum fremde Threads mit eigenen Fragen überlagert. Selbst dann, wenn es gut zum Thema passt (und den Threadersteller möglicherweise interessiert oder eben auch nicht). Vielleicht machst du für deine Frage besser einen neuen Thread auf...
aug_lager
User
Beiträge: 26
Registriert: Sonntag 4. Januar 2015, 12:01

Tut mir leid, das war mir nicht klar. Dieses Forum dürfte schon jenes sein, in dem ich die meisten Beiträge hinterlassen habe. Und wie man sieht ist das nicht viel :roll: . Dachte die Frage fügt sich hier super ein. Vielleicht will T.T. Kreischwurst die Frage ja aufgreifen, wenn nicht kann mein Beitrag gerne entfernt werden.
T.T. Kreischwurst
User
Beiträge: 52
Registriert: Dienstag 2. Februar 2016, 10:56

Passt schon, da es ja um Fortbildung geht, gehört es m.E. durchaus zum Thema. Ich habe mir neulich "Objektorientierte Programmierung. Das umfassende Handbuch" (https://www.rheinwerk-verlag.de/objekto ... rung_3775/)gekauft. Bislang bin ich zufrieden, da auch für Einsteiger einigermaßen verständlich. Vielleicht solltest du aber einige der Profis um ihre Meinung bitten, denn zu fachlichen Stärken/Schwächen kann ich nichts sagen.
Benutzeravatar
Kebap
User
Beiträge: 686
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

aug_lager hat geschrieben:Gibt es eigentlich empfehlenswerte Standardwerke in Sachen Softwarearchitektur und Projektentwicklung? Vielleicht sogar in deutscher Übersetzung? Was mich persönlich besonders Interessieren würde wäre eine Art Einführungslektüre in das Thema, die verschiedene Modelle anreißt.
Ich fand die Enzyklopädie der Wirtschaftsinformatik spannend und umfangreich mit vielen Verweisen, bspw: Softwarearchitektur, Software-Projektmanagement oder Systemanalyse
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Zu Projektmanagement usw. sollte allerdings gesagt sein dass da in der Praxis vieles über Bord geworfen wird, zumindest bei Projekten die finanziell, rechtlich oder sicherheitstechnisch nicht kritisch sind. Es macht Sinn sich mit den Dingen soweit zu beschäftigen dass man von allem zumindest mal gehört hat und eine Ahnung hat worum es da geht, wirklich in die Details zu gehen ist aber ziemliche Zeitverschwendung.
esca
User
Beiträge: 2
Registriert: Dienstag 14. Dezember 2010, 00:17

__deets__ hat geschrieben:Ich habe schon Doktoren der Informatik gesehen, denen ich nicht zutrauen wuerde, meinen Toaster zu programmieren, und umgekehrt komplette Selbstlerner, die ich vertrauensvoll an die groessten, komplexesten Aufgaben setzen wuerde.
Wer kennt das nicht? ;)
Viele Firmen machen sich diese Muehe nicht, und schalten eine HR-Abteilung mit formalen Kriterien vor, die dann aussiebt. Wir machen das stattdessen durch einen Programmiertest, den du abgibst. Der ist auch nicht zeitgebunden (halte ich fuer voellig bescheuert), und wird von einem von "uns" Ingenieuren bewertet.
Sehr vernünftig; sehe auch keinen großen Sinn darin, Entwickler nach irgendwelchen Papier-Qualifikationen zu sortieren. Gibt es überhaupt so viele Bewerber, so dass man es sich leisten kann, Leute nach formalen Kriterien auszusortieren? Wird wohl in der Industrie etwas besser aussehen, aber wir im öffentlichem Dienst bekommen sehr wenige Bewerbungen. Wir wären sehr froh über motivierte Quereinsteiger, solange sie ein bisschen Vorwissen mitbringen und lernbereit sind. Bin hier der Einzige, der Informatik studiert hat...
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

esca hat geschrieben:Wir wären sehr froh über motivierte Quereinsteiger, solange sie ein bisschen Vorwissen mitbringen und lernbereit sind. Bin hier der Einzige, der Informatik studiert hat...
Der Arbeitsplatz ist nicht zufällig im Ruhrgebiet oder einer angrenzenden Region? Ich such nämlich nach meiem Studienabbruch (Wirtschaftsinformatik / circa 4. Semester / leider Probleme mit Hochschul-Mathe) und finde nix... :)
BlackJack

@snafu: Von esca stammt der Beitrag Softwareentwickler gesucht (Open Source; Python und mehr) mit einem Stellenangebot an der Universitätsbibliothek der TU München. Kommt also darauf an wie weit man den Begriff „angrenzende Region“ dehnen möchte. ;-)
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Ist München nicht in Wirklichkeit sogar ein Stadtteil von Gelsenkirchen? *grübel*
Antworten