Livello junior Java

di il
6 risposte

Livello junior Java

Salve, domanda un po' "particolare", so che probabilmente non avrà una risposta universalmente esatta... Volevo chiedere a voi esperti, che cosa serve, a livello pratico, per potersi definire un programmatore Java di livello junior e poter quindi anche ambire ad un lavoro?
A livello molto pratico, quali comandi, classi, stile di programmazione, tipo di logica etc... Bisognerebbe padroneggiare?

6 Risposte

  • Re: Livello junior Java

    Luca Rossi ha scritto:


    Salve, domanda un po' "particolare", so che probabilmente non avrà una risposta universalmente esatta... Volevo chiedere a voi esperti, che cosa serve, a livello pratico, per potersi definire un programmatore Java di livello junior e poter quindi anche ambire ad un lavoro?
    A livello molto pratico, quali comandi, classi, stile di programmazione, tipo di logica etc... Bisognerebbe padroneggiare?
    Innanzitutto devi conoscere tutti i concetti fondamentali della programmazione "ad oggetti" in Java:
    - ereditarietà/polimorfismo in generale
    - classi, interfacce, livelli e modificatori di accesso in Java
    - overloading/overriding come intesi in Java e magari anche shadowing/hiding/obscuring

    Poi tipi primitivi, tipi reference, le classi "wrapper" dei primitivi, stringhe (String/StringBuffer e StringBuilder di Java 5+), array. Naturalmente anche tutte le strutture per il controllo del flusso: if, for, while, do-while, switch. Inoltre bisogna conoscere bene tutte le questioni sulla gestione delle eccezioni: cosa sono, come lanciarle/catturarle, come definirne di nuove, ecc..

    Sarebbe anche bene se conoscessi tutte le novità di Java 1.4 e Java 5, tra cui:
    - asserzioni
    - autoboxing/unboxing
    - annotation
    - enum
    - generics
    - varargs
    - enhanced-for (il "for-each")
    - static import

    Anche una conoscenza basilare sul multi-threading è sicuramente utile. Inoltre serve una discreta conoscenza su almeno una piccola parte del framework, perlomeno il I/O basilare (package java.io), un minimo delle collezioni standard (package java.util).

    Tieni presente che Java 7, 8 e successivi hanno portato tantissime novità. Java 7 ha portato diverse funzionalità del linguaggio che sono utili/comode ma non "rivoluzionarie". Java 8 ha introdotto lambda expression, method reference, functional interfaces e la nuova Stream API e questi sono concetti che cambiano un po' il modo di lavorare con Java, se sfruttati bene.
    Questi aspetti di Java 7+ comunque sono più avanzati e personalmente non pretenderei che uno "junior" li sappia.

    Comunque, se ti intessa Java, prendi pure un bel libro (se già non ce l'hai) che sia valido e inizia pure a studiare. Ti assicuro che ne avrai per mesi (molti), anzi anni.
  • Re: Livello junior Java

    andbin ha scritto:


    Luca Rossi ha scritto:


    Salve, domanda un po' "particolare", so che probabilmente non avrà una risposta universalmente esatta... Volevo chiedere a voi esperti, che cosa serve, a livello pratico, per potersi definire un programmatore Java di livello junior e poter quindi anche ambire ad un lavoro?
    A livello molto pratico, quali comandi, classi, stile di programmazione, tipo di logica etc... Bisognerebbe padroneggiare?
    Innanzitutto devi conoscere tutti i concetti fondamentali della programmazione "ad oggetti" in Java:
    - ereditarietà/polimorfismo in generale
    - classi, interfacce, livelli e modificatori di accesso in Java
    - overloading/overriding come intesi in Java e magari anche shadowing/hiding/obscuring

    Poi tipi primitivi, tipi reference, le classi "wrapper" dei primitivi, stringhe (String/StringBuffer e StringBuilder di Java 5+), array. Naturalmente anche tutte le strutture per il controllo del flusso: if, for, while, do-while, switch. Inoltre bisogna conoscere bene tutte le questioni sulla gestione delle eccezioni: cosa sono, come lanciarle/catturarle, come definirne di nuove, ecc..

    Sarebbe anche bene se conoscessi tutte le novità di Java 1.4 e Java 5, tra cui:
    - asserzioni
    - autoboxing/unboxing
    - annotation
    - enum
    - generics
    - varargs
    - enhanced-for (il "for-each")
    - static import

    Anche una conoscenza basilare sul multi-threading è sicuramente utile. Inoltre serve una discreta conoscenza su almeno una piccola parte del framework, perlomeno il I/O basilare (package java.io), un minimo delle collezioni standard (package java.util).

    Tieni presente che Java 7, 8 e successivi hanno portato tantissime novità. Java 7 ha portato diverse funzionalità del linguaggio che sono utili/comode ma non "rivoluzionarie". Java 8 ha introdotto lambda expression, method reference, functional interfaces e la nuova Stream API e questi sono concetti che cambiano un po' il modo di lavorare con Java, se sfruttati bene.
    Questi aspetti di Java 7+ comunque sono più avanzati e personalmente non pretenderei che uno "junior" li sappia.

    Comunque, se ti intessa Java, prendi pure un bel libro (se già non ce l'hai) che sia valido e inizia pure a studiare. Ti assicuro che ne avrai per mesi (molti), anzi anni.
    Wow... grazie per l'elenco Andbin, sinceramente è anche di più di quanto mi aspettassi però sono molto determinato e ce la voglio fare... Per ora sto studiando su un libro chiamato "programmazione di base e avanzata con Java" non so se lo conosci...
  • Re: Livello junior Java

    Mario Rossi ha scritto:


    Per ora sto studiando su un libro chiamato "programmazione di base e avanzata con Java" non so se lo conosci...
    No, non personalmente. Ma ho cercato e trovato l'indice e ... di cose "avanzate" (come invece direbbe il titolo) in realtà non ne vedo. Non vedo neanche alcuna menzione su thread/concorrenza.

    Comunque, ammesso che sia tradotto "bene" (perché è una traduzione dalla versione originale in inglese), come "primo" libro su Java (te ne serviranno molti altri ) può sicuramente esserti utile.
  • Re: Livello junior Java

    andbin ha scritto:


    Mario Rossi ha scritto:


    Per ora sto studiando su un libro chiamato "programmazione di base e avanzata con Java" non so se lo conosci...
    No, non personalmente. Ma ho cercato e trovato l'indice e ... di cose "avanzate" (come invece direbbe il titolo) in realtà non ne vedo. Non vedo neanche alcuna menzione su thread/concorrenza.

    Comunque, ammesso che sia tradotto "bene" (perché è una traduzione dalla versione originale in inglese), come "primo" libro su Java (te ne serviranno molti altri ) può sicuramente esserti utile.
    Sisi, è tradotto bene ed è molto chiaro (anche se molte cose, devo essere sincero, le ho capite appieno solo perché conosco un po' di linguaggio C)... Visto che siamo in tema, te la sentiresti di consigliarmi qualche libro più "avanzato" per quando diventerò più bravo? Sempre a livello junior però, per ora... (P.S il mio obbiettivo è imparare bene Java in generale, ma sono particolarmente interessato allo sviluppo per Android)
  • Re: Livello junior Java

    Luca Rossi ha scritto:


    Visto che siamo in tema, te la sentiresti di consigliarmi qualche libro più "avanzato" per quando diventerò più bravo? Sempre a livello junior però, per ora... (P.S il mio obbiettivo è imparare bene Java in generale, ma sono particolarmente interessato allo sviluppo per Android)
    Parto dalla questione finale, visto che hai parlato di Android. In Android la conoscenza "ampia" di un linguaggio come Java NON è la cosa più importante. Tra l'altro, da un certo po' di tempo si può sviluppare per Android anche con Kotlin, un altro linguaggio per la JVM che come Java è "tipizzato staticamente".

    Diciamo che in Android al 90% è importante la piattaforma (concetti, API, tool di sviluppo, ecc..) e solo per il 10% è importante il linguaggio. Lo dico meglio in altro modo: se conosci poco/niente le lambda expression, le enum, le annotation, le asserzioni (e sicuramente altro), in Android, come si dice, puoi "campare" lo stesso. Discorso ben diverso se invece ti interessa Java per sviluppare applicazioni desktop e/o web/enterprise.

    Riguardo ai libri più "avanzati" ce ne sono una quantità enorme. E lo dico subito: sono solamente in inglese.
    Eccone alcuni, cerco di elencarli per complessità/difficoltà sebbene non sia proprio facile classificarli così:

    - Java I/O, 2nd Edition — O'Reilly Media
    - Java Generics and Collections — O'Reilly Media
    - Java 8 Lambdas — O'Reilly Media
    - Mastering Lambdas: Java Programming in a Multicore World — McGraw-Hill Education
    - Java 8 in Action — Manning (c'è una nuova edizione in Manning Early Access Program)
    - Effective Java, 3rd edition — Addison-Wesley Professional
    - Java Concurrency in Practice — Addison-Wesley Professional

    Nota: ti ho elencato questi perché li possiedo tutti e li ho già letti.

    E non ho considerato ambiti ancora più specifici come lo Unit testing, Networking, Game development, ecc.. e pure altro su framework/librerie ancora più avanzate (JavaFX, Spring, JPA, Hibernate, ecc...).
  • Re: Livello junior Java

    andbin ha scritto:


    Luca Rossi ha scritto:


    Visto che siamo in tema, te la sentiresti di consigliarmi qualche libro più "avanzato" per quando diventerò più bravo? Sempre a livello junior però, per ora... (P.S il mio obbiettivo è imparare bene Java in generale, ma sono particolarmente interessato allo sviluppo per Android)
    Parto dalla questione finale, visto che hai parlato di Android. In Android la conoscenza "ampia" di un linguaggio come Java NON è la cosa più importante. Tra l'altro, da un certo po' di tempo si può sviluppare per Android anche con Kotlin, un altro linguaggio per la JVM che come Java è "tipizzato staticamente".

    Diciamo che in Android al 90% è importante la piattaforma (concetti, API, tool di sviluppo, ecc..) e solo per il 10% è importante il linguaggio. Lo dico meglio in altro modo: se conosci poco/niente le lambda expression, le enum, le annotation, le asserzioni (e sicuramente altro), in Android, come si dice, puoi "campare" lo stesso. Discorso ben diverso se invece ti interessa Java per sviluppare applicazioni desktop e/o web/enterprise.

    Riguardo ai libri più "avanzati" ce ne sono una quantità enorme. E lo dico subito: sono solamente in inglese.
    Eccone alcuni, cerco di elencarli per complessità/difficoltà sebbene non sia proprio facile classificarli così:

    - Java I/O, 2nd Edition — O'Reilly Media
    - Java Generics and Collections — O'Reilly Media
    - Java 8 Lambdas — O'Reilly Media
    - Mastering Lambdas: Java Programming in a Multicore World — McGraw-Hill Education
    - Java 8 in Action — Manning (c'è una nuova edizione in Manning Early Access Program)
    - Effective Java, 3rd edition — Addison-Wesley Professional
    - Java Concurrency in Practice — Addison-Wesley Professional

    Nota: ti ho elencato questi perché li possiedo tutti e li ho già letti.

    E non ho considerato ambiti ancora più specifici come lo Unit testing, Networking, Game development, ecc.. e pure altro su framework/librerie ancora più avanzate (JavaFX, Spring, JPA, Hibernate, ecc...).
    Grazie mille andbin, esaustivo come sempre!
Devi accedere o registrarti per scrivere nel forum
6 risposte