Wie lernt man das Standard-Framework / API / die Funktionalität einer Sprache? [geschlossen]

14

Ich verstehe, wie man programmiert. Ich kann die Grundlagen der Sprachen umgehen, die ich regelmäßig verwende. Ich weiß, wie man reguläre Ausdrücke schreibt, die etwas über dem Standard liegen, ich kann mit Datenbanken sprechen, ich kann Eingaben akzeptieren, Ausgaben drucken, mit Dateien umgehen usw. Ich bin mehr oder weniger sicher, dass ich den Quellcode grundsätzlich ausspucken kann mäßig komplexes Programm.

Mein Problem ist, dass ich nie das Gefühl habe, dass es genug ist. Ich habe das Gefühl, dass ich nur einen kleinen Teil der Standardbibliothek meiner Sprache kenne und dass ich, bis ich alles verstehe, zumindest im Vorbeigehen kein Recht habe, überhaupt zu versuchen, einen Job damit zu bekommen. Ich habe gerade das College (Community / Junior / Whathaveyou) verlassen und meine Freunde bekommen Jobs in der Branche, aber ich fühle mich immer noch wie eine Fälschung oder ein Poser und bin einfach nicht gut genug.

Gibt es einen anständigen Marker für "Ich weiß genug", mit dem ich mir versichern kann, dass ich codieren kann? Sollte ich die Tatsache, dass ich zumindest in der Lage bin, einen FizzBuzz zu codieren, als Indikator dafür nehmen, dass es in Ordnung ist, einen Antrag zu stellen? Wie kann ich relativ einfach mehr von diesen Standardbibliotheken, Frameworks und / oder APIs lernen? Ich programmiere regelmäßig, lese Bücher, aber mein Wissen fühlt sich immer noch so flach an.

HILFE!

Wegschmeißen
quelle
3
je mehr du lernst, desto mehr merkst du, wie wenig du weißt. +1 für eine sehr gute Frage.
Devnull
Ich bin mir nicht sicher, ob es sich lohnt, sich dieses Zeug zu merken. Schließlich haben Sie eine durchsuchbare Dokumentation, intelligente IDEs und so weiter. Es ist viel besser, Ihr Gehirn für wichtige Dinge zu nutzen, für grundlegendes Wissen, und all diese flüchtigen APIs draußen zu lassen.
SK-logic
I feel like I only know a small portion of the standard library of my languageDieser Satz sollte das offizielle C ++ - Motto sein .
ZJR

Antworten:

8

Meine Empfehlung Kumpel:

Hören Sie auf, binär zu denken (0/1, nicht zu wissen / wissen, Analphabetismus / Alphabetisierung), und denken Sie unscharf (ich weiß es bis zu einem gewissen Grad). Wir alle wissen etwas und bis zu einem gewissen Grad. Wissen ist ein Kontinuum und jeder ist irgendwo zwischen dem Analphabeten und dem kenntnisreichsten, raffiniertesten Mann angesiedelt. Sie können den Job machen, aber auf Ihrem Niveau und darunter . Das ist die Regel. Hab keine Angst. Warten Sie nicht auf einen Tag, an dem Sie alles über Ihr Framework gelernt haben, und IMHO wird dieser Tag niemals kommen. Sogar Entwickler mit 20 Jahren Erfahrung lesen immer noch, um neue Dinge zu lernen. Die Programmierung ist so umfangreich, dass Sie nicht alles erfassen sollten (oder können).

Tauchen Sie ein in die Arbeitsumgebung und haben Sie keine Angst. Wir hatten alle die Tage, an denen wir nichts tun konnten. Das ist kein Verbrechen. Das gehört zu unserem Job. Sie wissen nicht, Sie lernen, Sie versuchen, die Arbeit zu erledigen, und Sie erledigen sie.

Ich denke, was du jetzt haben musst, ist nicht mehr Wissen. Es ist vielmehr einfach Selbstvertrauen.

Viel Glück

Saeed Neamati
quelle
Ich verstehe, dass es alles Fuzzy-Wissen und ein bisschen JIT-Lernen der Details ist. Ich weiß nur nicht, wie ich mir sicher sein kann, dass ich überhaupt ein unscharfes Verständnis für die Grundlagen habe. Ich mache mir Sorgen, dass mir einige wirklich wichtige Dinge komplett fehlen.
Throwaway
2

Ich glaube, Sie stellen hier die falsche Frage, und wenn Sie mir ein bisschen ungerechtfertigte Psychologie gestatten, dann liegt das wohl daran, dass Sie ein bisschen von Selbstzweifeln und geringem Selbstvertrauen geplagt sind.

Hören Sie auf, sich allgemein mit anderen zu vergleichen

Erstens können Sie sich nicht mit anderen Programmierern vergleichen. Sogar die Rockstars, zu denen Sie vielleicht gerade aufschauen, haben wahrscheinlich Probleme (Schlamperei, noch eine andere Art, Dinge zu tun, und Einstellungsprobleme). Stattdessen sollte Ihr Ansatz darin bestehen, so viele Mentoren wie möglich zu gewinnen, möglichst viel Wissen zu sammeln und durch Beobachten und Nachahmen von Experten besser zu werden.

Lernen lernen

Der beste Ansatz, um ein besserer Programmierer und Lernender im Allgemeinen zu werden, besteht nicht darin, bestimmte Dinge zu lernen oder durch das Gedächtnis zu verstehen. IMO, Auswendiglernen ist die niedrigste Form des Lernens. Es ist wie bei einem Programm, dem der entscheidende Verarbeitungsschritt von Eingabe-> Verarbeitung-> Ausgabe fehlt. Bringen Sie sich Konzepte bei, wie Sie sie in Ihrer Frage erwähnt haben. In einem umfassenden Programmierverständnis liegt der größte Nutzen für Sie. Das Erlernen einer neuen Sprache in Paradigmen, mit denen Sie vertraut sind, ist ein Kinderspiel im Vergleich zum Erlernen der Problemlösung.

Und jetzt für einige schlechte Ratschläge von jemandem, der nur wenig älter ist als Sie

Einer der größten Fehler, den ich als junger Mann gemacht habe, war, dass ich die Entscheidungen aller anderen für sie traf, indem ich davon ausging, dass ich nicht gut genug war und dass meine Zeit und mein Talent ihre Zeit und ihr Geld nicht wert waren. Ich habe meine Fähigkeiten und mein Talent immer wieder unterboten, obwohl es zu dieser Zeit vielleicht nur spärlich war. Das war ein großer Fehler.

Was Sie verstehen müssen, ist, dass selbst ein mäßig anständiger Programmierer wie ein Zauberer für den Durchschnittsalltag von Joe wirkt. Sie mögen dich hassen, sie mögen es satt haben, immer einen lokalen Nerd fragen zu müssen, wie sie ihren Computer einschalten sollen, aber weil ihnen Einsicht und Verständnis dafür fehlen, was du tust, egal wie banal und einfach es dir erscheint, ist es unmöglich zu ihnen.

Die Leute werden dich für deine Zeit, dein Talent und deine Energie bezahlen. Es gibt genug absolut schreckliche Programmierer in unserer Branche, die einfach deshalb töten, weil sie auf einem Platz sitzen und (wohl) Grundprogramme schreiben können. Spielen Sie Ihre Karten richtig aus, indem Sie ein gewisses Maß an Selbstvertrauen durch Leistung entwickeln, Ihr Sprechen und Ihre Körpersprache üben, Ihr Handwerk weiterhin beherrschen, indem Sie immer nach Dingen suchen, die Sie nicht kennen, und auf diese Dinge zulaufen, um mehr Verständnis zu erlangen, und schließlich: aufhören, herunterzuspielen die Fähigkeiten, die Sie entwickelt haben.

Jordan
quelle
2

"Ich weiß genug" und "Ich bin gut für diesen Job" sind völlig anders.

IMO "Ich bin gut für diesen Job" ist näher dran an "Ich kenne die Grundlagen und weiß, was ich lernen muss / wo ich suchen muss / wen ich fragen muss / was ich lesen muss - um meine Aufgaben zu erledigen".

(Dies bedeutet nicht, dass sie Sie einstellen, wenn Sie 1-2 Monate brauchen, um beispielsweise Folgendes zu lernen: Schreiben / Lesen in XML-Dateien. Ich hoffe, Sie verstehen, was ich meine.)

Ich glaube auch nicht, dass ein Programmierer jemals "Ich weiß genug" sagen würde. (Vielleicht "genug, um den Job zu bekommen", "genug, um reich zu werden", "genug, um ...", aber nicht "genug". :))

EDIT: Wenn ich "Grundlagen" sage, meine ich

  1. Grundlagen der Programmierung (Bit, Byte, Variablen, Funktionen, Parameter, Schleifen, Bedingungen, Rekursion)
  2. Grundlagen der Programmiersprache, mit der Sie arbeiten werden (wie man ein Programm kompiliert, wie man ein Programm debuggt, wie man die IDE verwendet; 90% der Schlüsselwörter und wissen, was sie tun, wann sie verwendet werden, wie sie verwendet werden; Variable Typen; wie man die Dinge von 1 in der Sprache benutzt; nützlichste Bibliotheken; Fehlerbehandlung)
  3. "Verbinde 1 und 2 mit deinem Blut" :)

(Möglicherweise müssen Sie bei Ihrer Arbeit 2-3 Sprachen verwenden.)

Ich stimme Saeed zu, tauche ein in die Arbeit, Arbeiten ist der beste Weg, Dinge zu lernen, du arbeitest mit Leuten, die mehr wissen als du, du lernst von ihnen, siehst, wie sie funktionieren, aber sie haben genauso angefangen wie du (oder vielleicht haben sie angefangen) mit weniger Wissen als jetzt).

e-MEE
quelle
Ich würde nicht einen Monat brauchen, um XML-Dateien zu lesen und zu schreiben, obwohl ich immer noch denke, dass es wahrscheinlich einen Tag dauern würde. Können Sie "die Grundlagen" näher erläutern? Dies ist der Hauptschwerpunkt meiner Frage, da ich nicht weiß, dass ich die Grundlagen kenne. Ich kenne definitiv einige der Grundlagen, aber ich mache mir große Sorgen, dass mir einige wirklich grundlegende Lücken fehlen.
Throwaway
1

Du hast eine tolle Einstellung! Einer der grundlegenden Faktoren für den Erfolg ist, niemals selbstgefällig zu sein. Niemals zur Ruhe kommen. Gehen Sie niemals Kompromisse ein. Das heißt, es ist sehr schwer zu erkennen, wie genau dies zu tun ist (z. B. ist es nicht so einfach, die 'Best Practice' für die Ausführung von Aufgabe X zu kennen, da jeder seine eigene Meinung hat).

Am besten lernen Sie, wie Sie guten Code identifizieren und welche Gründe dahinter stehen ( wie und warum ). Zu diesem Zweck würde ich empfehlen, Blogs von angesehenen Fachleuten auf unserem Gebiet zu lesen, da dies Sie der Art von Mentalität aussetzen wird, nach der Sie suchen müssen. Ein Beitrag zu einem Open-Source-Projekt ist auch eine Möglichkeit, in die Tiefe zu springen. Es gibt Ihnen jedoch die Möglichkeit, im Verlauf des aktuellen Prozesses von anderen zu lernen .

JK
quelle
Vielen Dank. Ich glaube nicht, dass mir klar wurde, wie sehr ich solch ein Lob hören musste.
Throwaway
0

Ich denke, die meisten von uns waren früher oder später in dieser Situation. Und jedes Mal, wenn Sie eine neue Sprache lernen, fängt alles von vorne an. Der erste Ratschlag von mir wäre also: Verzweifle nicht, du bist nicht allein. Und: Du bist wahrscheinlich besser als du denkst, schon allein, weil du dich selbst reflektierst. Erinnern Sie sich an das alte Sprichwort: Dummköpfe eilen dahin, wo Engel Angst haben zu treten.

Heutzutage haben die meisten Sprachen Standardbibliotheken, die einfach zu groß sind, als dass eine einzelne Person sie vollständig auswendig kann. Fügen Sie Frameworks und APIs hinzu, und Sie können unmöglich alles wissen. Das Beste, was Sie tun können, ist, die Grundlagen zu kennen und dann herauszufinden, wo Sie mehr erfahren können. Mit der Erfahrung wird es besser, daher ist der beste Rat wahrscheinlich: Geh und benutze das Zeug!

Es gibt keinen einzigen "anständigen" Marker. Alles hängt von der Umgebung ab. Was für ein Unternehmen / Projekt vollkommen ausreicht, kann für ein anderes weit entfernt sein. Wenn Sie wirklich tun können, was Sie sagen, dass Sie können, würde ich Sie als anständigen Nachwuchs einstufen, und Sie sollten keine Probleme haben, anständige Arbeit zu finden.

wolfgangsz
quelle
[Kopieren / Einfügen aus meinem Kommentar zu @ e-MEEs Kommentar oben] Das Lesen und Schreiben von XML-Dateien würde keinen Monat in Anspruch nehmen, obwohl ich immer noch der Meinung bin, dass es wahrscheinlich einen Tag dauern würde. Können Sie "die Grundlagen" näher erläutern? Dies ist der Hauptschwerpunkt meiner Frage, da ich nicht weiß, dass ich die Grundlagen kenne. Ich kenne definitiv einige der Grundlagen, aber ich mache mir große Sorgen, dass mir einige wirklich grundlegende Lücken fehlen.
Throwaway
0

Basierend auf dem, was Sie in Ihrer Frage schreiben, können Sie tatsächlich Code erstellen und sind bereit, Ihre Fähigkeiten und Kenntnisse zu verbessern.

Jeder muss in jedem Job als Neuling klein anfangen und dann mit der Erfahrung wachsen.

Wie schnell Sie wachsen, hängt von Ihnen ab. Jeder wächst mit unterschiedlichen Geschwindigkeiten. Wichtig ist nur, dass Sie sich jetzt nicht zu viel abverlangen.

Wenn Sie das Gefühl haben, etwas noch nicht zu verstehen, machen Sie sich keine Sorgen. Bald können Sie sich ein Bild machen.

Möglicherweise möchten Sie so bald wie möglich mit der Arbeit in der Branche beginnen. Da Sie bereits codieren können, können Sie bereits mit der Arbeit beginnen. Dies liegt daran, dass die Theorie nicht gut genug ist, Sie müssen die Praxis und die Probleme der realen Welt lösen.

Was das Wissen über Bibliothekscodes betrifft, wird es mit der Zeit kommen, solange Sie es weiter studieren, die Dokumentation lesen und üben. Diese Seite ist auch sehr nützlich und Sie werden es schneller lernen, wenn Sie verwandte Fragen aktiv stellen und beantworten.

Ein persönlicher Rat: Wenn Sie sich wirklich von den vielen Leuten abheben möchten, die Spaghetti-Code schreiben, sich selbst Programmierer nennen, lernen Sie bewährte Methoden. Es spielt keine Rolle, mit welcher Sprache oder Bibliothek Sie lernen oder programmieren. Lernen Sie bewährte Methoden. Dies erspart Ihnen viel Zeit, Fehler, Störungen und Kopfschmerzen und hilft Ihnen, sich als besserer Programmierer zu fühlen.

Jose Faeti
quelle