Wann würde jemand als schlechter Programmierer gelten? [geschlossen]


57

Wie würden Sie denken, dass ein Programmierer schlecht in dem ist, was er oder sie tut?

Wenn möglich ... Wie soll er / sie sich verbessern?


3
Weil diese Person keine Antworten auf programmbezogene Webseiten akzeptiert. Scherz :-)
Daniel

1
@EvanKroske: Nein, das ist nicht richtig. Das Community-Wiki ermöglicht die gemeinsame Bearbeitung von Beiträgen. Siehe auch: Unser Meta - Tag: community-wiki
Tamara Wijsman

Bei vielen Fragen ist es unmöglich, eine einzige Antwort zu akzeptieren. Siehe auch: Unsere Meta - Suche: accept
Tamara Wijsman

Nicht jede Frage erhält eine Antwort, die das Problem tatsächlich anspricht.
Loren Pechtel

Antworten:


134

Wenn sie nicht aus ihren Fehlern und Peer Reviews lernen.

Irgendwann sind wir alle grün; Wenn Sie jedoch nicht besser werden oder versuchen, besser zu werden, sind Sie ein schlechter Programmierer.


4
Einverstanden - Sie müssen eine Feedback-Schleife haben und immer aus Ihren Fehlern lernen.
Marcel Lamothe

1
@ PSU gut gesagt. Wie jedes Handwerk sind Programmierer Handwerker und nicht perfekt. Sie lernen immer, aber wenn Sie nicht aus Fehlern lernen, verbessern Sie Ihr Handwerk nicht.
Chris

2
Das ist eine sehr weit gefasste Definition. Es ist nicht auf Programmierer beschränkt. Es gilt für Wissenschaftler, Köche, Sportler, Übersetzer, Hausmeister, Fotografen und wirklich jeden Beruf.
RegDwight

13
Jeder ist mindestens einmal in der Woche ein Idiot.
MIA

@RegDwight: und dein Punkt war ...?
SamB

125

Ein Programmierer, der nicht weiß, was er nicht weiß und überhaupt nicht interessiert ist, es herauszufinden.


16
Wenn ich diese 100x verbessern könnte, würde ich. Ein bisschen Demut und Lernhunger machen auf Dauer viel wett.
William Pietri

1
+1 für Ngu und William auch. Dies ist das typischste Kriterium für einen schlechten "Programmierer".
Fabrik

Was passiert, wenn du weißt, dass du nicht viel weißt und so sehr du es auch versuchst, wirst du nie das meiste davon wissen?
Steven Evers

@snOrfus, Sie finden einen Mentor, der Sie unterrichtet ...

75

Ein großes Warnsignal ist, wenn sie ein "Frachtkult" -Programmierer sind - was bedeutet, dass sie Dinge tun, aber nicht wissen, warum sie diese Dinge tun (es ist nur "Magie"). Toller Beitrag von Eric Lippert hier .

Aus dem Artikel:

Programmierer, die verstehen, was der Code tut, aber nicht, wie er es tut.

3
* und codiert seit einiger Zeit in dieser Technologie
Joe Phillips

5
Dies würde für fast alle Programmierer gelten, die jemals Web-Entwicklung mit Frameworks wie Java / Spring oder Ruby on Rails durchgeführt haben. Diese Frameworks stecken voller schwarzer Magie, die normale Programmierer normalerweise nicht verstehen wollen.
Fehlender Faktor

3
@ Missing Faktor - und daher wäre es nicht so ungenau zu sagen, dass die meisten Programmierer, die das tun, keine großartigen Programmierer sind :)
Seanmonstar

14
Andererseits ist es unrealistisch anzunehmen, dass Programmierer die Funktionsweise des Frameworks, der virtuellen Maschine oder des Codes, auf dem sie aufbauen, vollständig verstehen sollten. (Oder in der Tat Details aller Abstraktionsebenen, bis Bare Metal erreicht ist.) Sie können ein perfekter, produktiver Programmierer sein, selbst wenn Sie nur die relevantesten Teile kennen.
Jonik

4
@ Missing Faktor: Sie verstehen möglicherweise nicht die Interna der Bibliotheken und Frameworks, die sie genau verwenden, aber sie sollten zumindest wissen, wofür jedes Element in ihrem Code bestimmt ist: "Den Frobber schnupfen", "weil die Dokumentation dies sagt benötigt, um die Integrität des Raum-Zeit-Kontinuums zu bewahren ", etc.
SamB

45

Ein großer Tipp für mich ist, wenn sie Ihnen oder den anderen Programmierern Entwicklungsfragen stellen, die deutlich zeigen, dass sie absolut keine Anstrengungen unternommen haben, um es selbst herauszufinden.

Eine Konsequenz ist, wenn sie dieselbe Programmierfrage mehrmals stellen und angeben, dass sie die Informationen nicht internalisieren.


Ah ja, ich habe mit ihm gearbeitet. Zum Glück Vergangenheitsform.
Mike Woodhouse

1
Einige sind nicht einmal in der Lage, vernünftige Fragen zu stellen, und bitten Sie, "es einfach zu beheben"
deltreme

21

Wenn sie lange brauchen, um das FizzBuzz-Problem zu lösen.


1
Ich denke, es könnte einige Anfänger geben, die das Potenzial haben, gute Programmierer zu sein - die Probleme damit haben.
JD Isaacks

2
Anfänger sind in Ordnung, wenn Sie einen Junior-Programmierer suchen, den Sie zu einem guten formen und formen möchten. Aber dieses Problem ist so trivial, dass es zu keiner Zeit jemanden mit Erfahrung braucht, um zu schreiben.
Matt DiTrolio

8
Ich würde argumentieren, dass niemand, der einen Programmierkurs für Anfänger erfolgreich abgeschlossen hat, viel Zeit brauchen sollte, um dieses Problem zu lösen.
EpsilonVector

4
Wenn ein Anfänger FizzBuzz nicht lösen kann, sollte er sich nicht für Programmierjobs bewerben. Wenn Sie behaupten, programmieren zu können (z. B. indem Sie sich für einen Programmierjob bewerben), sollten Sie in der Lage sein, FizzBuzz zu lösen.
Chinmay Kanchi

1
Die Stackoverflow-Frage zu FizzBuzz ist einen Blick wert. Schauen Sie sich die Python-Lösung an, die weder Division noch Modul verwendet. stackoverflow.com/questions/437/…
Gordon

21

Programmierer, die sich weigern, neue Technologien / Sprachen zu lernen, und darauf bestehen, sich an das zu halten, was sie bereits kennen.


Nachtrag: (Hinzufügen des Gedankenstrichs in den Kommentaren)

Eine Erweiterung davon sind Leute, die eine Teilmenge der Funktionalität einer Technologie kennen, aber keine Lust haben, mehr darüber zu erfahren. Programmiersprache, Editor, andere Tools ...


6
... und ohne gute Gründe sollte ich hinzufügen.
Fehlender Faktor

18

Wenn ein Teammitglied der negativ produzierende Entwickler ist .

|# Lines Written| - |# Lines of bugs introduced| - |# Lines of rework required| < 0

Das heißt, der Rest Ihres Teams muss wegen des schlechten Entwicklers mehr Arbeit leisten. NNPP


1
Ich stimme zu - diese Leute können ihrem Team extrem schaden.
Marcel Lamothe

44
Huh ... Ich habe gestern 500 Zeilen redundanten Code entfernt und keine Bugs eingeführt. LOC-Metriken als schädlich eingestuft?
Piskvor,

5
Die meisten Metriken sind schrecklich, und LOC-Metriken sind normalerweise eher nutzlos. Der Punkt hier ist, dass ein schlechter Programmierer jemand ist, der mehr Arbeit für das Team schafft, als er / sie erledigt.
Danivovich

5
LOC-Metriken sind nicht nutzlos. Sie sind SCHÄDLICH. Außerdem ist die LOC-Zählung in den meisten modernen Sprachen sehr schwierig. Aber die Metrik ist hier nicht der Punkt. Es heißt nur | Arbeiten, um etwas zu erschaffen | - | Arbeit, die falsch war | - | work to fix | ... dh wenn Sie 10 Stunden gebraucht haben, währenddessen Sie 6 Stunden an etwas gearbeitet haben, das letztendlich repariert werden musste, und dafür 6 weitere Stunden gebraucht haben, dann sind Sie -2 Stunden. Die Zeit ist genau das, worauf Sie sowieso abzielen.
MIA

1
LOC-Metriken sind eine großartige Methode, um zu messen, an wie vielen Stellen sich Bugs verstecken müssen.
SamB


15

Wenn sie wissen, dass es bessere Möglichkeiten gibt, die Dinge zu tun, sich aber weigern, sie zu tun, selbst wenn es die Zeit erlaubt.


Es kann jedoch zu Meinungsverschiedenheiten kommen, was besser ist.
DarenW

@DarenW - Ich würde nicht sagen, dass jemand ein schlechter Programmierer ist, weil er eine Seite zu einem kontroversen Thema hat, aber wenn er eine endgültige Entscheidung in seinem eigenen Kopf hat.
JeffO

15

Persönlich denke ich, dass jeder Programmierer, der sich seinen eigenen Code ansehen kann, den er vor einiger Zeit geschrieben hat, und keinen Fehler findet, kein guter ist. "Eine Weile" kann mit der Erfahrung mithalten ... Ich würde sagen zwischen ein paar Wochen bis zu einem Jahr oder so.


5
Was ist, wenn sie nichts Falsches finden können und das sie beunruhigt?
SamB

1
Oder schlimmer noch, sie können nichts Falsches finden und versuchen, es zu beheben.
Toon Krijthe

15

Diejenigen, die Warnungen in ihren Codes ignorieren und sich nur um Fehler kümmern.


14

Als ich ein Teamleiter in einem kleinen Laden war, gab es einige Leute, die ich neu zuweisen musste (weder ich noch mein direkter Vorgesetzter hatten eine Kündigungsmöglichkeit ohne jede Menge Bürokratie und Unterlagen.) Oder keine Vertragsverlängerung am Ende des aktuellen Engagements. Einige der aufgezählten Typen arbeiteten auch für andere Teamleiter, und sie waren fast der gleichen Ansicht. Dinge, die Leute in die Kategorie "Bad Programmer" in meinem Buch geführt haben:

  1. In der Vergangenheit untrainierbar oder ohnmächtig
    Wenn der Programmierer das neue System, das neue Tool oder was auch immer eingesetzt wird, nicht aufnehmen kann, unabhängig davon, wie die Schulung / Ausbildung durchgeführt wird. Muss das Training regelmäßig wiederholen.
    Wenn der Programmierer nur die Technologie oder das Codierungsparadigma kennt, die er vor 10 oder 15 Jahren verwendet hat. Es war dann gut genug, also warum sollten sie sich ändern?
  2. Cowboy-Codierer
    Die Person, die zuerst codiert, ohne einen Plan. Der 'Programmierer', der ungetestete Änderungen am Produktionscode und / oder den Daten vornimmt, "weil wir sie jetzt reparieren müssen", ist dann überrascht, wenn die "Korrektur" fehlschlägt.
    Der Cowboy ist auch definitiv kein Teamplayer. Benötigt kein stinkendes Team.
  3. Die Wetterfahne
    Dieser "Programmierer" ist verliebt in die "technology du jour " und sieht jedes neue Framework, jede neue Sprache, Methodik oder was auch immer neu und aktuell ist wie die
  4. Das "große Gehirn"
    Dieser "Programmierer" ist sich seines Talents und seiner Fähigkeiten so sicher, dass Dinge getan werden, die für das Projekt wenig sinnvoll sind. zB Umschreiben einer Standardbibliothek "weil sie für unser System ineffizient ist" oder Einführung von Tools und Techniken, die für das jeweilige Problem nicht geeignet sind. zB Einführung von Lisp oder Forth in einer Mainframe-Umgebung.
  5. LOC a. Sandbagger
    Dieser 'Programmierer' verwendet Verschleierung und falsche Richtung, um das a zu erhöhen . LOC: Codezeilen, für die bezahlt wird. Ich habe in dieser Situation Code gesehen, der Seite für Seite war, Bildschirm für Bildschirm mit doppelter Struktur und Logik, wobei nur die Namen der Absätze oder Steuervariablen geändert wurden, um die Zeilenanzahl zu erhöhen.
  6. Unverzichtbarer Experte
    Der "Programmierer", der das Fachwissen besitzt, um die vorliegenden Probleme zu lösen, aber seitdem alles darüber "weiß". Tatsächlich würde die gesamte Organisation zusammenbrechen, wenn sie von einem Bus angefahren würden. { Beobachtung: Diejenigen, die denken, dass sie in der Regel unverzichtbar sind, sind. (Hat jemand die Quelle für diesen Aphorismus?)}
  7. Der Pasta-Chef
    Dieser "Programmierer" ist auf Spaghetti-Code spezialisiert, gewürzt mit Bezeichnern, die ohne eine syntaktisch implementierte IDE einfach zu schwer nachzuvollziehen sind. zB IndexI1O0, Index1I0O usw.
  8. Sommerpraktikant - Speziell für den Subtyp "Walking Disaster"
    Früher stellte ich in meinem alten Laden einige Praktikanten im späten Abitur- oder College-Alter ein. Einmal benötigte eine Abteilung eine kleine Datenbank, um die Auslastung der Geräte zu verfolgen (jetzt war dies eine Verzögerung, und es wurde dBase III verwendet). Der Typ hat den ganzen Sommer mitgeschrieben, war aber noch nicht fertig, als das College im Herbst begann. Er bekam eine einwöchige Verlängerung, dann eine zweite Woche. Am Ende der zweiten Woche wurde ich ausgesandt, um sein Projekt zu übernehmen und es zum Abschluss wieder in die Systementwicklung zu bringen. Er zeigte mir die Sachen, die er gemacht hatte, und dann den unvollendeten Teil. Was funktionierte hatte eine schöne Augenweide, aber die Anwendung warunvollständig. Als ich die neue Schachtel mit den formatierten Disketten öffnete, um Kopien zu erhalten, sagte er: "Nur eine Sekunde, lassen Sie mich meine Testdateien löschen ..." und bevor ich etwas sagen konnte, hatte er eine Reihe von Dateien gelöscht.
    Ich war misstrauisch und stellte fest, dass seine Bewerbung fast nichts anderes als eine Augenweide war, als ich in meinen Laden zurückkehrte. Dann ging ich zurück in die Abteilung und holte Norton heraus und löschte die gelöschten Dateien wieder, um eine zusätzliche Logik zu finden. auch wenn unvollständig.
    Ich fand keine schlechte Logik, sondern schlechtes Benehmen. Der Drucker, der an den von ihm verwendeten PC angeschlossen war, war ein Raddrucker. Der normalerweise eingebaute Zeichensatz war eine Schweizer Variante. Die Ausgabe der gelöschten Programme enthält einen Namen, eine Adresse, ein DOB, einige Buchstabencodes und eine Art ID-Nummer. Das Format und Layout hat mich gestört. Alle Geburtsdaten für mehrere Personen waren kaum trinkberechtigt. Die meisten Adressen waren nicht da, als ich sie in unserem Kreuzverzeichnis nachschlug. Als ich seinem Vorgesetzten die Ausdrucke zeigte, sah er mich an und sagte: "Führerschein, meinst du nicht?" Ich sagte, ich tat es. Er sagte, deshalb habe er das Transparentmaterial im Papierkorb neben dem Xerox gefunden. Unser böser Junge hatte Overlays gemacht, um sein Alter und das seiner Freunde auf ihren Führerscheinen abzustimmen. Wir haben es den Behörden gemeldet.nicht für seine letzten zwei Wochen bezahlt.

Dies sind nur einige der schlechten Charaktere, mit denen ich arbeiten musste ...

/ s / BezantSoft


RE "Diejenigen, die denken, dass sie normalerweise unverzichtbar sind, sind" erinnert mich irgendwie an en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
DaveDev


10

Abgesehen von dem offensichtlichen Mangel an Kenntnissen / Fähigkeiten ist ein Programmierer ein schlechter, wenn sein Code schwerer zu lesen und / oder zu warten ist, als er sein sollte.


1
Und der Programmierer ist wirklich schlecht, wenn er einen gut geschriebenen Code nicht lesen kann :-)
Maniero

4
Wäre das nicht fast jeder? Ich meine, ist Code nicht fast immer schwerer zu lesen und / oder zu warten als es sein sollte?
SamB

Nee. Code ist immer einfacher zu schreiben als zu lesen. Aber ich musste einen sehr gut geschriebenen Code pflegen, der diesen Schmerz so weit wie möglich reduzierte.
Chinmay Kanchi

10

Wenn sonst niemand seinen Code lesen kann. Es ist egal, wie hell du bist; Kein Programmierer ist eine Insel.


Nun, wenn er in Unlambda schreibt, sollte niemand in der Lage sein, es zu lesen.
SamB

Wenn ein Programmierer nur sehr wenig Zeit benötigt, um etwas zu tun, und dann viel Zeit, um Anpassungen daran vorzunehmen. Ich habe oft gesehen, dass dies passiert, weil der Programmierer hauptsächlich Code kopiert (deshalb am Anfang schnell), aber dann viel Zeit benötigt, weil es (selbst für gute Programmierer) schwierig ist, ihn von dort aus zu ändern, weil die Absicht fehlt zu Beginn anpassbaren Code zu schreiben.
Sandeepan Nath

7

Jemand, der nicht auf die Details achtet und immer im Modus "Es funktioniert, also lasse ich es in Ruhe. Alle diese Ausnahmen in den Protokollen spielen keine Rolle" ist.


7

Es gibt zwei Kategorien für Programmierer für mich - Solo und Team.

Schlechte Solo-Programmierer sind

  • Diejenigen, die zu lange gebraucht haben, um die einfache Aufgabe zu erledigen.
  • Diejenigen, die nicht selbst recherchieren können, was sie tun.
  • Diejenigen, die innerhalb weniger Tage vergessen werden, was heute codiert wurde, und ihre eigene Codebasis nicht gut pflegen können.
  • Diejenigen, die sich nicht an die Anforderungen anpassen können, ändern sich.

Schlechte Team-Programmierer sind diejenigen, die in die Kategorie der schlechten Solo-Programmierer fallen, einschließlich

  • Diejenigen, die sich nicht mit anderen Teammitgliedern abstimmen können.
  • Diejenigen, die Kritik nicht begrüßen.
  • Diejenigen, die nicht wissen, wie sie anderen nützlich sein und wie sie von anderen Teammitgliedern profitieren können.
  • Diejenigen, die keinen lesbaren Code schreiben können.
  • Diejenigen, die aus Gründen der Lesbarkeit für die anderen nicht kommentieren.

8
Ich erinnere mich nicht genau, wie ich Dinge implementiert habe, die ich letzte Woche programmiert habe. Ist das ungewöhnlich? Ich hatte den Eindruck, dass die Arbeit mit dem endlichen menschlichen Gedächtnis nur eine der Herausforderungen der Programmierung war. Daher Code die Bedeutung der Strukturierung und Dokumentation , so dass ich nicht brauchen , um Details zu erinnern.
James

@ James Bitte entschuldigen Sie mein Englisch;). Ich meine, wenn ein Programmierer einige Tage später zurückkommt, um sich seinen Code anzusehen und überhaupt keine Ahnung hat, ist das ein schlechtes Zeichen. Ich erinnere mich auch nicht, wie und was genau ich vor ein paar Tagen getan habe, aber ich bin sicher, ich muss mich nicht am Kopf kratzen, wenn ich meinen eigenen Code betrachte und sage: "Was habe ich gedacht?"
Tia

@ James: Genau, er sollte seinen Code dokumentieren, damit es egal ist, dass er vergaß, wie die Hälfte davon funktioniert
SamB

4

Nicht bereit zuzugeben, dass sie die Antwort nicht kennen und / oder nicht bereit sind, nachzuschlagen.

Wenn Sie es nicht wissen, geben Sie nicht auf - finden Sie es heraus und erledigen Sie es.


4

Meiner Erfahrung nach ist es ein großes Warnsignal, wenn sie ihre Hacks nicht kommentieren ...

Sie wissen, was ich meine: wenn Sie gezwungen sind, etwas sehr Hackiges zu tun, weil es einfach keinen besseren Weg gibt, es zu tun.

Gute Programmierer werden es hassen, dies tun zu müssen, und Inline-Kommentare einfügen, in denen steht, wie sehr sie es hassen, diese Art von Hack einzusetzen, aber es gibt keine andere Wahl. Schlechte Programmierer werden nur den Hack einbauen und ihn nicht kommentieren.


3

Ganz offensichtlich ruhig, wenn ein Programmierer VIEL Code schreibt. Sehr große Funktionen, z. B. das Kopieren / Einfügen von Zeilen oder Codeblöcken, bei weitem mehr, als erforderlich ist. Dies kann daran liegen, dass der Programmierer keine Standardfunktion kennt, mit der er das tun kann, was er will, dies jedoch in den meisten Fällen nicht.


3

Wiederholt den richtigen Weg gezeigt zu bekommen und es immer wieder einfach zu machen.


3

Ich verlagere meine Antwort hierher von einem geschlossenen Duplikat mit der Frage Können Sie erkennen, ob Sie ein schlechter Programmierer sind? Das andere Thema wurde geschlossen, als ich meine Antwort verfasste. Meine Antwort geht direkter auf die Frage ein, wie sie vom anderen Fragesteller formuliert wurde, und wird besser gelesen, wenn Sie das verstehen.

Seufzer! Ein Teil von mir wollte diesem bereits beschäftigten Thema nichts hinzufügen, aber der andere Teil von mir hat gewonnen! Warum hat es gewonnen? Warum mache ich mir die Mühe, diesem speziellen Multilog noch mehr Worte hinzuzufügen? Na ja, weil ich das bis zu einem gewissen Grad ein wenig anders einschätzen kann als die vielen vorherigen Kommentatoren.

Binär funktioniert hervorragend in Computern: Es ist "1" oder "0", "Ein" oder "Aus". Mit diesen beiden berühmten Staaten können wir viele Informationen abstrahieren und kodieren. Aber es funktioniert nicht so gut für menschliche Angelegenheiten: "gut" oder "schlecht", "gesund" oder "verrückt", "gut" oder "böse", "klug" oder "dumm", "fett" oder "dünn", "lebendig" oder "tot?" Diese Art von polarisierten Bewertungen hat den fürsorglichen Menschen, der ein Teil von mir ist, immer schrecklich unzufrieden gemacht. Unabhängig davon, welche Messschemata ich wähle, stelle ich normalerweise fest, dass die Antworten auf solche starken Kontraste tatsächlich irgendwo entlang eines Kontinuums zwischen einem solchen Pol und dem anderen liegen und nicht an beiden Enden.

Ich kämpfe schon seit geraumer Zeit mit dieser Tendenz zur Polarisierung und meine persönliche Lösung ist, dass ich es weitaus nützlicher finde, drei Wörter auf eine solche Bewertung anzuwenden: " bis zu welchem ​​Grad!"

Meine Antwort auf Ihre Frage lautet also, dass Sie sie umformulieren und sich folgende Frage stellen: "Inwieweit bin ich ein schlechter Programmierer?" Oder noch besser, um es in die andere Richtung zu fragen: "Inwiefern bin ich ein guter Programmierer?" Wenn Sie der Wahrheit nachjagen, werden Sie sich wahrscheinlich irgendwo zwischen einem "schlechten" Programmierer und einem "guten" befinden. Wenn Sie dann ungefähr gefunden haben, wo Sie sich auf diesem Weg befinden, können Sie wahrscheinlich einen Punkt identifizieren, der etwas näher am "guten" Ende liegt - ein Punkt, an dem Sie sich in naher Zukunft wiederfinden möchten.

Wenn Sie diesen Punkt nicht zu weit weg setzen, können Sie wahrscheinlich Ihr hinteres Ende einlegen und es in diese Richtung bewegen. Wenn Sie es schaffen, diesen eher einfachen heuristischen Algorithmus mehrmals zu wiederholen, sind Sie möglicherweise bald zu beschäftigt, um diese Frage erneut zu stellen! Oh, und Sie werden wahrscheinlich schneller vorankommen, wenn Sie anfangen, Code auf einer Tastatur so schnell und so oft wie möglich zu tippen. Und wenn Sie ab und zu eine kleine Pause einlegen, lesen Sie den hochwertigen Code, den Ihre Kollegen geschrieben haben! In diesen Tagen der dynamischen Open Source-Entwicklung mangelt es Ihnen nicht an kostenlosem und exquisitem Code, von dem Sie lernen können!

Daher empfehle ich Ihnen nachdrücklich, meine drei kleinen Wörter zu probieren, "bis zu welchem ​​Grad", und zu sehen, wie weit sie Sie in eine gute Richtung bringen können!


2

Jemand, der sagt "Das geht nicht".

Meiner Meinung nach dreht sich alles um das Lösen von Problemen. Das Tool sollte weitaus weniger relevant sein als die eigentliche Arbeit. Wenn ich es mit MS-Access oder Assembler lösen muss, ist es eine Frage von Zeit und Geld, nicht von "Es kann nicht gemacht werden".

Ein Warnzeichen ist zu sehr auf die akademische und "richtige" Arbeitsweise ausgerichtet und zu wenig auf die Erledigung der Arbeit.


2
Und wenn er sagt, warum geht das?
Maniero

1
Wie wäre es also mit der Lösung eines Halteproblems? Kann es gemacht werden?
P Shved

2
Es ist schlecht, etwas als unmöglich abzutun und umgekehrt.
Randall Schulz

2
@Randall Schulz: Ein Rockstar-Programmierer ist meines Erachtens jemand, der alle Entwicklungsstufen (Datenbank, Benutzererfahrung, Bereitstellung, Systemadministration und Benutzerunterstützung) bei einer Werbeagentur für deutlich weniger als den normalen Lohn abwickelt eines dieser Dinge. Sie nennen sie Rockstars, weil ihre Ernährung nach 60 Stunden in der Woche derjenigen ähnelt, die in einem Econoline-Van unterwegs sind und ihre Gitarren für Lebensmittel verpfänden müssen.
Dan Monego

1
Ja, ich habe eine pauschale Verallgemeinerung gemacht :), aber ... es war um einen Punkt zu machen. "Meine berufliche Meinung ist, dass es nicht gemacht werden sollte" ist besser. Noch besser "Wie wäre es, wenn Sie dasselbe Problem auf andere Weise lösen würden?" Mein Punkt ist, dass ein guter Programmierer lösungsorientiert sein sollte. "Das geht nicht", ohne Optionen anzubieten, ist für den Kunden sehr frustrierend.
Dan Williams

2

Wenn er nur die Syntax einer Sprache kennt, aber die grundlegenden Konzepte von Algorithmen nicht kennt.




2

Diejenigen, die Prinzipien wie SOLID, DRY, OOP und so weiter nicht kennen. Es ist wichtig, die Prinzipien und Grundlagen der Programmierung zu verstehen, anstatt bestimmte Technologien zu kennen. Diejenigen mit solider Grundlage werden in der Lage sein, neue Themen leicht zu lernen und besseren Code zu produzieren.


2

Ein eingebetteter Programmierer, der Interrupts oder Multitasking nicht sehr gut versteht. Auch Programmierer, die mit Bitfeldern arbeiten müssen, aber keine logischen Operationen auf sie und Verschiebung begreifen.


2

Ein sofortiges Erkennungssignal ist jemand, der sagt: "Ich verstehe nicht, warum es nicht funktioniert. Ich habe alles richtig gemacht."


Gefolgt von "Ich verstehe nicht, warum das funktioniert, es ist nicht richtig."
Randall Schulz

Ja, es ist der Computer, der dumm ist :)
Dan Williams

2

Eine Sache, die einen schlechten Programmierer von einem neuen Programmierer unterscheidet, ist das hartnäckige Bestehen darauf, sein Lieblingssystem in der Sprache und API zu implementieren, in der sie arbeiten.

Ich habe einmal ein System geerbt, auf dem der frühere Entwickler (in Java) einen großen Satz der Ashton Tate DBase III + -API reimplementiert hat, der über der benutzerdefinierten DBF-Zugriffsbibliothek liegt. Keines der Java-Collections-Frameworks wurde verwendet.

Auf diese Weise konnte er eine Java / Swing-App schreiben, die aussah und sich wie eine DBase III + -Anwendung (oder möglicherweise eine Clipper-Anwendung) verhielt.

Die Apps, die er in diesem System geschrieben hat, hatten Lite-Bar-Menüs und öffneten ein vollständiges Fenster mit einer Reihe von Schaltflächen am unteren Rand, wenn Sie mit der Lite-Bar zu der Option navigierten. Es war wie eine kleine Zeitmaschine in den 1980er Jahren.

Der Mann war eindeutig ein erfahrener Entwickler. Er wusste genug, dass er das ganze System im Zeitrahmen dieses Projekts selbst schreiben konnte. Er konnte es auch auf einigen anderen internen Systemen wiederverwenden.

Aber er war insofern ein schrecklicher Programmierer, als sein Code die Funktionen der Systeme missbrauchte, an denen er arbeitete. Er war eher bereit, 3 Monate für eine benutzerdefinierte Bibliothek mit zweifelhaftem Nutzen zu investieren, als Java / Swing / SQL zu lernen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.