Ich bin ein 19-jähriger Student, der WIRKLICH gerne programmiert, und ich hoffe, dass ich aus Ihrer jahrelangen Erfahrung hier lernen kann. Gegenwärtig lerne ich PHP bei jeder Gelegenheit und das schon seit ungefähr 3 Jahren, obwohl ich noch nie einen formellen Unterricht genommen habe. Ich würde gerne eines Tages Vollzeit Programmierer sein und eine gute Karriere daraus machen.
Meine Frage an Sie lautet: Was sind für Sie die Markenzeichen oder Merkmale eines professionellen Programmierers? Hauptsächlich im Bereich PHP, aber auch andere, allgemeinere Qualifikationen sind mehr als willkommen, da ich denke, dass PHP eher eine Hobby-Sprache ist und in den Augen potenzieller Arbeitgeber möglicherweise nicht die Sprache der Wahl ist. Bitte korrigieren Sie mich, wenn ich falsch liege. Vor allem möchte ich keine Zeit mit etwas verschwenden, das sich nicht lohnt.
Ich bin derzeit ziemlich zuversichtlich, dass ich PHP als Sprache beherrsche, und ich weiß, dass ich fast alles bauen kann, was ich brauche, und dass es "funktioniert", aber mir fehlen Designkonzepte und die Codestruktur. Ich kann sogar objektorientierten Code schreiben, aber meiner persönlichen Meinung nach ist das keinen Haufen Bohnen wert, wenn es nicht gut organisiert ist. Aus diesem Grund habe ich Matt Zandstras Buch "PHP Objects, Patterns and Practice" gekauft und das jeden Tag ein wenig gelesen.
Wie auch immer, ich fange an, hier ein wenig abzuschweifen, also zurück zur ursprünglichen Frage. Welchen Rat würden Sie einem aufstrebenden Programmierer geben, der auf diesem Gebiet etwas bewirken möchte?
Nebenbei bemerkt habe ich mit einem Freund an einem Projekt gearbeitet, das eine ziemlich gute Vorstellung davon geben würde, wo ich beim Codieren bin. Ich werde einen Link geben, ich möchte nicht, dass sich jemand so fühlt, als würde ich hier pushen oder spammen, also klicke nicht darauf, wenn du nicht willst. Wenn Sie jedoch auch dort Feedback geben möchten, können Sie den Code auf github sehen. Ich bin dort als The Craw bekannt.
quelle
stripslashes()
es erforderlich ist ;)Antworten:
1. Hochwertiger Code
Es ist einfach, Code zu schreiben, aber viel schwieriger, guten, sauberen Code zu schreiben. Und mit gut meine ich lesbaren Code, der einem bestimmten Stil entspricht, ausreichend kommentiert, aber nicht zu viel ist, kurze Methoden, selbstdokumentierende Namen von Variablen usw. enthält.
2. Breites Wissen
Man kann kaum als professioneller Entwickler bezeichnet werden, wenn man nur eine Programmiersprache kennt. Das Verständnis verschiedener Paradigmen (wie objektorientiert, funktional oder reflektierend) ist ebenfalls ein Muss.
Als Webentwickler sollte man außerdem HTTP, JavaScript, SQL, REST und zu viele Dinge kennen, um hier aufgelistet zu werden. Ein professioneller Webentwickler sollte in der Lage sein, eine Website im Durchschnittsmaßstab allein zu erstellen, mit Ausnahme von visuellem Design und Grafiken. Es sollte nicht so gut sein wie eine Website, die von einem Team hochspezialisierter Mitarbeiter erstellt wurde, aber dennoch akzeptabel sein.
Die Kenntnis Ihrer Werkzeuge ist ebenfalls eine Voraussetzung. Sie sollten mit Versionskontrolle, IDEs usw. vertraut genug sein.
3. Solide Erfahrung
Nach zwei Jahren College wird man nicht professionell. Jemand mit zehnjähriger Berufserfahrung wird wahrscheinlich mehr Chancen haben, als professioneller Entwickler bezeichnet zu werden.
Natürlich gibt es verschiedene Arten von Erfahrungen. Die Arbeit in einem kleinen Unternehmen, in dem sich niemand um die Produktqualität kümmert, ist nicht sehr wertvoll.
Eine Erfahrung in einem Großprojekt ist auch schön. Es ist ziemlich einfach, eine kleine Website zu erstellen, aber es ist viel schwieriger, sie richtig zu machen, wenn es um eine Website geht, die auf einer Reihe von Servern bereitgestellt werden sollte, stark auf Caching angewiesen ist usw.
4. Persönliche Motivation
Wenn eine Person wirklich von der Softwareentwicklung motiviert ist, sollte sie dies zeigen können. Wenn ich eine Person interviewe, die behauptet, eine Leidenschaft für das Programmieren zu haben und über 15 Jahre Erfahrung in der Softwareentwicklung verfügt, aber die einfache Frage "Sprechen Sie mit mir über Ihr letztes persönliches Projekt im Zusammenhang mit der Programmierung" nicht beantworten kann, weiß ich, dass etwas nicht stimmt mit diesem Kandidaten.
Halten Sie Open Source-Projekte mit Quellcode zum Download bereit. Habe einen Blog. Nehmen Sie an Stack Exchange teil. All diese Dinge sind wertvoll, wenn Sie sich als professioneller Entwickler präsentieren.
quelle
Ich entwickle seit 8 Jahren mit PHP - seit ich 16 bin. Ich treffe Menschen jeden Alters, jeder Form, Größe und jedes Hintergrunds. Ich stimme den meisten Punkten von MainMa zu, aber lassen Sie mich einige Hervorhebungen und einige eigene Punkte hinzufügen.
Leidenschaft & Motivation
Dies ist bei weitem das Wichtigste. Strebe danach, der Beste zu sein (du kannst es sein), und irgendwann wirst du es auch. Es erfordert wahre Leidenschaft, Probleme zu lösen und Ihr Handwerk zu verbessern. Sie können in 5 Sekunden erkennen, ob jemand leidenschaftlich ist. Wenn Sie ihnen eine Frage stellen, engagieren sie sich sofort oder geben sie eine Antwort mit zwei Wörtern? Wenn Sie etwas empfehlen, kommen sie zurück und erzählen Ihnen danach davon?
Widmung
Softwareentwicklung ist ein Handwerk, dessen Beherrschung Jahrzehnte dauern kann. Man sagt, es dauert 10.000 Stunden, um etwas zu meistern, aber ich denke, wenn man mit einem sich bewegenden Ziel wie der Softwareentwicklung arbeitet, ist es viel mehr. Wenn Sie Vollzeit arbeiten, werden Sie diese Marke alle paar Jahre erreichen, damit Sie sich ständig neu erfinden können. In der Lage zu sein, so lange bei etwas zu bleiben, erfordert eine enorme Menge Geduld und wieder Leidenschaft. Seien Sie vorsichtig bei Menschen mit 10/15 Jahren Erfahrung, die nicht unglaublich sind. Sie sind nicht engagiert und haben wahrscheinlich vor einem Jahrzehnt die Leidenschaft verloren. 15 Jahre Erfahrung sind nicht gleichbedeutend mit 1 Jahr Erfahrung 15 Mal.
Hunger nach Wissen
Es erfordert ständiges Lernen und Niederlage. Es sollte geradezu peinlich / deprimierend sein, Code aus dem Vorjahr zu betrachten. Wenn dies nicht der Fall ist, lernen Sie nicht genug. Finden Sie die Leute, die an der Spitze stehen, und lernen Sie von ihnen alles, was Sie können. In der Regel sind dies wichtige Open Source-Mitwirkende (für PHP: Symfony-, Zend-, PHPUnit / Behat / etc.-Entwickler). Sie sind diejenigen, die alle anderen trainieren. Wenn Ihnen jemand sagt, dass X besser ist als Y, recherchieren Sie selbst. Es sind normalerweise Schafe, denen das vor 5 Jahren gesagt wurde und die es immer noch predigen. Ich habe tatsächlich diese Seite als eine erstaunliche Ressource. Ich finde eine sehr breite Palette von Inhalten, die normalerweise auf dieselben Schlüsselpersonen oder Auftraggeber zurückführen (Martin Fowler, Onkel Bob usw., DDD usw.).
PHP saugt
Wie auch immer. Wenn die Leute dich / PHP verarschen wollen, lass dich nicht unterkriegen. Wenn Sie den wichtigsten Entwicklungsprinzipien folgen und tatsächlich Software erstellen , fahren Sie fort. PHP hat einen langen Weg zurückgelegt und es ist nicht das hässliche Entlein, das es früher war. Lerne aus anderen Sprachen und spiele ab und zu mit anderen. Sie mögen sie vielleicht mehr oder auch nicht. In jedem Fall wird es Ihr Wissen erweitern und Sie in neue Muster oder Praktiken einführen, die in PHP nicht beliebt oder sogar möglich sind.
Netzwerk
Bauen Sie selbst eine Marke auf. Blog. Nehmen Sie an Meetups / Konferenzen teil. Erreichen Sie andere auf Twitter. Finden Sie eine Community / Nische, mit der Sie sich beschäftigen können. Tragen Sie zu Open Source-Projekten bei. Programmieren ist jetzt eine sehr soziale Aufgabe. Isolieren Sie sich nicht und machen Sie Ihre Arbeit bekannt. Je früher Sie dies tun, desto eher werden Sie Beziehungen zu großartigen Entwicklern aufbauen, die Sie unter ihre Fittiche nehmen, und desto eher werden Sie anständige Kunden / Arbeitgeber finden, anstatt die beschissenen, für die alle anderen arbeiten.
quelle
Zusätzlich zu dem, was Adrian Schneider und MainMa geschrieben haben (beide sind gut), denke ich, dass ein Kennzeichen eines professionellen Programmierers, unabhängig von der Sprache, die Erkenntnis ist, dass Code eine extrem lange Halbwertszeit hat - viel länger als wir häufig realisieren oder für diese Angelegenheit erwarten, wenn Sie es schreiben.
Ja, es gibt extreme Fälle von Systemen, die 50 Jahre alt sind und noch aktiv genutzt werden (geschäftskritische Anwendungen, die in den 1960er bis 1970er Jahren in COBOL geschrieben wurden, werden immer noch verwendet), aber es muss nicht ganz so extrem sein. Das andere Extrem ist natürlich, dass Ad-hoc-Code so geschrieben ist, dass er nur einmal ausgeführt wird. Eine der Anwendungen, an denen ich arbeite, ist im Grunde eine webbasierte CRUD-Anwendung. Viele Tabellenansichten, einige spezielle Ansichten, einige Berichte, einige umliegende Kleinigkeiten. Wirklich nichts Besonderes im großen Schema der Dinge. Mit einigen der Kernklassen und Datenbankcodes aus mehr als 10 JahrenDerzeit glaube ich, dass es ziemlich gut um den Median passt. Die Sprache und das Framework (in diesem speziellen Fall C # .NET) haben sich im Laufe der Zeit natürlich weiterentwickelt, und die beteiligten Personen haben Erfahrungen mit der Verwendung gesammelt, aber der alte Code bleibt bestehen, da er funktioniert und gut genug funktioniert, da er nur geringfügig ist ändert sich ab und zu, bietet aber meistens nur die Grundlage, auf der das gesamte System ruht. Meine bisherige Beschäftigung konzentrierte sich darauf, ein Alterungssystem, das nur für einen einzelnen Benutzer entwickelt wurde und durch Teile, die vor mehr als 15 Jahren geschrieben wurden, durch etwas etwas Moderneres zu ersetzen. Lassen Sie mich das umformulieren. Einige der wichtigsten Teile des Systems, mit denen ich beauftragt wurde, älteres Windows 3.0 zu ersetzen.
Ein professioneller Programmierer wird beim Schreiben von Code, der nicht explizit Wegwerfcode zur Lösung eines ganz bestimmten einmaligen Problems ist, die Tatsache berücksichtigen, dass der Code, den er heute schreibt, wahrscheinlich viele Jahre in irgendeiner Form verbleiben wird. Wenn es sich um ein Kernstück der Software handelt, bleibt es wahrscheinlich für einen erheblichen Teil der Lebensdauer des Produkts erhalten. Es ist wahrscheinlich, dass ein Programmierer später eine Wartung benötigt, die nichts mit dem ursprünglichen Entwicklungsteam zu tun hat. Es könnte sogar eine Wartung durch den Programmierer erforderlich sein, der es ursprünglich geschrieben hat! (Wenn Sie das nicht verstehen, denken Sie daran , dass der Code, den Sie vor sechs Monaten geschrieben haben, möglicherweise auch von jemand anderem geschrieben wurde. Versuchen Sie es dann mit sechs Jahren anstatt mit sechs Monaten.)
Daraus ergibt sich die Erkenntnis, dass Code leicht zu lesen und zu verstehen , leicht zu ändern und leicht zu erweitern sein muss , um in neue Verwendungszwecke zu passen oder sich ändernden Anforderungen gerecht zu werden. Es muss außerdem einfach zu debuggen und vorzugsweise einfach zu befolgen sein, ohne es über einen interaktiven Debugger auszuführen.
quelle