Conoscendo C++, quanto tempo ci vuole per imparare Java? [chiuso]


Sono uno sviluppatore C++ competente. Capisco e uso il polimorfismo, i modelli, l'STL e ho una solida conoscenza di come funzionano i flussi. Per tutti gli scopi pratici, non ho fatto sviluppo Java. Sono sicuro che alcuni di voi erano in una situazione simile a un certo punto quando si doveva imparare Java. Quanto tempo ti ci è voluto per diventare un programmatore Java competente?

Author: JaredPar, 2009-04-05

17 answers

Penso che imparare la lingua non sia difficile. In effetti, ero uno sviluppatore C++ a tempo pieno e ad un certo punto ho iniziato a scrivere codice Java. Ma il fatto è che non ricordo di aver mai imparato Java, quindi credo di averlo capito mentre andavo. Ho fatto Java a tempo pieno per molto tempo.

Se hai familiarità con C++, potresti voler leggere un elenco delle principali differenze (ad esempio, tutto è legato dinamicamente) e quindi iniziare a praticare su un ambiente (solo scarica Eclipse). Le piccole differenze sono la cosa principale a cui dovresti adattarti.

Ora che Java supporta i generici, uno dei principali problemi di commutazione è scomparso. L'ereditarietà multipla, sebbene non supportata, non è un grosso problema se ci si abitua alle interfacce, e infatti avere interfacce piuttosto che classi astratte con funzioni virtuali pure (PVF) migliora la leggibilità.

Per me Java è una bella e amichevole e rilassante versione sandbox di C++. Non devo preoccuparmi a proposito di general Protection faults (GPFS), non devo preoccuparmi di perdite di memoria, non devo preoccuparmi di scherzare con i puntatori. Tuttavia, non lasciate che vi confondono, ci sono ancora un sacco di opportunità per rovinare regalmente, e sono a volte anche più cattivo da rilevare.

Fai il salto. Se hai l'istinto, non dovrebbe essere un problema.

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

Sono andato nella direzione opposta. Iniziato con Java, poi spostato in C e C++. Per la mia esperienza personale, è stato molto più facile imparare Java rispetto a C/C++ (in particolare C++).

Java in molti modi è pensato per essere C++ con molte delle porzioni indefinite e inutilmente complicate rimosse o semplificate. IMHO, ha avuto un grande successo con questo obiettivo. Di conseguenza è una lingua molto facile da imparare e da usare. Soprattutto per qualcuno che ha familiarità con C++.

Il tempo effettivo sarà prendere è molto dipendente dalla persona che impara la lingua. Tuttavia, penso che sia sicuro dire che ci vorrà meno tempo per diventare competenti in Java di quanto non abbia fatto in C++.

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

Non dovrebbe essere troppo male. La sintassi e le classi dovrebbero essere molto facili da comprendere. Ci sono alcune differenze, ma nessuno di esso è troppo impegnativo.

La parte più difficile riguarda l'apprendimento dei pacchetti, poiché questi saranno diversi. Le classi e le funzioni Java integrate, e quindi per utilizzare Java in modo pratico, dovrai imparare J2EE o qualsiasi altra cosa tu possa effettivamente usarlo. Quest'ultima parte probabilmente richiederà più tempo della lingua stessa.

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

Se sei già un programmatore competente (specialmente in C++), Java non richiede molto tempo per imparare. I libri che consiglierei (in ordine) per chiunque voglia imparare Java sono:

È possibile che si zip attraverso testa prima Java piuttosto rapidamente, data la vostra esperienza. Per questo motivo ti suggerisco di controllarlo dalla biblioteca e scremarlo prima passando al pensiero in Java.

Controlla anche le esercitazioni Java di Sun.

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

Come ha scritto Tom Hawtin, la questione chiave è come si definisce competente.

Sarai in grado di imparare la lingua abbastanza facilmente, ma sono gli idiomi e le librerie che dovrai imparare. E ci sono alcune differenze tra le nicchie in cui lavori (ad esempio embedded o enterprise) e tra le librerie che presumibilmente risolvono gli stessi problemi. Ecco alcuni esempi:

  1. Nelle app business/enterprise, generalmente si lavora con i database. Lì puoi avere:

    • semplice JDBC
    • SQL mapper (iBatis), wrapper attorno a JDBC prolisso e ripetitivo
    • ORM solution (Hibernate), con una filosofia propria
  2. Con le interfacce utente desktop, hai due piattaforme concorrenti:

    • Swing, una parte di JRE
    • SWT / JFace, da Eclispe foundation, originato da IBM, con supporto nativo dell'interfaccia utente
  3. I framework Web sono troppi da menzionare, con idee diverse di rappresentare il Interfaccia utente, configurazione, struttura di cartelle/pacchetti ecc.

  4. DI (dependency injection) è comune nelle app aziendali, sia da framework di terze parti come Spring, sia come parte dello standard EJB3. Ma non penso che sia mai usato nel set-up incorporato.

Sarebbe giusto dire che questa è solo una punta dell'iceberg.

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

Da C++ a Java: 1 settimana. Java a C++: 1 mese.

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

Nel 1995, quando l'ho fatto, mi ci sono voluti circa mezza giornata per mettermi a mio agio con gli strumenti e le idee di base, un giorno o due per ottenere la lingua, una settimana per ottenere le parti più oscure della lingua (ce n'erano meno all'epoca) e un mese per ottenere le librerie (ce n'erano molto meno in quel momento).

Ora immagino che gli strumenti e il linguaggio di base impiegheranno tanto tempo, da un paio di settimane a un mese per le parti oscure della lingua (dipende da quali parti hit, e quando). Le librerie di base saranno da un mese a due mesi (java.lang, java.util, e pochi altri). Le restanti librerie di classi da 6 mesi a per sempre a seconda di ciò che è necessario imparare e di quanto spesso le continuano ad aggiornarle: -)

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

Conosco C++ e ho dovuto lavorare con Java una volta e l'ho raccolto in 2 settimane. Naturalmente ci sono state alcune sorprese, ma è facile.

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

Andrei con sei-otto settimane.

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

Penso che ci siano due approcci al significato del termine "programmatore Java competente". Se si tratta di lessemi, sintassi e termini di OOP ho iniziato a capire completamente Java prima di 2 (due) giorni di apprendimento. Ma in primo luogo sarete affascinati dall'impossibilità di sparare la propria gamba ;) Ma se si tratta di un sistema di classi embeded (cioè pacchetti), riferimenti alle API,suggerimenti e trucchi ecc., prende circa semestrale per sentirsi amichevole con Java. Credo.

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

Anch'io ho imparato C++ prima e poi Java. Ci è voluto molto meno tempo perché avevo già familiarità con i concetti OOPS. Nella fase iniziale di apprendimento ero davvero felice con nuovi concetti in Jave come garbage collector. Ho fatto riferimento a Il riferimento completo di Herbert Schildt e mi ha aiutato a ottenere rapidamente la sintassi.

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

Ho C++ sfondo. Raccogliere Java mi ha portato alcuni giorni - il linguaggio sembra davvero semplice - almeno la sua base. Continuo a consultare il mio guru Java-Google un po', ma di solito si tratta di esplorare API e librerie standard. Java ha alcuni fastidi, ma si dovrebbe individuare la maggior parte di loro facilmente e rapidamente.

Mi è stato consigliato Pensando in Java (c'è un ebook gratuito), ma non è mai stato abbastanza persistente da leggerlo. Io non scrivo codice razzo-scienza in Java e per farlo, le mie capacità sono sufficienti.

Detto questo, sarebbe bene avere una migliore conoscenza formale della lingua. Al momento sto pensando di studiare per SCJP, che sembra un modo sensato di apprendimento, in più otterrai un certificato di programmazione ben riconosciuto una volta superato (ho sentito che non vale molto, ma potrebbe comunque essere una motivazione...).

Puoi anche provare Java Black Belt - le risposte mi sorprendono frequentemente. Dopo aver preso pochi test Mi chiedo come i miei programmi si compilino, il che suggerisce che probabilmente non sono il programmatore Java più competente in circolazione:)

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

Come definiresti competente? Per i miei soldi, i programmatori Java più professionali (come lo fanno per soldi)non riescono mai a raggiungere la competenza.

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

Ho iniziato da C++ e ho imparato c#/.NET. Non ci è voluto molto. Come c#/. NET è sviluppato molto vicino a Java (hanno usato molte delle tecniche di base di Java come GC, classi di riferimento, JIT,...) Penso che non sia così difficile imparare Java.

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

Oggigiorno, un linguaggio di programmazione deriva gran parte del suo potere dalle sue librerie e dagli idiomi accettati.

Mentre ci vuole un tempo relativamente breve per imparare il linguaggio Java, imparare ad usare le librerie disponibili (collezioni, io, ecc.) effettivamente probabilmente richiederà molto più tempo.

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

Non dovrebbe richiedere più di un giorno o due per imparare la lingua, ma potrebbe essere necessario trascorrere alcune settimane sulla libreria di classi: come utilizzare le raccolte, il pacchetto simultaneo, reflection, logging, swing/awt, proxy dinamici, MBeans ecc.

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

Ho imparato il c++ a 15 anni e sono diventato un programmatore di software professionale. Ma quando ho cercato lavoro c'era solo lavoro disponibile per gli sviluppatori java.Ho pensato che fosse difficile cambiare il mio language.So solo per la prova ho scaricato il compilatore java e solo per divertimento ho digitato del codice e ho scoperto che non è molto diverso da c++. e solo dopo 6 ore di ricerca e apprendimento sono diventato uno sviluppatore java. quindi è molto facile passare da c++ a java.

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