it-swarm.dev

Ich programmiere nicht in meiner Freizeit. Macht mich das zu einem schlechten Entwickler?

Viele Blogs und Ratschläge im Internet scheinen darauf hinzudeuten, dass es nicht ausreicht, nur Ihren Tagesjob zu erledigen, um ein großartiger Entwickler zu werden. Zum Beispiel sollten Sie in Ihrer Freizeit zu Open-Source-Projekten beitragen, Smartphone-Apps schreiben usw. Tatsächlich scheinen viele dieser Ratschläge darauf hinzudeuten, dass Sie es sind, wenn Sie nicht genug programmieren, um es den ganzen Tag zu tun wahrscheinlich in der falschen Karriere.

Das stimmt bei mir nicht. Ich genieße meine Arbeit, aber wenn ich aus dem Büro nach Hause komme, bin ich nicht in der Stimmung, direkt wieder auf den Computer zu springen und bis zum Schlafengehen mit dem Codieren zu beginnen. Ich habe jeden Tag nur eine bestimmte Anzahl von Stunden Freizeit, und ich würde sie lieber für andere Hobbys ausgeben, Freunde sehen oder nach draußen gehen, als vor dem Computer.

Ich habe Spaß an der Programmierung und hacke gelegentlich außerhalb der Arbeit herum. Ich bin meiner persönlichen Entwicklung verpflichtet und verbringe Zeit damit, technische Blogs und Bücher zu lesen, um weiter zu lernen und besser zu werden. Das geht aber nicht so weit, dass ich meine ganze Freizeit für das Codieren nutzen möchte.

Bedeutet das, dass ich im Herzen kein "echter" Softwareentwickler bin? Ist es möglich, ein guter Softwareentwickler zu werden, ohne außerhalb Ihres Jobs zusätzliche Aufgaben zu erledigen? Es würde mich sehr interessieren zu hören, was Sie denken.

pdate: Vielen Dank an alle für Ihre Kommentare und Antworten. Viele gute Gedanken und Ratschläge!

387

IMO kommt diese Einstellung von Menschen, die schreckliche, seelensaugende Jobs haben, kombiniert mit pissarmen Zeitmanagementfähigkeiten. Wenn Sie im Grunde den ganzen Tag Webformulare eingeben, gehen Sie raus und suchen Sie sich einen anspruchsvolleren Job oder beginnen Sie Ihren eigenen.

Hier ist die Sache. Ein Konzertmusiker (Cellist/Pianist/was auch immer) übt höchstens 6 Stunden pro Tag. Die meisten üben nur ein paar Stunden pro Tag. auf höchstem Niveau

Die Leute sagen, programmiere mehr, weil du mehr lernst, aber das ist eine Nebelwand. 8 Stunden pro Tag sind viel .

Der Fortschritt ist [~ # ~] nicht [~ # ~] linear. Es ist logarithmisch:

enter image description here

Der einzige Grund, warum ein Musiker länger als 3 Stunden üben kann, ist, dass er die zusätzlichen 1%, die diese Stunden ihm geben, herausdrücken muss. Wenn Sie der Meinung sind, dass dies auf Sie zutrifft und Sie ein vor zwei Jahrzehnten gelöstes Problem erneut lösen, müssen Sie einen Primadonna-Komplex starten.

Ich habe schon früher in Schnellkochtopffirmen gearbeitet und vertraue mir, dass die tatsächliche Menge an Arbeit, die diese Leute erledigen, nicht besser ist als eine Firma wie 37signals, die die Menge an Arbeit einschränkt: http://37signals.com/svn/posts/996-why-i-love-working-with-family-people

Was am Ende passiert, ist, dass Sie sicher 10-12 Stunden vor einem Computer und 2 weitere Stunden im Büro sitzen, aber das beinhaltet nicht das 90-minütige Mittagessen, das Sie eingenommen haben, die 2 Stunden, die Sie mit dem Durchsuchen der Diskussion verbracht haben Foren und die Stunde Pause mussten Sie eines der vielen Spiele im Büro spielen (Tischfußball, Pool, Yada ...).

Schauen Sie sich diese Grafik noch einmal an. Nun zurück zu mir.

Ihr Verstand hat tatsächlich die Möglichkeit, viel mehr zu erweitern, wenn Sie sich einer anderen Aktivität widmen: Lerne ein Instrument zu spielen . Lerne eine Fremdsprache . Besser noch raus und etwas Bewegung bekommen und mit echten Menschen in Kontakt treten .

Zur logarithmischen Natur der Produktivität:

In der renommierten Studie von 1993 über junge Geiger stellte der Performanceforscher Anders Ericsson fest, dass die besten alle auf die gleiche Weise praktizierten: am Morgen in drei Schritten von jeweils nicht mehr als 90 Minuten mit einer Pause zwischen den einzelnen. Ericcson fand das gleiche Muster bei anderen Musikern, Sportlern, Schachspielern und Schriftstellern.

Für echte Produktivität ist weniger wirklich mehr

Dies ist eigentlich ein bekanntes Prinzip in der Geschäftswelt. Ich bin überrascht, dass mehr Programmierer noch nichts davon gehört haben.

Update: Mehr zur Ericsson-Studie.

Die ganze Vorstellung, dass es 10.000 Stunden/10 Jahre dauert, um kompetent zu werden, stammt aus den Studien von Ericsson, nicht von Malcom Gladwell.

Wie wir alle wissen, können Sie 1 Jahr Erfahrung 10 Mal wiederholen lassen ... also ist es nicht qualifiziert, nur 10 Jahre lang Ihren Arsch auf dem Sitz zu haben. Was qualifiziert, nennt Ericsson absichtliches Üben .

Er hat festgestellt, dass dieses Prinzip in Leichtathletik, Musik, Schreiben, Schach und Mathematik gilt. Er definiert absichtliches Üben weiterhin als so mühsam, dass man selbst auf höchster Ebene nur etwa 4 Stunden pro Tag ausgeben kann. Andernfalls leiden Sie unter Übertraining oder Burnout. Wieder erkennt er, dass es abnehmende Renditen für absichtliches Üben gibt, bis zu ungefähr 4 Stunden.

Zum Thema, keinen guten/herausfordernden Job zu haben:

Hogwash. Entweder bekommen Sie einen besseren Job, oder hier ist eine Idee: Machen Sie Ihren aktuellen Job zu etwas, das zumindest momentan nicht ist.

Einer der besten Programmierer, den ich kannte, trat als Wartungsprogrammierer auf einem Legacy-System an, das aus Dutzenden von Programmen und Hunderttausenden von Codezeilen bestand. Die meisten davon wurden im Laufe der Jahre so oft gehackt, dass man sagen muss, dass es kein kohärentes Design mehr gibt.

Dies war so ziemlich eine Sackgasse. Das Management wollte, dass Sie den Kopf gesenkt halten und nur die verdammten Fehler beheben. Die guten Entwickler arbeiteten am Greenfield-Projekt. Die Leute kamen entweder hierher, um ihre verbleibenden Tage bis zu ihrer Pensionierung auszusetzen, oder sammelten einige Jahre Erfahrung, bevor sie mit der Entwicklung neuer Anwendungen begannen. Während sich die meisten Programmierer über den Mangel an Karriereentwicklung oder die Möglichkeit beschweren würden, neue Dinge zu lernen, keine aufregenden Projekte zu haben oder allgemeiner nur darüber zu meckern , dass niemand sie befähigt , dieser Typ setzte sich einfach hin und machte die Arbeit, die erledigt werden musste.

Und im Laufe von 2 Jahren hatte er dieses System von einem Buggy-Spaghetti-Code in etwas verwandelt, das etwas Schönes war und wie eine Schweizer Uhr funktionierte. Die Transformation war so vollständig, dass der Vizepräsident der Abteilung dem bestehenden Projekt immer mehr Aufmerksamkeit schenkte und den Wert des Greenfield-Projekts in Frage stellte. Obwohl er keinen Titel hatte, gingen die Operationsleute zu ihm als De-facto-Anführer der Gruppe. Als ich ging, sprach der Vizepräsident darüber, eine neue Rolle für ihn als Systemarchitekt zu schaffen ...

Ich bin mir nicht sicher, was danach mit ihm passiert ist, aber er hat mir ein paar sehr wichtige Lektionen beigebracht:

  1. Ihr Job ist das, was Sie daraus machen, und überall gibt es interessante Probleme . Wenn Sie es hassen, CRUD-Bildschirme zu schreiben, lösen Sie das Problem, indem Sie sie automatisch generieren.

  2. Sitzen Sie nicht herum und warten Sie auf Gelegenheiten, zu Ihnen zu kommen. Die Chancen stehen gut, dass sie es niemals tun werden.

446
red-dirt

In dieser Nachricht ist mehr versteckt.

Viele begeisterte Programmierer erforschen gerne Dinge, experimentieren, folgen ihren Ideen, so lernen wir und erlangen unsere Fähigkeiten und Visionen.

Normalerweise können Sie Ihren Interessen während der Arbeitszeit nicht folgen. Sie tun einfach Dinge, die Ihnen gesagt werden, und das war's. Nur wenige von uns haben das Glück, bei der Arbeit das zu tun, was wir persönlich tun würden, selbst wenn sie nicht bezahlt würden.

Wenn Sie also nichts extra tun, entwickeln Sie Ihr Potenzial nicht aus. Und genau das ist das Problem.

150
user8685

Es macht Sie nicht zu einem schlechten Entwickler, aber leider müssen Sie immer noch mit denen konkurrieren, die dies tun.

Lesen Sie dies aus Seth Godins Blog :


Unvernünftig

Es ist unvernünftig, an einem Schneetag, an dem die Schule abgesagt wurde, aus dem Bett zu steigen und die Ausfallzeit in sechs Stunden Arbeit in einem zusätzlichen Labor für Kreditphysik umzuwandeln.

Es ist unvernünftig, ein Technologieprodukt auf den Markt zu bringen, das die Entwicklungskurve um neun Monate überspringt und die nächste Generation viel früher als vernünftigere Wettbewerber herausbringt.

Es ist für eine Spedition unvernünftig, beim ersten Klingeln ans Telefon zu gehen.

Es ist unvernünftig, ein neues Unternehmen zu gründen, ohne die Sicherheit zu haben, die das Geld bringen kann.

Es ist unvernünftig, von einer Arztpraxis ein angenehmes und hilfsbereites Personal an der Rezeption zu erwarten.

Es ist unvernünftig, von einem guten Auftritt in der heutigen Wirtschaft Abstand zu nehmen, selbst wenn Sie etwas Mutiges und Originelles tun möchten.

Es ist für Lehrer unvernünftig zu erwarten, dass wir benachteiligten Kindern in der Innenstadt ermöglichen können, in der High School gut abzuschneiden.

Es ist unvernünftig, Ihre Kollegen und Konkurrenten angesichts des Drucks, unter dem Sie stehen, mit Respekt zu behandeln.

Es ist unvernünftig zu erwarten, dass jeder außer einer großartigen Frau, jemand mit Antrieb und Vorteilen, alles Wichtige in einer Welt tun kann, in der das Deck gegen gewöhnliche Leute gestapelt ist.

Es ist unvernünftig, Jahre Ihres Lebens damit zu verbringen, ein Produkt herzustellen, das die meisten Menschen niemals schätzen werden.

Glücklicherweise ist die Welt voller unvernünftiger Menschen. Leider müssen Sie mit ihnen konkurrieren.

70
Ryan Hayes

Um die gestellte Frage zu beantworten: Nicht in Ihrer Freizeit programmieren nicht macht Sie zu einem schlechten Entwickler, Programmieren in Ihrer Freizeit kann Sie zu einem besseren Entwickler machen.

Das Programmieren in Ihrer Freizeit wird Ihren Fähigkeiten sicherlich nicht schaden, aber Sie sollten sich nicht dazu verpflichtet fühlen. Das Programmieren scheint ein relativ einzigartiges Gebiet zu sein, da es für viele Menschen sowohl ihre Aufgabe als auch ihr Hobby ist und sie gerne in ihrer Freizeit programmieren.

57
shortkaik

Nein, es macht dich nicht zu einem schlechten Programmierer. Je nachdem, was Sie tun, werden Sie auf lange Sicht möglicherweise ein besserer Programmierer. Zu Beginn Ihrer Karriere kann dies Einfluss darauf haben, wie schnell Sie die Vielfalt der Fähigkeiten erlernen, die Sie benötigen. Möglicherweise erwerben Sie jedoch Fähigkeiten und Informationen, die langfristig hilfreich sind. Bewegung würde auch nicht schaden.

Es gibt eine ganze Reihe von Untersuchungen, die zeigen, dass die Leistung etwa 40 Arbeitswochen beträgt. Während wir für einen Zeitraum arbeiten können, in dem wir länger arbeiten, verlieren wir auf lange Sicht an Effizienz. Die Forschung, die ich gesehen habe, zeigt, dass Menschen, die 80 Wochen arbeiten, ungefähr so ​​produktiv sind wie Menschen, die 40 Stunden pro Woche arbeiten.

Es gibt einige Dinge, über die Sie nach und nach nachdenken können, um eine bessere Leistung zu erzielen:

  • Was machst du gerade? Schaffst du es besser? Müssen Sie es tun?
  • Was lernst du? Was musst du lernen?
  • Auf welche Probleme stoßen Sie? Wer kann sie am besten lösen? Was kannst du tun?
23
BillThor

Ist es möglich, ein guter Softwareentwickler zu werden, ohne außerhalb Ihres Jobs zusätzliche Aufgaben zu erledigen?

Bestimmt.

Es kann länger dauern, als wenn Sie zusätzliche Stunden damit verbringen würden, Ihre Fähigkeiten zu verbessern. Ich fand es auch schwierig, genügend Zeit in die Selbstverbesserung zu investieren, wenn ich Vollzeit beschäftigt bin und außerhalb der Arbeitszeit wenig programmiere.

Als ich jünger war, habe ich viel mehr Zeit in das Lernen gesteckt als jetzt. Die Konzepte, die ich täglich verwende, sind an dieser Stelle tief verwurzelt, und es scheint einfacher zu sein, mit dieser Erfahrung zusätzliches Wissen zu erwerben.

"Gute" Programmierer scheinen die zusätzlichen Stunden mehr zu investieren, weil sie von Natur aus besessen sind, zum asozialen Ende des Spektrums tendieren und wirklich Spaß am Programmieren haben und den gesamten Problemlösungszyklus genießen.

15
quentin-starin

Im großen Schema der Dinge geht es darum, das richtige Gleichgewicht im Leben zu finden.

Wichtig ist, ob Sie gerne programmieren und ob Sie weiter lernen, egal auf welchem ​​Niveau Sie sich befinden. Ob Sie außerhalb der Arbeit programmieren oder nicht, macht Sie nicht automatisch zu einem "guten" oder "schlechten" Programmierer.

Um eine persönliche Perspektive zu geben, programmiere ich seit ungefähr 25 Jahren (zuerst als Kind, dann beruflich). Ich liebe es absolut.

Ich programmiere jedoch fast nie außerhalb der Arbeit. Dies hat mit mehreren Dingen zu tun:

  • Ich bin sehr glücklich, dass ich bei der Arbeit jeden Tag den ganzen Tag das tun kann, was ich liebe.
  • Ganz einfach, es gibt andere Dinge im Leben und es gibt nur so viele Stunden am Tag.
13
NPE

Sie können ein guter Programmierer werden, der nur während der Arbeit programmiert, besonders wenn Sie Ihre Karriere gut verwalten. Die besten Programmierer programmieren jedoch auch außerhalb der Geschäftszeiten. Allerdings ist eine Person, die gute Jobs mit vielen Lernmöglichkeiten auswählt, ihre Arbeitszeit gut nutzt usw. ein besserer Programmierer als jemand, der zu Hause codiert, weil er keine Jobs findet, die während der Zeit interessante Herausforderungen bieten Arbeitstag.

Während das Codieren zu Hause wertvoll ist, würde ich sagen, dass die Maximierung des Werts Ihres Arbeitsumfelds (indem Sie von Kollegen lernen, gute Jobs auswählen, Ihre Karriere aggressiv verwalten) oft noch wertvoller ist. Die besten Programmierer tun beides und haben eine große Einstellung zum Lernen und Mentoring anderer.

9
Ethel Evans

Die eigentliche Frage ist, ob ein neuer Entwickler genug programmiert (um genügend Probleme herauszufordern), um ein paar hunderttausend Zeilen Übungscode zu durchlaufen und ein anständiger Programmierer zu werden.

Dies kann theoretisch bei der Arbeit oder in Ihrer Freizeit oder in beiden Fällen erfolgen. Das Üben muss etwas selbstgesteuert sein, damit Sie lernen können, was Sie lernen müssen. Das bedeutet Arbeit, die etwas flexibel ist.

Oft sind Einstiegsjobs eine Reihe von Fehlerbehebungen oder anderen Arbeiten, die Sie nicht lehren werden, gut zu sein. Was Sie tun müssen, ist viel Code von Grund auf neu zu schreiben, und dieser Code wird wahrscheinlich schlecht sein. Für Arbeitgeber ist es schwierig, dafür zu bezahlen. Das ist der Grund, warum Leute nebenbei ein Open-Source-Projekt machen oder ein Startup starten oder was auch immer.

Wenn Leute sagen, dass Sie in Ihrer Freizeit programmieren müssen, bedeutet dies meiner Meinung nach, dass Sie frühzeitig jahrelange sinnvolle Übungen durchführen müssen. Sie müssen alles tun, um die Übung zu erlernen und zu lernen, eine große Codebasis von Grund auf neu zu schreiben und zu pflegen. Wenn Sie niemand dafür bezahlt, eine wahrscheinlich katastrophale Reihe von Projekten von Grund auf neu zu schreiben, ist Freizeit die einzige Option.

Wenn Sie die Übung bereits in jüngeren Jahren gemacht haben und ein guter Programmierer geworden sind, werden Sie wahrscheinlich nicht die Grundfertigkeiten verlieren, wenn Sie sie später zwischen 9 und 5 halten. Später geht es eher darum, mit neuen Technologien Schritt zu halten, die nicht so zeitaufwändig sind.

Es ist jedoch ein seltener Einstiegsjob, der Ihnen die Quantität und Qualität der Übung bietet, um überhaupt ein guter Programmierer zu werden. Ein neuer Entwickler muss die Initiative ergreifen, um zu lernen, und nicht nur in einem Einstiegsjob rumhängen, um Einstiegsaufgaben zu erledigen.

Es wäre wirklich schwierig, ein guter Programmierer von Grund auf zu werden, wenn Sie bereits eine Familie hätten und die Vereinbarkeit von Beruf und Privatleben stark betonen würden. Genauso wie es wirklich schwierig wäre, Arzt oder virtuoser Musiker zu werden oder irgendetwas anderes in dieser Situation. Es gibt einen Grund, warum Menschen dazu neigen, ihre Tausenden von Übungsstunden zu überstehen, wenn sie jünger sind, als wenn sie älter sind.

7
Havoc P

Es dauert 10.000 Stunden, um ein Experte in irgendetwas zu werden. [Michael Gladwell, "Ausreißer"]

Wenn Sie also zusätzliche Arbeit leisten, bevor Sie dieses Level erreichen, beschleunigen Sie den Weg zum echten Expertenstatus.

Sobald Sie dieses Niveau überschritten haben, führt das Verbringen von mehr Zeit zu geringen/abnehmenden Erträgen.

5
Jorgen Thelin

Wenn ich in den nächsten sechs Monaten Zeit damit verbringen würde, in meiner Freizeit ein grundlegendes Spiel zu entwickeln, und Sie nicht, und angenommen alle anderen Dinge sind gleich (sie sind es nie), wer von uns würde mehr wissen? Wer von uns hätte mehr Fähigkeiten und Erfahrung?

Dieser Effekt wäre kumulativ, da früheres Wissen außerhalb der Geschäftszeiten in neue Arbeit und neues Wissen außerhalb der Geschäftszeiten einfließen würde.

Und deshalb raten die Leute, in ihrer Freizeit zu programmieren, soweit ich das beurteilen kann.

5
Paul Nathan

Zwischen groß und schlecht gibt es viele Ebenen dazwischen. Sie können kein großartiger Entwickler werden, wenn Sie nur 8 Stunden am Tag arbeiten und möglicherweise an Problemen aus einem sehr begrenzten Bereich arbeiten.

Wenn Ihr Job abwechslungsreich genug ist, können Sie "anständig" oder "vollendet" werden oder was auch immer Sie bevorzugen, aber um ein großartiger Entwickler zu sein, müssten Sie leider ein bisschen mental sein.

Ein weiterer Grund für die Hobby-Programmierung ist, dass Sie in einem Job häufig suboptimale Standards einhalten und generell Kompromisse eingehen müssen. Selbst wenn Sie etwas Neues lernen, dürfen Sie es möglicherweise nicht verwenden.

Und noch etwas, noch prosaischer ist, dass jeder Code, den Sie bei der Arbeit schreiben, Ihrem Arbeitgeber gehört. Sie können nicht darauf zurückkommen und Jahre später aus Ihren alten Fehlern lernen, wenn Sie für jemand anderen arbeiten.

5
biziclop

Sie sollten es nicht als "Macht es mich zu einem schlechten Programmierer?" Betrachten, denn wie jede Fähigkeit macht mehr Übung nur einen besser.

Wenn Sie also besser sein möchten als derzeit und neue Technologien und Bereiche kennenlernen möchten, die Ihre Arbeit nicht zulässt, ist der zusätzliche Aufwand und die aufgewendete Zeit von Vorteil.

Aber zusätzliche Zeit für das Codieren (nur um jemandem zu beweisen, dass Sie extra codieren) bedeutet nicht unbedingt, dass Sie ein guter Programmierer werden, es sei denn, Sie lernen, was Sie tun und tun etwas anderes oder verbessern das, was Sie bereits wissen, anstatt blind auszuschneiden/kopieren/einfügen und Hacks zusammenstellen. Ich denke, es wird Ihnen helfen, sich zu verbessern, wenn Sie zusätzliche Stunden investieren und das Gleiche immer und immer wieder tun.

4
Simon

Tagsüber sind Ihre Programmierungen kurze Einsätze. Es gibt Geld zu verdienen, Sie wissen genau, wie viel und wofür, und Sie haben nicht viel mehr zu gewinnen als einen Gehaltsscheck.

Nachts arbeiten Sie an langen Wetten - verrückten Ideen, die hauptsächlich gar nicht funktionieren. Dies sind die Projekte, die Sie aus der Basis katapultieren werden. Auf diese Weise werden Sie zum Erfinder von PHP) und nicht zum Code-Affen, der es verwendet.

Ich interviewe viele Programmierer, und ob sie außerhalb der Arbeitszeit interessante seltsame Dinge getan haben, ist sofort grünes Licht. Es ist überraschend selten.

Obwohl ich das sagen werde: Es gab einmal einen Typen, der viele coole Sachen außerhalb der Arbeitszeit gemacht hat, der sich als totaler Idiot einer Einstellung herausstellte. Ich bin immer noch verblüfft von diesem Kerl.

4
lucas

Um Ihre Frage zu beantworten: Nein, Sie sind kein schlechter Entwickler.

jedoch, es könnte Ihr Berufsleben auf der Straße etwas schwieriger machen. Wenn Sie einen Job haben, bei dem Sie ständig neue Technologien erlernen, die Ihnen dabei helfen, Ihren Karriereweg voranzutreiben (sei es Beförderungen bei Ihrem aktuellen Job oder neue Jobs bei verschiedenen Unternehmen), dann sind Sie bereit.

Wenn Sie derzeit in einem Unternehmen arbeiten, in dem sich die verwendete Technologie selten ändert, fällt es Ihnen in 2 oder 5 bis 10 Jahren möglicherweise schwer, den nächsten Job zu finden. Wenn Sie zu Hause mit neuen Technologien programmieren und etwas zu zeigen haben (App, Website, Open Source-Projekt usw.), fällt es Ihnen viel leichter, den nächsten Job zu bekommen.

Natürlich könnten Sie in den nächsten 40 Jahren genau das Gleiche tun, und solange Ihr Unternehmen und die Technologien bestehen bleiben, sind Sie bereit!

3
taggartgorman

Die eigentliche Frage ist, was Sie den ganzen Tag tun. Die Analogien zu Sportlern und Musikern werden normalerweise nicht richtig angewendet. Ihr Tagesjob ist keine Übung, sondern Leistung, es sei denn, Sie haben die ausdrückliche Möglichkeit, einen Teil Ihres Arbeitstages in echter "Übung" zu verbringen. Woher weißt du das? Wenn Sie nie die Zeit haben, etwas "richtig" zu machen oder eine neue Sprache/Technologie/Framework/usw. gründlich zu lernen, dann üben Sie nicht, Sie spielen. Profisportler und Musiker werden während des Spiels oder des Konzerts nicht besser, sie werden während des konzentrierten Trainings besser. Wenn Sie also wie die meisten sind, haben Sie nur außerhalb der Arbeit Zeit für echte Codierungsübungen. Davon abgesehen lohnt es sich nur, wenn es fokussiert ist. Wenn Sie den ganzen Tag und dann die ganze Nacht hacken, werden Sie einfach müde, nicht besser.

Zum Beispiel müssen Sie einen Teil des Codes bei der Arbeit optimieren und die üblichen Profiling-Tools darauf anwenden und ihn möglicherweise um 50% beschleunigen und mit der nächsten Aufgabe fortfahren, aber Sie denken, es gibt andere Dinge, die Sie tun könnten, die sogar helfen würden mehr, aber Sie haben nicht die Zeit, sie auszuprobieren. Wenn Sie diesen Code mit nach Hause nehmen und ein paar zusätzliche Stunden damit verbringen, ihn wirklich auszuwringen, lernen Sie Techniken, die Sie beim nächsten Optimieren verbessern. Sie machen zu Hause nicht dasselbe wie bei der Arbeit.

Beim Üben geht es darum, Fähigkeiten hinzuzufügen und Fähigkeiten zu verbessern, und diese Aktivitäten werden notwendigerweise auf künstliche Weise ausgeführt (es ist wie das Isolieren einer Muskelgruppe im Fitnessstudio, niemand tut dies bei normaler körperlicher Aktivität). Das Erstellen von Apps zu Hause wird nicht automatisch geübt. Die Arbeit zu Hause sollte sich auf die Techniken und den Prozess konzentrieren, nicht auf das Endprodukt. Wenn ein Endprodukt das ist, was Sie brauchen, um motiviert zu sein, großartig. Fallen Sie einfach nicht in die Falle, es so zu entwickeln, wie Sie es bei der Arbeit tun.

Die Codierungs-Kata-Bewegung ist ein Beispiel dafür, worum es in der Praxis geht.

3
wai

Ein guter Softwareentwickler im Herzen zu sein, hängt wirklich von Ihrem Herzen ab. Sie können versuchen, ein großartiger Musiker zu sein und viel Zeit in die Musik zu investieren, aber das macht Sie trotzdem nicht zu einem guten Musiker. Sie müssen genießen, was Sie tun, um darin gut zu sein. Anfangs hatte ich die gleichen Fragen wie Sie hatte, aber jetzt aufgrund meiner Vorlieben habe ich angefangen, die zusätzlichen Dinge auf Software außer der normalen Arbeit zu tun. Es verbesserte meine Leistung in der normalen Arbeit und gab mir auch viel Zeit, mich an anderen Aktivitäten zu beteiligen, die nicht mit Software zu tun hatten. Die Grundlinie ist also, genießen Sie, was Sie tun, und Sie werden schließlich tun, was erforderlich ist.

3
Siva

Wenn Sie einen Job haben, der Ihnen eine absolut engagierte intellektuelle Erfahrung bietet, ist dies wahrscheinlich Ihr geistiges Leben - außerhalb der Arbeit geht es darum, Steam abzublasen. Wenn Ihr Job Sie nicht beschäftigt, ist die Wahrscheinlichkeit, dass Sie nach der Arbeitszeit intellektuell zufrieden sind, sehr viel höher. Das gilt für jedes Unternehmen, nicht nur für das Codieren.

Das Codieren in einem Büro beeinträchtigt Ihre Kreativität. Mindestens 8 Stunden pro Tag macht Ihr Geist einen kontinuierlichen Sprint im Namen eines anderen. Es ist normal, daraus herauszukommen und nicht wieder auf einen Computer zurückkehren zu wollen. Wenn ich von einem Büro aus arbeitete, war es für mich dasselbe - ich kam nach Hause und wollte nur kochen oder einen Film sehen, mit Freunden rumhängen oder einfach nur vor dem Fernseher stehen. Dann, von 2001 bis 2004 oder so, nachdem die Firma, für die ich gearbeitet hatte, vollgetankt war, stieg ich aus, fuhr ein Taxi und wartete auf Tische. Zu diesem Zeitpunkt habe ich wirklich angefangen, in meiner Freizeit zu programmieren.

Die Wahrheit ist, ich glaube nicht, dass irgendjemand mehr als 8 Stunden pro Tag an hochwertiger Codierungszeit hat. Viele Programmierer haben nur 2-3, aber sie sind möglicherweise die effizientesten Leute da draußen. Es ist nur so, wie du es benutzt, wie du es ausbreitest.

1
strike

Dies ist ein großartiger Beitrag.

Ich würde sagen, nein, es macht dich nicht zu einem schlechten Programmierer. Wenn Ihre Bewertungen gut waren und Sie Ihre Aufgaben gut und pünktlich erledigen, sind Sie genau das Gegenteil. Ehrlich gesagt bin ich neidisch auf Sie, dass Sie den Code bei der Arbeit ausfüllen.

Der Hauptgrund, warum ich in meiner Freizeit programmiere, ist, dass mir das, was ich bei der Arbeit mache, nicht wirklich wichtig ist und ich meine Freizeit nutze, um das zu tun, was ich mag. Was ich gerne mache, ist Videospielprogrammierung. Es gibt keine gültige Spielefirma, für die ich arbeiten kann (ich habe jetzt eine Familie hier), also helfe ich nebenbei mit Indie-Spielen, wenn ich kann. Es ist der einzige Weg, um den Juckreiz zu heilen. Wenn ich den ganzen Tag das tun würde, was ich liebte, wäre es sehr wahrscheinlich, dass ich es in meiner Freizeit nicht tun würde.

1
Corv1nus

Ist es möglich, ein guter Softwareentwickler zu werden, ohne außerhalb Ihres Jobs zusätzliche Aufgaben zu erledigen?

Das hängt von der Branche ab, in der Sie arbeiten. Einige sind wettbewerbsfähiger als andere.

Wenn Sie nicht gerne selbst neue Dinge lernen, bleiben Sie wahrscheinlich auf Ihrem aktuellen Kenntnisstand. Das kann genug sein ... oder nicht.

Es geht nicht um die Zeit, sondern um Neugier und Wissensdurst und Meisterschaft. Offensichtlich hat es nichts mit dem Bleiben zu tun auf dem neuesten Stand, es geht um grundlegende - oft harte - Dinge: Compiler, Monaden, Speicherarchitekturen usw. Dinge, die Ihr Gehirn dehnen und erweitern.

Zu Hause codieren zu wollen, ist nur eine wichtige Nebenwirkung. Aber unterschätzen Sie es nicht, ohne es zu tun, das Lernen ist oft flach.

Alle besten Entwickler, die ich kenne, haben diese Eigenschaften.

1
Lionel Barret

Mein Rat lautet: Nutzen Sie Ihre Pendelzeit, um Dinge zu lernen, um Sie auf dem Laufenden zu halten: Lesen Sie IT-Bücher, hören Sie sich Dev-Podcasts an usw. In Bezug auf Ihre Aktivitäten nach der Arbeit: Ändert nichts. Sonst wirst du eine langweilige Person.

1
Pierre Watelet

Es macht dich nicht zu einem schlechten Entwickler, es macht dich vielleicht nicht einmal zu einer Art "ok" -Entwickler, es macht dich nur zu dem, was du bist. Ich denke jedoch, dass Sie feststellen werden, dass die meisten Leute, die wirklich hervorragende Hacker sind, gerne neue Dinge ausprobieren. Zu jeder Zeit werde ich viele verschiedene Sprachen, Datenbanken, Web-Frameworks, Robotik usw. untersuchen. Ich habe zwei kleine Kinder und eine Frau, eine Hypothek, all das Zeug - aber ich freue mich auf die Zeiten, in denen ich zwei oder drei bekommen kann Stunden, um mit Sachen herumzuhacken. Sicher, C # und .NET sind alle gut und schön, um einen Gehaltsscheck zu verdienen, und ich genieße meine Arbeit tatsächlich, aber das Herumspielen mit Scala und Lift war in den letzten paar Jahren eine echte Explosion für mich Es gibt Entwickler, die sich als "leidenschaftlich" einstufen, und solche, die nur "durchkommen". Ich finde, dass Entwickler, die sich ständig selbst herausfordern, tendenziell schneller vorankommen als diejenigen, die dies nicht tun.

1

Bedeutet das, dass ich im Herzen kein "echter" Softwareentwickler bin?

Absolut nicht. Es bedeutet nur, dass Sie gerne andere Dinge als das Codieren tun. Daran ist nichts auszusetzen, und es macht Sie nicht besser oder schlechter als jeder andere, ob Entwickler oder nicht.

Ist es möglich, ein guter Softwareentwickler zu werden, ohne außerhalb Ihres Jobs zusätzliche Aufgaben zu erledigen?

Na sicher. Einiges davon hängt davon ab, wie Ihre Arbeitsumgebung ist. Wenn Sie einen langweiligen, seelensaugenden Job haben, der Ihre ganze Zeit in Anspruch nimmt, und dann einige langweilige Wartungsarbeiten ausführen, ist es sehr begrenzt, die Arbeitszeit zur Entwicklung Ihrer Fähigkeiten zu nutzen. Wenn Sie eine Umgebung haben, in der Sie einen gewissen Spielraum haben, um das zu tun, was Sie erforschen und lernen möchten, nutzen Sie diese Gelegenheit, um neue Fähigkeiten zu entwickeln, die auch Ihrem Arbeitgeber oder Ihren Mitarbeitern helfen.

Wenn Sie etwas Interessantes finden, über das Sie mehr erfahren möchten und das Sie weder Zeit noch Möglichkeit haben, es bei der Arbeit zu verwenden, müssen Sie dies gegen die anderen Anforderungen an Ihre Zeit abwägen, sei es Familie, Freunde oder Hobbys.

1
afrazier

Nein, Sie sind nicht weniger Programmierer als alle anderen. Du bist nur sozialer. Ich bin neidisch, um ehrlich zu sein.

Sie müssen nicht Ihre gesamte Freizeit nutzen, um Code zu schreiben. Mein Job ist ziemlich einfach: Serververwaltung. Ich schreibe viel Code, weil ich bei der Arbeit nicht viel tun muss. Das macht mich nicht besser oder schlechter als jeder andere. Wenn Sie eine Leidenschaft für das Programmieren haben, warum nicht freiberuflich arbeiten? Ich schalte oft Craigslist-Anzeigen für meine Dienste und verdiene eine gute Menge Geld damit. Es ist auch eine großartige Lernerfahrung, da Sie mit Startups und manchmal sogar großen Websites arbeiten. Hoffe das hilft. :) :)

1
iamandrus

Ich habe in letzter Zeit eine Reihe von Interviews geführt, um Programmierer einzustellen. Ich habe festgestellt, dass die Kandidaten, die mich am meisten beeindrucken, sowohl als Programmierer als auch als Menschen, mit denen ich gerne zusammenarbeiten würde, diejenigen sind, die viel Zeit mit NICHT-Programmieren (insbesondere Musik, aber auch reine Mathematik) verbringen. Philosophie und Literatur). Zwar machen die meisten auch Hobby-Programmierung, aber sie haben auch ausgleichende Interessen.

1
PSU

Es gab Zeiten in meinem Leben, in denen ich viel außerhalb der Arbeit programmiert habe, und Zeiten, in denen ich keine programmiert habe, weil ich an anderen Dingen gearbeitet habe. Sie sollten immer lernen, aber das bedeutet nicht, dass Sie in Ihrer Freizeit immer etwas über das Programmieren lernen müssen. Wenn Sie in Ihrer Freizeit an einer anderen Fähigkeit arbeiten möchten, sei es Zimmerei, Nadelspitze, Gartenarbeit usw., hilft dies Ihnen, als Person zu wachsen.

Fallen Sie einfach nicht in die Falle, wenn Sie denken, Sie wissen alles, was Sie über Programmierung wissen müssen, damit Sie aufhören können zu lernen.

1
Zachary K

Dies ist in der Tat ein interessanter Beitrag. Ich habe seit 10 Jahren Software entwickelt und liebe meinen Job! Auch ich habe viele Hobbys und versuche, sie richtig zu verwalten. Aber ich habe Spaß daran, neue Dinge auszuprobieren, indem ich ein oder zwei Stunden vor dem Schlafengehen vor dem PC verbringe. In meinem Fall bin ich süchtig danach, Spielcode zu studieren und zu schreiben. Ich habe nicht immer Zeit, Spiele zu spielen, aber ich liebe es, Code über Spiele zu lesen. Um ehrlich zu sein, denke ich, dass der beste Code, den ich je gesehen habe, aus Spielen stammt, und ich wende diese Fähigkeiten auf meinen Code bei der Arbeit an. Ich lerne ständig JEDEN EINZELNEN TAG, also IMO, wenn Sie ein Entwickler sind, werden Sie nie Ihren Höhepunkt erreichen, es gibt IMMER eine bessere Möglichkeit, etwas zu tun ...

1
user17544

Ich habe ein ähnliches Frage ein paar Tage später gestellt. Es scheint, dass die Leute scheinen, dass wir mehr Leidenschaft für unseren Job haben, wenn wir nicht nur unsere ganze Tageszeit darauf verwenden, sondern auch die ganze Zeit, die wir für unser persönliches Leben zur Verfügung haben.

Ich schreibe gelegentlich Code in meiner Freizeit, aber ich mache es zum Spaß, nicht weil ich beabsichtige, mich beruflich weiterzuentwickeln oder Anerkennung zu finden. Ich begrüße die Leute, die die Energie dafür haben, aber Sie brennen eher aus, wenn Sie länger arbeiten und an zusätzlichen Projekten arbeiten, als wenn Sie tatsächlich Experte für irgendetwas werden.

Am Ende des Tages kommt es nur auf Ihre Fähigkeit an, neue Dinge zu lernen (insbesondere im Beruf), Ihre Fähigkeit, gut zu kommunizieren und über gute Zeitmanagementfähigkeiten zu verfügen. Dass Sie sich in einen guten Profi verwandeln.

0
Pablo

Ist es möglich, ein guter Softwareentwickler zu werden, ohne außerhalb Ihres Jobs zusätzliche Aufgaben zu erledigen?

Für mich dreht sich alles um Balance.

Obwohl ich gerne programmiere, ist es nur eine Seite von mir, aber ich habe andere Interessen. Wenn ich glücklich bin (andere Dinge mache, die ich gerne mache) und meine Arbeit interessant und erfüllend finde (was ich mache), bin ich langfristig auf dem Weg, ein besserer Softwareentwickler zu werden.

P.S. Ich gebe zu, dass ich nicht alle vorherigen Beiträge auf dieser Seite gelesen habe.

0
Ilan Huberman