Ich plane, in 6-12 Monaten nach NY zu ziehen, also bin ich gezwungen, einen neuen Job zu finden. Wenn ich vorhabe, mein Leben in einer anderen Stadt zu beginnen, ist es wahrscheinlich auch ein guter Zeitpunkt, um über Veränderungen in der Karriere nachzudenken.
Ich habe viele verschiedene Meinungen zu PHP vs .Net vs Java gefunden und dies ist hier nicht das Thema. Ich möchte nicht neu darüber streiten, welche Sprache besser ist. Die Kenntnis einer Programmiersprache ist nicht das Wichtigste für Softwareentwickler. Um ein wirklich guter Entwickler zu sein, müssen Sie OOP, Entwurfsmuster, Tests ... kennen und eine Sprache ist nur ein Werkzeug, um Dinge in die Tat umzusetzen.
Also zurück zu meiner Frage. Ich habe gemischte Erfahrungen in der IT - 1 Jahr als IT-Supporter (Windows-Administration und -Support), ungefähr 2 Jahre Erfahrung in der Embedded-Programmierung (VB.Net 2005) und seit 2 Jahren arbeite ich mit PHP / MySQL. Ich habe mit dem Magento-Webshop gearbeitet, bei einigen Projekten in Symfony mitgewirkt und einige Drupal-Sites geändert.
Meine Hauptanliegen sind die folgenden:
- Verbessere ich meine PHP-Kenntnisse weiter, um beispielsweise einige wichtige PHP-Frameworks wie Zend zu erlernen, und Symfony erhält möglicherweise eine PHP-Zertifizierung.
- Oder beginne ich .NET oder Java zu lernen. .NET ist mir vertrauter, daher werde ich es wahrscheinlich wählen, wenn ich zwischen .NET und Java wählen möchte (oder Sie könnten mich davon überzeugen, Java zu wählen :).
In beruflicher Hinsicht weiß ich nicht, was die beste Wahl ist. Das Erlernen eines neuen Frameworks und einer neuen Sprache ist zeitaufwendiger als das Verbessern meiner vorhandenen PHP-Kenntnisse. Aber mit .NET haben Sie viele Möglichkeiten (Windows 7 Phone-Entwicklung, Silverlight, WPF) und möglicherweise größere Chancen, bessere Jobs zu finden.
PHP-Jobs sind meiner Recherche zufolge weniger gut bezahlt als .NET (korrigieren Sie mich, wenn ich falsch liege). Aber wenn ich jetzt mit .NET anfange, bin ich nur ein Anfänger und mein Gehalt wird niedrig sein. Ich brauche mindestens 2+ Jahre Erfahrung in einer Sprache, um überhaupt einen Job zu finden, der mehr als 50-60.000 US-Dollar in NY zahlt. Mein Hauptziel in den nächsten 2-3 Jahren ist es, einen Job in der Kategorie $ 60-80.000 zu finden. Versteht mich nicht falsch, ich jage nicht nur Geld, sondern Geld ist ein wichtiger Faktor, wenn Sie versuchen, eine Familie zu gründen.
Ich bin 27 Jahre alt und habe das Gefühl, dass es in Bezug auf meine Karriere nicht viel Raum für falsche Entscheidungen gibt. Ratschläge sind daher sehr willkommen.
Aktualisieren
Vielen Dank, dass Sie sich die Zeit genommen haben, mir bei meinem Problem zu helfen. Alle Antworten und Kommentare waren sehr hilfreich. Ich habe mich entschieden, bei PHP zu bleiben, aber auch C # und Silverlight 4 zu lernen. Wir werden sehen, wohin mich das Leben führen wird.
quelle
Antworten:
Ich bin 51 Jahre alt und habe seit meinem ersten bezahlten Auftritt 1987 mindestens 15 Sprachen und / oder Frameworks verwendet.
Gesundheit.
Ich bin nie ins Management gegangen, weil ich nicht wollte, aber ich weiß, wie man programmiert und wie man Teams motiviert und guten Code liefert. Sie müssen an den Fähigkeiten der Menschen arbeiten und nach interessanten Arbeiten suchen, die Sie ausdehnen. Ich habe nie aufgehört zu lernen oder Spaß zu haben, aber es gab Zeiten, in denen ich unterwegs gewesen wäre, als ich hätte anhalten können - aber nicht codieren, reisen.
Solange du deinen Lebensunterhalt verdienen und deine persönlichen Verpflichtungen erfüllen kannst, ohne deine Grundsätze zu gefährden, solange du Spaß an dem hast, was du tust (ein Luxus, den die Generation meiner Eltern nicht hatte), mache einfach weiter.
.Net und Java sind in der Regel korporativ (weil sie teuer sind, um nützliche Dinge zu erledigen, aber sehr gut skalierbar), PHP ist in der Regel ein Startup, ich mache Ruby (normalerweise Startups, die aus irgendeinem Grund aus Designstudios stammen) für viele Leute als unabhängiger. Wenn Sie sich an PHP halten, lernen Sie das OO-Zeug, denn ich denke, es wird endlich so, wie die Leute Dinge tun, obwohl es eine etwas bessere Neuimplementierung dessen ist, was Sie mit Java haben, und sie hätten es viel dynamischer machen können. Menschen, die Python spielen und reisen möchten, können am Ende allerlei interessante wissenschaftliche und spielerische Dinge auf der ganzen Welt machen. Perl ist auch noch ein Läufer und hat ein ähnliches Profil.
Vergessen Sie die Sprache, die Auswahl und die Branche, die Sie mögen, wählen Sie ein Unternehmen aus, das von Menschen geführt wird, und haben Sie Spaß daran, Menschen, die es zu schätzen wissen, einen Mehrwert zu bieten. Du wirst es nicht bereuen.
quelle
Was in aller Welt hat die Wahl der Programmiersprache mit Ihrer Karriere zu tun?
Diese Frage ist wie die folgende: "Ich habe zwei Möglichkeiten, um einen Arbeitsplatz zu finden. Sollte ich bei dem arbeiten, bei dem der Chef einen norwegischen Akzent hat, oder bei dem der Chef einen spanischen Akzent hat?"
Es gibt viel wichtigere berufliche Überlegungen.
Diese Liste könnte stundenlang weitergehen. Die Wahl einer Programmiersprache ist für die Karriere eines Programmierers genauso relevant wie die Wahl, ob Sie Ihr Haar nach links oder rechts kämmen. Es ist alles Software-Entwicklung, egal welche Programmiersprache Sie gerade sprechen.
quelle
Lernen Sie so viele Sprachen wie möglich, vorzugsweise mindestens eine aus jedem Hauptentwicklungsbereich.
In jedem dieser Abschnitte erfahren Sie etwas über die Grundlagen der Softwareentwicklung. Darüber hinaus müssen Sie verschiedene Designansätze (OO, funktional, datengesteuert), verschiedene Teamarbeitsmethoden (agil, tdd, im Vergleich zu starreren Typen), verschiedene Plattformen und verschiedene Bereitstellungsmechanismen (nativ) kennenlernen Framework-basiert, Web). Die Liste geht weiter. Sprachgewandtheit ist nur ein winziger Teil des Ganzen.
Für all diese Dinge muss man mindestens ein echtes Produkt herstellen, um es zu beherrschen.
Einige Leute werden Ihnen sagen, dass Sie sich auf eine Technologie spezialisieren müssen (PHP, .Net, Java) und eine Karriere aufbauen müssen, die sich weitgehend auf diese konzentriert, um Fortschritte zu erzielen. Dem stimme ich überhaupt nicht zu. Ich nehme einen Entwickler, der ein paar Mal mit verschiedenen Plattformen und Technologien unterwegs war, während er 10 Jahre lang an einem Tag der Woche eine Sache gemacht hat. Der Grund dafür ist, dass sich die Technologie jedes Jahr ändert und der Entwickler, der in der Lage ist, eine neue Technologie zu erlernen, die API zu lesen und ihre Erfahrungen allgemeiner anzuwenden, als nur zu wissen, dass die Bibliothek auswendig funktioniert, in der Zukunft weitaus produktiver sein wird langfristig. Okay, so dass ein 10-jähriger .Net-Veteran in .Net schneller aus den Startlöchern geraten wird, aber dieser frühe Vorsprung geht in etwa einem Monat verloren. Es'
quelle
Ich würde vorschlagen, nach einem PHP-Job zu suchen, weil Sie das am besten können.
Ich würde Ihnen auch vorschlagen, sich mit den neuen Technologien vertraut zu machen, die Sie erlernen möchten, damit Sie eventuell nach Jobs suchen können, die diese Technologien verwenden. Machen Sie dies jedoch nicht innerhalb einer so kurzen Frist, da Sie feststellen, dass diese Dinge sehr umfangreich sind und die Arbeitgeber dies erwarten Sie wissen genug von diesen Giganten, um produktiv zu sein. Das erfordert Zeit und Übung . Unterschätzen Sie nicht die Zeit und die Menge an Übung, die Sie tun müssen.
Im Sun Java-Lernprogramm erfahren Sie, wozu potenzielle Mitarbeiter in der Lage sein sollten, "Ich kann in Java programmieren" . Ich würde erwarten, dass Sie mit mindestens der Hälfte der aufgelisteten Konzepte vertraut sind, wobei Vertrautheit bedeutet, dass Sie es in einem von Ihnen geschriebenen Programm verwenden und korrekt verwenden können . Ich würde davon ausgehen, dass das Studium länger als 6 Monate dauert, um dieses Niveau zu erreichen.
quelle
Ich mag es nicht, wie ein Troll zu wirken, aber die Sprache, die Sie lernen sollten, ist Englisch. Es gibt eine Reihe von Fehlern in Ihrem Beitrag und das sieht nur schlampig aus. Wenn ich einstellen würde und das Ihr Lebenslauf wäre, wäre es mir egal, welche Programmiersprachen Sie zu kennen sagten, ich würde davon ausgehen, dass Ihre Schlamperei mit der englischen Sprache sich auf Ihre Programmierarbeit auswirken würde.
Es schien nicht so, als ob Sie Englisch als Zweitsprache beherrschen (ich könnte mich natürlich irren), aber es gab genug Grammatik- und Rechtschreibfehler, um den meisten Personalchefs eine Pause zu machen. Da sie zuerst nur Ihr geschriebenes Wort sehen, müssen Sie dieses korrigieren.
quelle
Die langfristige Antwort auf diese Frage ist im Grunde das, was unser geschätzter Gastgeber (Joel Spolsky) und Steve Streeting sagten. Beim Programmieren geht es im Kern nicht um Sprachen, sondern darum, Probleme mithilfe des Computers zu lösen. Dies ist ein Handwerk, das im Laufe der Zeit erlernt und erarbeitet und überdacht werden muss. Zu wissen, wie man programmiert, macht einen nicht zum Programmierer.
Aber Sie fragten nach einem pragmatischen und zeitkritischen Thema. Was sollten Sie JETZT tun?
Ich schlage vor, dass Sie bis zum Umzug in PHP graben. Grabe dich hinein, hart, wirklich hart, 20 Stunden pro Woche, ohne hart zu arbeiten. Mit PHP ist es ziemlich einfach. Holen Sie sich ein Hosting-Konto und eine Domain und beginnen Sie mit der Erstellung von Apps. Mit gezielter Anstrengung sind 6 Monate eine Ewigkeit. In dieser Zeit wirst du wirklich gut darin sein. Dies wird Ihnen helfen, einen guten Job in New York zu finden und wird Sie sehr wahrscheinlich zu einem besseren Programmierer machen.
Übrigens, wenn Sie es noch nicht wussten, gibt es eine IT-Einsatzstelle in der StackExchange-Familie.
Dann, wenn sich der Lebensübergang ein wenig beruhigt hat, folgen Sie Mr. Streeting 'Playbook und lernen Sie das Handwerk des Programmierens und nicht das Codieren. Verwenden Sie etwas Zeit außerhalb der Arbeit, um auf anderen Plattformen und mit anderen Tools zu lesen und zu arbeiten.
quelle
Ich denke, der wichtigste Punkt ist, dass ein Softwareentwickler irgendwann zu dem Zustand gelangen sollte, in dem die Sprache für die jeweilige Aufgabe weitgehend unerheblich ist, außer in ihren Grenzen.
Ob Sie eine Sprache beherrschen oder nicht, sollte keinen Unterschied machen, vorausgesetzt, Sie haben ein Handbuch, um nur für den ersten Tag oder so zu beschleunigen, während Sie sich zurechtfinden.
Allerdings sind proprietäre Sprachen in der Regel weniger dokumentiert und enthalten weniger Beispiele im Internet. Daher ist es schwieriger, sich daran zu gewöhnen und Probleme zu bereiten, wenn Sie Ihre Arbeit mit nach Hause nehmen möchten.
quelle
Mein Rat ist, einen Job zu finden, der das tut, woran Sie interessiert sind, und Spaß daran zu haben. Wenn Sie PHP mögen, entwickeln Sie Ihre PHP-Kenntnisse weiter. Es ist viel einfacher, Fähigkeiten zu erlernen und zu entwickeln, wenn Sie etwas tun, an dem Sie interessiert sind.
Haben Sie sich schon einmal .NET oder Java angesehen? Wenn nicht, könnte das bedeuten, dass Sie sich nicht für diese Sprachen interessieren, aber vielleicht könnten Sie eine Woche oder so damit verbringen, sich die einzelnen Sprachen anzuschauen und selbst zu sehen, ob Sie an beiden interessiert sind.
quelle
Kurzfristig; Ich weiß nicht, wie die Einstellungspraktiken in den USA aussehen, aber wenn man bedenkt, dass Sie in 6 bis 12 Monaten umziehen, würde ich vorerst in Betracht ziehen, bei PHP zu bleiben, da Sie zwei Jahre Erfahrung damit haben.
Meine Erfahrung hier (in den Niederlanden) ist, dass sich Unternehmen in der Regel sehr kurzfristig auf Technologien und Framework-Erfahrungen konzentrieren. Die Sprache ist wirklich nicht -it-, auch wenn sie nach " 3 Jahre C # -Erfahrung " fragen , meinen sie " 3 Jahre Erfahrung mit den Framework- / Klassenbibliotheken und Tools, die Sie mit C # verwenden würden ".
(Ansonsten ist es mir ein Rätsel, warum sie jemanden einstellen wollen, der 3 Jahre braucht, um C # -Syntax und Sprachfunktionen zu erlernen. Es hört sich so an, als würde ich niemanden einstellen wollen.)
Neue Sprachen lernen; statisch, dynamisch, funktional ist von großem Wert, wenn es darum geht, Ihre Perspektiven zu erweitern. Das Erlernen der entsprechenden Klassenbibliotheken und die Vorgehensweise in dieser Sprache erfordern jedoch Erfahrung.
Ich würde empfehlen, zu einer Entscheidung zu kommen, einen Technologiestapel auszuwählen und ihn gründlich zu lernen. Nutzen Sie die anderen Umgebungen als Inspiration.
Natürlich kommt auch die persönliche Präferenz ins Spiel. Zum Beispiel, obwohl es genügend Markt dafür gibt, würde ich niemals einen PHP-Job akzeptieren: -PI wähle einen Stack und ich suche danach.
Wenn Sie langfristig Karriere machen möchten, sollten Sie über das Codieren hinaus (letztendlich dreht sich alles um das Lernen und Lesen und / oder Überfliegen von Dokumentationen) und die Technologie des Tages und mehr um Soft Skills und dergleichen. Technologien kommen und gehen ziemlich schnell. Natürlich gibt es viel zu lernen, wenn es um bewährte Praktiken und allgemeineres Know-how geht. Leider werden sie meiner Erfahrung nach auf dem Arbeitsmarkt nur selten gesucht.
quelle
Ich denke, dass die Leute oft Programmiersprachen und Frameworks / Technologie-Stacks mischen. Das Erlernen einer neuen Sprache ist relativ einfach, bei großen Technologien jedoch viel schwieriger. Ich bin mit einigen Antworten einverstanden, dass das Wichtigste Ihre gesamte Programmier- / Problemlösungserfahrung ist, aber ich glaube nicht, dass irgendjemand eine komplett neue Technologie in 1 Woche VERSTEHEN kann.
Sicher, ein großer Teil der Entwickler hat noch nie ein einziges technisches Buch gelesen und die Bausteine der von ihnen verwendeten Technologien nicht verstanden. Sie hacken sich einfach aus den Problemen heraus und sind sehr "erfolgreich". Ich habe meine Karriere in PHP begonnen, ohne zu verstehen, wie HTTP zuerst funktioniert. Einige Arbeitgeber, die ich am meisten respektiere, erwarten jedoch ein tiefes Verständnis der Funktionsweise, einfach weil dies die Erfolgschancen ihrer Projekte erhöht.
Das Mindeste, was Sie tun müssen, um dieses Verständnis zu erlangen, ist, ein paar GUTE Bücher mit genügend Zeit zu lesen, um Lösungen für häufig auftretende Probleme in einer neuen unbekannten Entwicklungsumgebung zu prototypisieren. Ist es möglich, in einer Woche zu tun? Ich würde gerne mit Leuten zusammenarbeiten, die dazu in der Lage sind, aber ich hoffe nicht, solche Leute bald wiederzusehen.
Einige Arbeitgeber sind tatsächlich bereit, Ihnen genügend Zeit zu geben, um dieses Verständnis zu erlangen, und respektieren dabei Ihre umfassende technische Erfahrung mit anderen Technologie-Stacks (falls Sie einen haben), die meisten jedoch nicht.
Wenn Sie Technologien ändern, ist Ihre Persönlichkeit das Wichtigste - wie bescheiden und neugierig Sie sein müssen, um zu verstehen, wie Dinge funktionieren und wie Dinge in Ihrem neuen Bereich erledigt werden.
Zusammenfassend wäre meine Antwort die folgende. Wählen Sie eine Technologie, die über genügend Potenzial verfügt und die Sie (vor allem) bei Ihrer Arbeit glücklich macht. Spezialisiert auf diese Technologie, wird der Arbeitsmarkt dies zu schätzen wissen und es lohnt sich, einige Jahre zu arbeiten, um Ihr Zielgehalt zu erreichen. Aber sei niemals übereifrig, verbringe etwas Zeit mit anderen Technologien, es macht dich insgesamt zu einem viel besseren PROFESSIONELLEN.
quelle
Ich muss Joel zustimmen. Aber seine Antwort geht über technische Fähigkeiten und Vorlieben hinaus.
Nach meiner Erfahrung sind es in der Regel Ihre beruflichen Anforderungen, die Sie auf eine bestimmte Technologie oder Programmiersprache hinweisen, nicht auf das, was Sie verwenden möchten. Es sei denn, es ist ein Startup, das noch nicht definiert hat, was sie verwenden werden. Und niemand kann garantieren, dass Sie einen Job / ein Unternehmen finden, das genau das tut, was Sie suchen.
Die eigentliche Frage ist also: Kannst du gut neue Sachen lernen? Können Sie ein Problem unabhängig von der Programmiersprache rechtzeitig beheben?
Ein guter Programmierer sollte sich gut mit Softwarekonstruktions- und Softwareentwicklungskonzepten auskennen. Ihre Frage lässt mich glauben, dass Sie nicht genug Zeit investiert haben, um diese zu erlernen, was Sie wahrscheinlich unsicher macht, was Ihre Fähigkeiten sind und was Ihre tatsächlichen Potenziale sind. Und ehrlich gesagt, wenn Sie das nicht getan haben, ist es an der Zeit, dass Sie es tun, denn ohne diese werden Sie wahrscheinlich nicht weit kommen.
Es gibt eine andere Sache, die die meisten von uns Programmierern nicht beachten, bevor wir älter als 30 sind: Programmierkenntnisse sind nur die Hälfte der Fähigkeiten, die einen guten Programmierer ausmachen. Bist du ein guter Teamplayer? Sind Sie bereit, Wissen so bereitwillig an Mitarbeiter weiterzugeben, wie Sie Wissen von anderen erhalten (oder sollten)? Die Fähigkeiten der Menschen werden von vielen von uns unterschätzt, obwohl sie eigentlich sehr wichtig sind.
quelle
Ich bin mit den meisten Kommentaren in diesem Forum nicht einverstanden.
Neben dem Erlernen der Prinzipien und der Theorie des Software-Engineerings ist die Sprache, die Sie beherrschen, eine Berufswahl. Deshalb gibt es Java-Programmierer und PHP-Programmierer. PHP-Programmierer werden wahrscheinlich nicht für die NASA arbeiten und Java-Programmierer werden wahrscheinlich nicht für einen Webshop arbeiten.
Wenn Sie einen Job in einem amerikanischen Unternehmen suchen, sollten Sie sich für Java / .Net entscheiden. Gutes Einkommen in Sie können einsteigen, aber seien Sie bereit, Ihr Leben für sie zu spenden (zeitlich gesehen).
Wenn Sie ein unabhängiger Freiberufler sein und mit Web-Technologie auf der Überholspur leben möchten, sind Sie mit PHP besser dran. Hier wird viel gearbeitet, aber die Bezahlung ist sehr unterschiedlich, und unabhängig zu sein bedeutet, mit jedem Tom, Dick und Harry selbst zu arbeiten und eine Idee zu haben, um Sie für ein paar Cent zu engagieren.
Es gibt einige Überschneidungen mit PHP und Java, die jedoch nur in Unternehmensjobs zu finden sind (Java REST Services mit PHP-Frontend). Sie werden jedoch nirgendwo in der Nähe von Java Webshops oder unabhängige freiberufliche Mitarbeiter finden.
Beide erfordern viel Zeit und Engagement, wenn Sie in einer bestimmten Situation nützlich sein möchten.
Um ein kompetenter und gefragter PHP-Entwickler zu sein, benötigen Sie eine Tasche voller Fähigkeiten. Es besteht die Möglichkeit, dass Sie CSS, HTML4 / 5 und auf jeden Fall Javascript DOM / Ajax / Jquery kennen sowie mindestens ein tragfähiges Framework wie Zend (die Wahl des Corporate America-Testers), Codeignitor, cakePHP usw. und dann Sie Ich muss die "großen drei" CMS kennen: Drupal, Wordpress und Magento. Holen Sie sich diese Fähigkeiten und werden Sie ein PHP-Spezialist mit der Fähigkeit, Arbeit zu landen, wo immer Sie gehen. Wie Sie sehen, ist das alles eine Hingabe an eine Sprache und ihre Werkzeuge, denn das Erlernen von Perl wird Ihnen nicht helfen, ein erfahrener Drupal- oder Zend-Entwickler zu sein.
Das Gleiche gilt für Java: OOP, J2EE, REST / SOAP, Spring / Struts usw. Und es ist eine Flotte anderer Tools, die für Meister Jahre brauchen.
Hat jemand hier versucht, Java für ein Jahr zu codieren und dann zurück zu PHP (oder einer anderen Skriptsprache) gegangen. Es ist schwierig. Es fühlt sich unangenehm an.
Ich arbeite für ein Fortune 500-Unternehmen und Java-Entwickler könnten nicht das tun, was PHP-Entwickler tun, und PHP-Entwickler könnten nicht das tun, was Java-Entwickler tun. Aber beide machen es finanziell gut, weil sie Spezialisten auf ihrem Gebiet sind, die Sprache ihrer Wahl und die Fülle der Werkzeuge, die damit einhergehen.
quelle
Sprache und Plattform sind nicht so wichtig. Lernen Sie solide Menschen und Fähigkeiten im Bereich Comp-Sci. Viele Leute haben das gesagt, aber keine Einzelheiten angegeben. Lassen Sie mich das tun. Hier sind einige Dinge zu lernen
quelle