8
votes

Considérant déménager à .Net de Java

Je suis un étudiant en informatique de 4ème année, à l'université beaucoup de mes projets étaient basés Java, donc je suis assez habitué à la langue, à la plate-forme et aux API. Cependant, depuis longtemps, je lisa beaucoup sur les améliorations de la plate-forme .NET et ses grandes opportunités de carrière (au moins dans mon pays). Maintenant, je considère que je envisage de changer au monde de Microsoft. J'ai plusieurs questions:

  • serait-il sévère de passer à la plate-forme .NET, comme lorsque je commence ma carrière, je manquerai de «4 ans d'expérience Java» à une «expérience nette de 1 an de Java»?

  • Quelle est la transaction difficile du monde de Java à .Net World serait?

  • On se sent comme l'avenir du soleil (et Java en conséquence) semble un peu flou, peut-il être un problème à long terme?

    EDIT: Désolé pour la modification, je veux ajouter que je suis davantage dans le champ de télécommunication (même si je n'ai pas encore d'expérience de stage / travail dans ce domaine). De plus, Java n'est pas ma seule langue. Je suis vraiment habitué à Python, Lisp, JavaScript, PHP et quelques autres langues de balisage.

    merci


5 commentaires

J'ai déjà donné mes 2 centimes mais curieuses vous concentrez-vous sur le développement Web ou autre chose? Je pense que l'expérience dans le développement des logiciels de bureau d'instance sera plus grande, puis dans le cas du développement Web.


S'il vous plaît voir mon édition pour être plus précis.


N'est-ce pas "subjectif et argumentatif"?


Cela semble subjectif, mais aussi utile.


Pendant que je ne pense pas être un étudiant pendant 4 ans dans une université dominée Java, 4 ans d'expérience de Java, je ne comprends toujours pas comment allumez-vous à .NET allumera 4 ans en 1. Ne serait-ce pas juste Tourner 4 ans d'expérience Java à 3 ans + 1 an de .NET?


11 Réponses :


6
votes

Personnellement, je ne pense pas que Java s'en va de temps à tout moment, alors Imho Java est tout aussi bonne une carrière bouger comme si pas mieux. En tout état de cause, je dirais que les deux options vous donneront beaucoup de possibilités d'emploi.

Les langues sont assez similaires, vous trouverez donc probablement la transition facile, mais il est évidemment nécessaire de vous familiariser avec diverses bibliothèques et cadres (en fonction du type d'applications que vous allez vous concentrer sur).

Beaucoup de ce que vous savez du monde de Java est vraiment OO, des modèles et ainsi de suite et qui s'appliqueront également bien dans le monde .NET.


2 commentaires

Les langues étaient plutôt plus similaires à Java 1.4 et C # 1.0. Lorsque vous comparez Java 6 et C # 3 (ou Java 7 et C # 4), ils commencent à être très différents - en particulier si vous considérez le code idiomatique dans les deux langues.


Je conviens qu'ils se séparent, mais je dirais toujours que la transition de Java à C # est plus facile que dire C à C #. J'ai de nombreux collègues qui se déplacent de APL à C # et la syntaxe n'est pas leur plus gros problème, ramasser OO est. Je supposerais que l'OP serait familiarisé avec beaucoup de techniques et d'idées pertinentes données à quatre ans d'expérience Java.



18
votes

Ce sera certainement un changement, en grande partie en termes d'apprentissage de la framework .NET lorsque vous êtes habitué aux API de Java. Beaucoup de concepts sont les mêmes, mais c'est un cas d'apprentissage où trouver des choses. Vous ne devriez pas vous attendre à avoir efficacement 4 ans d'expérience nette C # /. Mais vous aurez 4 ans de développement logiciel général, qui est certainement important en soi.

Passage de C # à Java n'est pas trop mauvais, bien que les génériques soient très différents dans C #. Vous trouverez qu'il y a beaucoup de fonctionnalités dans les versions récentes de C # qui ne sont pas en Java, et il vaut la peine d'apprendre à les connaître à utiliser la langue à son meilleur avantage.

Personnellement, je trouve C # comme un langage beaucoup plus élégant et puissant que Java - et certainement celui qui a évolué beaucoup plus rapidement. J'utilise les deux régulièrement, mais mon cœur est avec C # ... et cela vient d'un fond de Java comme vous-même. Je ne regrette certainement pas de «déménager» de Java à C #, en particulier car ce n'est pas tant que «bouger» comme il suffit d'ajouter une chaîne supplémentaire à votre arc. Ce n'est pas comme si vous êtes abandonner votre expérience Java pour apprendre .net.

Ayant tout dit cela, je ne pense pas que vous ayez besoin de vous inquiéter de la disparition de Java à tout moment. Je pense qu'il est raisonnable d'avoir des préoccupations sur le taux de progrès glaciaire de l'API de base et de la langue (bien que les bibliothèques tierces et les langues soient déplacées plutôt plus rapidement) mais je suis sûr que les entreprises développeront activement de nouveaux produits à Java pour un certain nombre de ans à venir.


1 commentaires

IBM prend en charge Java sur leurs ordinateurs centraux et ses milieux, et pas .net. Java est le nouveau cobol :)



1
votes

Cela dépend un peu sur quel type de personnalité que vous avez et sur quel niveau vous comprenez Java. Les attributions de concepts sont identiques entre les deux plates-formes uniquement avec des détails de mise en oeuvre, des syntaxes, des noms, etc. sur un niveau plus facile que vous trouvez .net plus facile depuis que vous traitez souvent de tous les produits Microsoft qui ont tendance à aligner les uns avec les autres. Dans l'espace Java, j'ai dû passer du temps à comprendre comment obtenir le produit A par le fournisseur X pour travailler avec le produit B par le fournisseur Y. Donc, si vous en avez plus, ce que j'appellerais une compréhension «littérale» de Java le mouvement devrait être très facile.

Je pense que vous devriez être capable de trouver des emplois dans les deux plates-formes tout aussi facilement imho

Si peut-être que ce mouvement est également alimenté par l'empressement d'apprendre de nouvelles choses, je vous conseillerais de choisir quelque chose de différent comme une langue dynamique ou fonctionnelle.

Il y a quelques livres qui se concentrent sur le passage de Java à C # (je ne les ai pas lu, donc je ne peux pas vous conseiller sur un) mais ceux-ci devraient vraiment vous mettre au courant en quelques heures / jours. < / p>


0 commentaires

0
votes

Java et .NET sont toutes les deux bien, je suppose.

Tant que vous souhaitez garder la portabilité à Linux, Mac OS ou tout autre système, vous pourriez rester sur Java. Si vous voulez .NET-Applications pour d'autres plates-formes, vous devez compter sur Mono, ce qui est sûr un excellent projet, mais à mon avis, pas encore assez stable pour la production.

Si vous voulez rester sur Microsoft-World, je considère C # comme l'un des meilleurs outils de développement que j'ai jamais vus. En effet, le studio Visual, qui fournit de nombreuses fonctionnalités de codage importantes rend le travail facile.

Ils sont tous deux à peu près la même chose de l'aspect d'apprentissage. Java manque de surcharge de l'opérateur qui est un point important dans mes yeux. .NET peut ne pas manquer d'autres caractéristiques Java est meilleure à ... et généralement, je suppose que dans la plupart des applications, .NET est plus rapide que Java.

J'espère que cela a aidé un peu

considère


1 commentaires

Où obtenez-vous les informations de cela .NET est plus rapide que Java? Les repères que j'ai vus où peu concluants.



0
votes

Si vous écrivez en C #, vous trouverez de nombreuses similitudes avec la langue Java et le CLR partage de nombreux concepts avec le Java Runtime, également.

Vous pourriez aussi bien écrire les deux. Pour l'exercice, j'ai créé un programme de discussion en C # et le serveur pour elle à Java et si vous avez eu beaucoup de plaisir à le faire. Vous pouvez vous concentrer sur .NET et utiliser occasionnellement Java. N'importe rien avec ça, de toute façon, plus important que d'être utilisé dans une langue est les concepts que vous apprenez au fil des ans, tels que les modèles de conception, les meilleures pratiques et les algorithmes. Ceux-ci vous aideront à comprendre tout nouveau cadre ou une nouvelle bibliothèque beaucoup plus rapide que vous reconnaissez les modèles et les objectifs derrière cela.


0 commentaires

15
votes
  1. Si vous ne voulez pas devenir le prochain développeur COBOL, utilisez-vous pour changer de langue. Java et C # seront autour de quelques années, et les plates-formes sous-jacentes seront-elles. Mais les choses vont changer, tant mieux de s'y habituer.

  2. Vous avez exactement 0 ans d'expérience. Tout ce qui est fait à l'école ou à l'université ne compte pas. La raison est la suivante: les exigences sont complètement différentes. Les trucs de l'école peuvent être bien plus difficiles d'un point de vue CS, mais il a des exigences fixes, plutôt claires et que vous n'avez pas à le soutenir pendant 10 ans. Encore une fois, s'y habitue: c'était une fois de plaisir, mais cela ne compte pas comme une expérience.

  3. C # était au début presque une copie de Java. Maintenant, ces gars-là ont beaucoup de traits intéressants, que Java manque. Mais il devrait toujours être facile d'en apprendre une, quand vous connaissez l'autre.

  4. Pour un travail: il n'est pas pertinent combien d'emplois il y a. Vous ne voulez que l'un de toute façon? Vous devriez donc vérifier quel type de travail vous intéresse? Web, mobile, intégré, client riche, gros serveurs.

    Alors, quel est le vrai conseil? Allez, trouvez un employeur maintenant. Dites-leur que vous aimeriez travailler dans [chaque fois que vous avez terminé] et que vous voudriez qu'ils vous disent ce que vous devriez apprendre dans la période moyenne.


3 commentaires

+1 pour 2 et 4. Et aussi pour suggérer un contact direct avec les employeurs maintenant; Je suggérerais de parler avec des consultations ainsi que des organisations plus grandes.


J'avoue aussi pour les 2 et 4 :) Je travaille actuellement en tant que développeur à temps partiel, nous faisons des éléments Web (en utilisant Python et JavaScript) que je ne suis pas vraiment intéressé à long terme.


+1 Belle réponse, aussi pour 2. et 4. Great Stuff.



0
votes

Je suis d'accord avec la plupart des conseils que d'autres ont déjà donné. Les deux plates-formes sont là pour rester et les deux devraient fournir des opportunités de carrière décentes.

juste un mot de prudence cependant. Vous écrivez «au moins dans mon pays» concernant les opportunités .net. Je pense que vous devez également envisager «au moins dans mon pays» lorsque vous décidez de la manière dont l'impact de la carrière sera à court terme.

J'ai beaucoup travaillé aux États-Unis et en Allemagne. Mon expérience a été que, aux États-Unis, les gens sont embauchés davantage pour une capacité démontrée que pour les points de CV, mais en Allemagne, la situation a été inversée. Vous devrez peser l'impact à court terme dans votre pays, à moins que vous ne vouliez poster quel pays et que j'espère que quelqu'un ait donc de l'expérience avec ce pays.


0 commentaires

3
votes

Je travaille pour une boutique .net, et je peux dire cela en tant que responsable de l'embauche / intervieweur, je ne pense pas à un manque d'expérience .net d'un récent collège diplômé pour être un problème - très peu de collèges et Les universités utilisent Microsoft Tools et les autres affiches les ont dit, les plates-formes sont conceptuelles similaires. Ce que j'attends d'un récent diplômé du Collège est de l'énergie, de l'enthousiasme et une compréhension solide de fondamentaux de CS.

Cela dit, je ne considère pas non plus un degré de quatre ans comme "4 ans d'expérience Java" - les projets d'élèves sont gentils sur le CV et sont bons à parler dans des entretiens, mais à moins que vous ne l'ayez pas fait Beaucoup de codage à la location sur le côté, une année d'expérience «du monde réel» (où votre travail consiste à écrire des logiciels) enseigne davantage sur l'éthique et la livraison de travail que 4 ans ou plus au collège.


0 commentaires

1
votes

Je ne me soucierais pas d'apprendre C # à des fins de carrière. Et je dis cela comme un programmeur C # heureux employé. :-) Oh, je suppose qu'une explication est en ordre ...

Il est beaucoup plus précieux de connaître diverses langues. Lorsque j'embauche pour une position qui va écrire C #, je préférerais beaucoup embaucher quelqu'un avec beaucoup d'expérience Java, ainsi que du schéma et de l'erlang (et pas de C # du tout), que quelqu'un avec juste Java et C #. < / p>

C # semble vraiment combiner deux choses: la typage statique et la syntaxe du monde de Java et une poignée de fonctionnalités supplémentaires et de syntaxes du monde fonctionnel. Si vous connaissez Java, Lisp, Python et Javascript, vous pouvez apprendre C # - ou à peu près tout autre chose - dans presque tout temps. (Vous ne poserez pas une position d'architecte, mais vous ne recevrez pas de temps à l'école, de toute façon.)

La seule astuce consiste à trouver un employeur suffisamment éclairé pour la réaliser, et pas simplement celui qui alimente la reprise à travers un correspondeur de motif. Mais simplement mettre "Lisp" sur votre CV est souvent suffisant pour transformer les têtes droites.


5 commentaires

Imo la plupart des gens qui "embauchent pour une position qui va être écrit c #" préféreraient embaucher une personne avec une expérience C #.


Je suis d'accord avec le point d'alec sur connaître diverses langues. Pas du point de vue de l'employabilité, mais parce que cela fera un meilleur développeur. Vous pouvez ensuite "penser en dehors de la case [Insérer une langue ici]."


Chrisw: Je crois que vous êtes correct mais je ne pense pas que ce soit pertinent. Quelqu'un avec une expérience Lisp et Python et un diplôme en informatique ne regarde pas les emplois "la plupart" C #. Je peux aller sur monster.com et trouver un emploi de Gazillion C # et je ne voudrais y travailler à aucun d'eux. C'est comme si Joel dit "Prendre des programmeurs de top-noche C ++ qui rêvent dans les pointeurs et leur permettent de coder dans VB", il ne cherche pas "programmeurs VB". Il cherche de bons programmeurs qui deviendront utiliser VB.


En tant qu'étudiant CS actuel, je me demande cela: comment trouver un employeur suffisamment éclairé pour réaliser ces types de choses? Comment évitez-vous ceux qui ne sont pas?


Je ne suis pas tout à fait sûr moi-même. Les bons panneaux que j'ai vus comprennent: donner une entrevue difficile, être excitée par les bonnes parties de votre CV, une plus petite entreprise, en utilisant une langue de niveau supérieur ou d'être dans un espace difficile - mais j'ai vu de mauvaises entreprises avec ceux-ci aussi. Avoir du café avec le CTO (ou similaire) vous dira beaucoup, si vous pouvez balancer cela; Parler à quiconque travaille là-bas peut être une ouverture des yeux. Ne regardez pas exactement ce qu'ils font, mais pourquoi, en toutes choses: parce qu'ils pensent que c'est le bon choix, car ils suivent l'industrie ou juste la chance?



0
votes

Votre expérience et vos concepts Java seront utiles lors de la transition vers C # et ils ne sont pas trop différents (dans une certaine mesure, bien sûr). Je n'irai pas dans de nombreux détails sur cet aspect de votre question car d'autres ont fait de bons commentaires.

Ce que je voulais ajouter, c'est que bien que les employeurs puissent ne pas envisager l'expérience scolaire d'être équivalente à une expérience réelle mondiale, ne laissez pas cela vous empêcher de les référencer sur votre CV. Soyez prêt à en parler lors de l'entrevue, ainsi que de tous les projets ou intérêts latéraux que vous avez. Ce sont bons pour le "Parlez-moi de votre projet préféré?" Et "Qu'avez-vous aimé le plus de ce projet?" Type de questions. Soyez enthousiaste d'apprendre et de montrer une volonté d'améliorer vos compétences. Vous pouvez également montrer que vous trouvez certains aspects de C # attrayant (peut-être contrairement à Java) et que vous êtes convaincu que vous pourrez choisir des choses rapidement et appliquer vous-même.


0 commentaires

0
votes

L'expérience de l'emploi est très différente de l'expérience que vous obtenez en tant qu'étudiant.

Personnellement, je pense que vous devriez apprendre autant que vous le pouvez tout en étudiant - cela inclut de manière définitive des langues exotiques - et seulement en sachant une langue, vous fait un poney d'un truc.

Alors, demandez à vos professeurs de vous enseigner des choses exotiques. Comme des langages fonctionnels utilisant des modèles correspondant, des langages logiques pour une approche très différente de l'évaluation de nombreux possibilités, une langue d'assemblage pour faire les choses réelles, et tous ces autres esprits soufflant des choses que les gens font pour s'amuser et apprendre :)


0 commentaires