Dieses Jahr ist mein fünftes Jahr als Softwareentwickler. Bei den folgenden Dingen denke ich oft: Wenn ich sie nur gekannt hätte, als ich zum ersten Mal in dieses Feld eingestiegen bin, hätte ich viele Umwege vermeiden und mehr erreichen können, als ich heute erreicht habe. Ach, die Vergangenheit lässt sich nicht einholen, deshalb möchte ich sie hier mit allen teilen, besonders mit Neuankömmlingen, die gerade in dieses Feld einsteigen. Bitte überlegen Sie sorgfältig, ob Sie diese 8 Dinge verstehen.
1. Gute Kommunikationsfähigkeiten.
Engineering-Management ist eine Teamaktivität, auch wenn das Team manchmal nur aus Ihnen allein besteht. Da so viele Dinge in jedem Moment gegenseitiges Verständnis erfordern, wird Kommunikation zum größten Problem. 90% des Engineering-Managements sind Kommunikation. Zum Beispiel müssen wir erklären, was ein Bug ist, wie man ihn effektiv diagnostiziert und wie wir unsere komplexen Ideen anderen vollständig vermitteln. Kommunikation ist der entscheidendste Faktor für den Projekterfolg. Ineffektive Kommunikation führt nur zu einer enormen Verschwendung von Zeit und Mühe.
2. Grundlagen der Informatik.
Um ein ausgezeichneter Programmierer zu werden, ist eine Grundlage in der Informatik unerlässlich. Aber ehrlich gesagt sind Informatik und Technische Informatik wirklich zwei verschiedene Dinge. Um jedoch ein ausgezeichneter Ingenieur zu werden, brauchst du die Neugier, Computerentwicklungstrends und die Funktionsweise von Computern zu untersuchen, einschließlich eines tiefen Verständnisses potenzieller Fallstricke in neuen Trends und einiger alternativer Lösungen. Das gibt dir das Kapital, um mit anderen Ingenieuren zu kommunizieren. Algorithmen sind außer in Interviews in anderen Situationen nicht sehr nützlich. Ich meine, in den meisten Fällen reicht es aus, Klassenbibliotheken zu haben. Aber das bedeutet nicht, dass du Datenstrukturen und Algorithmen völlig ignorieren kannst. Darüber hinaus sind das Nachdenken über Code und Optimierung weiterhin wichtig, besonders beim Skalieren.
3. Lerne, Code zu lesen.
Die Bedeutung des Schreibens von Code ist allen bekannt, ohne dass ich es sagen muss, aber nur wenige haben wahrscheinlich vom Lesen von Code gehört. Dies könnte eine der wertvollsten Fähigkeiten sein, die man beherrschen sollte. Was diese betrifft, bin ich bisher noch dabei, mich um das Erreichen des Ziels zu bemühen. Apropos, wenn du die Fähigkeit hast, durch komplexe Phänomene das Wesen der Dinge zu erkennen, dann bist du nicht weit davon entfernt, ein ausgezeichneter Ingenieur zu werden.
4. Lerne UNIX und Linux.
Diese beiden sind fast überall, daher lohnt es sich sehr, sie zu lernen. Sie ermöglichen es uns, Computer schnell über die Kommandozeile zu steuern. Bei Bedarf kannst du auch Linux-Pakete installieren und Server einrichten. Du kannst auch schnell mit vi bearbeiten (genau, vi. Ich selbst bin ein Emacs-Nutzer). Ein weiterer wichtiger Punkt ist, dass UNIX-Werkzeuge erheblich Zeit sparen können. Darüber hinaus müssen wir wissen, wie man sed, grep, find, Pipes verwendet und Code mit grundlegendem bash/zsh schreibt.
5. Verstehe Texteditoren.
Softwareentwickler sind Meister der Textmanipulation. Selbst Emacs und vi, die heute als Antiquitäten gelten, sind immer noch Editoren, die Entwickler lernen müssen. Du solltest in mindestens einem der beiden versiert sein, denn sie haben unterschiedliche Philosophien, und wenn du einen von ihnen verstehst, kannst du nicht nur schneller Code schreiben, sondern bist auch nicht auf eine bestimmte Umgebung beschränkt. Benutze nicht einfach nur einen Editor; bring ihn dazu, sich dir unterzuordnen, automatisiere ihn, passe ihn an deine eigenen Tastenkürzel an und schreibe Skripte, die Probleme lösen.
6. Automatisierungsdenken.
Da Kopieren/Einfügen eine Form der Automatisierung ist, können wir definitiv Skripte schreiben, die das erledigen. Wenn man beiläufig Skripte schreibt, wird Programmieren interessanter. Vielleicht kannst du einen Tag voller langweiliger Arbeit in nur 30 Minuten erledigen. Automatisierung kann Prozesse verschlanken und lässt uns außerdem viele neue Dinge lernen.
7. Versionskontrolle verstehen.
Ich benutze git gern für alles. Leider hatte ich in der Schule keine Ahnung von einer so großartigen Idee; wie peinlich. Versionskontrolle erlaubt es uns, kühn mit Code zu experimentieren, denn wenn etwas nicht funktioniert, kann man es einfach in seinen ursprünglichen Zustand zurückversetzen oder die Eingabe rückgängig machen. Es ist so einfach!
8. Arbeite an einem kleinen eigenen Projekt.
Das ist ein sehr gutes Training, auch wenn du dich manchmal erschöpft fühlst und aufgeben willst. Weil unsere Produkte abstrakt sind – anders als beim Bau einer Brücke, wo man ein greifbares fertiges Produkt sehen kann –, können wir nur weiter programmieren, was zutiefst langweilig ist. Willst du dich nicht auf ein Projekt konzentrieren, das dir gefällt, es wie dein eigenes Kind behandeln, dein Bestes geben und dabei neues Wissen lernen und den Umgang mit Tools lernen – eine Gelegenheit, die du bei der Arbeit nie bekommen würdest? Die Antwort ist natürlich JA.
Ich selbst schaffe es nicht jedes Mal, jeden der oben genannten Punkte umzusetzen, aber ich wünschte trotzdem, dass mir jemand diese herzlichen Worte gesagt hätte, als ich zum ersten Mal in dieses Feld eingestiegen bin. Ich wäre wirklich dankbar.
Übersetzungslink: http://www.codeceo.com/article/8-things-new-programmer-know.html