Professioneller „PHP-Programmierer“

Frage:<br />
<blockquote>Wie arbeitet der <strong>professionelle PHP-Programmierer</strong>? 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?<br />
<br />
Oder verläuft auch professionelle Programmierung nach dem Schema Learning-By-Doing plus Verständnis objektorientierter Programmierung?</blockquote><br />
Antwort von mir:<br />
<blockquote>Erst mal ist es egal, ob man PHP, Java, C, C#, … "Programmierer" (in Anführungsstrichen, da PHP eine Skriptsprache ist, also Skripter) ist.<br />
<br />
Erst einmal plant man sein Programm. Man hat eine Idee, zerlegt es in kleine Teilbereiche (wichtig für OOP, Entwurfsmuster, …).<br />
Sehr viel Zeit geht in die Planung. Das eigentlich programmieren/skripten ist dann nur noch ein kleiner Teil, wenn die Planung gut gemacht wurde.<br />
Ggf kommt dann das Debugen, wobei die kleinen Einzelkomponenten schon in der Entstehung einzeln unabhängig getestet werden. Tests werden vor dem Programmieren erstellt.<br />
<br />
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.<br />
<br />
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.<br />
Es hat also weniger mit "überdurchschnittlich intelligent" als mit fleissig und Übung zu tun.<br />
<br />
<em>„sodass er beim zweiten Durchsehen eines Beispiels den Code im Langzeit-Gedächtnis hat und von nun an Ähnliches ohne Nachsehen programmieren kann?“</em><br />
Wie oben schon angedeutet, löst man öfter auftretende Probleme mit Entwurfsmustern. Diese hat man sich mit der Zeit gemerkt.<br />
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<br />
(Problemstellung google und mir verschiedene Codefragmente zusammensetze) bringt also nicht viel.<br />
<br />
Fazit:<br />
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 <img src="http://blog.guin.de/templates/default/img/emoticons/laugh.png" alt=":-D" style="display: inline; vertical-align: bottom;" class="emoticon" /></blockquote><br />
Frage 2:<br />
<blockquote>Ist es möglich "professioneller Programmierer" als Autodidakt zu werden? Oder ist es wichtig Kurse zu besuchen oder gar eine Ausbildung zu machen?</blockquote><br />
… naja… Professionell muss ja nicht bedeuten, dass man gut ist… also sollte man die Frage mit Ja beantworten können.<br />
<br />
Manchmal trifft man in Foren schon auf seltsame Menschen. Den Link zum entsprechenden Artikel habe ich absichtlich nicht angegeben, um den Fragesteller nicht zu gängeln.