Wie arbeitet ein professioneller PHP-Programmierer?

  • Huhu,


    bisher ist es so, dass ich vor einer Problemstellung google und mir verschiedene Codefragmente zusammensetze, die dann das gewünschte Ergebnis bringen.


    Aber wie arbeitet der professionelle PHP-Programmierer? Ist dieser Mensch überdurchschnittlich intelligent, sodass er beim zweiten Durchsehen eines Beispiels den Code im Langzeit-Gedächtnis hat und von nun an Ähnliches ohne Nachsehen programmieren kann?


    Oder verläuft auch professionelle Programmierung nach dem Schema Learning-By-Doing plus Verständnis objektorientierter Programmierung?

  • Erst mal ist es egal, ob man PHP, Java, C, C#, ... "Programmierer" (in Anführungsstrichen, da PHP eine Skriptsprache ist, also Skripter) ist.


    Erst einmal Plant man sein Programm. Man hat eine Idee, zerlegt es in kleine Teilbereiche (wichtig für OOP, Entwurfsmuster, ...).
    Sehr viel Zeit geht in die Planung. Das eigentlich programmieren/skripten ist dann nur noch ein kleiner Teil, wenn die Planung gut gemacht wurde.
    Ggf kommt dann das Debugen, wobei die kleinen Einzelkomponenten schon in der Entstehung einzeln unabhängig getestet werden. Tests werden vor dem Programmieren erstellt.


    Codebeispiele zusammensuchen und dann zusammenbasteln ist nicht so gut. Klar schaut man sich Beispiele an, aber das dient eher dazu, zu verstehen, wie man die Parameter benutzt oder man holt sich inspiration.


    Letzendlich sind es nur ein paar Vokabeln (Programmiersprachen sind auch nur Sprachen, bei denen man die Vokabeln lernen muss). Dann kommt noch ein bisschen Grammatik dazu, wobei man da gut durch IDE oder Docs unterstützt wird.
    Es hat also weniger mit "überdurchschnittlich intelligent" als mit fleissig und Übung zu tun.


    Zitat

    sodass er beim zweiten Durchsehen eines Beispiels den Code im Langzeit-Gedächtnis hat und von nun an Ähnliches ohne Nachsehen programmieren kann?


    Wie oben schon angedeutet, löst man öfter auftretende Probleme mit Entwurfsmustern. Diese hat man sich mit der Zeit gemerkt.
    Wichtig ist aber, dass man sie verstanden hat, denn diese Muster sehen nicht immer gleich aus und müssen auch mal angepasst werden. Blosses abschreiben
    (Problemstellung google und mir verschiedene Codefragmente zusammensetze) bringt also nicht viel.


    Fazit:
    Zum Programmieren gehört eben nicht nur programmieren, auch wenn man das anfangs gerne so macht. Bei großen Projekten geht das nach hinten los und man muss von vorne anfangen. Das nennt sich dann Coderevision :D

  • Servus,


    habe zwar nichts mit PHP am Hut...eher mit einer Sprache die auch eine Insel ist :-)


    Ich denke mal nicht das es damit was zu tun hat, dass der jeweilige Programmierer überdurchschnittlich intelligent ist. Hat eher damit was zu tun das er verstanden hat was z.B. im dem Codeschnipsel aus dem Internet dahinter steckt.


    Im Internet suche ich meistens dann, wenn ich vor ein Problem stehe bei dem ich nicht ein kleines bisschen weiß wie und wo ich ansetzen muss. Dann schaue ich mir ein paar Lösungen an, bastle mir eine eigene Testanwendung und wenn diese mein Problem löst wird dieses implementiert.


    So richtig "Vollzeit programmieren" tue ich erst wieder seit eineinhalb Jahren. Mittlerweilen muss ich oft in der Software feststellen, dass Teile des Codes ich mit meinem heutige Wissen nicht mehr so umsetzen würde....also das Wissen wächst automatisch.


    Gruß
    Matthias

  • Zitat

    Ist es möglich "professioneller Programmierer" als Autodidakt zu werden? Oder ist es wichtig Kurse zu besuchen oder gar eine Ausbildung zu machen?


    Auch als Autodidakt kann man "professioneller Programmierer" werden (Wobei sich die Frage nach der Definition stellt). Aber meiner Meinung nach geht es am besten/schnellsten, in einem oder wechselnden Teams zu arbeiten, da dadurch Routine, auch in verschiedenen, Bereichen kommt.

    ...Meine Meinung :)

  • Ich empfehle dir eine Ausbildung (auch wegen deiner Telefonfage in einem anderen Thread).


    Professioneller Programmierer kann man auch so werden. Professionell heisst nicht, dass man gut ist.
    Um gut zu werden, muss man als Autodidakt aber sehr beharrlich und fleissig sein.

  • Hi,


    in grösseren Projekten gibts unlängst Hilfsmittel, um professioneller zu arbeiten: unit tests.


    Was bedeutet das?
    Bevor man was programmiert schreibt man einen Testcase. Dieser Testcase enthält die Parameter für die benötigte Funktion, das erwartete Ergebnis, und dann vergleicht es das erwartete Ergebnis mit dem tatsächlichen Ergebnis. Auch wenn das keine Garantie für den Erfolg der zu programmierenden Routine ist, es ermöglicht auf jeden Fall automatisierte Tests. Und die bleiben bestehen, man kann bei weiteren Erweiterungen immer sofort sehen, ob die bisherigen Tests immer noch funktionieren.


    http://sebastian-bergmann.de/talks/2003-05-16-PHPUnit.pdf
    http://www.phpunit.de/

  • Hi,


    "professionell" ist immer so eine Sache - es ist schliesslich kein geschützter Begriff oder Titel wie "Doktor" oder "Diplom ...", man kann keine Ausbildung zum "Profi" machen und soetwas wie einen "Meister" gibt es für Softwareentwicler auch nicht. Von daher ist das immer ein sehr subjektiver Eindruck - jeder kann das über sich sagen.


    http://thedailywtf.com/Article…the-Possible-Answers.aspx


    Aber wie schon erwähnt ist es einfach viel Erfahrung die einen reifer macht. Und das kann man sich auch im Selbststudium beibringen. Codeschnipsel zusammensuchen ist mMn nicht sinnvoll. Erstmal lernt man dabei nichts, dadurch ist der Wiederverwendungswert eher gering, und meistens passen die Sachen auch nicht ins eigene Projekt. Daher sind effektive Lösungswege wesentlich wertvoller als reiner Code.


    MfG, Christian.

  • Ein anderes, aber ähnliches Beispiel - Tanzen!


    Beim Tanzsport ist das so - ab dem Moment, wo man Tanzen beruflich macht und Geld damit verdient, ist man "Professional".


    Dabei ist es total egal, ob der Tänzer wirklich gut tanzen kann oder ein Grobmotoriker ist.


    Ergo? "Professionell" sagt garnichts über den Menschen aus, der mit PHP, C oder sonst irgendeiner Sprache entwickelt. ;)

    My software never has bugs. It just develops random features ... :D
    [FONT="System"]
    » DevShack - die Website des freien Webentwicklers Boris ;)


  • Interessanter Blickwinkel. Denn wenn ich mir beispielsweise auf Eurosport das Tanzen ansehe, so gefällt mir nicht alles was ich da sehe. Obwohl ich das Tanzen an sich mag.

  • Hi netzor,


    Probier ein Framework zu erlernen. Im ZEND Framework kannst du gut lernen um dich an bestimmte konventionen zu halten (object orientiert, MVC)


    Es gibt genug gute tutorials um OOP & ZEND. Hier im Forum wird dir natuerlich auch professionell geholfen...


    gr Volkan

    bythewaythewebsuxgoofflineandenjoytheday