Que faut-il pour devenir un expert Java? [fermé]


En l'état actuel des choses, cette question ne convient pas à notre format de questions-réponses. Nous nous attendons à ce que les réponses soient étayées par des faits, des références ou une expertise, mais cette question suscitera probablement un débat, des arguments, des sondages ou une discussion prolongée. Si vous pensez que cette question peut être améliorée et éventuellement rouverte, visitez l'aide centre pour des conseils. Fermé il y a 8 ans.

Je lisais justece fil et je me demandais s'il était plus facile de devenir un expert Java qu'un expert C++? Est-ce parce qu'il est très facile d'écrire du mauvais code en C++ alors qu'en Java, vous avez moins de flexibilité (gestion de la mémoire par exemple) ce qui vous empêche d'écrire des horreurs de code? Ou est-ce parce que C++ est juste intrinsèquement plus difficile à apprendre et à maîtriser? Avez-vous rencontré une étude qui distingue et caractérise les codeurs C++ vs Java vs C# etc?

Author: Community, 2009-06-28

12 answers

Que faut-il? Comme tout, des années de pratique et d'innombrables erreurs.

Et même alors, votre expertise sera dans une poignée de domaines où vous avez résolu des problèmes particuliers encore et encore; c'est-à-dire des îlots d'expertise. Middleware et / ou frameworks? Threading et concurrence? Peut-être des applications Java Swing/GUI? Ou des applications web...

Java a grandi à un point tel que personne ne peut être un expert dans TOUT ce qui est Java look regardez combien de paquets ont été ajoutés entre 1,4 et 1,6 et cela devrait être évident. Bien que vous ayez des gars qui se rapprochent terriblement (Johsua Bloch me vient à l'esprit...).

Edit: Si cela concerne les recruteurs et les RH...hausser les épaules de tous les mots à la mode, années minimum, et "expert en" et juste obtenir un entretien téléphonique avec l " équipe qui cherche à embaucher. Vous devez savoir du gars technique ce qu'il cherche exactement parce que presque tous les recruteurs et les agences de recrutement sont COMPLÈTEMENT DÉSEMPARÉS.

 10
Author: hythlodayr, 2009-06-28 04:06:58

À quelques exceptions près, chaque fois que j'entends quelqu'un dire qu'il est un "expert" dans une langue, je le prends généralement avec un grain de sel. Peu importe la langue, les meilleurs programmeurs savent qu'ils ont toujours quelque chose à apprendre - que ce soit d'un vétéran chevronné ou d'un enfant à la sortie de l'université.

 16
Author: Gandalf, 2009-06-28 03:34:38

Une chose à considérer est la quantité de code open source disponible pour étudier et apprendre.

Il y a aussi un peu de code C++ open source, mais généralement Java est plus succinct et concentré, n'ayant pas à gérer les différences de plate-forme et diverses bibliothèques différentes.

Je pense que Java est beaucoup plus facile à apprendre parce que c'est ainsi que je recommande d'améliorer et d'apprendre. Lire le code. Lisez le JDK, lisez la source des bibliothèques et des frameworks bien connus et respectés. Creuser dans et de voir comment il fonctionne.

 2
Author: Mark Renouf, 2009-06-28 04:07:16

La meilleure façon est de programmer beaucoup en Java. Si ce n'est pas la langue que vous utilisez le plus au travail, alors ce devrait être la langue que vous utilisez le plus sur vos projets personnels si vous voulez devenir un expert en informatique (cela s'applique à n'importe quelle langue).

Quelques documents de lecture qui vous aideront:

En ce qui concerne la facilité d'apprentissage, j'ai personnellement eu beaucoup plus de facilité à apprendre Java que C++. Java a certainement bénéficié du recul de ses développeurs. Ils ont pu surtout garder les choses qui étaient bonnes à propos de C++ et se débarrasser de certaines des choses qui rendaient C++ plus difficile à apprendre. Ils ont réussi à rendre plus difficile, mais pas impossible, de se tirer dans le pied en Java qu'en C++, et les dommages potentiels sont également souvent moindres lorsque vous le faites.

Avez-vous rencontré une étude qui distingue et caractérise les codeurs C++ vs Java vs C# etc?

Je ne connais aucune étude de ce type, et je ne commencerai même pas à spéculer. :)

 2
Author: Bill the Lizard, 2009-06-28 04:12:26

Avez-vous rencontré une étude qui distingue et caractérise les codeurs C++ vs Java vs C# etc?

Seulement celui-ci. désolé.

 2
Author: Pete Kirkham, 2009-06-28 08:36:34

Je pense que dans l'industrie, il y a des significations légèrement différentes pour les experts Java et C++. Habituellement, l'expertise Java implique une expertise avec un ensemble d'API(comme J2EE), ou un ensemble de frameworks, ou avec un serveur d'applications spécifique. Il semble qu'un plus petit groupe d'entreprises qui l'utilisent n'utilise que core Java, elles mesurent donc souvent leur expertise en fonction du nombre d'API que vous pouvez prétendre connaître. Souvent, les entreprises utilisant C++ l'utilisent pour des raisons de vitesse et écrivent beaucoup plus de leur code à partir de scratch afin qu'ils puissent être plus intéressés par l'expertise linguistique de base.

Cela étant dit, je pense que Java en tant que langage est beaucoup plus simple, mais son énorme ensemble de bibliothèques et de frameworks est très complexe. C++ est difficile car vous apprenez essentiellement trois langages: la méta-programmation procédurale, orientée objet et modèle.

 1
Author: mattwright, 2009-06-28 13:16:08

À mon avis, le problème avec C et C++ qu'ils ont été inventés dans les années 601. Java est venu plus tard et a beaucoup appris des erreurs, des mauvaises pratiques et des solutions douteuses souvent vues en C/C++. Après 2001 quand C# est arrivé, je dirais que nous avons observé une sorte de co-évolution de ces deux langages. Ils ont appris les uns des autres ainsi qu'ils ont appris du C/C++ et pour la première fois dans l'histoire, des utilisateurs eux-mêmes!2

Dans mon cas, pour répondre à votre question, J'ai dû décider d'apprendre C++ ou Delphi il y a 12 ans. J'ai trouvé compliqué et fastidieux d'utiliser C++ à ce moment-là. Depuis lors, j'ai déménagé à Java il y a quelques années tout en suivant les grandeurs de C#. Si général, il ne faut que du temps pour devenir expert de l'une ou l'autre langue. Je m'évaluerais en tant que programmeur expérimenté, car la signification du mot "expert" est très bien définie sur tdwtf, qui, j'espère, ne sera jamais applicable à moi. À mon humble avis.

Je pense que la meilleure façon de comparer les codeurs de différentes langues doivent le faire vous-même, car je pense que chaque argument sur le sujet est subjectif.

1 corrigez-moi si je me trompe sur les dates.
2 peut-être pas la première fois, mais la lecture d'articles sur les caractéristiques émergentes et émergentes de ces langues me fait sentir ainsi.

Pour la comparaison, j'ai trouvé ces références il y a quelque temps:

Comparación de características de loslenguajes de programación Java y C#, Mayo, 2003

Bien qu'il soit en espagnol et que je viens de regarder les exemples de code.

Comparaison des Fonctionnalités Orientées Objet de Delphi, C++, C# et Java

Pour une autre comparaison plus diverse sur le sujet.

Et il y a aussi une "publicité" de MS essayant de vous convaincre de passer en C # (ou en C++ car il est disponible dans VS along):

Le C# pour les développeurs Java (Allen Jones & Adam Freeman, Microsoft Press, 2002)

Ou si vous voulez une étude "indépendante":

De Java à C#: Guide du développeur (Heng Ngee Mok, Addison Wesley, 2003)

 1
Author: akarnokd, 2009-06-28 14:10:20

La plupart de ceci s'applique à beaucoup d'autres langues:

Comme toujours, vous avez besoin de beaucoup d'expérience pour être un expert java. Et si vous pensez avoir acquis suffisamment d'expérience, en savoir plus.

Java a une API riche et puissante, il est logique d'en avoir connaissance, si vous voulez devenir un expert.

Vous devriez apprendre à coder propre et maintenable, pour être un bon programmeur.

Apprenez aussi des concepts dans différents langages, que java n'a pas (par exemple des fermetures). Vous pouvez en apprendre beaucoup sur une technologie / langage de programmation si vous savez des choses qu'il ne peut pas.

Découvrez les concepts de la machine virtuelle, du compilateur hotspot et du garbage collector générationnel utilisé par java.

Et si vous avez atteint un niveau de connaissance, que vous pensez que vous ne pouvez pas en apprendre plus - vous n'êtes pas un expert. Il y a toujours plus à savoir, et les vrais experts le savent.

 1
Author: Mnementh, 2009-06-29 14:00:06

Considérez ce que vous voulez faire.

Si vous voulez travailler avec des programmes pour Mac learn Objective-C. si vous voulez travailler avec des programmes pour Windows learn C# ou C++. Si vous souhaitez travailler avec des backends de serveur Web, apprenez Java.

Si vous voulez devenir un expert, vous devez pratiquer beaucoup et apprendre encore plus de choses. Je peux vous recommander de lire "Comment devenir un hacker" http://catb.org/esr/faqs/hacker-howto.html#why_this (le document entier) car il vous donnera beaucoup d'idées et des conseils sur ce que vous devriez faire d'autre.

Apprendre une seule langue, c'est comme peindre uniquement avec de la peinture acrylique.

 0
Author: Thorbjørn Ravn Andersen, 2009-06-28 08:01:38

Ou est-ce parce que C++ est juste intrinsèquement plus difficile à apprendre et à maîtriser?

Je dirais que c'est la raison principale. C++ est un langage beaucoup plus complexe avec beaucoup de fonctionnalités qui peuvent être difficiles à comprendre, en particulier dans la façon dont ils interagissent.

Bien sûr, le langage lui - même n'est pas tout-Java a une API standard beaucoup plus grande et des frameworks standard de facto, qu'un "expert" devrait connaître.

 0
Author: Michael Borgwardt, 2009-06-28 09:57:37

Être un "expert" dans une langue ne veut pas dire grand-chose, par exemple dire que vous êtes un expert en C++ mais que vous avez programmé toute votre carrière sous Linux, engageriez-vous un tel gars pour faire un programme Win32 ou prendriez-vous quelqu'un qui n'est pas nécessairement un expert mais qui a de l'expérience avec

 0
Author: AndersK, 2009-06-28 10:32:24

On pourrait dire qu'il faut 10 ans pour être un expert en langue. En tant que tel je dis qu'il est tout aussi facile d'être un expert en Java ou en C++.

Être un expert nécessite des compétences différentes. Java a à sa disposition un tableau déroutant de centaines de projets open source couramment utilisés. Être un expert en Java signifie avoir une bonne compréhension de beaucoup de ces extras. par exemple Java EE, Spring, Hibernate et bien d'autres.

 0
Author: Peter Lawrey, 2009-06-28 16:49:25