Ich arbeite seit Jahren mit PHP und habe ein sehr gutes Verständnis der Sprache erlangt. Ich habe viele fortgeschrittene und nicht so fortgeschrittene Systeme entwickelt, die sehr gut funktionieren.
Das Problem, auf das ich stoße, ist, dass ich nur lerne, wenn ich einen Bedarf für etwas finde, das ich vorher noch nicht gelernt habe. Dies veranlasst mich, nach Lösungen und anderem Code zu suchen, der das Problem behandelt, und so etwas über eine neue Funktion oder Struktur zu lernen, die ich zuvor noch nicht gesehen habe. Auf diese Weise habe ich viele meiner besseren Techniken gelernt (z. B. das Lernen von Kursen, die von Amazon, Google oder anderen großen Unternehmen angeboten werden).
Das Hauptproblem dabei ist das Konzept, etwas nicht lernen zu können, wenn man nicht weiß, dass es existiert. Zum Beispiel habe ich mehrere Monate programmiert, um etwas über die empty()
Funktion zu lernen , und ich habe einfach die Zeichenfolgenlänge strlen()
überprüft, um nach leeren Werten zu suchen.
Ich beginne jetzt damit, immer größere Systeme aufzubauen, und habe angefangen, Blogs wie highscalability.com zu lesen, und habe MySQL-Replikations- und Serverdaten für die Skalierung untersucht. Ich weiß, dass die Struktur Ihres Codes sehr wichtig ist, damit vollständige Systeme funktionieren.
Nachdem ich kürzlich einen Blog über die Struktur von reddit gelesen hatte, stellte ich die Frage, ob es Standard- oder "akzeptierte Systeme" gibt.
Ich habe mich mit Frameworks befasst (ich habe Kohana verwendet, was ich bedauert habe, aber entschieden, dass PHP-Frameworks nichts für mich sind) und ich bevorzuge meine eigene Funktionsbibliothek, anstatt ein Framework zu haben.
Meine derzeitige Struktur ist eine Mischung aus WordPress, Kohana und meinem eigenen Wissen.
Die Möglichkeiten, die ich als potenziell vorteilhaft ansehen kann, sind:
- Blogs lesen
- Lesen Sie die Tutorials
- Arbeite mit jemand anderem
- Ein Buch lesen
Was wäre der beste Weg, um ein sehr guter Systementwickler zu werden?
quelle
Sie bezeichnen eine "Funktionsbibliothek" und ein "Framework" als unterschiedliche Konzepte (gut!). Warum also nicht versuchen, den Einsatz ein wenig zu erhöhen und diese Funktionsbibliothek in ein Framework umzuwandeln? Wohlgemerkt, dies ist eine großartige Möglichkeit zu lernen, aber nicht die beste Möglichkeit, marktfähige Fähigkeiten zu erwerben;)
Es ist auch eine großartige Möglichkeit, falsch zu lernen. Bevor Sie beginnen, müssen Sie einige Nachforschungen anstellen.
Die "must have" -Funktionen
Es gibt bestimmte Funktionen, die fast alle Frameworks haben, und es gibt einen Grund dafür. Erforsche sie; Finden Sie heraus, warum sie vorhanden sind und welche Variationen sie haben. Wählen Sie aus, welche Implementierungen Sie in Ihr Framework aufnehmen möchten.
Funktionen von Nicht-PHP-Plattformen, die Sie verstehen und emulieren möchten
include
Module in Klassen erstellen können ?Ich habe keine Ahnung, was dich interessiert, also höre ich dort auf.
Veröffentlichen Sie es!
Dieser Teil ist wichtig, weil Nathan Recht hat : Ihre Arbeit muss von anderen Menschen gesehen, herausgefordert, kritisiert und korrigiert werden. Lassen Sie diese Lampe nicht unter einem Scheffel - sie muss gesehen werden. Setzen Sie es auf Google-Code oder SourceForge oder so, und wenn die Leute sich die Mühe machen, es ernst zu nehmen, müssen Sie es ernst nehmen. Sie müssen Unit-Tests und Regressionstests durchführen. Sie müssen die Versionskontrolle verwenden. Sie müssen es gut kommentieren, mit einem großen
/* header comment */
Rand oben in jeder Datei und nützlichen Dokumenten generierenden Kommentaren für jede Klasse und jedes Mitglied davon.Zusammenfassung
Wenn Sie dies alles tun, können Sie (auf hohem Niveau) mehr über andere Plattformen erfahren. Sie können definitiv als PHP-Entwickler "ding 40". Sie können mehr über Unit-Tests erfahren. über Regressionstests. Sie können lernen, wie man effektiv dokumentiert.
Garantiert wird Ihr Framework "eigenwillig und wahrscheinlich blöd", aber Sie können viel lernen, wenn Sie es schreiben. Denken Sie daran, dass das Framework kein Produkt ist. Es ist eine Art Reise.
quelle
quelle
Hier einige Gedanken:
Probieren Sie verschiedene Dinge aus. Eine neue Sprache lernen. Manchmal, wenn Sie diese andere Sprache lernen, werden Sie in beiden Fällen besser.
Tragen Sie zu einem Open-Source-Projekt bei.
Hohe Skalierbarkeit und PHP / MySQL sind keine Freunde. Es gibt heutzutage Technologien, die genau dafür gebaut wurden. node.js und Redis, um ein paar zu nennen.Beantworten Sie Fragen in SO. Die Probleme anderer Menschen können dazu führen, dass Sie über den Tellerrand hinaus denken und den Versuch, zu helfen, verbessern. Außerdem tun Sie jemandem etwas Nettes an.
[werde versuchen, hier hinzuzufügen, wenn ich an etwas anderes denke, das ich gerade beim Kaffeetrinken aufgewacht bin: D]
quelle
Lernen Sie, das, was Sie bereits wissen, anders zu machen. Beispiele:
quelle
Vielleicht sollten Sie sich noch einmal mit Frameworks befassen. Ich würde vorschlagen, dass Sie sich das Zend Framework ansehen, da es eher einer Bibliothek von Komponenten ähnelt, die Sie nach Belieben verwenden können, und nicht wirklich eine starre Struktur auferlegt, der Sie folgen müssen (wie z einige andere Frameworks tun dies), obwohl es ein (ziemlich vernünftiges) Projektlayout vorschlägt. Ein guter Ausgangspunkt wäre das Überleben des tiefen Endes .
Dinge, die Sie noch nicht erwähnt haben und die sich als nützlich erweisen könnten (insbesondere bei größeren Projekten):
quelle
Einfach: mach es . Bedürfnisse werden dich lernen lassen. Finden Sie einen Weg, sich an immer weiter fortgeschrittenen Projekten zu beteiligen, sei es kommerziell oder Open Source. Es gibt keine andere Möglichkeit, etwas wirklich zu lernen.
quelle
Ich würde mich Diskussionsrunden anschließen und versuchen, die Probleme anderer zu lösen. Manchmal gibt es ziemlich herausfordernde Fragen, die Sie zu Recherchen zwingen. Wenn Sie es nicht beantworten können, können Sie auf jemanden warten, der es kann, und dann etwas lernen.
Lernen Sie von Frameworks. Ich rolle auch meine eigenen, da die meisten Frameworks da draußen ziemlich langsam sein können. Obwohl schnell genug für die meisten Websites da draußen.
Ich würde auch empfehlen, sich die PHP-Bibliothek von Facebook anzusehen. Sie machen dort einige interessante Sachen.
quelle
Das Beste, was Sie tun können, ist, ein Buch über effiziente Algorithmen zu kaufen . Im Leben eines jeden Informatikstudenten kommt eine Zeit, in der er diese studieren muss. Die Probleme, die dort diskutiert / gelöst werden, sind Abstraktionen von fast jedem Problem der realen Welt, mit dem Sie jemals konfrontiert werden könnten.
Abgesehen davon ist das Lesen von Blogs darüber, wie andere es gemacht haben, vollkommen in Ordnung, da es Ihnen hilft zu verstehen, wie Sie die Prinzipien effizienter Algorithmen praktisch anwenden (und vielleicht sogar implementieren).
Grüße.
quelle
Über die Zusammenarbeit mit anderen Entwicklern kann nicht genug gesagt werden. Ich kenne vor allem 3 Entwickler, 2 mit denen ich täglich zusammenarbeite und die mich mit ihrem Wissen umhauen. Ich frage sie nach ihrer Meinung zu allem, was ich tue, nicht weil ich meine eigenen Ideen errate, sondern weil ich andere Ideen hören möchte, insbesondere von Leuten, die ich als Entwickler respektiere. Ich lerne mehr von diesen Menschen als jedes andere Mittel. Wenn Sie keinen Zugriff auf andere leitende Entwickler haben, posten Sie auf jeden Fall in SO- oder anderen Entwicklerforen und fragen Sie die Leute nach ihrer Meinung. Sie werden im Allgemeinen keine neuen Techniken / Methoden / Funktionen lernen, es sei denn, Sie sehen, dass sie verwendet werden (woher wissen Sie, wonach Sie suchen müssen, wenn Sie nicht wissen, dass es sie gibt?)
Nehmen Sie auch, wie bereits erwähnt, an einer Betriebssystem-App teil. Gehen Sie zu sourceforge und suchen Sie ein Projekt, das einen Entwickler benötigt. Oder laden Sie eine App herunter und versuchen Sie, ein Plugin dafür zu schreiben (ich schreibe ein Plugin für Invision 3.0 atm und lerne ein paar Dinge.)
Hoffentlich hilft das.
quelle
Lesen Sie den Code anderer Leute. Sie haben jetzt Ihre eigene Bibliothek, können jedoch beim Lesen der Quelle anderer Anwendungen einige Informationen erhalten. Dann fragen Sie sich das Warum. Sei der Blogschreiber statt der Leser. Betonen Sie außerdem mehr den Programmierer als die Sprache. Schauen Sie sich lieber Lösungen an, die ein Problem bereits lösen, und versuchen Sie, sie mit Ihrem eigenen Wissen zu replizieren. Viel Glück und viel Spaß!
quelle
Der Ansatz, den Code anderer Programmierer zu betrachten, ist definitiv ein guter Weg, um "gute" oder "schlechte" Praktiken zu lernen. Nachdem Sie anderen Code gelesen haben, entwickeln Sie ein "Gefühl" für guten Code.
Ich empfehle auf jeden Fall Frameworks wie Zend Framework, Symfony, CakePHP oder Agavi, da sich viele Mitwirkende diesen Code ansehen und ihn ständig weiterentwickeln, um die "ideale" Lösung zu finden (die natürlich nie erreicht wird ...);) Sie können immer noch machen die Entscheidung, eigene Klassen zu entwickeln, anstatt die, die das Framework bietet ...
Mit einem so langen PHP-Hintergrund könnten Sie einen Beitrag zu einem Open Source-Framework leisten. Gespräche mit anderen Entwicklern bringen Sie schneller voran.
Das Zeigen Ihres Codes für andere und das Bitten um konstruktives Feedback hat den gleichen Effekt. Sie wissen nie, wie gut Sie sind, bis Sie Ihre Fähigkeiten mit anderen vergleichen. Immer konstruktiv. Dies wäre ein natürlicher Prozess, wenn Sie zu einem Open-Source-Framework beitragen würden. ;)
quelle
Sie sollten mit Beispielen arbeiten und mit ihnen arbeiten, wenn Sie sie erweitern, damit Sie lernen, wie Sie Beispiele erweitern, indem Sie sie funktionaler machen und mehr Funktionen bereitstellen.
Es ist jedoch gut, etwas zu erstellen, das Sie bisher in PHP gelernt haben. Um mehr zu üben, sollten Sie so etwas wie ein Buchungssystem usw. erstellen. Früher oder später können Sie mehr erweitern, indem Sie mehr lernen, wenn Sie mehr in PHP lernen, was dazu führt, dass Ihre Entwicklung viel besser wird.
quelle
Sie können Ihr Unternehmen fragen, ob es Ihnen eine Zend PHP-Zertifizierungsprüfung zahlen kann. Wenn Sie für diese Prüfung studieren, müssen Sie PHP gut kennen und trainieren, indem Sie einen Großteil der Dokumentation, den Zend-Studienführer und auch das Training mit Scheinprüfungen lesen. Es ist eine sehr effiziente Art der Verbesserung und sieht in einem Lebenslauf ziemlich gut aus.
quelle
"meine eigene Funktionsbibliothek" == "ein [eigenwilliges und wahrscheinlich blödes] Framework".
Ich empfehle Symfony zu lernen, da die Entwickler anscheinend konsequent danach streben, alles nach "Best Practices" zu machen ... aber Sie könnten wahrscheinlich viel von jedem der gängigen Frameworks lernen.
Schreiben Sie kein eigenes Framework. Bitte.
quelle