Ich programmiere C # seit etwas mehr als 4 Jahren professionell. In den letzten 4 Jahren habe ich für ein paar kleine / mittlere Unternehmen gearbeitet, angefangen von „Web- / Werbeagenturen“, kleinen branchenspezifischen Software-Shops bis hin zu kleinen Startups. Ich habe hauptsächlich "Business-Apps" erstellt, die die Verwendung von Programmiersprachen auf hohem Niveau (Garbage Collected) beinhalten, und meine allgemeine Erfahrung war, dass alle Arbeiten, die ich ausgeführt habe, professioneller sein könnten. Viele Dinge wurden (in Eile) falsch gemacht, hauptsächlich aufgrund des Kostenfaktors, dass die Leute immer etwas "jetzt" und mit der geringsten Menge an Geld wollten. Ich dachte immer wieder darüber nach, ob ich für größere Unternehmen arbeiten könnte oder für Unternehmen, die besser für Programmierer geeignet sind, oder irgendwo, Ich habe das Geld und die Zeit, um wirklich etwas längerfristiges und wartungsfreundlicheres aufzubauen, das ich in meiner Karriere vielleicht mehr genossen habe. Ich hatte noch nie einen "Mentor", der mich durch meine 4-jährige Karriere führte. Ich bin so ziemlich ein Blog- / Google- / Autodidakt, abgesehen von meinem Bachelor-IT-Abschluss.
Ich habe auch ein anderes Problem beobachtet, das die meisten so genannten "Senior" -Programmierer in "meinem Arbeitsumfeld" wirklich nicht so erfahren sind. Sie sind nur deshalb „älter“, weil sie lange Zeit Programmierer waren, aber der Code, den sie schreiben oder die Entscheidungen, die sie treffen, sind absolut Unsinn! Sie wollen nicht lernen, sie wollen nicht besser werden, sie wollen nur bezahlt werden und das tun, was sie gesagt haben, was Sinn macht und die meisten von uns sind so. Vielleicht sind sie deshalb dort, wo sie jetzt sind. Aber ich will nicht wie sie werden, ich will besser sein. Ich bin in einen mentalen Zustand geraten, in dem ich nicht länger beabsichtige, Programmierer für meine zukünftige Karriere zu sein. Ich begann zu überlegen, ob es vielleicht bessere Dinge gibt, an denen ich arbeiten könnte. Je mehr Blogs ich lese, desto mehr „Best Practices“ habe ich ausprobiert und desto mehr habe ich das Gefühl, von „meiner Realität“ abzuweichen. Aber ich bin kein großartiger Programmierer, sonst glaube ich nicht, dass ich da bin, wo ich jetzt bin. Ich denke, 4-5 Jahre sind eine Etappe, die einen Karriereschritt nach vorne oder einen Schritt nach vorne bedeuten kann.
Ich wollte nur hören, was andere über das, was ich oben erwähnt habe, zu sagen haben und ob Sie in Ihrer letzten Programmierkarriere eine ähnliche Situation erlebt haben und wie Sie damit umgegangen sind. Vielen Dank.
quelle
Antworten:
Sie öffnen eine sehr interessante Frage. Ich stimme Ihnen von ganzem Herzen zu. Ich habe ähnliche Beobachtungen gemacht.
Ich programmiere bereits seit mehreren Jahren professionell und habe festgestellt, dass die Anzahl der guten Programmierer, der großartigen Entwickler, die ihre Arbeit lieben und sie mit Qualität und Leidenschaft ausführen können, nahezu Null ist. Ich habe wahrscheinlich nur eine Person getroffen, die mir etwas beibringen konnte. Das meiste, was ich weiß, habe ich selbst gelernt, Bücher und Foren gelesen, in Foren gefragt und nach Offenbarungsgedanken gegoogelt.
Nach einer Weile bereue ich nicht mehr so viel.
Die Möglichkeiten, in einem Arbeitsumfeld zu lernen, sind häufig begrenzt. Du fängst nicht an. Sie beenden sie nicht. Sie entwerfen nicht, verbessern nicht, überarbeiten nicht, denken nicht an Architektur, Sie programmieren und hacken einfach Dinge zusammen. So funktionieren die meisten Geschäfte. Nicht nur, dass Sie nichts lernen, es ist auch wahrscheinlicher, dass Sie die meisten falschen Dinge lernen, wie Sie NICHT Software entwickeln. Ich habe ständig beängstigende Dinge um mich herum gesehen, all diese Anti-Muster, von denen Sie gehört haben. Was noch schlimmer ist, ich bin gezwungen, sie selbst zu machen.
Ich weiß nicht, wie es passiert ist, aber ich habe es irgendwie geschafft, eine Eingabesperre aufzubauen. Ich bleibe offen, höre zu und wenn ich Verbesserungspotentiale sehe, recherchiere ich und nehme vielleicht eine Technik oder Idee an. Aber kein BS kann jemals durchkommen. Ich habe lange Zeit in schlecht geführten Projekten gearbeitet, aber ich habe keine dieser schlechten Techniken für mich selbst übernommen.
Ich habe ziemlich schnell verstanden, dass Sie, wenn Sie mit der Programmierung zufrieden sein möchten, den Job vergessen und Ihr eigenes persönliches Projekt haben müssen. Hier können Sie Ihre ganze Liebe, Leidenschaft und Ihr Wissen einsetzen, um die Dinge mit dem hohen Qualitätsniveau richtig zu machen. Sie werden eine Menge lernen, eine Vielzahl von Dingen, denen Sie niemals ausgesetzt gewesen wären, wenn Sie langweilige Firmenmitarbeiter gehackt hätten. Ich mache nur meine Arbeit für Gehaltsscheck und bin mit meinen eigenen persönlichen Projekten zufrieden.
Eine Sache, die ich wirklich nicht verstehe, ist, wie diese Situation heutzutage möglich ist. Die Softwareentwicklung ist viel gereift. Es hat gute und schlechte Erfahrungen gemacht. Viele erfolgreiche und viele gescheiterte Projekte. Es liegen Erfahrungen mit langfristigen Projekten vor und es ist bekannt, welche langfristigen Auswirkungen die eine oder andere Organisation auf das Projekt haben wird. Es gibt zahlreiche Studien und gute Bücher geschrieben. "Pragmatic Programmer", "Code Complete", "Mythical Man-Month", "Design alltäglicher Dinge" und andere. Warum niemand außer uns, die Programmierer lesen sie jemals? Wie es möglich ist, dass die meisten Entwickler und Manager selbst nach 20 Jahren in der IT keine Zeit gefunden haben, das eine oder andere Methodenbuch zu lesen. Sie sind für diejenigen geschrieben, die dieses Medikament am meisten brauchen, aber kaum von ihnen gelesen werden.
In Bezug auf berufliche Perspektiven. Was ich auch auf dem Arbeitsmarkt für Arbeitnehmer im Allgemeinen bemerkt habe, ist, dass Arbeitgeber da draußen zunehmend das Interesse an qualitativ hochwertiger Arbeit verlieren (stellen Sie sich vor, sie hatten sie einmal) und immer mehr nach dem billigsten verfügbaren Arbeitsfahrzeug einkaufen. Es fällt Ihnen schwer, Ihr Wissen, Ihre Erfahrung und Ihr Verständnis des Universums an irgendjemanden zu verkaufen. Es ist nicht gefragt. Gefragt ist, dass Ihre Projekte von den Nachwuchskräften ruiniert werden, die keine Erfahrung haben und keine Lust auf professionelle Arbeit haben. Billige Leute werden benutzt und missbraucht und dann rausgeworfen, damit die nächste Runde beginnt. Projekte werden auch an Niedriglohnziele ausgelagert, wo sie von Leuten ausgeführt werden, die anscheinend anfangen, das Programmieren nur mit Ihrem Projekt zu lernen. Das ist eine Sache, die ich wirklich nicht verstehe.
Ich komme immer mehr auf die Idee, dass ich in Zukunft die angestellte Programmierarbeit einstellen werde. Ich würde sehr gerne in meinem eigenen Start-up mit meinem eigenen Projekt arbeiten. Wenn nicht, überlege ich mir freiberuflich zu arbeiten oder wahrscheinlich die Art des bezahlten Jobs zu ändern. Schließlich lerne ich während der Arbeitszeit kaum etwas und bin überhaupt nicht zufrieden. Ich kann alles 9-5 und habe immer Zufriedenheit mit meinen eigenen persönlichen Projekten. Ich lerne viel von Online-Communities. Ich erhalte hier Aufmerksamkeit, Unterstützung für meine Ideen und manchmal sogar Anerkennung, die ich mit meinem Job und meinen Arbeitskollegen nie bekommen könnte. Mal sehen, wo ich in Zukunft sein werde.
quelle
;)
Es gab einen Beitrag von Jeff Atwood über Coding Horror , der besagte, dass dies Spaß machen soll. Und ein Teil des Berufsbildes eines Softwareentwicklers ist die Freude an Ihrer Arbeit. Andernfalls wird es für Sie zu einem wirklich langweiligen und umständlichen Beruf.
Die Tatsache, dass Sie ständig nach Möglichkeiten suchen, Ihre Arbeit zu verbessern, und sich über die neuen Dinge und bewährten Praktiken auf dem Laufenden halten, zeigt, dass Sie Spaß an Ihrer Arbeit in der Natur haben. Mein Rat an Sie wäre also, sich nach einem neuen Job umzusehen.
Ich glaube jedoch nicht, dass die Arbeit in einem großen Unternehmen die Arbeitsbedingungen zwangsläufig verbessern wird. Ich denke, die besten Umgebungen für Softwareentwickler sind kleine bis mittlere Unternehmen, in denen die Leute das mögen, was sie tun. Das Beste, was Sie tun können, ist, Unternehmen zu suchen und auszuchecken, bevor Sie eine Entscheidung treffen. Stellen Sie sicher, dass sich das neue Unternehmen lohnt.
quelle
Erste Sache: eine große Warnung: Wenn Sie sich seit 10 Jahren entwickeln (wie ich), gibt es nichts, was Sie besser machen können als sich zu entwickeln. Wenn Sie also etwas anderes tun möchten, etwas Neues, tun Sie es schnell, da es sonst zu spät ist und Sie nicht in der Lage sind, etwas anderes zu tun.
Nur um meine eigene Sichtweise zu teilen: Ich bin ein Autodidakt, Autodidakt. Ich habe alleine reines C, C #, Amiga C-Entwickeln, Windows, COM, Delphi, PHP, Cinema4D und jetzt Blender und Python gelernt. Ich habe fast immer alleine gearbeitet . Hier ist das größte Problem, auf das ich bisher gestoßen bin: Kleine Unternehmen versuchen zu überleben und Sie sind einer derjenigen, die es am Leben erhalten: Es ist sehr stressig, aber es lohnt sich auch: Sie arbeiten mehr, Sie lernen schneller und viele Dinge Schnell machen Sie Produkte schneller (obwohl Sie Ihre Arbeit oft nicht richtig machen können). Jedenfalls: zu viel Stress. Im Gegenteil, großUnternehmen werden immer überleben, aber das Problem sind die Menschen: zu viele Menschen. Es ist ein Dschungel, aber viel schlimmer: Nichts ist klar: Wenn sich die Menschen, mit denen Sie arbeiten, besser fühlen als sie, werden sie ihr Bestes geben , um Ihnen nicht beim Aufstieg zu helfen, sondern nur, um Sie zu erschießen, weil sie Angst haben ihre eigene Karriere. So funktioniert es in Frankreich (ich weiß es nicht für andere Länder).
Um es kurz: versuchen , ein mittelständisches Unternehmen zu finden , wo Sie das Gefühl , wie es ist Ihr Platz . Egal wie lange Sie programmiert haben, egal wie lange Sie gearbeitet haben, der Tag, an dem Sie in Ihr Auto steigen, um zu Ihrer Arbeit zu gehen, und Sie denken, "Ich bin glücklich, zu meiner Arbeit zu gehen", wird der Tag sein Tag, an dem du deinen Platz gefunden hast .
Es ist keine Frage von 4-5 Jahren oder was auch immer.
NB: Es gibt einen großen Unterschied zwischen "Ich bin glücklich, zu meiner Arbeit zu gehen" und "Ich bin glücklich, zu meiner Arbeit zu gehen, weil ich dies und das mache" / oder / "Ich bin glücklich, zu meiner zu gehen arbeiten, weil ich dies und das lernen werde ". Wenn Sie denken "weil ich dies und das mache", bedeutet dies "dies und das", dass eines Tages endet und Sie danach möglicherweise nicht mehr glücklich sind. Dies ist meine 12-jährige Programmiererfahrung. Und ich bin ein Senior, ich bin gut bezahlt, aber mir ist klar, dass 20 bis 25 Leute schneller denken als ich. Sie haben einfach nicht meine Erfahrung, also habe ich zugegeben, dass ich ihnen helfen kann, Dinge zu tun, sie tun es schneller, aber ich helfe ihnen, sie richtig zu machen (was fast nie der Fall ist, wenn Sie anfangen zu entwickeln).
Tut mir leid, dass mein Englisch nicht perfekt ist. Zögern Sie nicht, meinen Beitrag zu korrigieren, um es richtig zu machen.
quelle
Ich bin seit einundzwanzig Jahren ein Softwareentwickler - das bedeutet unter anderem, dass ich das lange genug mache, um zu trinken! ;-) Aber im Ernst, ich kann mir nicht vorstellen, etwas anderes so gut oder so fröhlich zu machen wie das Programmieren. Ich bin anscheinend einer dieser seltenen Vögel, die diesen Job wirklich lieben .
Ich habe kürzlich meinen Lebenslauf aufgefrischt und festgestellt, dass ich in den letzten zwei Jahrzehnten viele, viele Jobs hatte - meistens Verträge. Als ich mir diese lange Liste ansah, wurde mir jedoch klar, dass die Jobs, die ich am meisten liebte (und die, die ich am längsten hatte), bei Softwarefirmen waren, dh Unternehmen, deren Geschäftsmodell darin bestand, Software an Kunden zu verkaufen. Die folgenden Theorien sind wahrscheinlich nicht universell anwendbar, aber sie gehen weit, um meine Erfahrung zu erklären.
Aus meiner Sicht ist der Unterschied zwischen einem Software-Shop und einem typischen IT-Shop überraschend offensichtlich. Es ist nur eine Frage dessen, was die Führungskräfte verstehen. Wenn das Unternehmen den größten Teil seines Umsatzes mit Software erwirtschaftet, werden die besten Köpfe die Software und ihre Herstellung wirklich in den Griff bekommen. Wenn der Umsatz jedoch durch den Verkauf von Widgets erzielt wird, hat der Kunde im Allgemeinen nicht die geringste Ahnung, was erforderlich ist, um die IT-Infrastruktur am Laufen zu halten, geschweige denn die Prozesse, die hinter der Softwareentwicklung stehen. Schlimmer noch, obwohl sie die Aufgabe an IT-Mitarbeiter delegieren, versuchen sie, die IT-Prozesse auf das abzubilden, was sie wissen, mit Ergebnissen, die im Allgemeinen von enttäuschend bis katastrophal reichen.
Ein Grund ist, dass es eine breite Palette von Talenten gibt, von den lediglich kompetenten bis zu den Software-Virtuosen. Dies widerspricht völlig der Mentalität des Ausstechers, die für ungelernte und angelernte Positionen so gut funktioniert. Die Erwartung, dass ein Entwickler durch einen anderen Entwickler mit einem ähnlichen "Skillset" ersetzt werden kann, erscheint uns zwar lächerlich, für eine Managementstruktur, die sich auf unformatierte Zahlen konzentriert, jedoch häufig als durchaus vernünftig. Wenn dies unglaublich erscheint, sehen Sie sich an, wie viele Geschäfte immer noch versuchen, das Waterfall-Modell zum Laufen zu bringen.
Sie brauchen nicht unbedingt alle Virtuosen in Ihrem Team, aber Sie brauchen mindestens ein oder zwei. Und ein Teil ihrer Rolle muss darin bestehen, die Junioren zu betreuen, damit sie in die Rolle hineinwachsen können (oder sich auswaschen - es passiert). Andernfalls setzt sich der schlecht bis mittelmäßige Junior-Code durch, der mit Fehlverhalten und Aufblähung einhergeht. Sobald dieser Krebs einsetzt, ist der Code schnell nicht mehr zu halten, die Produktivität im gesamten Team sinkt stark und die Menschen fangen an zu brennen.
Das schafft Umsatz, bis schließlich jemand sagt: "Wir können das Ding nicht mehr am Laufen halten! Lass es uns wegkratzen und von vorne anfangen!" Die Investition in die alte Codebasis geht aus dem Fenster und der Prozess beginnt von vorne. "Aber diesmal wird es anders sein", versprechen Sie sich. Und für eine Weile ist es so. Dann heuert jemand Ihren Rockstar an und Sie bleiben mit ungerichteten Nachwuchskräften zurück, die Ihre glänzende neue Codebasis erneut verwerfen.
Schaum. Schimpfen. Bereuen.
Aber ich schweife ab ... Um Ihre ursprüngliche Frage zu beantworten: Nein, ein halbes Jahrzehnt ist nicht die Mitte einer Software-Karriere. Vielleicht ist es eher ein Zeitalter der Vernunft - der Ort in Ihrer Karriere, an dem Ihnen die Schuppen aus den Augen fallen und Sie beginnen, das Geschäft so zu sehen, wie es ist. Die Erkenntnisse kommen für jeden in einer anderen Reihenfolge, und das beeinflusst die Schlussfolgerungen, die Sie auf dem Weg ziehen können. Aber bleiben Sie dran - wenn Sie auf der anderen Seite gesund herauskommen, haben Sie eine viel gesündere Perspektive und werden am Ende feststellen, dass dieses verrückte Geschäft, in dem wir tätig sind, lohnender ist als je zuvor.
quelle
Ich denke, Sie brauchen noch fünf Jahre Erfahrung. Dann können Sie die Kompromisse akzeptieren und gerne korrigieren, was Sie können.
Zumindest war das meine Erfahrung. Mit ungefähr 5 Jahren (ungefähr der Zeit, die es braucht, um ein Experte zu werden) denke ich, dass ich es tatsächlich "verstanden" habe. Mir wurde klar, dass mein Code Mist war. Ich erkannte, dass meine glänzenden Hacks, die die Apps zum Laufen brachten, genau das waren, Hacks. Mir wurde klar, dass ich unterdurchschnittlichen Code erstellt hatte, um meine Chefs glücklich zu machen und die Gehaltsschecks am Laufen zu halten.
Gleichzeitig wurde mir klar, dass sich die Wünsche der Chefs nicht ändern würden. Sie wollten es gestern immer, ohne Geld für gute Werkzeuge auszugeben. Es würde sie nie interessieren, ob ich ein bestimmtes Designmuster verwendete. Niemals würden sie in Ehrfurcht geraten, weil ich die Wartbarkeit durch eine vernünftige Anwendung des Grundsatzes der einheitlichen Verantwortung erhöht habe.
Mir wurde auch klar, dass ich gegen mein jüngeres Ich kämpfen würde, das von unerfahrenen Programmierern verkörpert wird. Der Programmierer, der das Programm gehackt hat, um es schnell zum Laufen zu bringen. Der junge Programmierer, der sich all den albernen Dingen widersetzte, für deren Verständnis ich Jahre gebraucht habe. Der junge Programmierer, der glaubt, 5 Klassen zu haben, ist verwirrender als eine große Klasse, die das alles kann.
Aber jetzt, da ich 10 Jahre alt bin, stelle ich fest, dass diese Frustrationen genau so sind wie die Frustrationen, die ich in meinen ersten fünf Jahren erlebt habe. Es ist die Frustration, die mit dem Erlernen einer neuen Fähigkeit verbunden ist. Aber dieses Mal sind die Fähigkeiten zwischenmenschlich. Die Fähigkeiten bringen Nicht-Programmierer dazu, die Grenzen des Cowboy-Weges zu verstehen. Und diese Fähigkeiten sind im großen Rahmen vielleicht wichtiger als die Kodiererfähigkeiten, die ich in den ersten fünf Jahren erworben habe.
Aber das wirklich Erstaunliche an diesem Job ist, dass ich mich durch technische Fähigkeiten weiterentwickeln kann und muss, während ich gleichzeitig mit dem Management zusammenarbeite.
Also sag ich dir bleib dran! Weil Sie sich mit der Technologie vertraut gemacht haben, können Sie an Ihren Fähigkeiten arbeiten, die mit den matschigen Dingen, die Menschen genannt werden, zu tun haben.
quelle
Ich habe herausgefunden, dass es zwei Geheimnisse relativen Glücks gibt:
versuche nicht, alles zu haben, was du willst, sondern alles zu wollen, was du hast
Das Leben ist hart - es spielt keine Rolle, wie hart du schlagen kannst (gut du bist, persönlich und beruflich). es wird immer härter zurückschlagen. Es ist wichtig, wie viel Sie getroffen werden und trotzdem weitermachen können.
Immerhin ist alles ein Spaziergang im Park und es gibt wichtigere Dinge als Bits und Bytes, Praktiken und so. Genießen Sie einfach alle Erlebnisse so wie sie sind und wehren Sie sich so oft Sie können.
quelle
Vielleicht einen Blick auf The Passionate Programmer von Chad Fowler ... von der Webseite zu zitieren:
quelle
IMO ist die Unzufriedenheit, die Sie offensichtlich empfinden, keine Krise, sondern ein Zeichen dafür, dass Sie ein bestimmtes Niveau erreicht haben. Sie sind über den "Ich bin nur ein Programmierer" -Slot hinausgewachsen. Sie haben jetzt genug Verständnis, um die Mängel des aktuellen Zustands zu erkennen und zu ermitteln, wie sie behoben werden können.
Der nächste Schritt besteht darin, einen Zusammenhang zwischen dem zu finden, was Sie als potenzielle Verbesserung ansehen, und dem, was das Unternehmen, für das Sie arbeiten, als solches sehen würde. Dann müssen Sie Ihren Chef / Ihre Chefs davon überzeugen, dass dies der richtige Weg ist.
Es reicht nicht aus, Dinge zu verstehen und zu wissen, wie man Dinge macht. Sie sollten auch in der Lage sein, die Leute davon zu überzeugen, dass Sie wissen, was Sie tun. Und wenn es nach Verkauf klingt, dann deshalb. Aber das ist absolut notwendig, um "großartig" zu werden. Sie arbeiten nicht mit Computern, Sie arbeiten für Menschen und mit Menschen, Sie müssen in der Lage sein, Ihre Ideen zu verkaufen.
Natürlich wären einige Unternehmen zu konservativ, um Ihre Ideen zu akzeptieren, und Ihr Chef kann sie aufgrund der Farbe der Krawatte, die Sie tragen, ablehnen. Denken Sie jedoch daran, dass das Verkaufen von Ideen nicht einfacher ist als das Generieren von Ideen, und ein erfolgloser Verkauf nicht notwendigerweise eine Folge der Hintergedanken Ihres Chefs ist. Dies kann eine schlechte Präsentation sein.
quelle
Ich stimme Nikos voll und ganz zu. Ich denke, Sie brauchen vielleicht ein Unternehmen, das sich auf Technologie und Produkte konzentriert. Es gibt Unternehmen, in denen die Softwareentwickler die Entwicklung nur als ihre Aufgabe ansehen und sich nie in ihrer eigenen Zeit Gedanken darüber machen. Das Arbeitsumfeld ist in der Regel viel besser auf Manager ausgerichtet, die Schreibtischarbeit leisten, als auf Entwickler, die sich Gedanken machen. Der durchschnittliche Standard der Entwickler ist im Allgemeinen niedrig (obwohl Sie gelegentlich einen "Guru" bekommen). Sie neigen dazu, Abstriche bei Dingen wie Versionskontrolle, Tests, Prozessen usw. zu machen (oder diese sogar zu vermeiden). Das Unternehmen liefert im Allgemeinen Software aus, die die Arbeit erledigt, aber es ist oft hässlich und fehlerhaft, und niemand scheint besonders gestört zu sein.
Auf der anderen Seite gibt es Unternehmen, in denen die Entwickler genau das tun, was sie sonst sowieso zu Hause tun würden. Abends gehen sie nach Hause und arbeiten an ihren eigenen Entwicklungsprojekten. In ihrer Freizeit lernen sie neue Sprachen und Technologien. Das Arbeitsumfeld ist in der Regel sehr entwicklerorientiert, mit guten Monitoren, guten Werkzeugen und einer guten Denkatmosphäre. Die Entwickler haben oft einen hohen Standard, und Sie lernen täglich von all Ihren Kollegen. Sie nehmen im Allgemeinen Dinge wie die Versionskontrolle, das Testen und den Prozess ernst. Das Unternehmen liefert in der Regel hochwertige Software aus, da die Entwickler diese bei Fehlern oder Unvollkommenheiten persönlich einschätzen.
Ich denke nicht, dass die Suche nach einem größeren Unternehmen die Sache unbedingt verbessern wird. Tatsächlich sind größere Unternehmen in vielen Fällen schlechter, und die Probleme sind nur tiefer verwurzelt und institutioneller.
Natürlich polarisiere ich die Dinge ein bisschen ... aber wenn Sie ein Software-Ingenieur sind (und nicht nur in Ihrem Lebenslauf), müssen Sie versuchen, eine der letzteren Arten von Unternehmen zu finden. Überlegen Sie sich einige gute Interviewfragen, die Sie ihnen stellen können , um herauszufinden, ob ein Unternehmen ein solcher Ort ist.
quelle
Ich habe festgestellt, dass viele Programmierer nicht verstehen, dass nicht alle Entscheidungen technisch sind. So traurig es auch ist, etwas "Richtiges" zu tun, ist nicht immer eine Option. Dies führt bei vielen Entwicklern zu der Annahme, dass ihre Vorgesetzten dumm sind oder schlechte Entscheidungen treffen ... und ja, oft ist dies tatsächlich der Fall, aber genauso oft ist es die Tatsache, dass das Unternehmen möglicherweise nicht mehr im Geschäft ist oder ein Unternehmen verliert Arbeit vollständig, wenn sie den Programmierern erlaubten, den Zeitplan festzulegen und alle technischen Entscheidungen zu treffen.
Leider ist es manchmal unsere Aufgabe, innerhalb der politischen oder finanziellen Zwänge der Arbeit zu arbeiten und das Beste zu geben, was wir können.
Eine Sache, die Sie aus Erfahrung lernen, ist konservativ zu sein. Die neuesten Techniken sind möglicherweise nicht bewährt, und Sie haben möglicherweise auch dann kein gutes Verständnis dafür, wenn dies der Fall ist. Manager verbringen nicht gerne Zeit damit, sich mit einer neuen Technologie vertraut zu machen, nur weil Sie etwas Neues lernen möchten.
Programmierer vergessen, dass viele Unternehmen keine Softwareunternehmen sind. Dies sind Unternehmen, die auch Software herstellen. Ihre Aufgabe als Programmierer ist es, die unternehmenskritischen Prozesse zu vereinfachen und keine perfekte Software zu schreiben. Manchmal stellt sich heraus, dass dies dasselbe ist, aber es ist tatsächlich ziemlich selten.
quelle
Meiner Meinung nach ist es keine Midlife Crisis - ich würde sagen, die Flitterwochen sind vorbei.
quelle
Ich kann sagen, dass der geschriebene Code besser sein könnte, aber es muss eine Zeile geben, in der man zu sehr Perfektionist sein kann, als ob etwas in 99,99999% der Fälle funktioniert, ist für die meisten Leute nicht nahe genug an 100% ? Manchmal kämpfe ich mit negativen Gedankenmustern, weil ich Perfektionismus und intensive Selbstkritik und Urteilskraft habe. Vielleicht kann ich mich damit übermäßig identifizieren.
4-5 Jahre ist genug Zeit, IMO, um ein paar Dinge herauszufinden:
Es gibt andere Fragen wie " Roadmap zu einem besseren Programmierer " und " Wie man ein" schnellerer "Programmierer wird", die möglicherweise Vorschläge für Sie enthalten, wenn Sie Ihre Fähigkeiten verbessern möchten.
Ich habe auch erlebt, wie jemandem der Senior-Titel verliehen wird, nur weil er so lange auf dem Gebiet überlebt hat, anstatt ein Niveau von Können zu erreichen. Sie können dies entweder als Teil der Funktionsweise der Welt akzeptieren oder versuchen, Orte zu finden, die anders verlaufen. Wie viele es tatsächlich gibt, weiß ich nicht, aber ich kann sagen, dass man manchmal einen guten Ort dafür finden kann, wie man gerne arbeitet und was das Unternehmen und seine Mitarbeiter verwenden, um die Arbeit zu erledigen.
" Sources of Insight " ist einer meiner Lieblingsblogs und ich lese ihn fast immer gerne. Das Material ist ein bisschen kopflastig, da es viele intellektuelle Elemente zu dem gibt, was geschrieben wurde, aber es gibt Nuggets, die man nehmen und ihr Leben ein wenig verbessern kann, oder zumindest war das meine Erfahrung.
Ich kann mich in der Schule erinnern, als ich ein Kind war, dass es nach 4-5 Jahren oft Übergänge gab, als ich in meiner ersten Schule 8 Jahre lang war (Junior Kindergarten bis Klasse 6), dann waren es 2 Jahre (Klassen 7 und 8) , 4 Jahre (Gymnasium der Klassen 9-13, wo 11/12 in einem Jahr in meinem Fall stattfand) und 4 Jahre (Universitäts-Bachelor).
Ich kann die Vorstellung akzeptieren, dass die Krise an verschiedenen Punkten im Leben auftritt. Zum Beispiel kann ein Universitätsabschluss dazu führen, dass man sich fragt, wer sie sind oder ob sich das alles lohnt, nachdem man eine Weile gearbeitet hat.
Einige Orte wie genial Orte erscheinen können , arbeiten und andere können zum Burnout führen , da das eine Frage hier ein paar Mal gewesen ist, „ Was sind die Ursachen Entwickler Burnout “ und „ Entwickler Burnout Geschichten “ , während andere Fragen sind die Flip davon, " Was ist Ihre Motivation " und " Programmieren von (De-) Motivation und weiteren Plänen ... "
Nur aus Gründen des Hintergrunds in meiner Antwort hier entwickle ich seit fast 12 Jahren Websites / Anwendungen, als ich im Februar 1998 meinen ersten Job an einer Universität bekam und abgesehen von einer 8-monatigen Dürre, in der ich nicht gearbeitet habe Ich habe dies die ganze Zeit in verschiedenen Umgebungen getan: Ein paar Dotcoms, ein Anwendungsdienstleister und jetzt im Webentwicklungsteam der Abteilung für Informationssysteme eines lokalen Technologieunternehmens. Mir ist klar, dass dies eine lange Antwort ist, aber ich denke, dass die gestellten Fragen keine kurzen Antworten für mich sind.
quelle
Ich habe in meinen 10 Jahren Programmieren ähnliche Dinge gefunden, und ich vermute, dass dies ziemlich häufig vorkommt. In der Geschäftswelt (im Gegensatz zur akademischen Welt) bestimmen Geld (oder Geldmangel) und Zeit den Zeitplan, die Funktionen und die Qualität der Programmierung. Oft fehlen diese Ressourcen, um die Dinge richtig zu machen. Dies ist eine wichtige Motivation, um die effizientesten Methoden zur Lösung von Problemen zu finden. Diese Situation hat mich auch veranlasst, daran zu denken, dass meine Programmierung nur das vorliegende Problem lösen sollte (mit einer gewissen Überlegung für die Zukunft), anstatt etwas zu erstellen, das viel mehr Funktionen als erforderlich enthält. Dies ist meiner Meinung nach eine wichtige Lektion zu lernen.
Ihre Kommentare zu "Senior-Programmierern" sind nach meiner Erfahrung leider auch weit verbreitet. Ich denke, der Grund dafür ist zweierlei: Erstens werden viele erfahrene Programmierer faul und verwenden nur die Werkzeuge und Methoden, die sie in ihrer Karriere verwendet haben. Die Technologie schreitet jedoch weiter voran, und dies führt dazu, dass diese erfahrenen Programmierer zu "Dinosauriern" werden. Zweitens kann es nach einer Weile des Programmierens leicht sein, ein bisschen Hybris zu erleiden ("meine Talente haben mich so weit gebracht, dass ich ein ziemlich guter Programmierer sein muss"). Ich versuche, diese beiden Probleme zu bekämpfen, indem ich ständig versuche, neue Methoden oder Technologien zu erlernen, um meine Probleme zu lösen. Manchmal widerspricht dies dem obigen Lektionszustand "Nur das bauen, was erforderlich ist", aber das Ziel ist es, ein gesundes Gleichgewicht zwischen beiden anzustreben.
Ich würde vorschlagen, Ihre Erfahrungen als Motivator zu nutzen, um sich kontinuierlich zu verbessern. Ich habe die Programmierbranche nach ungefähr 5 Jahren selbst verlassen, weil ich die Leidenschaft verloren habe, Code zu entwickeln. Aber ich konnte den Drang, Programme zu erstellen, nicht loswerden und kam einige Monate später wieder in die Branche. Ich habe gelernt, dass Sie sich mit dem beschäftigen müssen, was Sie gerne tun - wenn Sie ein Projekt verwalten möchten, sollten Sie eine Position finden, die es Ihnen ermöglicht, Projekte zu verwalten. Wenn Sie den ganzen Tag codieren möchten, suchen Sie eine Position, um dies zu tun. Einen Job zu finden, der Sie herausfordert und Ihre Wünsche erfüllt, ist ein wunderbarer und notwendiger Teil eines glücklichen Lebens - ich wünsche Ihnen viel Glück dabei.
quelle
Hey Kumpel, es war wirklich gut, deine Frage zu lesen. Ich bin froh, dass du das geschrieben hast. Weißt du was, du merkst nicht, welches Verständnis du gerade hast. Die Dinge, die Sie geschrieben haben, lassen mich verstehen, welche Erfahrung Sie gemacht haben, und glauben Sie mir, diese Erfahrung kann nicht jeder Programmierer in seinem Leben haben. Sie sind eine selbstbestimmte Person, selbst lernend. Im Moment sind Sie in einem sehr ausgereiften Zustand, nachdem Sie 4 Jahre für kleine Unternehmen gearbeitet haben. Wenn Sie in großen Unternehmen gewesen wären, hätten Sie nichts als Erfahrung zu betrachten. Jetzt haben Sie ein Verständnis dafür, wie diese Branche funktioniert, wie Dinge getan werden und wie sie getan werden sollten. Welches Niveau haben diese sogenannten "Senioren"? Ich habe einen Vorschlag für dich, wenn du so gut selbst lernst und seit über 4 Jahren Selbstlernen praktizierst, warum dann nicht? Versuchen Sie, als Freiberufler Karriere zu machen. Glauben Sie mir, Sie würden für sich arbeiten und viel mehr genießen.
Bedauern Sie zum Schluss nicht, was Sie in den letzten 4 Jahren getan haben. Es ist eine wundervolle Erfahrung und nur wenige haben dies in ihrem Leben :)
quelle
Der Unterschied zwischen Senior- und Junior-Programmierern, wenn es um Menschen mit Erfahrung geht, ist im Allgemeinen nur ein Lohn. Es ist sehr unterschiedlich, welchen Wert Organisationen beim Ändern des Titels haben, und oft hängt es davon ab, was Sie bei der Einstellung verlangen.
Wenn es ein Trost ist, ich habe eine 10-jährige Mid-Programming-Life-Krise, obwohl ich angefangen habe, auf einem Apple zu programmieren. Ich weiß es nicht. Ich wünschte nur, die Leute hätten keine Magie von Programmierern erwartet.
quelle
Ich finde, der rote Faden, den ich in meiner Karriere gesehen habe, war, dass ich mich gelangweilt fühle, wenn ich mich in einer Situation gefangen fühle, in der ich keine Kontrolle über meine Umgebung habe. Nur das zu tun, was alle anderen dir sagen. Es ist wichtig, einen eigenen Bereich (IMHO) zu haben, der die volle Verantwortung trägt - vielleicht fehlt das auch in Ihrer Arbeit?
In diesem Fall sollten Sie mit Ihrem Vorgesetzten sprechen. Vielleicht gibt es eine Lösung für Ihren aktuellen Job? Um mehr Verantwortung zu bitten, ist immer ein guter Schachzug.
quelle
Nach meiner Erfahrung sind die ersten Wochen (höchstens Monate) entscheidend für die allgemeine Qualität eines Projekts. Wenn Sie an einem Ort arbeiten, an dem andere Programmierer bereits ein Durcheinander verursacht haben (schlechte Codierungsstandards, keine Versionskontrolle usw.), ist es für einen Manager sehr schwierig und für einen neuen Kollegen meist unmöglich, Verbesserungen festzustellen. Später werden Termine und knappe Probleme für fast jedes Projekt hässlich sein, aber wenn das Fundament gut gemacht ist, wird der Schaden begrenzt und überschaubar sein.
Wenn Sie sich aus diesem Grund in einer Situation befinden, in der Sie mit schlechten Kollegen an einem schlechten Projekt arbeiten müssen, versuchen Sie, sich einem neuen Projekt zuzuordnen (sofern dies in Ihrem Unternehmen möglich ist), oder suchen Sie einen neuen Job. Warten Sie nicht zu lange, denn schlechte Angewohnheiten sind ansteckend.
quelle
Ich hatte die gleichen Fragen und habe mir möglicherweise die gleichen Dinge angesehen, die Sie haben (großartige Startups, inspirierende Ratschläge, motivierte Menschen, die erstaunliche Dinge, Prozesse und Algorithmen entwickeln, die Ihr Hauptherz höher schlagen lassen) , noch in den Leuten, die ich kenne, die im Geschäft sind. Das Rätsel, dieses tiefe Interesse mit einem bezahlten Job in Einklang zu bringen, bedeutete eine Menge schlecht geschlafener Nächte und die Suche nach einem so genialen Projekt, das man beiseite nehmen und doch schnell genug in sein eigenes Ding hineinwachsen konnte, um einen Ausweg zu finden. Wie viele Menschen muss auch ich eine Familie unterstützen, und ich persönlich denke, dass die Energie, die erforderlich ist, um ein Startup für den brasilianischen Markt aufzubauen, nicht gut angelegt ist, wenn es nicht vollständig IT-technisch und langweilig ist. Und im Ernst? Ich mache den ganzen Tag lang IT-ische und langweilige Dinge.
Für mich bestand die Antwort darin, den Willen zu behalten, an einem Ort zu lernen und sich zu verbessern und an einem anderen zu arbeiten. Ich habe processing.org aufgegriffen und immer wieder versucht, mehr zu zeichnen, zu schreiben und zu kochen. Um ehrlich zu sein, es war großartig für mich: Manchmal bist du so begeistert von der Begegnung mit den Menschen, die du bewunderst, und davon, in das Pantheon der großen Leistungsträger aufgenommen zu werden, dass du ernsthafte Fakten darüber ignorierst, wer du bist und warum du das Gefühl hast, dass das Leben wert ist Leben. Und während die Arbeit einen erheblichen Teil Ihres Tages in Anspruch nimmt, ist die Minute, in der Sie aufhören, sich Gedanken darüber zu machen, was das alles bedeutet und wohin Sie gehen, der Moment, in dem Sie erkennen, dass Sie es nicht brauchen, um dorthin zu gelangen. Codieren Sie weiter, wenn Sie es lieben, schreiben Sie Software zu Hause und beteiligen Sie sich an Projekten, die Ihnen besonders am Herzen liegen. Diese Art der Befriedigung kommt für die meisten Menschen kaum von einem Gehaltsscheck.
quelle
Als Programmierer müssen Sie immer Ihren Wunsch nach Perfektion und den Wunsch Ihres Arbeitgebers nach einem funktionierenden Produkt in Einklang bringen. In einigen Unternehmen liegen diese beiden Wünsche näher beieinander, in den meisten Unternehmen liegen die beiden Wünsche weit auseinander.
Mein bester Vorschlag für den Umgang mit der Belastung Ihres Tagesberufs ist, nebenbei ein persönliches Projekt zu starten, bei dem es keine Frist gibt und bei dem Sie in Bereichen arbeiten können, in denen Sie normalerweise nicht arbeiten Entscheidungen. Der lohnenswerteste Code, den ich geschrieben habe, war während meiner Arbeit als Wii-Entwickler. Ich kann Ihnen vorschlagen, ein Spiel zu schreiben. Sie werden in der Lage sein, jeden Aspekt der Programmierung, 3D, Vernetzung, KI usw. zu behandeln. Da Sie bereits mit .NET arbeiten, würde ich vorschlagen, XNA oder Unity zu nutzen
Soweit Senior-Programmierer nicht viel wissen, haben Sie wahrscheinlich Recht. Die meisten leitenden Programmierer größerer Unternehmen wurden zu einem Zeitpunkt befördert, zu dem sie viel wussten oder in der Lage waren, ihre Arbeit zu erledigen. Jetzt, wo sie älter sind, haben sie unterschiedliche Verantwortlichkeiten, hauptsächlich als Manager. Es wird erwartet, dass ihre Codierungsfähigkeiten ein wenig nachlassen. Einige sind besser als andere, und einige wurden wahrscheinlich nur aufgrund ihres Wissens befördert, aber die meisten älteren Programmierer, mit denen ich in der Vergangenheit zusammengearbeitet habe, verfügten über solide (wenn auch manchmal veraltete) Fähigkeiten.
Zum Abschluss machen Sie also ein persönliches Projekt, um die Langeweile des Alltags zu lindern, und schonen Sie Ihre Senioren. Tun Sie einfach die beste Arbeit, die Sie in der vorgegebenen Zeit leisten können, und es wird Ihnen gut gehen.
quelle
Ich denke, es ist Zeit, Sr, Entwickler für Sie zu sein, ich bin neu auf diesem Markt und lerne und verbessere mich, aber Arbeitgeber suchen keine Menschen, sie suchen Monster wie Jr. Entwickler mit mehr als 6 Jahren Erfahrung und es ist wirklich frustrierend.
quelle
Gute Frage, Jeffrey. Programmierst du immer noch gern? Bist du leidenschaftlich dabei, machst du es in deiner Freizeit? Oder haben Sie nur einige der schrecklichen Programmierjobs satt, die Sie hatten.
Wenn Sie das Gefühl haben, dass das Programmieren nichts für Sie ist, gibt es viele andere Disziplinen, die Sie zu diesem Zeitpunkt in Ihrer Karriere abspalten könnten - Projektmanagement, Vertrieb, Pre-Sales, Analyst. Diese Möglichkeiten hätten es als Junior / Absolvent nicht gegeben, sodass Sie möglicherweise nicht über das Schneiden von Code hinaus gedacht hätten. Vielleicht können Sie sich an Ihren Arbeitgeber wenden, um Sie für Zertifizierungsprüfungen zu sponsern, oder wenn Sie eine neue Technologie ausprobieren möchten (Azure / Silverlight / WPF?)
Wenn Sie jedoch das Gefühl haben, dass Ihr Arbeitsplatz einem echten Dilbert-Comic ähnelt, ist es vielleicht an der Zeit, weiterzumachen. Wenn Sie in einem großen Unternehmen gearbeitet haben, wie wäre es mit Interviews für ein paar Startups oder umgekehrt. Sie müssen niemandem mitteilen, dass Sie sich für eine Stelle bewerben, und selbst wenn Sie ein Angebot erhalten, befinden Sie sich in einer hervorragenden Verhandlungsposition, da Sie bereits eine Stelle haben. Sie können einfach entscheiden, ob das Angebot besser ist als Ihre aktuelle Situation. und wenn nicht, dann schau einfach weiter. Größere Unternehmen bieten Ihnen häufig bessere Karrieremöglichkeiten und eine bessere Ausbildung, während Sie bei einem kleinen Unternehmen mehr immaterielle Werte wie die Verantwortung für den Erfolg des Unternehmens, flexible Arbeitszeiten, Aktienoptionen und das Dienstalter / den Respekt später, wenn / wenn das Unternehmen trifft es groß.
quelle
Wenn es ein Trost ist, habe ich in Bezug auf Senioren an meinem Arbeitsplatz genau dasselbe empfunden. Letzte Woche habe ich einen evidenzbasierten Bericht eingereicht, und diese Woche hatte ich eine einstündige Besprechung mit den Mitarbeitern, um offiziell eine Beschwerde über die Manager einzureichen (unter Berücksichtigung, dass ich ein Junior bin). Es war entweder ein paar Eier wachsen zu lassen oder in meinem Job unglücklich zu sein. Es sind keine böswilligen Beschwerden, sondern konstruktive Beschwerden. Es gibt einen Unterschied, und er kann sicherlich einen großen Einfluss auf Ihr Arbeitsglück haben.
BEARBEITEN
Ich würde auch sagen, gib nicht einfach auf, weil du ein Problem mit Leuten hast. Es scheint, dass eine Menge Leute hier einfach sagen "Kündigen Sie Ihren Job", die Wahrheit ist, dass Sie den Unterschied am Arbeitsplatz machen können. Ich weiß, es klingt kitschig, aber ich denke, Sie würden Veränderungen bewirken und mehr Respekt gewinnen, wenn Sie aktiv dafür sind, dass sich Dinge ändern. Haben Sie keine Angst, Ihren Chef beiseite zu nehmen und sich zu beschweren. Ich habe, und schon hat es einen großen Unterschied gemacht. Wir übernehmen neue Technologien, ändern unsere Arbeitsabläufe und gehen Aufgaben formeller an, weil ich es gesagt habe (und ich bin ein Junior-Entwickler).
quelle
Nun, Sie sollten eine andere Domäne erlernen (Mathematik, KI, Data Mining, BI, Integration, was auch immer). Nachdem Sie diese neue Domain gemeistert haben, stehen die Chancen gut, dass Sie neue Ideen haben, die auf die tatsächlichen Geschäftsanforderungen reagieren.
Wenn Sie ein großartiger Programmierer sind, müssen Sie zu diesem Zeitpunkt nur einen Startup durchführen. Nun, es ist riskant, macht aber viel mehr Spaß.
Lernen Sie verschiedene Fähigkeiten und Kompetenzen, nicht nur in der Programmierung, und kombinieren Sie sie, um etwas Neues zu schaffen, an das noch niemand gedacht hat. Das ist ganz einfach, Sie haben bereits den besten Hammer aller Zeiten: die Programmierung.
quelle
Meine persönliche Erfahrung ist die gleiche, die Sie erwähnen. Die meisten Projekte, an denen ich in letzter Zeit gearbeitet habe, sind alle in Eile entstanden und könnten besser sein. Ich bin jetzt seit ungefähr 7 Jahren Programmentwickler und arbeite in demselben mittelständischen Unternehmen. Das Management hat keine Ahnung und führt alle Projekte als "Nicht-Projekte" aus. Es gibt sehr wenig Ordnung im Chaos.
Das, was ich am meisten fürchte, ist, dass ich in die Grube falle, von der Sie sprechen, und anfange, "beschissene" Programmierung und dumme Entscheidung zu machen, nur um in meiner Karriere voranzukommen. Ich hoffe, es ist jemand da, der mir in den Kopf schlägt, wenn das passiert.
quelle
Beeindruckend! Mir gefällt, wie wertvoll dieses Gespräch ist. Ich bin ein Webentwickler mit mehr als 5,5 Jahren Erfahrung und ich liebe es. Ich kann nicht abstimmen, aber ich werde die Worte von AZ zitieren. Ich stimme dem zu!
Das Buch, das ich empfehlen würde, ist: http://www.amazon.com/Software-Measurement-Estimation-Quantitative-Engineering/dp/0471676225
quelle
Meine zwei Punkte:
Ich habe meine nach nur 2 Jahren in der Branche getroffen. Ich habe es überwunden, indem ich mich selbst verbessert und gelernt habe.
Meistens wird es kommen, weil Sie immer und immer wieder das Gleiche tun. Und wenn Sie immer und immer wieder das Gleiche tun, dann machen Sie es falsch.
Immer besser werden. Lerne immer. Und zum Teufel, wenn Ihre aktuelle Firma Ihnen diese Atmosphäre nicht bietet, gehen Sie und finden Sie eine, die es schafft. Ich habe es getan und die letzten 2 Jahre waren die beste Zeit meines Lebens (ich bin wahrscheinlich auch 100x besser in meinem Job als vor 2 Jahren)
quelle
Es gibt viele Programmierer, aber nur ein kleiner Teil von ihnen sind Softwareentwickler von hoher Qualität. Ich nehme an, das stimmt in jedem Beruf.
quelle
Willkommen in der realen Welt ... leider passiert das, was Sie beschreiben, in den meisten Karrieren mit Menschen, die einfach nicht genug Leidenschaft für das haben, was sie tun. Es gibt nur eine Option (das heißt, wenn Sie Ihre Arbeit lieben): Sie müssen ein besseres Geschäft finden, für das Sie arbeiten können, obwohl dies in den heutigen Tagen nicht einfach ist ....
quelle
... gefolgt von ...
Dann ist es Zeit zu suchen und Maßnahmen zu ergreifen. Denn wenn Sie ein Programmierer mit dieser Einstellung bleiben, werden Sie genau wie die "älteren" Leute enden, die Sie so deutlich verachten. Das entscheidende Wort ist "gefangen": Sie verdienen genug Geld, um zu etwas anderem wechseln zu können, und Ihre Fähigkeiten sind so eingeschränkt, dass Sie sich nicht innerhalb der Branche bewegen können.
quelle
Vielleicht überlegen Sie sich einen Schulabschluss? Das könnte Möglichkeiten für eine andere, längerfristigere Art der Arbeit eröffnen.
quelle