Lässt mich die Verwendung von Dokumentation als Entwickler unprofessionell erscheinen?

pguetschow

Lässt mich die Verwendung von Dokumentation als Entwickler unprofessionell erscheinen?

Ich bin Junior-Entwickler und arbeite im Rahmen meines dualen Studiums alle zwei Monate in einem Softwareentwicklungsunternehmen.

Obwohl ich seit fast 1 Jahr programmiere (3 x 3 Monate Berufserfahrung + Nebenprojekte), muss ich während meines Arbeitstages ziemlich oft die Dokumentation und/oder den Stack Overflow überprüfen. Ich fürchte, das lässt mich unprofessionell oder unerfahrener aussehen, als ich tatsächlich bin (ich bin ziemlich vertraut mit dem Entwerfen und Erstellen von Software, muss aber oft nach Begriffen wie „PHP/JavaScript-Funktion, die XYZ macht“) suchen. In den meisten Fällen sollte ich dies bereits wissen, da ich dies bereits zuvor verwendet habe, es aber noch einmal überprüfen möchte, bevor ich Fehler mache.

Der Grund für diese Frage ist, dass ich irgendwie verspottet werde, weil ich Stack Overflow/Dokumentation so häufig verwende, was andere und mich selbst an meinen Fähigkeiten zweifeln lässt. Für mich ist es selbstverständlich, effizienter zu arbeiten und der Sprache bewusster zu werden. Jemand hat mir mal so etwas gesagt wie: „Ein Chirurg kann nicht jedes Mal seine Bücher lesen, wenn er einen Patienten operieren muss.“ Was meiner Meinung nach Unsinn ist.

Ich frage auch nach der Zukunft; zB wenn ich während eines Vorstellungsgesprächs für einen anderen Job Code schreiben muss, denke ich, dass Sie die Dokumentation nicht verwenden sollten.

Erik

Ich bin ein Senior und habe normalerweise mindestens 3 Browser-Tabs mit Stapelüberlauf und 2 mit geöffneter Dokumentation zu einem bestimmten Zeitpunkt.

Paul D. Waite

„Professionell“ bedeutet nicht dasselbe wie „perfektes fotografisches Gedächtnis“.

Jane S

Kommentare sind nicht für längere Diskussionen gedacht; Diese Konversation wurde in den Chat verschoben .

Walfrat

The reason for asking this question is that I get mocked for using Stack Overflow/documentation so frequently which makes others doubt my abilities, blöde Frage, wer sind die, die dich verspotten, weil du SO und so weiter benutzt? Manager, IT der alten Generation, die Frameworks immer noch selbst umschreiben, anstatt vorhandene robuste zu verwenden, jemand anderes?

Benutzer428517

Ich frage mich nur, warum gibt es Ihrer Meinung nach eine Dokumentation, wenn Sie sie nicht verwenden sollen?

Benutzer207421

Unklar, was Sie fragen. Wenn Sie nur nach Dokumentation fragen, sollte es offensichtlich sein, dass die Antwort „Nein“ lautet. Wenn Sie StackOverflow als "Dokumentation" einschließen, würde ich Sie als einen Trugschluss betrachten, und wenn Sie fragen, ob es professionell ist, StackOverflow häufig zu verwenden, ist dies zumindest eine völlig andere Frage als eine Frage zur Verwendung von Dokumentation .

NZKschatrija

Sich zu vergewissern, dass man etwas richtig macht, indem man zusätzliche Informationsquellen prüft, wirkt keinesfalls unprofessionell. Zumindest meiner Meinung nach wünscht man sich einen Mitarbeiter, der sich darum bemüht, dass er seine Arbeit beim ERSTEN Mal richtig macht.

3.1415926535897932384626433...

@Erik, nun, als Senior hast du zweifellos angefangen, dein Gedächtnis zu verlieren ....:-)

AI Breveleri

Ich war 40 Jahre lang Softwareentwickler und habe in dieser Zeit etwa 250.000 Wörter Dokumentation geschrieben. Ich würde mich sehr ärgern, wenn sich nie jemand darauf berufen würde.

Erik

@3.1415926535897932384626433... Ich verliere nicht mein Gedächtnis. Ich hatte nie einen Anfang :(

FreeMan

Ist es schlimmer, für die Konsultation von Dokumentation verspottet oder für das Schreiben von schlechtem/nicht funktionierendem Code gefeuert zu werden? Erinnern Sie jeden, der Sie verspottet, daran, dass sehr, sehr wenige Menschen ein fotografisches Gedächtnis haben, und selbst wenn Sie eines hätten, ist die Erinnerung an etwas, das sich seitdem geändert hat, nicht sehr nützlich.

James Jungmann

Die Daily WTF ist voller Code, der offensichtlich von Leuten geschrieben wurde, die die Dokumentation nicht gelesen haben.

Benutzer428517

Klingt, als wäre es an der Zeit, ein besseres Unternehmen zu finden, das klügere Leute beschäftigt.

Par

überprüft mein eigenes Stackoverflow-Profil : 2.399 Tage besucht, 224 Antworten geschrieben. Ich war also mindestens 2.175 Mal dort, um zu sehen, ob andere Leute mir bei meinem aktuellen Problem helfen könnten. Da ich das normalerweise mehrmals am Tag mache, garantiere ich, dass die Anzahl der Male, in denen ich tatsächlich Hilfe benötigt habe, viel, viel höher ist. Ich codiere seit 30 Jahren. :)

Benutzer45590

Keine Sorge: Sie sind ein Profi und handeln auch so.

Fachleute nutzen alle verfügbaren Ressourcen, um ihre Arbeit zu erledigen, einschließlich Dokumentation, Code, der von anderen geschrieben wurde (Bibliotheken), Hilfe von Experten usw.

Es ist nicht unprofessionell, eine externe Ressource konsultieren zu müssen. Tatsächlich wäre es unprofessionell, keine Dokumentation zu verwenden, wenn Sie sich nicht sicher sind, wie etwas funktioniert.

Zeigt Ihr Vertrauen in die Dokumentation Unerfahrenheit? Sicher, bis zu einem gewissen Grad. Aber du bist unerfahren . Nach nur wenigen Monaten im Job wissen Sie nicht so viel wie jemand mit langjähriger Erfahrung. Das ist nur eine Tatsache, und niemand wird es Ihnen wahrscheinlich vorhalten.

Aber auch Entwickler mit 20 Jahren Erfahrung werden die Dokumentation auf einige Dinge überprüfen. Dies ist immer Teil des Toolkits eines Entwicklers.

Programmiertests sind eine etwas andere Sache.

Da sie dazu dienen, die eigenen Kenntnisse und Fähigkeiten zu beurteilen, müssen Sie sie oft ohne Nachweise absolvieren. Das liegt nicht daran, dass die Dokumentation schlecht ist; Es ist nur so, dass in der künstlichen Umgebung eines kurzen Tests, der versucht, Ihre Gesamtfähigkeit zu bewerten, externe Ressourcen dieses Bild verwirren können.

Typische Programmiertests sind jedoch konzeptioneller Natur. In der Regel geht es dabei um Ihre Fähigkeit, einen Algorithmus zu erstellen, eine Lösung für ein Problem zu entwerfen und gute Codierungspraktiken zu befolgen. Das sind Dinge, die Sie sowieso nicht aus der Dokumentation bekommen würden. Wenn Sie gelegentlich ein kleines Syntaxdetail falsch machen, wirkt sich dies wahrscheinlich nicht sehr auf Ihre Bewertung aus.

pguetschow

Danke, das ist eine gut geschriebene Antwort. Hat mir auch einen Eindruck von Programmiertests gegeben, weil ich so etwas immer befürchte; Erstellen Sie ein Programm, das X doex, indem Sie die Sprache / Bibliothek Y verwenden. Auch + zum Entfernen meiner Unsicherheiten :)

Chris

Nichts ist schlimmer als ein Programmierer, der eine fehlerhafte Lösung für ein allgemeines Problem schreibt.

Benutzer

@Chris Fast genauso schlimm ist jedoch ein (noch schlimmer, wenn angeblich erfahrener) Programmierer, der eine O (n ^ 3) - oder O (n!) -Lösung für etwas findet, das vielleicht sogar in O (n log n) gelöst werden kann. , insbesondere wenn die Größe des Eingabedatensatzes nicht trivial sein kann. Die Dokumentation kann Ihnen helfen, das O(n^3) gut zu schreiben, aber es kann Ihnen nicht (so einfach) helfen, den O(n log n)-Ansatz zu finden.

BЈовић

Does your level of reliance on documentation show inexperience? Sure, to a certain extent.- Nein, tut es nicht.

Benutzer45590

@BЈовић Ich meinte einfach, dass ein Anfänger öfter in die Dokumentation schauen muss als ein Experte.

jamesqf

Und nach mehr Jahren des Schreibens von Software, als ich erwähnen möchte, konsultiere ich IMMER NOCH die Dokumentation. (Tatsächlich habe ich Editor-Makros, die Online-Dokumente für alles öffnen, was Manpages hat.) Zum einen gibt es eine ganze Menge Dinge, die es einfach nicht gab, als ich anfing: CUDA, MPI, OpenMP und wahrscheinlich Sachen, die jemand erst letzten Monat erfunden hat und die ich vielleicht bald brauche. Zum anderen habe ich festgestellt, dass es viel nützlicher ist zu wissen, wo ich finde, was ich brauche, als herumzulaufen und zu glauben, dass ich alles weiß :-)

Benutzer53861

Dan, gut gesagt. Sie würden nicht versuchen, eine Waschmaschine ohne das Handbuch zusammenzubauen. das ist lächerlich.

thomij

Dies ist eine gute Antwort. Ich möchte auch hinzufügen, dass ein professioneller Entwickler ständig die Grenzen seines Wissens und seiner Fähigkeiten erweitert. Wenn Sie nicht häufig nachschlagen müssen, bedeutet dies, dass Sie wahrscheinlich nicht sehr oft außerhalb Ihrer Komfortzone arbeiten.

Barranka

+1! „Ich vertraue einem Arzt, dem es nicht peinlich ist, ein Buch herauszusuchen, um zu überprüfen, ob die Behandlung(en), die er verschreibt, die richtige ist.“ Gleiches gilt für andere Berufstätige

Michael Durrant

35 Jahre Programmieren und ich lese und lerne immer noch jeden Tag. Stack Overflow ist ein wichtiger Teil meiner Arbeit und ich bin sehr stolz darauf, es zu verwenden und dazu beizutragen. gute Programmierer lesen lebenslang. Schlechte Programmierer hören nach ein oder zwei Jahren aus Ego und Arroganz auf.

Nathan Osmann

@Chris genau - so sind wir bei PHP gelandet :D

charmante Kröte

In der Softwareentwicklung (und in so ziemlich allen Berufen!) wird das, was Sie vorher wussten, mit der Zeit veraltet. Selbst wenn Sie sich daran erinnern, wie etwas zu tun ist, lohnt es sich zu prüfen, ob es einen neuen Weg gibt, es besser zu machen.

Martin Bonner unterstützt Monika

@MichaelDurrant: 36 Jahre und mehr, und „ich auch“.

Falko

Ein wichtiger Punkt: Softwareänderungen! - Ich hoffe, die meisten Ihrer sehr erfahrenen Kollegen schreiben Software nicht mehr so, wie sie es vor 10 Jahren gelernt haben. All die Erfahrung der Welt wird Ihnen nicht helfen zu wissen, wie die neue Funktion funktioniert, die letzte Woche veröffentlicht wurde ... Moderne Software zu entwickeln bedeutet, sich ständig mit den aktuellen APIs und Best Practices vertraut zu machen. - Auch mit fotografischem Gedächtnis ;-)

Mathematik

Lässt mich die Verwendung von Dokumentation als Entwickler unprofessionell erscheinen?

Nein, es bedeutet eigentlich das Gegenteil ... da Sie Ihre Senioren nicht stören, indem Sie Fragen stellen, die man leicht im Internet oder in Dokumentationen finden kann.

Die meisten von uns Entwicklern können sich nicht an Tausende von Dokumentationszeilen erinnern... ständig, besonders wenn wir zwischen Technologien wechseln

Ich frage auch nach der Zukunft; zB wenn ich während eines Vorstellungsgesprächs für einen anderen Job Code schreiben muss, denke ich, dass Sie die Dokumentation nicht verwenden sollten.

Die meisten vernünftigen Unternehmen möchten die Logik/Struktur testen, die Sie in einem Codierungstest finden. Nicht so viel über die Syntax.

Mikel

„Nein, es bedeutet eigentlich das Gegenteil … da Sie Ihre Senioren nicht stören, indem Sie Fragen stellen, die man leicht im Internet oder in der Dokumentation finden kann.“ Während Sie auf einfache Fragen natürlich Ihre eigenen Antworten suchen sollten, finde ich den Ton hier falsch: Ihre Kollegen würden wahrscheinlich lieber mit Fragen "gestört" werden, als Sie einen ganzen Tag damit verschwenden zu müssen, herauszufinden, wie Sie weiterkommen mit einer Aufgabe begonnen. Scheuen Sie sich also nicht, nach Hinweisen/Richtungen zu fragen, sondern halten Sie sich an die Dokumentation für Dinge wie „Wie ist die Reihenfolge der Parameter dieser Funktion?“.

Mathematik

@Mikkel Ich glaube, Sie haben den Teil verpasst, in dem es heißt ... "leicht im Internet oder in der Dokumentation zu finden" ...

ARun32

Als professioneller Softwareentwickler ist es viel besser, Dokumentationen zu lesen, Dokumentationen zu finden und zu verstehen, wie man selbst Antworten aus Dokumentationen herausholt, als andere Kollegen einzubinden.

Ocker

@Mathematik Ich denke, der Punkt, an den Mikkel tatsächlich denkt, ist, dass Sie anfangen, die Lösung im Internet zu finden, weil Sie denken , dass dies einfach ist. Dann stellt sich heraus, dass dies nicht der Fall ist, und Sie haben den ganzen Tag danach gesucht, weil Sie vergessen haben, dass Sie es können frag einfach jemand anderen.

jpmc26

@Mikkel Wenn Sie feststellen, dass Sie nicht in der Lage sind, Fahrt aufzunehmen, ja, aber das Internet nach offensichtlichen Lösungen zu durchsuchen, ist ein ausgezeichneter (und oft der beste) erste Schritt. Oft hilft Ihnen diese Art der ersten Recherche , Ihre Fragen an andere besser zu formulieren , wenn Sie an eine Wand stoßen, was es für sie einfacher macht, Ihnen zu helfen.

joojaa

@Mikkel Bis zu einem gewissen Grad. Die Fähigkeit, die Sie als Entwickler aufbauen müssen, ist jedoch ein gewisses Maß an Autonomie. Daher sollte der Ansatz sein, selbst herauszufinden, dann zu fragen. Wenn Sie zu leichtfertig fragen, dann arbeiten Sie nicht gegen die Fähigkeit zur Problemlösung. Aber wie viel ist zu viel Zeit... Also auf jeden Fall fragen, aber nicht alles fragen.

JeopardyTempest

Da ich selbst nicht wirklich in der Softwarebranche bin, höre ich regelmäßig von Projektmanagern/leitenden Programmierern, dass sie feststellen, dass sie nicht viel erledigen können, weil neuere Programmierer ständig grundlegende Fragen stellen. Es ist immer eine Herausforderung, das Gleichgewicht zu halten, aber daran zu arbeiten, dass einfache Antworten nicht übersehen werden, und die eigene Merkfähigkeit zu verbessern, ist sicherlich entscheidend, sowohl dafür, wie viel kurzfristig erreicht wird, als auch dafür, den Programmierer langfristig zu einer gefragteren Ressource zu machen .

Seth R

Jemand hat mir mal so etwas gesagt wie: „Ein Chirurg kann nicht jedes Mal seine Bücher lesen, wenn er einen Patienten operieren muss.“

Wer auch immer Ihnen das gesagt hat, weiß nicht, wie eine Operation funktioniert. Wenn es sich nicht um ein sehr häufiges Verfahren handelt, das der Chirurg hundertmal geübt hat, verbringen die Guten viel Zeit damit, vor jedem Patienten, den sie sehen, zu studieren. Sie verbringen auch viele Jahre an der medizinischen Fakultät und studieren ein Fach, das sich seit mehreren tausend Jahren nicht wesentlich verändert hat.

Sie befinden sich in Ihrem ersten Jahr in einer Branche, in der jede Woche neue Vorgehensweisen erfunden werden. Sie sind unerfahren, daher ist mit häufigem Nachschlagen zu rechnen. Solange Sie die Grundlagen haben, um zu wissen, ob die Lösungen, die Sie finden, Ihr Problem tatsächlich lösen, und dass Sie aus der Erfahrung lernen, ist daran nichts auszusetzen. Ich bin seit 15 Jahren Softwareentwickler und muss immer noch fast täglich nachschlagen. Ein Profi nutzt alle Ressourcen, die ihm zur Verfügung stehen, um die Arbeit zu erledigen.

Gerrit

ein Thema, das sich seit mehreren tausend Jahren kaum verändert hat … Was? Die Medizin hat sich nicht geändert?

Seth R

Ich bezog mich eher auf den menschlichen Körper selbst. Aber Sie haben Recht, die Medizin hat sich ziemlich verändert (wenn auch noch nicht so schnell wie die IT).

mtraceur

Auch ich konzentrierte mich auf diese Chirurgen-Analogie, von der dem OP gesagt wurde, dass sie grob aus dem Kontakt geraten sei: Obwohl ich sicher bin, dass sich viele Chirurgen zu wenig auf Operationen vorbereiten, weil die Menschen im Allgemeinen mangelhaft sind, würde ich sagen, dass dies definitiv der Fall ist Einer der wichtigsten Faktoren, die die besten Chirurgen ausmachen, ist, dass sie das relevante Material vor jedem Eingriff routinemäßig überprüfen und sich alle Mühe geben, ihr Wissen regelmäßig aufzufrischen/aktualisieren.

Aron

Die Chirurgen-Analogie gilt meiner Meinung nach nur bei "Entwicklung in der Produktion". Die Analogie ist, dass Ihr Patient stirbt, wenn Sie zu lange brauchen oder die Lösung nicht rechtzeitig implementieren. Sogar Chirurgen perfektionieren ihre Kunst an Leichen, bevor sie „in einer Produktionsumgebung operieren“.

Kiefer

Professionalität und Wissen sind zwei völlig verschiedene Dinge.

Das Nachschlagen von Dingen aus Drittquellen bedeutet, dass es Ihnen an Wissen mangelt, nicht an Professionalität. Mangelndes Wissen ist ein Thema für sich, aber insgesamt gibt es niemanden, der alles weiß.

Wenn Sie Ihren Mangel an Wissen kennen und damit umgehen, indem Sie bei Drittanbietern nachschlagen, haben Sie eine professionelle Strategie, um Ihr spezifisches Problem des Mangels an Wissen zu lösen.

Dinge nicht nachzuschlagen, ohne diese Dinge zu wissen, ist unprofessionell, aber das ist nicht Ihr Fall.

Weiterführende Literatur zu einem Effekt, der Ihrer „Dokumentationsstrategie“ entgegensteht: Der Dunning-Kruger-Effekt

Ocker

Ich glaube, dass viele Leute, mich eingeschlossen, ihr Wissen über den Dunning-Krüger-Effekt überschätzen

Daerdemandt

Lässt mich die Verwendung von Dokumentation als Entwickler unprofessionell erscheinen?

Nein. Das Erinnern an kleinste willkürliche Details ist eine Verschwendung Ihrer Ressourcen. Sie müssten sich viele davon merken, sowohl in PHP (dem es ein wenig an Konsistenz mangelt) als auch in der Webentwicklung im Allgemeinen, wenn Sie sich mit mehreren Sprachen und einem Dutzend Frameworks vertraut machen.

Ich werde verspottet, weil ich SO/Documentation so häufig benutze, was dazu führt, dass ich an meinen Fähigkeiten zweifele

Dies ist möglicherweise nicht der effizienteste Weg, um Ihre Aufgaben zu lösen.

Benutzt du irgendeine IDE? Verwenden Ihre Kollegen welche? Weil das Nachschlagen dieser winzigen Details an die Autovervollständigungsfunktion von IDE delegiert werden kann. Die Verwendung der automatischen Vervollständigung ist effizienter, als Ihre Aufmerksamkeit auf den Browser zu lenken und dort nach einer Antwort zu suchen.

Wenn Ihre Kollegen die automatische Vervollständigung ihrer IDE verwenden und Sie stattdessen Google verwenden, könnte das unprofessionell aussehen - nicht, weil Sie Dokumente konsultieren, sondern weil Sie es ineffizient tun.

Wenn sich Ihre Kollegen auf ihr Gedächtnis verlassen und Sie sich auf die automatische Vervollständigung verlassen, können Sie sie bei Aufgaben übertreffen, die ein Framework verwenden, mit dem keiner von Ihnen vertraut ist, was im Web nicht so selten ist.

Beherrschen Sie Ihre Werkzeuge und zeigen Sie Leistung, das ist professionell.

jamesqf

Wie würde die automatische Vervollständigung (eine Funktion, die ich persönlich verabscheue) Ihnen helfen, herauszufinden, was eine bestimmte Funktion tut oder was ihre Argumente sind?

sch1

@jamesqf, wenn sich die Vervollständigung auf Variablen mit kompatiblen Typen für das Argument am Cursor beschränkt, können Sie so ziemlich einfach die Tastatur zerdrücken und in kürzester Zeit brauchbaren Code erhalten. Sie können auch über Funktionsnamen spekulieren und sehen, ob die Vervollständigung eine nicht leere Kandidatenliste ergibt. Wieder; mash, mash, bauen und versenden. Codieren ist so einfach!

Steve

@jamesqf Mit einer inkonsistenten Sprache wie PHP ist es schon eine große Prahlerei, nur Namensvorschläge und Parameteraufträge zu erhalten: imgur.com/a/lVFmA

Daerdemandt

@jamesqf > Wie würde die automatische Vervollständigung Ihnen helfen, herauszufinden, was eine bestimmte Funktion tut ? Das ist nicht die Frage von OP. OP muss sich mit Dingen wie diesem und diesem befassen und googelt regelmäßig "PHP-Funktion, die XYZ ausführt". Nun, beginnen Sie einfach damit, das einzugeben, woran Sie sich über den Namen der Funktion erinnern, und die automatische Vervollständigung bietet Optionen an. Was die erwarteten Argumente betrifft, werden sie normalerweise auch aufgelistet.

Brandin

@Steve Dies würde nur helfen, wenn Sie sich bereits vage an den Namen einer Funktion erinnern und insbesondere daran, womit der Name beginnt (wie in Ihrem Beispiel). Nehmen wir zum Vergleich an, Sie programmieren in C++ und haben den Namen der Funktion vergessen, die ein Zeichen von Kleinbuchstaben in Großbuchstaben umwandelt. Die Antwort ist 'toupper', aber wenn Sie diese Tatsache vergessen haben, wird Ihnen die Autovervollständigung überhaupt nicht helfen.

Daerdemandt

@Brandin Ich gebe upper(in PHP-Datei) ein und IDEA bietet 3 Optionen: ctype_upper, mb_strtoupperund strtoupper. Beide beginnen nicht mit „upper“, aber sie sind alle relevant. Sind Sie sicher, dass Autocomplete für C++ so viel schlimmer ist?

Brandin

@Daerdemandt Ich meine nur, es hängt vom Funktionsnamen ab. Der Punkt ist, dass es möglicherweise keinen Grund gibt, dass Sie sich an einen Teil des Namens erinnern würden. Vielleicht ist strpbrk ein besseres Beispiel. Wenn Sie den Namen noch nicht kennen, gibt es wahrscheinlich keine irdische Möglichkeit, an diesen Namen zu denken. Die Tatsache, dass es "str" ​​enthält, ist auch nicht hilfreich, weil Dutzende von Funktionen das auch haben.

Daerdemandt

@Brandin wow, das ist jetzt ein verwirrender Name, der Kompromisse widerspiegelt, die heutzutage irrelevant sind. Gibt es nicht ein weithin akzeptiertes Pseudonym für diese kryptischen Namen? Jemand sollte etwas dagegen tun, anstatt es täglich zu ertragen. Wie auch immer, obwohl es keine Wunderwaffe gibt und manchmal eine Überprüfung der Dokumentation erforderlich ist, hilft die richtig konfigurierte IDE OP dabei, zu wissen, dass er htmlentitiescodieren und html_entity_decodedecodieren sollte.

Giacomo1968

Andere haben solide Antworten gegeben, aber niemand spricht dies wirklich frontal an; fette Hervorhebung von mir:

Der Grund für diese Frage ist, dass ich verspottet werde, weil ich Stack Overflow/Dokumentation häufig verwende , was andere an meinen Fähigkeiten zweifeln lässt.

Wer sind diese Leute, die Sie „verspotten“ und woher wissen Sie, dass „… andere an [Ihren] Fähigkeiten zweifeln“?

Das alles klingt für mich nach Gartenvielfalt (auch bekannt als: gewöhnlich). Wenn Sie ein Junior-Entwickler sind, befinden Sie sich natürlich in einer Hierarchie, in der andere Sie testen und Knöpfe drücken, als Teil ihres eigenen Hazing-Verhaltens. Dies geschieht, ob sie sich dessen bewusst sind oder nicht; es ist einfach selbstverständlich.

Letztendlich verwendet jeder einzelne Mensch auf der Welt Referenztools, um seine Arbeit zu erledigen. Verdammt, haben Anwälte und Ärzte nicht Unmengen von Referenzen und Büchern, auf die sie sich ständig beziehen? Programmieren ist nicht anders.

Ihre Aufgabe als Programmierer besteht darin, die Wünsche eines Projekts mit der Realität des Codes selbst zu verbinden. Ihre Aufgabe ist es nicht, arkanen Unsinn auswendig zu lernen. und wenn Sie an den Punkt kommen, an den Sie sich an arkanen Unsinn erinnern – und sogar visualisieren – können, dann herzlichen Glückwunsch! Aber das geht nicht von heute auf morgen und bei manchen auch gar nicht.

FWIW Ich arbeite seit über 20 Jahren am Computer und erst in den letzten Jahren kann ich Lösungen buchstäblich in meinem Kopf visualisieren, ohne eine Zeile Code zu schreiben. Es ist eine Fähigkeit, in die man hineinwächst und die nicht verlangt werden kann, die jemand auf Anfrage hat.

Psr

Obwohl Sie dadurch für einen Fachmann nicht unprofessionell aussehen (in den allermeisten Fällen), sollten Sie vor einem naiven Kunden oder Manager Vorsicht walten lassen. So wie Sie sich mit fast einem Jahr Programmiererfahrung nicht sicher sind, ob Profis nachschlagen müssen, können auch Menschen mit noch weniger relevanter Erfahrung unsicher sein.

Tatsächlich habe ich einige Male andere Entwickler verteidigt, als ein Kunde eines Beratungsauftrags etwas in der Art sagte: "Warum bezahle ich gutes Geld für jemanden, der nicht einmal Code schreiben kann, ohne im Internet nachzuschlagen?"

Das war selten, aber ich weiß natürlich nicht, wie viele Leute einen schlechten Eindruck bekommen haben, aber geschwiegen haben.

Platzhalter

Es hängt stark davon ab, wie schwierig der Code ist. Konsultieren Sie die Standardbibliotheksdokumentation? (Großartig!) Beispiele für eine Variablenzuweisung nach Jahren der Verwendung der Sprache konsultieren? (Hmmm ....) Ein Datenbankentwickler, der SQL aus einer One-Vote-Antwort kopiert und einfügt, die nach minutenlangem Suchen auf Stack Overflow gefunden wurde, nur um ein "Select Distinct" für einige Spalten durchzuführen? (Was zum Teufel ist los?) (Hinweis: Dies sind alles echte Beispiele. Und ja, ich meine einen Datenbankentwickler . )

TessellationHeckler

" "Warum bezahle ich gutes Geld für jemanden, der nicht einmal Code schreiben kann, ohne ihn im Internet nachzuschlagen?" " - " Ein Narr und sein Geld sind bald par... "

joojaa

Weil Sie nicht genug Grundlagen haben, um zu verstehen, was im Internet gesagt wird, oder keine Zeit dafür haben.

Wayne Werner

Ich persönlich neige dazu, alles, was ich verwende, von SO einzugeben. Meistens, damit ich es mindestens einmal geschrieben habe, was hilft, mich daran zu erinnern, wenn ich es das zweite Mal nachschlagen muss.

HLGEM

Es ist sicherlich nicht unprofessionell, Dinge nachzuschlagen, wenn man sich nicht auskennt.

Wenn Sie dieses Wissen jedoch nicht behalten und ständig dieselben Dinge nachschlagen , dann könnte es ein Problem geben. Das ist ineffizient. Es macht dich langsamer und das könnte der Grund für das Spotten sein. Sie müssen die Grundlagen Ihres Berufes so weit lernen, dass Sie sie nicht jedes Mal nachschlagen müssen.

scharfer Zahn

Ich würde sagen, dass die Verfügbarkeit von Dokumentation dazu führt, dass sich die Leute weniger von dem merken, was in der Dokumentation verfügbar ist. Es ist wie "Nun, diese Funktion hieß so etwas wie .... ja, hier ist ihre Beschreibung mit allen Details, die ich jemals brauchen würde".

Daniel

Stimmt, aber bei der schieren Anzahl an verfügbaren Frameworks, Sprachen, Paketen, Modulen usw. ist es wirklich unmöglich, sich an alles zu erinnern. Auch wenn ich k-Means-Clustering-Pipelines ein Dutzend Mal in MATLAB für verschiedene Datenquellen erstellt habe, heißt das nicht, dass ich sie sofort für einen Client in Python implementieren kann, ohne die Dokumentation zu durchsuchen.

HLGEM

Sagte ich alles wissen? Ich sagte, kennen Sie die Grundlagen (Dinge, die Sie häufig verwenden).

200_Erfolg

Es ist viel professioneller, die Dokumentation zu lesen und Ihren Code richtig zu machen, als zu raten und es falsch zu machen. Dies gilt insbesondere für eine Sprache wie PHP, bei der die Standardbibliothek willkürlich gestaltet, schwer zu merken und voller Fallstricke ist.

Nehmen Sie zum Beispiel die mail()Funktion. Hast Du gewusst…

  • additional_headershat keinen Mail-Header-Injection-Schutz. Daher müssen Benutzer sicherstellen, dass die angegebenen Header sicher sind und nur Header enthalten. dh beginnen Sie den Mail-Body niemals mit mehreren Zeilenumbrüchen.

    Wenn Sie sich dieser Einschränkung nicht bewusst sind, führen Sie am Ende eine Sicherheitslücke ein .

  • Beim Senden von E-Mails muss die E-Mail einen From-Header enthalten. Dies kann mit dem additional_headersParameter eingestellt werden, oder es kann eine Voreinstellung in eingestellt werden php.ini.

    Das bedeutet, dass das Verhalten Ihrer Anwendung von einer globalen Konfigurationseinstellung abhängen könnte. Das ist nützlich zu wissen, damit Sie vermeiden können, Code zu schreiben, der auf einem Computer korrekt zu funktionieren scheint, aber nicht auf einen anderen portierbar ist.

  • Der $toParameter muss RFC 2822 entsprechen .

    Sie haben Tausende von E-Mails gesehen, also glauben Sie zu wissen, wie eine akzeptable E-Mail-Adresse aussieht, richtig? Lesen Sie die Spezifikation – Sie wären wahrscheinlich überrascht.

Sicher, Sie könnten möglicherweise mehr Code herauskitzeln, indem Sie die Dokumentation nicht sorgfältig lesen, aber es wäre wahrscheinlich kein Code in professioneller Qualität. Es ist keine Schande, die Dokumentation regelmäßig zu überprüfen, um sicherzustellen, dass Sie die Sprache und die Bibliotheken korrekt verwenden.

Platzhalter

Es ist keine Schande, Dokumentation zu Rate zu ziehen – das stimmt. Es ist einfach eine Schande, PHP zu verwenden. :D

Schneelockk

Das Nachschlagen von Dingen, bei denen Sie sich nicht sicher sind, spart Zeit und ermöglicht es Ihnen auch, nach besseren Möglichkeiten zu suchen, etwas zu tun. Es ist nicht gut, immer wieder ineffizient das Gleiche zu tun, wenn es einen besseren Weg gibt, indem man einfach das Netz überprüft.

Arthur Hv

Wie andere antworten, ist es nicht unprofessionell, die Dokumentation zu überprüfen, insbesondere wenn man bedenkt, dass man ein Junior ist, insbesondere wenn man bedenkt, dass die Programmierung umfangreich ist und es immer ein Detail gibt, das man vergessen kann, und man eine Mission hat, dass der Code korrekt ist.

Es gibt jedoch Fälle, die ich als Dokumentationsmissbrauch betrachten würde.

Ich habe einen Kollegen, der manchmal keine eigene Lösung für ein bestimmtes Problem finden kann. Daher fährt er manchmal damit fort, das Internet zu durchsuchen, um zu erfahren, wie er sein Problem lösen kann. Letztes Mal hat er zum Beispiel überprüft, wie ein Web-Framework Validatoren und Fehlerzähler aufbaut, weil er ein scheinbar ähnliches Feature zum Design hatte.

Dies ist ein Fall, in dem das, wonach Sie suchen, viel zu abstrakt ist, als dass das Internet Ihnen helfen könnte. Schlimmer noch, Sie könnten Lösungen finden, die scheinbar passen, aber tatsächlich nicht passen, weil sie auf einen anderen Anwendungsfall angewendet werden. Durch den Versuch, vorgefertigten Code/Architektur/Muster zu greifen, hätte er mehr oder weniger Code in unsere Basis eingefügt, der vielleicht funktioniert hat, aber schwer zu warten wäre, weil er von jemand anderem für einen anderen Zweck geschrieben wurde.

Ich schaue nicht oft in die Dokumentation, weil ich Code schreibe, der hauptsächlich zentrale Sprachfunktionen verwendet (kein Framework), und ich bin mit einem zuverlässigen Gedächtnis ausgestattet, wenn es um Code geht, aber ich verwende die Dokumentation jedes Mal, wenn ich bei etwas Trivialem feststecke . Wenn ich jedoch auf einer höheren Ebene feststecke, ist es gut, einen erfahreneren Kollegen um Hilfe zu bitten. Sie erhalten eine viel bessere Antwort.

gnasher729

Es gibt einen Unterschied zwischen „professionell“ und „sachkundig“. Wenn es eine Information gibt, die ich wissen muss, und ich die Wahl habe, dumm auf meinem Stuhl zu sitzen und festzusitzen, oder die Dokumentation zu überprüfen, dann prüfe ich die Dokumentation. Das ist absolut professionell.

Wenn diese Informationen etwas sind, das eine sachkundige Person in meiner Position wissen sollte, dann kann das Nachschlagen zeigen, dass ich nicht so sachkundig bin, wie ich sein sollte, aber es ist immer noch absolut professionell – da die Alternative ist, es nicht zu wissen, und nicht es lernen. Was (der nicht lernende Teil) völlig unprofessionell ist.

Es wäre dumm anzunehmen, dass Sie alles wissen, was Sie wissen sollten, denn jeden Tag wird es etwas Neues geben, das Sie wissen sollten, das gestern noch nicht da war. Selbst wenn Sie etwas wissen , woher wissen Sie, dass Ihr Wissen das bestmögliche ist? Sie konsultieren die Dokumentation, um herauszufinden, ob es da draußen besseres Wissen über dasselbe Thema gibt.

Es kommt selten vor, dass es ein Problem gibt, das ich nicht selbst lösen kann. Aber es braucht Zeit. Angesichts der Wahl zwischen einer Stunde, um es selbst herauszufinden, und fünf Minuten mit Google, ist es unprofessionell, die Stunde zu verbringen.

AnoE

Sie haben bereits ein paar gute Antworten, aber lassen Sie mich eine kleine Wendung hinzufügen ...

Ich mag Menschen, die Dokumentation verwenden, und das ist ein großartiges Zeichen für Ihre Professionalität.

Dokumentation nicht verwenden

Ich kenne genug Programmierer, die lange Zeit ohne wirklichen Plan herumstolpern, zufällig dies und das ausprobieren, alten Quellcode durchsuchen, wo das, was sie erreichen wollen, bereits getan zu sein scheint (aber noch nicht ganz ist) und so an. Ehrlich gesagt verabscheue ich diese Art von Herangehensweise. Sie kommen nie sehr weit, müssen oft Leute fragen, nehmen selten Ratschläge an und ziehen es vor, scheinbar ewig so weiterzumachen.

Nur Tutorien?

Leute, die häufig nach Tutorials oder Codeschnipseln einschließlich SO googeln, ohne sich jemals auf die Dokumentation zu beziehen, ärgern mich ohne Ende. Dieses Verhalten ist meiner Meinung nach eine riesige Falle. Es führt zu einer Art Programmierung, die von halbgarem, willkürlichem, unsystematischem "Wissen" angetrieben wird. Diese Programmierer neigen dazu, viele Vorurteile zu haben. Hier kommen Nuggets wie „nie verwenden git rebase“, „nie not inin SQL verwenden“, „immer XXX“, „nie YYY“ her. Sie werden es sehr schwer finden, über den Tellerrand zu schauen, neue Ideen zu entwickeln, eine Intuition zu entwickeln, wie sie ihre Anwendungen strukturieren und all das Zeug, das großartige Entwickler ausmacht.

Ich würde Sie dringend bitten, jedes Problem zuerst zu lösen, indem Sie sich die Dokumentation/Referenz ansehen und dann nach SO oder anderen Schnipseln suchen.

Natürlich gibt es Ausnahmen. Wenn Ihr Problem ganz offensichtlich so etwas wie ein Fehler ist oder etwas sehr, sehr, sehr spezielles, das wahrscheinlich nicht in irgendeiner Art von Dokumentation behandelt wird (zB eine spezielle Kombination von Bibliotheken/Modulen usw.), dann gehen Sie auf jeden Fall geradeaus zu SO.

Wenn es etwas ist, das leicht durch Dokumentation/API herausgefunden werden könnte, würde ich vorschlagen, sich hinzusetzen und an diesem bestimmten Teil Ihrer Programmiersprache/Bibliotheken usw. zu arbeiten, damit Ihr Wissen enger wird.

Dokumentation

Die beste Sorte ist für mich ein Programmierer, der sich bei einem neuen Thema die Zeit nimmt, sich richtig hinzusetzen, zu vertiefen, sich einen guten Überblick und ein gutes technisches Verständnis zu verschaffen. Dies wird meistens erreicht (meiner Erfahrung nach mit den vielen Programmiersprachen, mit denen ich Kontakt hatte), indem man die gute alte Dokumentation einschließlich API-Referenzen und so weiter liest. Das ist meiner Meinung nach nie durch etwas anderes zu ersetzen.

Ich finde es nicht abwegig, zum Beispiel die alten C++-Klassiker (gutes altes Papier), die Gang of Four Design Patterns, die (Online-Version des) "Programming Ruby"-Handbuchs, die äußerst gut gemachten Perl-Manpages, die Git-Buch, bestimmte RFCs, das HTML/XML/etc. Spezifikationen und so weiter von vorne nach hinten. Ich würde und habe das sogar in meiner Freizeit getan und würde es ehrlich gesagt von jedem Programmierer erwarten, der sein Geld wert ist (natürlich abhängig davon, womit er arbeitet). Mir ist auch durchaus bewusst, dass ich (zumindest in den Unternehmen, in denen ich in den vergangenen Jahrzehnten gearbeitet habe) mit dieser Meinung ziemlich allein stehe.

(NB: Natürlich müssen Sie sich keine riesigen Listen von API-Referenzen merken, aber sie zumindest beschönigen, um zu sehen, was verfügbar ist und was der "Geist" der API zu sein scheint.)

Nachdem Sie sich mit dem Thema gründlich vertraut gemacht haben, ist es an der Zeit, sich den Code von Drittanbietern zur Inspiration anzusehen oder sich ältere SO-Fragen anzusehen (oder selbst neue Fragen zu stellen).

Sie werden vielleicht auch feststellen, dass es sehr einfach wird, Antworten zu finden, wenn Sie sich mit einem Feld wie diesem befasst haben, indem Sie direkt in das Fleisch hineinzoomen, woher Sie Ihre Dokumentation beziehen (Manpages usw.). An dieser Stelle reicht vielleicht auch schon die Autovervollständigung deines Editors. Und Sie können ziemlich schnell wissen, wenn etwas mit dem Tool, mit dem Sie arbeiten, einfach nicht möglich ist, und sich viel vergebliches Suchen ersparen.

Walfrat

er ? Only tutorials?Ich gehöre zu diesem und ich bin in keinem Teil der Bande This is where nuggets like "never use git rebase", "never use not in in SQL", "always do XXX", "never do YYY" come from. Aber ich stimme zu, dass es ziemlich viele Entwickler gibt, die einfach nach "How to do X" suchen und den Code erhalten, ohne zu verstehen, was sie tun. Das sind nicht extra ein "Nur Tutorial" sondern eher einIt works on my computer and I don't give a shit about the rest

AnoE

Genau, @Walfrat. Ich habe versucht, diesen Teil meiner Antwort ziemlich stark zu formulieren, aber nicht in absoluten Zahlen, ich hoffe, Sie können damit leben. ;)

Anton X

Ihre Fähigkeit als Programmierer besteht darin, wie Sie das Gesamtbild erfassen und effektive Lösungen entwerfen können, nicht wie viele APIs Sie sich merken können. Ziel ist es, die Arbeit richtig und effizient zu erledigen. Wenn Sie jede API und jedes Detail nachschlagen müssten, dann würde ich sagen, dass Sie einige Probleme haben. Ich würde erwarten, dass ein guter Entwickler mit allem, was häufig, in letzter Zeit und routinemäßig verwendet wird, gründlich vertraut ist, aber keine Gehirnleistung für Dinge verschwendet, die selten verwendet werden, wenn sie leicht nachgeschlagen werden können. Wenn Sie Stackoverflow mehr oder weniger einmal am Tag besucht haben, kein Problem; Wenn Sie den größten Teil Ihres typischen Arbeitstages damit verbringen, wäre dies ein Problem.

Bradley Thomas

Ich werde irgendwie verspottet, weil ich Stack Overflow/Dokumentation so häufig verwende

Die Meinung anderer Leute über dich definiert dich nicht , sie definiert nur sie

Lässt mich die Verwendung von Dokumentation als Entwickler unprofessionell erscheinen?

Nein ... Teil der Professionalität ist die Kompetenz, die Arbeit zu erledigen. Sie werden verspottet, weil Ihre Kollegen gemobbt werden, nicht wegen irgendetwas, das Sie falsch machen.

„Ein Chirurg kann nicht jedes Mal seine Bücher lesen, wenn er einen Patienten operieren muss.“

Warum nicht? Ich bin skeptisch gegenüber dieser Behauptung, es sei denn, es gibt einen ungewöhnlichen Zeitdruck. Die Verwendung von Referenzmaterial dauert nur Sekunden.

Wenn ich während eines Vorstellungsgesprächs für einen anderen Job Code schreiben muss, sollten Sie die Dokumentation nicht verwenden

Hängt von den Regeln des Interviews ab, einige erlauben es, andere nicht. Insbesondere wenn es sich um einen Test handelt, kann dieser zugelassen werden. Es ist eine gute Idee, zuerst zu überprüfen!

David K

Diese Antwort fügt den bereits vorhandenen Antworten nichts Neues hinzu. Bitte denken Sie daran, andere nicht zu wiederholen .

Bradley Thomas

@ DavidK Stimme nicht zu. Wo sagt jemand anderes: „Die Meinung anderer Leute über dich definiert dich nicht, sie definieren nur sie selbst“

NZKschatrija

@BradThomas Nehmen Sie es von jemandem, der auch wegen sich wiederholender Antworten niedergeschlagen wurde ... anekdotische Weisheit wird nicht als zusätzliche Information angesehen. Wenn etwas besser als Kommentar hinterlassen wird, hinterlassen Sie es als Kommentar.