Je prévois de déménager à New York d'ici 6 à 12 mois, alors je suis obligé de trouver un nouvel emploi. Lorsque je prévois de commencer ma vie dans une autre ville, le moment est probablement propice pour réfléchir aux changements de carrière.
J'ai trouvé beaucoup d'opinions différentes sur PHP vs .Net vs Java et ce n'est pas le sujet ici. Je ne veux pas commencer un nouveau combat pour savoir quelle langue est la meilleure. Connaître un langage de programmation n’est pas la chose la plus importante pour un développeur de logiciel. Pour être un très bon développeur, vous devez connaître la programmation orientée objet, les modèles de conception, les tests ... et un langage n'est qu'un outil pour faire avancer les choses.
Revenons donc à ma question. Je possède une expérience variée en informatique - 1 an en tant que technicien en support informatique (administration et support Windows), environ 2 ans d'expérience en programmation intégrée (VB.Net 2005) et depuis 2 ans, je travaille avec PHP / MySQL. J'ai travaillé avec la boutique en ligne Magento, assisté à certains projets de Symfony, modifié quelques sites Drupal.
Mes principales préoccupations sont les suivantes:
- Est-ce que je continue à améliorer mes compétences en PHP, par exemple pour commencer à apprendre un framework PHP majeur tel que Zend, Symfony peut-être obtenir une certification PHP?
- Ou dois-je commencer à apprendre .NET ou Java. Je suis plus familier avec .NET, donc je le choisirai probablement si le choix se situe entre .NET et Java (ou vous pourriez me convaincre de choisir Java :).
En ce qui concerne la carrière, je ne sais pas quel est le meilleur choix. Apprendre un nouveau framework et un nouveau langage prend plus de temps que d’améliorer mes compétences existantes en PHP. Mais avec .NET, vous avez beaucoup de possibilités (développement de téléphones Windows 7, Silverlight, WPF) et peut-être plus de chances de trouver de meilleurs emplois.
Les emplois PHP sont moins bien rémunérés que .NET, du moins, d’après mes recherches (corrigez-moi si je me trompe). Mais si je commence maintenant avec .NET, je ne suis qu'un débutant et mon salaire sera bas. J'ai besoin d'au moins 2 ans d'expérience dans certaines langues pour même essayer de trouver un emploi qui rapporte plus de 50 à 60 000 dollars à New York. Mon objectif principal au cours des deux ou trois prochaines années est de tenter de trouver un emploi dans la catégorie des 60 à 80 000 dollars. Ne vous méprenez pas, je ne cherche pas seulement de l'argent, mais l'argent est un facteur important lorsque vous essayez de fonder une famille.
J'ai 27 ans et j'estime qu'il n'y a pas beaucoup de place pour de mauvaises décisions concernant ma carrière. Tout conseil sera donc le bienvenu.
Mise à jour
Merci à tous d'avoir passé du temps à m'aider à résoudre mon problème. Toutes les réponses et commentaires ont été très utiles. J'ai décidé de rester avec PHP mais aussi d'apprendre le C # et Silverlight 4. Nous verrons où la vie me mènera.
la source
Réponses:
J'ai 51 ans et utilise au moins 15 langues et / ou frameworks depuis que j'ai eu mon premier emploi payant après l'obtention de mon diplôme en 1987.
Soyez bénis.
Je ne me suis jamais lancée dans la gestion parce que je ne voulais pas, mais je sais programmer et je sais garder les équipes motivées et livrer du bon code. Vous devez travailler sur les compétences des personnes et rechercher un travail intéressant qui vous s'étend. Je n'ai jamais cessé d'apprendre ou de m'amuser, mais il y avait des moments où j'étais sur la route, j'aurais pu m'arrêter en m'arrêtant - mais sans coder, sans voyager.
Tant que vous pouvez gagner votre vie et respecter vos engagements personnels sans compromettre vos principes, tant que vous aimez ce que vous faites (un luxe que la génération de mes parents ne possédait pas), continuez comme ça.
.Net et Java sont généralement des entreprises (parce qu’il est coûteux de faire des choses utiles, mais qu’ils évoluent très bien), PHP est généralement une startup, je fais Ruby (généralement des startups sorties de studios de design pour une raison quelconque) pour beaucoup de gens en tant qu'indépendant. Si vous vous en tenez à PHP, apprenez ce que vous faites avec OO, car je pense que cela va enfin commencer à être la façon dont les gens font les choses, même s'il s'agit d'une réimplémentation légèrement meilleure de ce que vous avez avec Java et qu'ils auraient pu le rendre beaucoup plus dynamique. Les personnes qui pratiquent Python et qui veulent voyager peuvent finir par faire toutes sortes de recherches scientifiques et de jeux passionnantes dans le monde entier. Perl est toujours aussi un coureur et a un profil similaire.
Oubliez la langue, choisissez le secteur que vous aimez, choisissez une entreprise gérée par des êtres humains et amusez-vous à faire en sorte que vos clients apprécient ce que vous leur apportez. Vous ne le regretterez pas.
la source
En quoi le choix du langage de programmation a-t-il quelque chose à voir avec votre carrière?
Cette question revient à demander: "J'ai deux choix de lieu de travail. Devrais-je travailler dans celui où le chef a un accent norvégien ou dans celui où le chef a un accent espagnol?"
Il y a des considérations de carrière beaucoup plus importantes.
Cette liste pourrait durer des heures. Le choix d'un langage de programmation est aussi pertinent pour la carrière d'un programmeur que le choix de se peigner les cheveux à gauche ou à droite. Tout le développement logiciel, peu importe le dialecte de langage de programmation que vous parlez.
la source
Apprenez autant de langues que vous le pouvez, de préférence au moins une de chaque domaine de développement principal.
Chacun de ceux-ci vous apprendra quelque chose sur les bases du développement logiciel. Bien sûr, en plus de cela, vous devrez expérimenter différentes approches de conception (OO, fonctionnel, piloté par les données), différentes méthodes de travail en équipe (agile, tdd, par rapport aux types plus rigides), différentes plates-formes, différents mécanismes de déploiement (processus natif). , basé sur le cadre, web). La liste continue. La maîtrise de la langue n'est qu'une infime partie de l'ensemble.
Pour toutes ces choses, vous devez créer au moins un produit réel qui les utilise pour être compétent.
Certaines personnes vous diront que vous devez vous spécialiser dans une technologie (PHP, .Net, Java) et construire votre carrière principalement autour de celle-ci pour progresser. Je ne suis pas du tout d'accord avec ça. Je prendrai un développeur qui a fait plusieurs fois le tour du bloc avec différentes plates-formes et technologies sur un autre qui a passé 10 ans à faire une chose tous les jours de la semaine. La raison en est que la technologie change chaque année et que le développeur capable de choisir une nouvelle technologie, de lire l'API et d'appliquer son expérience de manière plus générale que le simple fait de savoir que la bibliothèque fonctionne par cœur, sera beaucoup plus productif dans le futur. long terme. Ok, donc ce vétéran du .Net de 10 ans sera plus rapide dans le bloc .Net, mais cette avance prématurée est perdue dans environ un mois. Il'
la source
Je suggérerais de chercher un travail PHP car c'est ce que vous faites le mieux.
Je vous suggérerais également de commencer à vous familiariser avec les nouvelles technologies que vous souhaitez apprendre pour pouvoir éventuellement commencer à chercher des emplois dans ces domaines, mais ne le faites pas avant une échéance aussi courte, car vous constaterez que ces éléments sont énormes et que les employeurs s'attendent à il faut en savoir assez sur ces mastodontes pour être productif. Cela nécessite du temps et de la pratique . Ne sous-estimez pas le temps et la quantité de pratique que vous devrez faire.
Pour vous donner une estimation de ce que "je peux programmer en Java" devrait être capable d'employé potentiel, vous pouvez consulter le didacticiel Sun Java . Je m'attendrais à ce que vous connaissiez au moins la moitié des concepts énumérés, où familier signifie être capable de l'utiliser dans un programme que vous avez écrit et de l'utiliser correctement . Je pense que cela prend plus de 6 mois de temps libre pour atteindre ce niveau.
la source
Je déteste ressembler à un troll, mais la langue que vous devez apprendre est l'anglais. Il y a un tas d'erreurs dans votre message et cela a l'air tout à fait négligeable. Si j’engageais et que c’était votre CV, peu importait le langage de programmation que vous disiez connaître, je présumerais que votre manque d’esprit en anglais se répercuterait sur votre travail de programmation.
Il ne semblait pas que vous veniez en anglais langue seconde (je pouvais, bien sûr, vous tromper), mais il y avait suffisamment de fautes de grammaire et d'orthographe pour que la plupart des gestionnaires d'embauche fassent une pause. Puisqu'ils ne verront votre mot écrit qu'au début, vous devez le corriger.
la source
La réponse à long terme à cette question est fondamentalement ce que notre hôte estimé (Joel Spolsky) et Steve Streeting ont dit. La programmation de base ne concerne pas les langages mais l’utilisation de l’ordinateur pour résoudre des problèmes, c’est un art qui doit être appris, travaillé et réfléchi au fil du temps. Savoir coder ne fait pas de l’on un programmeur.
Mais vous avez posé une question pragmatique et urgente. Que devez-vous faire MAINTENANT?
Je suggère que vous creusiez dans PHP jusqu'au déménagement. Creusez dedans, dur, vraiment dur, 20 heures par semaine en dehors du travail dur. Avec PHP, c’est très facile… obtenez un compte d’hébergement et un domaine et commencez à créer des applications. Avec un effort ciblé, 6 mois est une éternité. Au cours de cette période, soyez vraiment bon en la matière. Cela vous aidera à trouver un bon emploi une fois à New York et fera de vous un meilleur programmeur.
BTW .. si vous ne le saviez pas déjà, il existe un site d'emploi en informatique dans la famille StackExchange.
ALORS, lorsque la transition de la vie est un peu stabilisée, commencez à suivre le manuel de M. Streeting et à vous familiariser avec le métier de programmeur plutôt que le métier de codeur. Utilisez du temps en dehors du travail pour lire et faire des choses sur d’autres plateformes et avec d’autres outils.
la source
Je pense que l’essentiel est qu’un ingénieur logiciel finisse par arriver à l’état où la langue n’est en grande partie pas liée à la tâche à accomplir, sauf dans ses limites.
Que vous connaissiez une langue ou non ne devrait pas faire la différence, pourvu que vous ayez un manuel, seulement pour accélérer le premier jour pendant que vous trouvez vos repères.
Cela dit, les langages propriétaires ont généralement moins de documentation et d'exemples disséminés sur le Web. Il est donc plus difficile de s'y habituer et de poser un problème si vous souhaitez emporter votre travail chez vous.
la source
Mon conseil est de trouver un travail qui vous plaise et que vous aimiez faire. Si vous aimez PHP, pourquoi ne pas continuer à développer vos compétences en PHP. Il est beaucoup plus facile d'apprendre et de développer des compétences en faisant quelque chose qui vous intéresse.
Avez-vous déjà consulté .NET ou Java auparavant? Sinon, cela pourrait suggérer que ces langues ne vous intéressent pas, mais vous pourriez peut-être passer environ une semaine à les examiner et voir par vous-même si cela vous intéresse.
la source
Court terme; Je ne sais pas quelles sont les pratiques d’embauche aux États-Unis, mais étant donné que vous déménagez dans 6 à 12 mois, j’envisagerais pour l’instant de continuer à utiliser PHP, car vous en avez une expérience de deux ans.
Mon expérience ici (aux Pays-Bas) est que les entreprises ont tendance à se focaliser sur les technologies et l’expérience en matière de framework. Le langage n’est vraiment pas le cas, même s’ils demandent « 3 ans d’expérience C # », ils veulent dire « 3 ans d’expérience avec les bibliothèques et outils de classe / framework que vous utiliseriez avec C # ».
(Sinon, pourquoi ils veulent engager quelqu'un qui a besoin de trois ans pour apprendre la syntaxe C # et les fonctionnalités du langage me dépasse. Cela ressemble à quelqu'un que je ne voudrais pas embaucher.)
Apprendre de nouvelles langues; statique, dynamique, fonctionnel est d’une grande utilité pour élargir vos perspectives. Cependant, apprendre les bibliothèques de classes pertinentes et la manière de faire les choses dans cette langue demandera de l'expérience.
Je recommanderais de prendre une décision en choisissant une pile de technologies et en les apprenant en profondeur. Utilisez les autres environnements pour vous inspirer.
Bien sûr, les préférences personnelles entrent également en jeu. Par exemple, bien qu'il y ait beaucoup de marché pour cela, je n'accepterais jamais un travail PHP: -PI choisir une pile et je recherche un travail sur cette base.
Pour ce qui est de faire une carrière à long terme, je pense que vous devriez regarder au-delà du codage (il s’agit en définitive d’apprendre et de savoir lire et / ou parcourir de la documentation) et de la technologie du jour, mais plutôt de compétences non techniques. Les technologies vont et viennent assez rapidement. Bien sûr, il y a beaucoup à apprendre en matière de bonnes pratiques et de savoir-faire plus général. Malheureusement, ils sont rarement recherchés sur le marché du travail, selon mon expérience.
la source
Je pense que souvent les gens mélangent des langages de programmation et des cadres / piles de technologie. Il est relativement facile d'apprendre une nouvelle langue, mais c'est beaucoup plus difficile avec les grandes technologies. Je conviens avec certaines réponses que le plus important est votre expérience globale en programmation / résolution de problèmes, mais je ne crois pas que quiconque puisse COMPRENDRE une technologie totalement nouvelle en une semaine.
Bien sûr, une grande partie des développeurs n’ont jamais lu un seul livre technique et n’ont pas compris les éléments constitutifs des technologies qu’ils utilisent. Ils se débrouillent pour sortir des problèmes et réussissent très bien. J'ai moi-même commencé une carrière dans PHP sans même comprendre comment fonctionne HTTP au début. Mais certains employeurs, que je respecte le plus, s'attendent à une compréhension profonde de "comment ça marche", tout simplement parce que cela tend à augmenter les chances de succès de leurs projets.
Le moins que vous puissiez faire pour acquérir cette compréhension est de lire quelques bons livres avec suffisamment de temps pour mettre au point des solutions aux problèmes courants dans un nouvel environnement de développement inconnu. Est-il possible de le faire en une semaine? J'adorerais travailler avec des personnes capables, mais je n'espère pas voir de telles personnes de si tôt.
Certains employeurs sont en fait prêts à vous donner suffisamment de temps pour acquérir cette compréhension, en respectant votre profonde expérience technique dans d’autres piles de technologie (le cas échéant), mais malheureusement, la plupart ne le sont pas.
En outre, lorsque vous modifiez les technologies, le plus important est votre personnalité: quelle humilité et quelle curiosité devez-vous passer suffisamment de temps pour comprendre comment les choses fonctionnent et dans votre nouveau domaine.
Donc, pour résumer, ma réponse serait la suivante. Choisissez une technologie qui a assez de potentiel et qui (surtout) vous rendra heureux dans votre travail. Spécialisé dans cette technologie, le marché du travail le valorisera et les quelques années nécessaires pour obtenir votre salaire cible en vontudront la peine. Mais ne soyez jamais trop zélé, passez du temps avec d’autres technologies, cela vous fera un bien meilleur PROFESSIONNEL dans son ensemble.
la source
Je suis d'accord avec Joel. Mais sa réponse dépasse les compétences techniques et les préférences.
D'après mon expérience, ce sont généralement les exigences de votre travail qui vous orientent vers une technologie ou un langage de programmation spécifiques, et non ce que vous souhaitez utiliser. sauf si c'est une startup qui n'a pas encore défini ce qu'elle va utiliser. Et personne ne peut garantir que vous trouverez un travail / une entreprise utilisant exactement ce que vous recherchez.
La vraie question est donc la suivante: êtes-vous doué pour apprendre de nouvelles choses? pouvez-vous résoudre un problème et le résoudre rapidement, quel que soit le langage de programmation?
Un bon programmeur doit bien connaître la construction de logiciels et les concepts de génie logiciel. Votre question me fait penser que vous n’avez pas investi suffisamment de temps pour les apprendre, ce qui vous rend probablement incertaine de vos compétences et de vos potentiels réels. Et honnêtement, si vous ne l’avez pas fait, c’est à peu près le moment, car sans cela, vous n’irez probablement pas loin.
Il y a une autre chose à laquelle la plupart des programmeurs ont tendance à ne pas s'intéresser avant l'âge de 30 ans: les compétences en programmation ne représentent que la moitié des compétences qui font d'un bon programmeur. Êtes-vous un bon joueur d'équipe? Êtes-vous disposé à transmettre des connaissances à vos collègues aussi volontiers que vous (ou devriez être) recevoir des connaissances d'autres personnes? Les compétences humaines sont largement sous-estimées par beaucoup d’entre nous, alors qu’elles sont en réalité très importantes.
la source
Je ne suis pas d'accord avec la plupart des commentaires figurant sur ce forum.
Outre l'apprentissage des principes et de la théorie du génie logiciel, la langue que vous choisissez de maîtriser est un choix de carrière. C'est pourquoi il existe des programmeurs Java et des programmeurs PHP. Les programmeurs PHP ne travailleront probablement pas pour la NASA et les programmeurs Java ne travailleront probablement pas pour une boutique en ligne.
Si vous voulez un emploi dans les entreprises américaines, vous feriez mieux d’utiliser Java / .Net. Un bon revenu vous permet d’entrer mais soyez prêt à leur donner votre vie (en termes de temps).
Si vous voulez être un pigiste indépendant et vivre dans la voie rapide avec la technologie Web, vous êtes mieux avec PHP. Il y a beaucoup de travail ici, mais le salaire varie énormément et être indépendant, c'est travailler avec chaque Tom, Dick et Harry avec une idée pour vous engager pour des sous.
Il existe un certain chevauchement avec PHP et Java, mais uniquement dans les travaux d’entreprise (services REST Java avec interface frontale PHP), mais vous ne trouverez pas de boutiques en ligne ni de travail indépendant indépendant près de Java.
Les deux nécessitent beaucoup de temps et de dévouement si vous voulez être utile dans une situation donnée.
Pour être un développeur PHP compétent et recherché, vous avez besoin d'un sac rempli de compétences. Il est probable que vous êtes censé connaître CSS, HTML4 / 5, et plus certainement Javascript DOM / Ajax / Jquery, et au moins un framework viable tel que Zend (choix du testeur de l'entreprise en Amérique), Codeignitor, cakePHP, etc., puis vous Vous devez connaître les "trois grands" CMS: Drupal, Wordpress et Magento. Mettez ces compétences à votre portée et vous serez un spécialiste de PHP capable de travailler n'importe où. Comme vous pouvez le constater, assimiler tout cela à un langage est une passion et un outil, car l'apprentissage de Perl ne vous aidera pas à devenir un expert en développement Drupal ou Zend.
Il en va de même pour Java: POO, J2EE, REST / SOAP, Spring / Struts, etc. et sa flotte d’autres outils qui prennent des années à maîtriser.
Est-ce que quelqu'un ici a essayé de coder Java pendant un an, puis est retourné à PHP (ou à un langage de script)? C'est difficile. Ça fait mal à l'aise.
Je travaille pour une entreprise du groupe Fortune 500 et les développeurs Java ne seraient pas en mesure de faire ce que font les développeurs PHP et les développeurs PHP ne pourraient pas faire ce que les développeurs Java font. Mais ils ont tous les deux de bonnes finances car ils sont des spécialistes de leur domaine, de la langue de leur choix et de la panoplie d'outils qui l'accompagnent.
la source
La langue et la plate-forme ne sont pas si importants. Apprenez des personnes solides et des compétences en science-fiction. Beaucoup de gens ont dit cela mais n'ont pas donné de détails, alors laissez-moi faire. Voici quelques choses à apprendre
la source