Facebook
Twitter
Google+
Kommentare
9

Der Weg zum PHP Experten

Ich wurde gestern von einem Freund gefragt, wie man den Schritt vom PHP Anfänger zum Experten schaffen kann. Statt ihm still und heimlich eine Antwort per Mail zu schreiben, mache ich das einfach hier, vielleicht will ja jemand von euch diesen Schritt auch vollziehen. Ich hoffe mal, dass dies auch für den Freund klar geht. Da ich ihn aber über den Blog hier kenne wird es sicher OK sein. 

Fangen wir also an. Definieren wir uns erstmal einen PHP Entwickler im Hobby-Stadium. Nennen wir ihn einfach Rüdiger, in der Hoffnung, dass keine von euch heißt. Rüdiger hat schon ein paar Jahre PHP Entwicklung auf dem Rücken, kann auch alles umsetzen, was man so von ihm verlangt. Ich kenne das ja von mir, früher konnte ich wirklich alles in meinem ersten Projekt umsetzen, was ich wollte, nur leider könnte ich meinen Code nie wieder erweitern. Seiteneffekte waren garantiert. Aber das war für die Art der Projekte, die damals akut waren auch ok. Ich sass alleine an einem solchen Projekt deswegen war ich für alles selber verantwortlich und wenn man wieder was in die Hose gegangen ist musste ich mich nu für mir selbst rechtfertigen. Aber wir wollen ja nicht über mich reden, sondern eigentlich über Rüdiger. Wenn man sich die Webentwicklung zum Hobby gemacht hat, dann mag das alles vielleicht reichen. Rüdiger möchte jetzt aber in das professionelle Lager wechseln und sein Hobby zum Beruf machen und dafür braucht man heutzutage schon ein wenig mehr.

Was muss man also machen, um der König der Softwareentwicklung zu werden. Schritt Eins ist natürlich einen Blog zu machen und phphatesme auf ihm zu verlinken. Klingt erst mal schwachsinnig und natürlich wollte ich auch ein wenig provozieren, aber dieser Blog hier hat mir so viel beigebracht. Ich bin eine Person, die viel besser lernt, wenn sie das zu lernende aufschreibt. Alles was ich also irgendwo lese, versuche ich in einen Blogpost zu packen. Auf jeden Fall kann so etwas ein Begleiter im Selbststudium sein, den man nicht unterschätzen sollte.

Aber wie sollte Rüdiger jetzt wirklich anfangen? Zuerst sollte man sich ein Projekt suchen, dass man umsetzen will. Nicht zu klein, nicht zu groß. Dann definieren wir uns mal, was wir lernen wollen? Architektur, OOP und Qualitätssicherung wären jetzt meine ersten Ideen. In der heutigen Zeit sollte man sich ein Framework einsetzen, was uns schon bei den ersten zwei Punkten helfen kann. Meistens sind diese nämlich schon nach dem MVC Pattern, einem der wichtigsten OOP Muster, die man in der Webentwicklung kennt, gestrickt. Hält man sich also an die Vorgaben, die die Macher von Zend Framework oder Symfony, dann lernt man schon einiges über Architektur. Natürlich sollte man nebenher auch viel lesen. Obwohl ich es noch nicht ganz gelesen habe empfehle ich hier doch einfach mal das Buch von Ralf Eggert. Großer Vorteil hier ist auch, dass ihr euch an Standards haltet. So könnt ihr alle Tipps, die irgendwelche PHP Gurus veröffentlichen auch auf euer Projekt anwenden. Neue Trends können sofort aufgegriffen werden und man profitiert unheimlich von der Community. Wichtig hierbei ist auch der Grundsatz, dass die meisten Probleme bereits gelöst wurden. Versucht euch also an Standards zu halten.

Ein weiterer Tipp, den ich geben kann ist Teamwork. Ich bin ein großer Fan von Pair-Programming. Hier sitzen zwei Entwickler an einem PC und tüfteln an der gleichen Stelle Code. Studien haben ergeben, dass diese Art zu programmieren beide Entwickler schnell auf das gleiche Niveau hebt. Und zwar auf das der besseren. Schnappt euch also jemand, der mit euch ein Projekt machen will und der vielleicht ein wenig mehr Erfahrung hat als ihr. Wenn ihr nicht am selben Ort sitzt, dann VNC drauf und über das Netzwerk das ganze erledigen. Wenn dies auch nicht geht, dann versucht es erst mal mit Code Reviews und lasst jemanden über eure PHP Klassen drüber schauen.

Vielleicht kann man ja hier so etwas wie ein Patenprogramm aufbauen. Ich denke, dass bei phphatesme das Verhältnis zwischen Profi und Anfänger ziemlich ausgeglichen ist. Vielleicht kann man da ja ein paar Leute zusammenbringen. Ich würde mich auf jeden Fall auch mit in das Programm einbeziehen, da kann man bestimmt einiges lernen. Aber jedes andere Lernsystem unterstütze ich natürlich auch.

Ich habe ja vorhin davon erzählt, dass ihr lesen sollt. Aus diesem Grund möchte ich hier auch kurz eine Liste aufstellen mit „Buch“-Empfehlungen.

Leider kenne ich gar nicht so viele gute Bücher. Die meisten Informationen hole ich mir aus dem Netz.

Natürlich sollte man sich auch mit dem ganzen Drumherum auskennen. Damit meine ich, dass man mal SVN verwendet oder ein Buildscript aufgesetzt haben sollte. Continuous Intergration ist auch ein Schlagwort, dass man nicht nur mal gehört haben sollte. Aber all diese Dinge gehören erst dazu, wenn man sich mit den Grundregeln auskennt.

Eine Sache möchte ich euch auch noch auf den Weg geben, auch wenn mich vielleicht einige von euch dafür hassen werden. Wenn ihr aber etwas über Softwaretechnik lernen wollt, dann schnappt euch ein gutes Java Buch. Ich finde PHP zwar um einiges besser für die Webentwicklung geeignet, als Java, trotzdem ist uns diese Sprache um ca. 5 Jahre vorraus. Sieht man natürlich auch an den ganzen Tools, die gerade aktuell in Gespräch sind. pDepend vs. jDepend, phpUnit vs. jUnit, PHPUnderControl vs. Cruise Control. Kann aber auch sehr viele Vorteile haben, da wir so nur die Techniken adaptieren, die in anderen Plattformen bereits Fuss gefasst haben.

Ach was ist eigentlich mit Rüdiger? Keine Ahnung, irgendwie habe ich meinen Faden ja dann doch verloren und da hing leider Rüdi, wie seine imaginären Freunde ihn nennen, dran. Egal, ich denke, dass trotzdem meine Punkte klar wurden.

Über den Autor

Nils Langner

Nils Langner ist der Gründer von "the web hates me" und auch der Hauptautor. Im wahren Leben leitet er das Qualitätsmanagementteam im Gruner+Jahr-Digitalbereich und ist somit für Seiten wie stern.de, eltern.de und gala.de aus Qualitätssicht verantwortlich. Nils schreibt seit den Anfängen von phphatesme, welches er ebenfalls gegründet hat, nicht nur für diverse Blogs, sondern auch für Fachmagazine, wie das PHP Magazin, die t3n, die c't oder die iX. Nebenbei ist er noch ein gern gesehener Sprecher auf Konferenzen. Herr Langner schreibt die Texte über sich gerne in der dritten Form.
Kommentare

9 Comments

  1. Das mit Java kann ich nur bestätigen. Ich beschäftige mich nun seit einiger Zeit auch mit Java und es gab schon so einige Punkte, die ich nach PHP übernommen habe. Durch die strikte Typisierung hab ich z.B. auch bei PHP damit angefangen. Meine Funktionen haben nun z.B. keine mixed Rückgaben mehr, sondern nur noch eine, die es sein sollte. Wenn ein Fehler auftritt gibts auch kein false mehr, sondern eine Exception, die ich mit try abfange. Vorher kannte ich diese ganzen Techniken schon, fands aber sinnlos, aber seitdem ich Java programmiere hat sich da einiges geändert (war jetzt auch nur nen simples Beispiel). Kann ich also auch nur empfehlen, sich mit Java zu beschäftigen :)

    Reply
  2. Das Partnerprogramm – oder sollte man es vielleicht „Teamwork Training“ oder so ähnlich nennen, würde ich auf jeden Fall unterstützen. Ich habe zur Zeit schon einen PHP-Schüler der von mir lernt und so langsam größere Applikationen schreiben kann. Das bringt auch Vorteile für den Erfahrenen Coder der „unterrichtet“ denn der Nachwuchs kommt auf manche Idee die man auf Grund von antrainierten Prozessen, etc. vermutlich nie so entwickeln würde. Der eine oder andere neue Ansatz kann dabei schon entstehen.

    Ansonsten kann ich natürlich nur jedem an´s Herz legen einfach etwas zu machen. „Machen“ ist das Zauberwort denn nur durch Frickeln, Fluchen und Freuen (die 3 F) entstehen Erfahrungswerte die einen Großteil des „Know How“ ausmachen. Die Strukturen, Befehle, etc. prägen sich dabei auch besser ein, als wenn man sie nur mal gelesen hat.

    Reply
  3. auch ich würde java dringend empfehlen (kostenlos gibt es z.bsp. bei galileo openbook ein java buch zum lesen), um vielleicht im anschluss sich ein wenig mit design patterns zu beschäftigen, speziell martin fowler’s (gof) refactoring.

    Reply
  4. Ich hatte gestern schon einen Comment geschrieben, aber der ist irgendwie nicht aufgetaucht …

    Falls jemand Fragen zum Zend Framework hat oder Code Reviews dazu haben möchte, kann sich gerne bei mir melden :)

    Reply
  5. da kann ich nur zustimmen, ich bin gerade dabei Java zu lernen und da kann man für PHP noch sehr viel lernen. Bei meiner kleinen API zu den Image Funktionen von PHP hab ich da schon versucht möglichst viel davon umzusetzten, leider kann man in PHP das mit dem Überladen und Überschreiben von Methoden nicht so gut machen und ich bin dann doch teilweiße bei gemischten Parametern geladnet.
    Übrigens die Idee mit dem Blog fand ich ganz gut und hab diese gleich mal umgesetzt.

    Reply

Leave a Comment.

Link erfolgreich vorgeschlagen.

Vielen Dank, dass du einen Link vorgeschlagen hast. Wir werden ihn sobald wie möglich prüfen. Schließen