Connaissant C++, combien de temps faut-il pour apprendre Java? [fermé]


Je suis un développeur C++ compétent. Je comprends et utilise le polymorphisme, les modèles, le STL, et j'ai une bonne compréhension du fonctionnement des flux. À toutes fins pratiques, je n'ai fait aucun développement Java. Je suis sûr que certains d'entre vous étaient dans une situation similaire à un moment donné lorsque vous avez dû apprendre Java. Combien de temps avez-vous pour devenir compétent programmeur Java?

Author: JaredPar, 2009-04-05

17 answers

Je pense que l'apprentissage de la langue n'est pas difficile. En fait, j'étais un développeur C++ à temps plein, et à un moment donné, j'ai commencé à écrire du code Java. Mais le fait est que je ne me souviens pas avoir jamais appris Java, donc je suppose que je l'ai juste compris au fur et à mesure. Je fais Java à temps plein depuis longtemps maintenant.

Si vous connaissez bien C++, vous voudrez peut-être lire une liste des principales différences (par exemple, tout est lié dynamiquement), puis commencer à pratiquer sur un environnement (juste télécharger Eclipse). Les petites différences sont la principale chose à laquelle vous devez vous adapter.

Maintenant que Java prend en charge les génériques, l'une des principales douleurs de commutation a disparu. L'héritage multiple, bien qu'il ne soit pas pris en charge, n'est pas un gros problème si vous vous habituez aux interfaces, et en fait avoir des interfaces plutôt que des classes abstraites avec des fonctions virtuelles pures (PVFs) améliore la lisibilité.

Pour moi Java est une version en bac à sable agréable et conviviale de C++. Je n'ai pas à vous inquiéter à propos des défauts de protection généraux (GPFs), je n'ai pas à m'inquiéter des fuites de mémoire, je n'ai pas à m'inquiéter de jouer avec des pointeurs. Cependant, ne laissez pas cela vous dérouter, il y a encore beaucoup d'occasions de bousiller royalement, et elles sont parfois encore plus méchantes à détecter.

Il suffit de faire le saut. Si vous avez l'instinct, cela ne devrait pas être un problème.

 19
Author: Uri, 2018-02-23 09:02:28

Je suis allé dans le sens inverse. Commencé avec Java, puis déplacé vers C et C++. Pour ma propre expérience personnelle, il était beaucoup plus facile d'apprendre Java que C/C++ (C++ en particulier).

Java à bien des égards est censé être C++ avec de nombreuses parties indéfinies et inutilement compliquées supprimées ou simplifiées. IMHO, il a eu un grand succès avec cet objectif. En conséquence, c'est une langue très facile à apprendre et à utiliser. Surtout pour quelqu'un qui est familier avec le C++.

Le temps réel qu'il va take dépend beaucoup de la personne qui apprend la langue. Cependant, je pense qu'il est sûr de dire cela prendra moins de temps pour devenir compétent en Java qu'en C++.

 8
Author: JaredPar, 2009-04-05 15:39:03

Ne devrait pas être trop mauvais. La syntaxe et les classes devraient être très faciles à saisir. Il y a quelques différences mais rien n'est trop difficile.

La partie la plus difficile est plus sur l'apprentissage des paquets, car ceux-ci seront différents. Les classes et fonctions Java intégrées, puis pour utiliser Java de manière pratique, vous devrez apprendre J2EE ou tout ce pour quoi vous pourriez l'utiliser. La dernière partie prendra probablement plus de votre temps que la langue elle-même.

 8
Author: CookieOfFortune, 2009-04-05 15:41:11

Si vous êtes déjà un programmeur compétent (en particulier en C++), Java ne prend pas longtemps à apprendre du tout. Les livres que je recommanderais (dans l'ordre) à tous ceux qui veulent apprendre Java sont:

Vous constaterez peut-être que vous parcourez la tête en premier Java assez rapidement, compte tenu de votre expérience. Pour cette raison, je vous suggère de vérifier de la bibliothèque et écrémé avant passer à la pensée en Java.

Consultez également les tutoriels Java de Sun .

 4
Author: Bill the Lizard, 2009-04-05 16:56:38

Comme l'a écrit Tom Hawtin, la question clé est de savoir comment vous définissez competent.

Vous pourrez choisir la langue assez facilement, mais ce sont les idiomes et les bibliothèques que vous devrez apprendre. Et il y a pas mal de différences entre les niches dans lesquelles vous travaillez (par exemple, embedded ou enterprise), et entre les bibliothèques qui sont censées résoudre les mêmes problèmes. Voici quelques exemples:

  1. Dans les applications business/enterprise, vous travaillez généralement avec des bases de données. De là, vous pouvez avoir:

    • JDBC simple
    • SQL mapper (iBatis), wrapper autour de JDBC verbeux et répétitif
    • Solution ORM (Hibernate), avec une philosophie propre
  2. Avec les interfaces utilisateur de bureau, vous avez deux plates-formes concurrentes:

    • Swing, une partie de JRE
    • SWT / JFace, de la fondation Eclispe, créé par IBM, avec prise en charge de l'interface utilisateur native
  3. Les frameworks Web sont trop nombreux pour être mentionnés, avec différentes idées de représentation Interface utilisateur, configuration, structure de dossier/paquet, etc.

  4. DI (dependency injection) est courant dans les applications professionnelles, soit par des frameworks tiers comme Spring, soit dans le cadre de la norme EJB3. Mais, je ne pense pas qu'il soit jamais utilisé dans la configuration intégrée.

Il serait juste de dire que ce n'est qu'une partie visible de l'iceberg.

 4
Author: javashlook, 2009-04-05 21:29:26

C++ à Java: 1 semaine. Java vers C++: 1 mois.

 3
Author: MetroidFan2002, 2009-04-05 17:47:22

En 1995, quand je l'ai fait, il m'a fallu environ une demi-journée pour me familiariser avec les outils et les idées de base, un jour ou deux pour obtenir la langue, une semaine pour obtenir les parties les plus obscures de la langue (il y en avait moins à l'époque) et un mois pour obtenir les bibliothèques (il y en avait beaucoup moins à l'époque).

Maintenant, je suppose que les outils et le langage de base prendront autant de temps, quelques semaines à un mois pour les parties obscures de la langue (dépend de quelles parties vous frapper, et quand). Les bibliothèques de base sera d'un mois à deux mois (java.lang, java.util, et quelques autres). Les bibliothèques de classes restantes 6 mois à jamais en fonction de ce que vous devez apprendre et à quelle fréquence les mettre à jour: -)

 2
Author: TofuBeer, 2009-04-05 22:31:36

Je connais C++, et j'ai dû travailler avec Java une fois et l'ai ramassé en 2 semaines. Bien sûr, il y a eu pas mal de surprises mais c'est facile.

 1
Author: Robert Gould, 2009-04-05 15:43:07

J'irais avec six à huit semaines.

 1
Author: Jack Leow, 2009-04-05 21:58:12

Je pense qu'il existe deux approches de la signification du terme "programmeur Java compétent". S'il s'agit de lexèmes, de syntaxe et de termes de POO, j'ai commencé à comprendre complètement Java avant 2 (deux) jours d'apprentissage. Mais d'abord vous serez charmé par l'impossibilité de tirer votre propre jambe ;) Mais s'il s'agit d'un système de classe intégré (c'est-à-dire de packages), de références d'API, de trucs et astuces, etc., il faut environ six mois pour se sentir amical avec Java. Je pense que.

 0
Author: Eskat0n, 2009-04-05 15:45:01

J'ai aussi appris C++ d'abord, puis Java. Cela a pris très moins de temps car je connaissais déjà les concepts OOPS. Dans la phase initiale de l'apprentissage, j'étais vraiment heureux avec de nouveaux concepts dans Jave comme garbage collector. J'ai fait référence àLa référence complète par Herbert Schildt et cela m'a aidé à obtenir la syntaxe rapidement.

 0
Author: aJ., 2009-04-05 15:52:21

J'ai un arrière-plan C++. Ramasser Java m'a pris quelques jours-le langage semble vraiment simple-au moins sa base. Je consulte encore un peu mon gourou Java - Google, mais il s'agit généralement d'explorer les API et les bibliothèques standard. Java a quelques désagréments, mais vous devriez repérer la plupart d'entre eux facilement et rapidement.

On m'a recommandé de penser en Java (il y a un ebook gratuit), mais n'a jamais été assez persistant pour le lire. Je n'écris pas sorcier code Java et pour le faire, mes compétences sont suffisantes.

Cela dit, il serait bon d'avoir une meilleure connaissance formelle de la langue. En ce moment, je pense à étudier pour SCJP, ce qui semble une façon raisonnable d'apprendre, et vous obtiendrez un certificat de programmation bien reconnu une fois que vous le passerez (j'ai entendu dire que cela ne valait pas grand-chose, mais cela peut quand même être une motivation...).

Vous pouvez également essayerJava Black Belt - les réponses me surprennent fréquemment. Après avoir pris quelques tests Je me demande comment mes programmes compilent même, ce qui suggère que je ne suis probablement pas le programmeur Java le plus compétent:)

 0
Author: ya23, 2009-04-05 17:09:41

Comment définiriez-vous compétent? Pour mon argent, la plupart des professionnels (comme ils le font pour de l'argent) programmeurs Java ne parviennent jamais à atteindre compétent.

 0
Author: Tom Hawtin - tackline, 2009-04-05 19:35:53

J'ai commencé à partir de C++ et appris C#/.NET. Cela n'a pas pris longtemps. Comme C#/. NET est développé très proche de Java (ils ont utilisé de nombreuses techniques de base de Java telles que GC, classes de référence, JIT, ...) Je pense que ce n'est pas si difficile d'apprendre Java.

 0
Author: mmmmmmmm, 2009-04-05 20:43:57

De nos jours, un langage de programmation tire une grande partie de sa puissance de ses bibliothèques et de ses idiomes acceptés.

Alors qu'il faut relativement peu de temps pour apprendre le langage Java, apprendre à utiliser les bibliothèques disponibles (collections, io, etc.) effectivement prendra probablement beaucoup plus de temps.

 0
Author: nimrodm, 2009-04-05 20:44:54

Ne devrait pas vous prendre plus d'un jour ou deux pour apprendre la langue, mais vous devrez peut-être passer quelques semaines sur la bibliothèque de classes: comment utiliser les collections, le paquet concurreny, reflection, logging, swing/awt, dynamic proxies, MBeans etc.

 0
Author: Kire Haglin, 2009-04-05 22:12:54

J'ai appris le c++ à l'âge de 15 ans et je suis devenu programmeur professionnel. Mais quand j'ai cherché un emploi, il n'y avait que du travail disponible pour les développeurs java.Je pensais qu'il était difficile de changer mon language.So juste pour le procès, j'ai téléchargé le compilateur java et juste pour le plaisir tapé du code et j'ai trouvé qu'il n'est pas très différent de c++. et ce n'est qu'après 6 heures de recherche et d'apprentissage que je suis devenu développeur java .il est donc très facile de basculer entre c++ et java.

 0
Author: www.tomshardware.com, 2014-03-30 16:51:03