Wie die meisten Leute halte ich mich für ein bisschen überdurchschnittlich in meinem Bereich. Ich werde gut bezahlt, habe Beförderungen erhalten und hatte noch nie ein echtes Problem damit, gute Referenzen oder einen Job zu bekommen.
Aber ich war schon genug da, um zu bemerken, dass viele der schlechtesten Programmierer, mit denen ich zusammengearbeitet habe, sie für die besten hielten. Schlechte Programmierer, die von anderen schlechten Programmierern umgeben sind, scheinen sich am meisten zu täuschen.
Ich bin sicher nicht perfekt. Ich mache Fehler. Ich vermisse Termine. Aber ich denke, ich mache ungefähr die gleiche Anzahl von Bonehead-Moves wie "andere gute Programmierer". Das Problem ist, dass ich "andere gute Programmierer" als "Leute, die wie ich sind" bezeichne.
Also, ich frage mich, gibt es eine Möglichkeit, wie ein Programmierer eine vernünftige Selbsteinschätzung vornehmen kann? Woher wissen wir, ob wir in unseren Berufen gut oder schlecht sind?
Oder, wenn Begriffe wie gut und schlecht zu schlecht definiert sind, wie können Programmierer ihre eigenen Stärken und Schwächen ehrlich identifizieren, damit sie die ersteren nutzen und daran arbeiten können, die letzteren zu verbessern?
quelle
Antworten:
Ein guter Programmierer versteht, dass er weiter lernen und wachsen muss. Sie bemühen sich, bei jeder Anstrengung ihr Bestes zu geben, Fehler zuzugeben und von ihnen zu lernen.
Sie sind außerordentlich kommunikativ. Sie sind nicht nur in der Lage, Laien komplexe Fachbegriffe zu erklären, sondern geben sich auch große Mühe, als Verfechter der eigenen Idee zu agieren, um sicherzustellen, dass sie ihren Kunden die besten Optionen bieten.
Die besten Programmierer wissen und akzeptieren, dass es mehr als einen Weg gibt, Dinge zu tun, dass nicht jedes Problem ein Nagel ist und dass sie ständig neue Techniken erlernen möchten, weil es immer einen besseren Weg gibt, etwas zu tun, als sie geplant hatten , Technologien und Verständnis.
Ein guter Programmierer liebt es zu programmieren und würde dies in seiner Freizeit tun, selbst wenn er bereits mehr als 80 Stunden pro Woche programmiert.
Ein guter Programmierer weiß, dass er kein guter Programmierer ist. Wirklich großartige Programmierer gibt es nicht, es gibt nur diejenigen, die behaupten, großartig zu sein, und diejenigen, die wissen, dass sie nicht großartig sind.
quelle
Wie Paul Graham in dieser Podcast-Besetzung eloquent hervorhebt , geht das nicht. Nur Ihre Mitarbeiter können es Ihnen sagen.
quelle
Ich habe immer festgestellt, dass es am einfachsten ist, Ihre Leistung anhand zweier Dinge zu beurteilen.
Natürlich geht es darum, gute Programmierer zu finden, und dann geht es auch nicht nur darum, ein guter Programmierer zu sein. Sie müssen in der Lage sein, gut in Gruppen zu arbeiten, aber auch gut für sich selbst.
Um das Thema abzubrechen, zitiere ich Robert A. Heinlein und seine Meinung zu diesem Thema:
quelle
Dies ist die Programmer-Kompetenzmatrix nur für Sie: http://www.indiangeek.net/wp-content/uploads/Programmer%20competency%20matrix.htm
quelle
Jeff hat einen meiner Lieblingsblogposts zu diesem Thema ... Warum ich der beste Programmierer der Welt bin
"... es ist nicht unsere Aufgabe, besser zu sein als jeder andere. Wir müssen nur besser sein als vor einem Jahr."
quelle
Ich denke, die Tatsache, dass Sie die Frage stellen, beweist, dass Sie kein schlechter Programmierer sind, also sind Sie meiner Meinung nach auf halbem Weg. :)
Nach meiner Erfahrung denken schlechte Programmierer immer, dass sie großartige Programmierer sind.
quelle
@Nicks Aussage "Schlechte Programmierer denken immer, dass sie großartige Programmierer sind ..." wird durch den Mahn-Krüger-Effekt erklärt , der verallgemeinert, dass Leute, die ein wenig über ein Thema wissen, oft überschätzen, wie viel sie tatsächlich wissen.
Ein bisschen scherzhaft zu sein ... je weniger du glaubst, dass du es weißt, desto mehr tust du wahrscheinlich ... es sei denn, du bist ein wirklich selbstbewusster Idiot.
Beantwortung der ursprünglichen Frage, obwohl ich denke, dass der größere Einfluss (nicht Kontrolle), den Sie im Allgemeinen haben, ein guter Indikator ist. Wenn du siehst, wie andere deinem Beispiel folgen oder deine Übungen aufgreifen, bist du auf dem richtigen Weg.
quelle
Die Antwort mit den meisten Plus-Stimmen ist wirklich beunruhigend. Grundsätzlich heißt es, dass Sie kein Leben außerhalb der Programmierung haben. Was ist mit der Familie? Gemeinschaft? Liebhabereien? In was für einem Beruf müssen Sie sich mit der Besessenheit beschäftigen, nur um als "gut" zu gelten? Ich denke wirklich, wir müssen hier eine Perspektive bekommen.
quelle
Sie könnten versuchen, an den TopCoder-Algorithmuswettbewerben teilzunehmen .
quelle
Diese Erkenntnis allein macht Sie zu einem besseren Programmierer als die meisten schlechten Programmierer.
Viele der schlechtesten Programmierer glauben, dass sie bereits alles wissen, was sie wissen müssen, und sind sich ihrer Grenzen nicht bewusst. Infolgedessen verbessern sie nie ihre Fähigkeiten.
quelle
Wenn Sie sich Ihren Code von vor einem Jahr ansehen und denken, meine Güte, ich hätte das viel besser machen können, sind Sie wahrscheinlich gut :).
quelle
Hier sind einige Beispiele aus der Praxis für schlechte Programmierung. Natürlich wurde überall an 100 Stellen ähnlicher Code kopiert / eingefügt. Guy wurde gefeuert, aber ich habe gehört, dass er wieder einen guten Job hat. Genießen:
ein)
b)
c)
d)
Wenn Sie diese Art von Code erstellen, beenden Sie die Programmierung. Wenn Sie in diesem Code nichts Seltsames sehen, beenden Sie die Programmierung. Sonst bist du nicht schlecht, also bist du vielleicht sogar gut :)
BEARBEITEN: Um Kommentare zu beantworten: Ich habe vor dem Abschluss einen Job bekommen und dieser Typ hatte bereits einige Jahre Programmiererfahrung. Er wurde einige Monate nach meiner Anstellung entlassen, deshalb war ich nicht in der Lage, irgendjemanden zu unterrichten. Die obigen Beispiele kamen nur von oben - jeder Code, den er berührte, war auf verschiedene und einfallsreiche Weise fehlerhaft. Die meisten Dinge schlichen sich aus der Firma heraus, weil nur dann andere Leute Teile des Codes sahen. Er ist im Allgemeinen ein netter Kerl, mit dem man sich angenehm unterhalten kann, aber er wird NIE ein guter Programmierer sein, so wie ich niemals ein guter Maler oder Schriftsteller oder was auch immer sein werde.
Um dies mit einem anderen Beispiel zu vergleichen, war der Typ, der ihn ersetzte, zu dieser Zeit ebenfalls undergraded. Er studierte an einem College, das mehr für Management als für Programmierung bekannt war. Er ist nicht zu geeky in dem Sinne, dass er irgendetwas zum Spaß programmiert oder zu Hause sitzt und über Java oder Programmierung liest, aber es geht ihm gut. Er passte sich schnell an und begann, nützlichen und wartbaren Code zu produzieren. Einige Leute können das, andere nicht - fragen Sie einfach dailywtf.
quelle
instance
Feld ist nie eineType
Instanz zugewiesen und bleibt so immernull
=)Es gibt ein paar Dinge, die Sie versuchen könnten, um ein besseres Maß dafür zu erhalten, wie Sie sich anhäufen.
(Das habe ich zum Schluss gesagt, weil in meiner letzten Firma ein Programmierer zweimal in drei Jahren zum "Entwickler des Jahres" ernannt wurde. Nachdem er gegangen war, fanden wir mindestens 20 TDWTF-taugliche Code-Schnipsel. Er entwickelte Code schnell , aber nicht unbedingt gut Das Management kannte den Unterschied einfach nicht.)
quelle
Erlauben Sie anderen Entwicklern, mit denen Sie respektieren, zu arbeiten oder Ihren Code zu sehen.
Lassen Sie die Leute tatsächlich das verwenden, was Sie mögen und sehen, was sie denken.
- Kevin Fairchild
quelle
Kannst du das verstehen?
:-)
quelle
Allein der bloße Gedanke, den Sie selbst einschätzen müssen, hebt Sie von den anderen ab.
Eine Möglichkeit, mich selbst zu beurteilen, besteht darin, zuzuhören, was meine Kollegen über mich zu sagen haben. Trick ist es, die richtigen Leute zu finden.
quelle
Es ist immer subjektiv, wer ein guter Programmierer ist. Ich stimme Nick zu, dass es ein Schritt in die richtige Richtung ist, nur die Frage zu stellen. Ich denke, der ständige Wunsch, mehr zu lernen und sich zu verbessern, macht einen guten Programmierer aus.
quelle
Für mich sind die besten Programmierer nie auf der Suche nach Arbeit. Sie haben ständige Angebote für neue Positionen, die nur auf ihrem Ruf basieren. Ein guter Programmierer kann also Angebote von früheren Arbeitgebern haben, um zurückzukehren, wenn er dies wünscht. Oder ein guter Programmierer hätte sich bei ehemaligen Mitarbeitern erkundigt, ob er für sie in einer neuen Firma arbeiten möchte.
In Bezug auf Stärken / Schwächen kennen Sie sie wahrscheinlich bereits. Wenn nicht, fragen Sie eine ältere Person in Ihrem Team. Es muss nicht einmal ein Entwickler sein. Ein guter Projektmanager kennt die Stärken / Schwächen der Programmierer. Außerdem sind die Eigenschaften, die einen guten Programmierer definieren, nicht nur auf Code beschränkt. Das Verständnis des Geschäfts, Kommunikationsfähigkeiten, Urteilsvermögen usw. werden alle außerhalb Ihrer IDE durchgeführt.
quelle
Ich denke, das ist ungefähr so, als würde man sich fragen, wie man wissen kann, ob man eine nette Person ist.
Ich denke, leider ist die Antwort, dass nur andere glaubwürdige Leute Ihnen das sagen können. Ich glaube nicht, dass Sie dies selbst genau bestimmen können (zumindest ist es sehr schwierig - aber ich denke, es ist möglicherweise unmöglich).
quelle
ich würde einfach sagen: wenn du leidenschaftlich bist (ich meine WIRKLICH leidenschaftlich) was du tust, wenn du flexibel bist (eine andere Sprache, neue Technologie, komplettes Remake eines alten Projekts - lass es uns tun!), wenn du weiter lernst und verbessern Sie Ihre Fähigkeiten und denken Sie niemals, dass Sie gut genug sind, um aufzuhören - dann sind Sie ein guter Programmierer!
quelle
95% aller Programmierer glauben, zu den Top 5% der Programmierer zu gehören, die anderen 5% sind Manager. Wenn Sie also ein Manager sind, sind Sie wahrscheinlich kein guter Programmierer, sonst sind Sie es wahrscheinlich.
quelle
Ich denke, es kommt eher darauf an, was Sie mit Ihren Programmierkenntnissen anfangen. Ein großartiger Programmierer zu sein ist in Ordnung, aber was macht es aus, wenn Sie den ganzen Tag Banksoftware programmieren (keine Beleidigung). Es passt einfach nicht zusammen.
Um sich wirklich zu beweisen, dass Sie ein guter Programmierer sind, nehmen Sie ein interessantes und schwieriges Nebenprojekt auf. Dies zeigt ein paar Dinge: Sie möchten gerne in Ihrer Freizeit programmieren und das Thema wirklich genießen - dies ist eine Grundvoraussetzung, um ein guter Programmierer zu sein. Vielseitigkeit zeigt sich darin, dass Sie Ihre Fähigkeiten über das hinaus erweitern können, was Sie in Ihrer Arbeitsumgebung tun. Es zeigt auch Motivation und Kreativität: Sie haben ein Problem selbst definiert und unternehmen Schritte, um es zu lösen.
All diese Aspekte machen für mich einen guten Programmierer aus.
quelle
Meine Antwort wird politisch falsch sein. Tatsächlich bin ich jedoch Gründer eines Start-ups und meine Aufgabe ist es, die besten Programmierer einzustellen.
Woher weiß ich, welche Leute gute Programmierer sind oder gute Programmierer sein können?
1 Wort: IQ.
IQ dient zum Programmieren, ebenso wie die Höhe für Basketballspieler.
Ich würde die mathematischen Fähigkeiten als weitere politisch korrektere Indikatoren bezeichnen. Meine Informatiklehrer sagten mir, dass es ein Kriterium gibt, das richtig vorhersagt, wer bei Programmierkursen erfolgreich sein wird. High School Math Scores. Das sind effektiv IQ sowieso.
Dies kann eine Überraschung sein. Uns wird gesagt, dass das Programmieren ein College-Abschluss ist. Ratet mal, mir ist der Abschluss egal. Ich kümmere mich nur um 3 Dinge.
Leider misst IQ nur eine Sache. Also mache ich ein paar Tests.
Ich stelle Leuten Fragen. Einfache Frage, von der ich erwarte, dass ein Grundschüler sie beantworten kann.
Ich stelle Fragen wie:
Wenn Sie genau hinschauen, erfordern diese Fragen überhaupt keine Kreativität. Nur gesunder Menschenverstand. Jeder Grundschüler mit IQ kann das beantworten.
Die meisten College-Absolventen können nicht. Stellen Sie sich vor, jemand kann das nicht beantworten? Kann er programmieren? Denk darüber nach. Wie oft müssen Sie angeben, was er tun soll?
Sie können auch Fragen wie Microsoft stellen, die Kreativität erfordern. Sie können Fragen zum Wiegen von 8 Bällen auf einer Waage stellen, um herauszufinden, welcher der schwerste ist. Das Problem bei solchen Fragen ist, dass es sich um Glück handelt. Einige sind jedoch recht einfach, es sollte eine Mindestanforderung sein.
Ein großartiger Programmierer zu werden, kann die Moral anderer Programmierer verbessern. Ein Lawsy-Programmierer kann die Moral aller anderen senken.
Nachdem die Leute solche Fragen beantworten können, was sehr einfach ist, würde ich sie dazu bringen, einen Google-Jam-Code zu schreiben.
Gute Programmierer können Google Jam Code lösen und vorhersagen, welche Probleme einfacher sind.
quelle
imho du bist ein guter programmierer wenn
- Sie haben einen fundamentalen theoretischen Hintergrund. In den meisten Fällen ist es Zeitverschwendung, das Rad sowie einen Algorithmus oder ein Framework neu zu erfinden.
-sie können manchmal Dinge und Probleme aus einer verzerrten Perspektive sehen. Dies kann dazu führen, dass Sie innovative Lösungen finden.
- Sie investieren Zeit, Geld und Mühe, um die besten Tools und Fähigkeiten auf den neuesten Stand zu bringen.
-Ihr Code ist leicht zu ändern. Wenn Sie sauberen, eleganten und verständlichen Code entwerfen, ist es nicht schmerzhaft, ihn zu modifizieren.
-Wenn Ihre Code / Bugs-Rate recht hoch ist. Ich weiß, dass dies trivial erscheinen mag, aber ich kenne viele kreative und erfahrene Entwickler, die dennoch sehr anfällig dafür sind, triviale Fehler zu machen. dies beeinträchtigt ihre Wirksamkeit und Nützlichkeit erheblich.
- Die Menschen in Ihrer Umgebung wissen, dass Sie bei der Entscheidung helfen können, welche Entscheidungen zu treffen sind
-Sie können Probleme mit verschiedenen Werkzeugen lösen. Schlechte Programmierer verwenden weiterhin dasselbe Tool (sei es eine Sprache oder eine Technologie oder eine Architektur usw.) für jedes Problem, das sie haben
- Du lernst weiter, du bist neugierig.
-Sie haben Spaß am Programmieren, nach all den Jahren
quelle
... meine Schlussfolgerung ist, dass gute Programmierer ein niedriges Gehalt haben und wenig Lärm machen ... :)
quelle
Bester Programmierer: Beenden Sie die Aufgabe mit der geringsten Anzahl von Code-Anweisungen rechtzeitig.
quelle
Wie viele Fehler hat Ihr Code pro Metrik? (dh Fehler pro Zeile) Wie viel Code muss neu codiert werden, wenn neue Funktionen hinzugefügt werden müssen? Haben Ihre Mitarbeiter Probleme, Ihren Code zu ändern?
Letztendlich ist die Frage so gut wie unmöglich zu beantworten, da die Frage "Was ist Qualitätscode?" Nach all den Jahren immer noch ein heiß diskutiertes Thema ist.
quelle
Mir gefällt wirklich, was Adam V oben gesagt hat.
Sehen Sie sich zusätzlich zu den Aussagen anderer die Wartbarkeit und den Supportverlauf Ihrer Arbeit an. Wenn Ihr Code hohe Wartungsanforderungen hat und ständig repariert wird oder schwer zu ändern ist, können diese Indikatoren für seine Qualität sein. Dies können aber auch Indikatoren für schlechte Anforderungen sein.
quelle
Es ist sehr schwer, sich selbst einzuschätzen. Inkompetente Menschen neigen dazu, wild überhöhte Einschätzungen ihrer eigenen Fähigkeiten zu haben.
Eine gute Messgröße ist, ob andere Personen, die Sie als Programmierer selbst respektieren, mit dem von Ihnen geschriebenen Code arbeiten möchten. Wenn Sie die Möglichkeit haben, direkt mit Ihnen zu arbeiten oder den von Ihnen geschriebenen Code zu erben, lehnen Sie diesen dann ab? Widerwillig zustimmen? Oder nutzen Sie die Chance, von Ihrer Arbeit zu lernen? Diese Technik funktioniert sogar noch besser, wenn es sich um einen Gleichaltrigen handelt, nicht um einen Untergebenen oder jemanden, der denkt, dass es für ihn von Vorteil sein könnte, wenn Sie sich gut fühlen.
quelle
Wenn Sie es wirklich herausfinden möchten, senden Sie Ihren Kollegen einen Code und fordern Sie eine (konstruktive) Überprüfung des Codes an. Im schlimmsten Fall lernst du etwas. Die bloße Tatsache, dass Sie hier auf dieser Seite sind und nach Erleuchtung suchen, unterscheidet Sie bereits von den ungewaschenen Massen. (es sei denn, du bist nur zum Streicheln des Egos hier. :-)
quelle