Ich programmiere jetzt seit ungefähr neun Monaten und habe mir Python, PHP und Javascript beigebracht.
Ich möchte in diesen Sprachen besser werden - ich kann etwas raushacken, aber viele Dinge wie OOP, die effektivste Verwendung von Listen usw. gehen mir verloren.
Was sind die besten Möglichkeiten, um ein "erfahrener" Programmierer zu werden? Kommt es auf die Nuancen der Sprache an oder ist es allgemeiner? Gibt es eine Mathematik, die ich daneben lernen sollte? Offensichtlich hängt viel davon ab, was Sie damit machen möchten - bisher habe ich hauptsächlich kleine interne Anwendungen sowie Webprogrammierung durchgeführt. Wie erfahre ich etwas über gutes Programmdesign?
php
javascript
python
Jack Seskatchi
quelle
quelle
Antworten:
Die einzige Lösung ist Erfahrung . Sie werden ein Experte, wenn Sie viel (wie wirklich viel ) in diesen Sprachen codiert haben . Wenn Sie Projekte entwickeln, werden Sie Probleme haben, also müssen Sie die Lösungen finden, und eines Tages werden Sie genug Lösungen für Probleme gesehen haben, die Sie selbst als Experten bezeichnen werden .
Codieren, Lesen von Code, Überprüfen von Code - all dies hilft Ihnen dabei, mit einem guten Design zu codieren. Sie können sich nicht nur auf einen Codeausschnitt verlassen, den Sie im Internet sehen, um zu sagen, dass Sie wissen, was das gute Design für das ist, was Sie erreichen möchten. Sie müssen sich viele davon ansehen, um zu wissen, welche Lösung für Ihr Problem am besten geeignet ist.
quelle
Fachwissen ist wie Freundschaft ein Produkt der Zeit. Mein Lieblingszitat zu diesem Thema (ich vergesse die Quelle):
"Gutes Urteilsvermögen ist das Ergebnis von Erfahrung. Erfahrung ist das Ergebnis von schlechtem Urteilsvermögen."
Setzen Sie die Stunden ein, studieren Sie Ihr Handwerk. Streben Sie nicht nur nach sofortigen Lösungen, sondern auch nach Schönheit und Effizienz.
quelle
Zunächst ist es wichtig, die Programmierung auf agnostischer Ebene zu verstehen. Die Kenntnis der Prinzipien, Konzepte, Methoden und dergleichen wird Ihnen langfristig helfen. Hier sind einige Links zu guten Büchern, die Ihnen helfen sollen:
Bücher:
Clean Code: Ein Handbuch für agile Software-Handwerkskunst
Code Complete (2. Ausgabe) von Steve McConnell
Der mythische Mannmonat
Entwurfsmuster: Elemente wiederverwendbarer objektorientierter Software
Denken Sie daran, wenn Sie küssen, ist es auch besser trocken, wenn Sie eine festere Beziehung zur Programmierung wünschen . :) :)
quelle
1) Du bist am richtigen Ort. Community-Foren wie der Stapelaustausch sind eine hervorragende Möglichkeit, Informationen zu finden.
2) Finden Sie OOP heraus, bevor Sie fortfahren. Dies ist eine Notwendigkeit, bevor Sie von der Skripterstellung zur fortgeschritteneren Entwicklung übergehen. net.tutsplus.com ist eine gute Website als Referenz und ich habe diesen Leitfaden hier gefunden: http://net.tutsplus.com/tutorials/php/object-oriented-php-for-beginners/
3) Wenn Sie OOP gelernt und geübt haben, laden Sie ein Framework mit guter Dokumentation herunter und befolgen Sie die Anleitung "Erste Schritte" (ein Framework ist eine Sammlung von Tools, mit denen Sie sich schneller in einer Sprache entwickeln können). Symfony ist gut für PHP und Sie können der Anleitung hier folgen: http://www.symfony-project.org/getting-started/1_4/en/ . Sie haben auch ein "Jobeet" -Tutorial, dem Sie folgen können
4) Lernen Sie zusammen mit # 3 das MVC-Muster (Model View Controller). Dies ist ein beliebtes Programmiermuster, das in einer Vielzahl von Frameworks verwendet wird. Es ist ein Muss, wenn Sie vom Anfänger zum Fortgeschrittenen wechseln möchten.
Viel Glück!
quelle
Arbeiten Sie an einem Code-Projekt mit Programmierern, die besser sind als Sie
Protip: Dies scheint für alles zu funktionieren, was Sie verbessern möchten, nicht nur für Code!
Aber im Ernst, wenn Sie talentierte Leute finden, die bereit sind, Ihnen zu sagen, wenn Sie es falsch machen, versuchen Sie, mit ihnen an einem Projekt zu arbeiten.
Lesen Sie Dinge, die von Programmierern geschrieben wurden, die besser sind als Sie
Daveo hat einige gute Bücher verlinkt. Sie können auch viele Blogs finden, die von Leuten geschrieben wurden, die daran interessiert sind, bessere Programmierer zu werden (und normalerweise selbst ziemlich großartige Programmierer sind).
quelle
Ein erfahrener Programmierer zu sein, ist wahrscheinlich eine allgemeine Fähigkeit, Programmierprobleme, sowohl häufige als auch ungewöhnliche Aufgaben, zu begründen und zu lösen. Dies ist wahrscheinlich sprachunabhängig, aber ich würde sagen, dass Sie auch mit mindestens ein paar Programmiersprachen und deren Tools sehr fließend umgehen sollten .
Es gibt kein magisches Rezept, um Experte zu werden, außer mit harter Arbeit: Tutorials lesen, viel googeln, Experten zuhören, an Problemen arbeiten, viel programmieren, in bestehenden Projekten mit anderen Menschen arbeiten und im Allgemeinen viel Erfahrung aus der realen Welt sammeln .
All dies ist eine sprachunabhängige Beratung.
quelle
Es gibt natürlich mehrere Ansätze, die zum Erfolg führen. Wie bereits gesagt, ist Erfahrung die wichtigste, aber es hängt von Ihnen ab, wie viel Zeit Sie benötigen, um sich selbst als Experte zu bezeichnen. Die Zeitspanne wird jedoch in Jahren oder sogar Jahrzehnten gemessen.
Ich habe vor 15 Jahren angefangen, Programmieren zu lernen, und ich denke, die besten Verbesserungen meiner Fähigkeiten waren auf folgende Gründe zurückzuführen:
Der Druck ist schlecht. Behalten Sie gute Laune und vergessen Sie unlösbare Probleme heute, um morgen zu ihnen zurückzukehren (und fragen Sie sich, warum es am Tag zuvor so kompliziert schien).
Ich habe als Kind angefangen zu programmieren und niemand hat mich gezwungen, etwas zu lernen. Versteh mich nicht falsch: Du musst nicht als Kind anfangen, um eine Programmiersprache zu beherrschen. Ihre eigene Motivation - ohne sich zu zwingen, in zu kurzer Zeit ein unrealistisches Ziel zu erreichen - wird der Schlüssel zum Erfolg sein.
Sie müssen auch nicht wie Linus Ihr eigenes Betriebssystem schreiben. Es wird auch nicht erwartet, dass Sie eine erfolgreiche Website haben, die täglich von Hunderten von Benutzern besucht wird. Einfache Auszüge Ihrer Projekte zeigen (Ihr Chef, Ihr Kunde, Ihre Kollegen ...), dass Sie wissen, was Sie tun.
Bleib bei einem Thema, bis du es (fast) gemeistert hast. Lerne die Grundlagen.
Meisterschaft ist etwas, was nicht erreichbar ist. Es ist unwahrscheinlich, dass Sie alles wissen. Lernen Sie jedoch unbedingt die Grundlagen und unterschätzen Sie nicht die Konzepte von Programmiersprachen, Paradigmen oder bestimmten syntaktischen Regeln oder Best Practices.
Aber bitte: Akzeptieren Sie es nicht einfach, wenn Sie NIE oder IMMER hören oder lesen. Wenn jemand davon spricht, niemals etwas zu tun, zögern Sie nicht zu fragen, warum. Es gibt einen Grund, warum es Regeln gibt. Aber nur der Grund wird Ihnen sagen, ob es eine gute Sache für Ihre Situation ist oder nicht. Was in einer Sprache gut ist, kann in einer anderen problematisch sein.
Gib niemals auf.
Bleiben Sie nicht jahrzehntelang beim selben Thema. Nach 10 Jahren Javascript wird es nur sehr wenige Menschen geben, die Ihnen etwas Neues beibringen können. Aber in 10 Jahren wird niemand mehr über Javascript sprechen ... warum? Ah, jetzt hast du mich. Vorhersagen über die Zukunft sind immer fehleranfällig;)
Nach einigen Monaten oder Jahren des Sammelns von Erfahrung in einem Bereich werden Sie jedoch feststellen, dass das, was Sie lernen, nicht so viel sein wird wie zu Beginn Ihrer "Mission". Es wird eine Zeit geben, in der Leute anfangen, Sie um Hilfe zu bitten, wenn sie Probleme haben (echte Probleme, nicht die, bitte machen Sie meine Hausaufgaben).
Dies ist ein guter Indikator dafür, dass Sie eine Art Experte geworden sind. Fragen Sie sich an dieser Stelle, ob noch Potenzial besteht, sich zu entwickeln. Oder vielleicht gibt es etwas Neues, das Sie in die Hände legen möchten, aber niemand lässt es zu, weil Sie einfach das perfekte Huhn für diesen Käfig sind.
Geh mit deinen Freunden, deiner Frau, deinem Hund aus ...
Es wird Ihrem Geist eine Pause geben. Probleme wie Android vs. Iphone, Flash vs. Silverlight, App vs. Programm ... werden zu einer Frage dessen, was für Ihre Bedürfnisse am besten ist und nicht zum Zentrum Ihrer Existenz.
Ein soziales Leben (nicht mit Facebook verwechseln) hilft auch dabei, Ihre Soft Skills zu erhalten oder sogar zu verbessern. Wenn Sie wissen, wie Sie Ihre Kollegen dazu bringen können, der besten (nicht unbedingt Ihrer) Lösung zuzustimmen, kann dies mehr wert sein als die Kenntnis von Hunderten von Programmiersprachen.
Benutze dein Gehirn
Schreiben Sie mir in 10 Jahren keinen Brief, in dem Sie mir sagen, dass ich Ihr Leben durcheinander gebracht habe. Wenn Sie mit einer völlig anderen Strategie zufrieden sind oder herausfinden möchten, dass es sich lohnt, den Rest Ihrer Zeit damit zu verbringen, Landwirt oder Präsident der USA zu werden, tun Sie es.
quelle
Ich schlage vor, Mitglied von Websites wie Topcoder oder Usacogate zu werden , auf denen Sie Schritt für Schritt algorithmische Probleme lernen und lösen können. Wenn Sie beispielsweise eine Usacogate-Schulung absolvieren, werden Sie nicht zum Informatiker, aber Sie verfügen über eine Menge Fähigkeiten, um viele Probleme im wirklichen Leben anzugehen. Es bringt Ihnen das Testen bei und erfordert, dass Sie effiziente Lösungen bereitstellen.
Eine weitere Möglichkeit, mehr Erfahrung zu sammeln, besteht darin, eine Sprache eines anderen Paradigmas zu lernen. Zum Beispiel ist Haskell eine funktionale Programmiersprache. Wenn Sie es lernen, können Sie Probleme auch in anderen Sprachen aus einem anderen Blickwinkel betrachten. Zum Beispiel kann Python in einem sehr funktionalen Stil programmiert werden.
quelle
Im Gegensatz zu einigen Antworten ist Erfahrung nicht die einzige Voraussetzung, um ein "Experte" zu werden. Ich denke, die meisten Leute in jeder Branche (nicht nur im Programmieren) werden keine Experten auf ihrem Gebiet. Sie werden kompetent und effizient, aber sie werden nicht annähernd so gut wie sie sein könnten.
Der Grund ist, dass Erfahrung nicht genug ist. Sie benötigen kompetente Beratung. Sie müssen von einem Experten lernen, wie man Dinge macht.
Zum Glück gibt es viele Ressourcen für Programmierer, um Experten zu werden. Das wahrscheinlich beste ist Bücher. Eine weitere herausragende Ressource ist programmers.StackExchange.
Verbringen Sie die meiste Zeit damit, Code zu schreiben, aber verbringen Sie auch einen Teil damit, das Wissen aus Büchern wie Clean Code http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882 zu lesen und zu integrieren . Sie können die besten Bücher finden, indem Sie die Bewertungen bei Amazon analysieren, diese Website überprüfen und den Stapelüberlauf durchführen.
Wenn Sie genug Zeit investieren, um die Informationen in 2 oder 3 Büchern pro Jahr zu lernen und zu verwenden, werden Ihre Fähigkeiten erheblich verbessert. Finden Sie auch heraus, wie Sie alles, was Sie lernen, aufzeichnen und daran erinnern können. Andernfalls wird es schwierig sein, die Informationen wirklich zu kennen und zu verwenden.
Achten Sie auf die Themen, an denen erfahrene Programmierer interessiert sind: Entwurfsmuster, Komponententests, Berufswahl usw. Betrachten Sie die Welt (oder zumindest Ihren Job) aus der Perspektive eines erfahrenen Programmierers.
Wenn Sie eine Aufgabe zum Codieren erhalten, halten Sie inne und denken Sie eine Weile darüber nach. Stellen Sie sich einige Fragen. Was habe ich gelernt, das mir helfen kann? Was sind die Risiken? Was ist der beste Ansatz? Welche verschiedenen Algorithmen kann ich verwenden? Wie lange dauert die Ausführung des Programms? Was ist wahrscheinlich der CPU-Engpass? Welche Funktionen könnten geändert oder hinzugefügt werden?
Hoffe das hilft.
quelle