|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
|
[Java] Cominciare
Salve a tutti,
per esigenze lavorative (Oracle DB, Tomcat,Jboss) mi tornerebbe utile imparare il Java. Sul sito Oacle mi sono scaricato sul Kindle tutti i tutorial che appaiono nella loro documentazione (anche se su opensuse ho l'openjdk). Quello che vorrei sapere è se avete qualche libro/sito/tutorial/howto da consigliarmi per imparare il linguaggio. Di mio, come background, ho qualche esperienza di c,c++( università),python. Uso anche perl e bash (per motivi sistemistici e in congiunzione con sed/grep/awk ed espressioni regolari) A voi la parola e grazie per ogni vostro suggerimento
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2010
Città: Leuven
Messaggi: 667
|
[Funny]
Piu' che cominciare alcuni ti suggeriranno di smettere ![]() ![]() [/Funny] Un bel libro e' questo qui: http://www.apogeonline.com/libri/88-503-2318-2/scheda Altrimenti ci sono i libri di Dietel e Dietel che sono fatti bene (li sta usando mia sorella all'uni). Un altro buon manuale e' quello di Claudio Desio Cesari http://www.claudiodesio.com/
__________________
L'elettronica digitale non esiste, è solo elettrotecnica con interruttori piccoli! ![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
|
anche, e soprattutto, in inglese ( gli O'Reilly non li schifo mai) i libri.
E anni che non leggo libri informatico/tecnici in italiano.
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
Sul primo libro non saprei, ce ne sono talmente tanti che boh...
Sul SECONDO libro però la risposta giusta è Effective Java 2nd edition. E il TERZO libro è Java Concurrency in Practice.
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
|
Quote:
![]() Ci do un occhio in pausa pranzo.
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Un must... specie visto lo schifo di modo in cui viene spiegta la programmazione in multithreading in molti testi di "serie B" che ho letto (tipo partendo in quarta senza neanche accennare per sbaglio al memory model
![]()
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
|
Quote:
![]()
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go |
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Sì bene, ma parlavo del memory model del linguaggio Java
![]()
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
|
ottima osservazione da parte tua, superficialità da parte mia
![]() P.S: l'sql fa male se preso in dosi massiccie ![]()
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Feb 2006
Città: Caserta
Messaggi: 1056
|
Ti consiglio prima un'infarinatura generale. Partire fin da subito con un libro troppo dettagliato potrebbe essere eccessivamente oneroso.
A tal proposito posso consigliarti un blocco di slide che la prof. di Ingegneria Del Software ci ha fornito per il medesimo esame, il cui scopo era quello di renderci capaci di creare applicazioni Java che interagissero con un db mysql. Il purpose quindi se non è identico è simile al tuo, considerando inoltre che le persone del mio corso venivano tutte dal C/C++ imho potrebbe esserti utile una lettura prima di immergertici completamente. Detto tra noi secondo la docente le slide sarebbero anche bastate per fare ciò che dovevamo essere in grado di fare, anche se io ho preferito integrare con qualche capitolo di Thinking in Java di Bruce Eckel. Se sei interessato al blocco dimmelo in pvt che te le mando ![]() |
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Jun 2001
Messaggi: 458
|
Io iniziai con questo libro: Core Java
In italiano è disponibile la 7 edizione: link (se vuoi una versione più recente devi comprare quella inglese). Non avevo esperienza di programmazione ad oggetti e all'inizio trovai questo libro un po' ostico. Fortunatamente trovai il libro gratuito di Claudio De Sio Cesari: http://www.claudiodesio.com/download/oo_&&_java_5.zip (home del sito: www.claudiodesio.com) Fidati, questo libro spiega veramente bene i fondamenti di Java (consiglio fortemente una lettura indipendentemente da libro che deciderai di comprare). Esiste anche una versione cartacea di questo libro : link ... ma non so se ci sono differenze con quella gratuita (forse non è necessario comprarlo). In definitiva, mi trovai veramente bene con queste due libri:
Ultima modifica di vincenzo83 : 03-12-2012 alle 08:27. |
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
|
grazie mille per il tuo report
![]()
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go |
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Jun 2001
Messaggi: 458
|
Di nulla; un'ultima cosa:
gli autori di "Core Java" sono Cay S. Horstman e Gary Cornell. Fai attenzione che Horstman ha scritto anche un altro libro di Java intitolato "Concetti di informatica e fondamenti di Java" la cui copertina è simile ma, ovviamente, sono libri diversi... è semplice confondersi. Come hai potuto notare, nel messaggio precedente, ho riportato il link della casa editrice del libro. |
![]() |
![]() |
![]() |
#14 | |
Senior Member
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
|
Quote:
![]()
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go |
|
![]() |
![]() |
![]() |
#15 | |
Member
Iscritto dal: Nov 2012
Messaggi: 126
|
Quote:
La prima cosa che ti suggerisco è di valutare molto bene se investire tempo e risorse su Java lato enterprise. Non è un ambito particolarmente difficile/impegnativo, ma lo stack tecnologico è vastissimo e ci si impiega tanto per divenire realmente produttivi, con l'aggravante che c'è molta competizione e il mercato è piuttosto saturo etc. Il consiglio quindi è di valutare e pianificare bene. Detto questo, nella pratica. Non hai specificato da che livello effettivamente parti, ovvero di che consistenza sono queste esperienze con c, c++, python: la cosa può fare molta differenza. Nel mentre, ti propongo alcune risorse tra le prime che mi vengon in mente così su due piedi. Ma prima alcune idee-chiave: - La Piattaforma Java è il tuo target - non il solo linguaggio Java. Benchè la perfetta conoscenza del linguaggio sia ("era", più precisamente) necessaria praticamente, la vera discriminante tra gli esperti è la conoscenza di cosa effettivamente fa la JVM con il bytecode. Trovi diversi video più o meno approfonditi sulla JVM (tra i migliori quelli con gli esperti di Azul Systems). - Il linguaggio Java e la Class Library sono una cosa, l'OOP un'altra. Mai confondere idee e principi con le tante possibili implementazioni. - Inizia da subito a familiarizzare con il concetto di "component-oriented" software. - Una critica del tutto personale. Java e il mondo del component-oriented sono per me tra le cose meno eccitanti a cui/con cui puoi lavorare in informatica, e sono tra i motivi per cui mi sono tenuto sempre alla larga dal mondo J2EE prima e EE dopo, salvo piccole partecipazioni fatte più per amicizia che per lucro. La JVM invece, è una gran bella cosa e date alcune precedenti esperienze con virtual machines che ebbi mi ha subito interessato. Se scegli questa strada, non mancare di guardarti Scala, Clojure e gli altri linguaggi sulla JVM perchè, anche se all'estero li usiamo già quando possibile, prima o poi sbarcheranno anche nella addormentata e retrograda italia. E' solo questione di tempo - garantito. E non sarebbe male ritrovarsi già piuttosto esperti prima degli altri su questi strumenti. Per libri e risorse: * Java Precisely - P. Sestov Meno di 200 pagine, adatto al programmatore esperto che vuole una panoramica completa e ricca di esempi sul core del linguaggio. Con il poco che costa io non me lo farei mancare comunque. Alternativa: non penso ce ne sono. La reference del linguaggio è ovviamente più completa, ma anche "pesante" da approcciare all'inizio (e spesso nella programmazione applicativa diciamo pure che non se ne sente nemmeno il bisogno). * Agile Java - J. Langr Un gran bel libro, ti insegna a programmare e fare design object-oriented in Java attraverso il metodo Test-Driven, con una serie di lezioni più centrate a completare ed estendere il codice che non ad elencare le features del linguaggio stesso. Alternativa: buoni testi come Horstmann coprono maggiormente il core del linguaggio ma sono anche impostati in modo più tradizionale (e quindi possono risultare meno interessanti da seguire se già si programma discretamente). * Thinking in Java - Eckel Se hai una buona conoscenza di C o C++, questo è ideale per fare la transizione. p.s. sul sito di Eckel trovi un suo corso di C (mi pare anche avesse dei video) che lui raccomandava come propedeutico al libro, nel caso si dovesse rinfrescare un pò il C. * http://www.cl.cam.ac.uk/teaching/1213/OOProg/ "... And that's what we saw when the Java practicals first came into being: students learnt to program in Java, not how to use the Object Oriented Programming (OOP) concepts. And thus the OOP course was born... Mostly we will be using Java to implement our ideas." Scindere i concetti generali dalle implentazioni che ti ritrovi ad usare nel dato momento è una delle cose più importanti da considerare. Sullo stesso sito del lab trovi anche Programming in Java e Further Java. * http://www.cs.berkeley.edu/~jrs/61b/ http://inst.eecs.berkeley.edu/~cs61b/fa12/ Se ai fini di conoscere meglio il linguaggio che impari sei il tipo che trova utile reiplementare per esercizio data structures e qualche algoritmo di base, questi corsi fanno un percorso abbastanza classico e hanno anche i video delle lezioni online. (Tra i due io ho un piccolo bias verso Hilfinger, perchè sono stato a Berkeley e ho seguito parte di un corso con lui - fa un sacco ridere quando fa lezione e gli esercizi dovrebbero essere piuttosto impegnativi). E' un pò il due piccioni con una fava, impari Java implementando e ripassando roba utile nel caso uno ne abbia voglia/esigenza. Bloch, per capire le varie falle ed idiosincrasie del linguaggio, te l'hanno già indicato. Doug Lea, Goetz e company per la concurrency pure. Ci sarebbe altro da discutere ma meglio prima sentire da te il resto sul tuo percorso. p.s. ti anticipo quello che puoi fare anche da subito su Java EE per iniziare a prenderci la mano. Preleva Tomcat, configura le minime variabili d'ambiente e inizia a guardati i primi esempi di uso di JSP compresi nella docs. Troverai anche esempi di servlets completi, studiali insieme a come farne il deploy (sempre nella doc). Più avanti poi, con un pò di esperienza su Java, ti scrivrai la prima servlet facendo l'extend della classe HttpServlet e avrai la tua prima webapp funzionante. Altri ti suggeriranno di partire subito con un framework, ma per esperienza ti dico che chi fa così parte più confuso e ci mette più tempo a capire le fondamenta del tutto. Ricapitolando, parole chiave: Java Platform -> JRE, JDK, JSE, JVM e HotSpot, java.exe, javac.exe Java EE -> Tomcat, Servlets, JavaServer Pages, WAR archive, HttpServlet class Ultima modifica di van9 : 03-12-2012 alle 17:22. |
|
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
|
Grazie mille ,completissimo. Mi hai dato molto cui pensare.
Inviato dal mio HUAWEI U8825-1 con Tapatalk 2
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go |
![]() |
![]() |
![]() |
#17 |
Senior Member
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
|
Cmq sono partito con il c e poi fatta qualche adt ho visto un poco di oop in c++.
Per lavoro scrivo in bash e perl ma per necessità mi sto spostando verso tomcat/jboss/oracle db. Inviato dal mio HUAWEI U8825-1 con Tapatalk 2
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go |
![]() |
![]() |
![]() |
#18 |
Senior Member
Iscritto dal: Apr 2004
Città: La regione del Triplete
Messaggi: 5745
|
L'Horstmann è ottimo, però ti obbliga a seguirlo passo passo perchè gli esempi del codice sono sempre presi dai capitoli precedenti ai quali si aggiunge qualcosa e nel momento in cui prendessi un capitolo da solo saresti obbligato a sfogliare quelli precedenti per capire dove sono arrivati.
Il mio consiglio è quello di prendere sì l'Horstmann, ma di affiancarlo ad un libro che sia meno ricco, ma che abbia un approccio passo passo. A questo scopo di consiglio il Pighizzini Ferrari "Dai fondamenti agli oggetti". Nella prima parte insegna a maneggiare gli oggetti, quindi, partendo dalla teoria della programmazione object oriented, ti insegna a chiamare i metodi, usare l'ereditarietà, l'overloading e il polimorfismo. Spazio anche alle prime strutture dati e agli enumerativi. Il tutto usando delle classi che sono state create dagli autori del testo. Nella seconda parte si passa alla fase di creazione del codice. Viene spiegato come sono state create le classi usate nella prima parte insistendo su ereditarietà e polimorfismo. Nella terza si affronta l'uso delle strutture dinamiche, alberi e liste, ma credo che sia la parte meno curata e per questo torna utile hostmann.
__________________
Trattative felicemente concluse con domienico120, xbax88 ed engiel, ottimi e seri utenti. |
![]() |
![]() |
![]() |
#19 |
Senior Member
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
|
avrei quasi deciso per
)Java Precisely di Peter Sestoft e/o )Agile Java: Crafting Code with Test-Driven Development di Jeff Langr e Core Java Volume I--Fundamentals di Horstmann, Cay S. ; Cornell, Gary (edizione 2012, 9th) Ora mi serve qualcosa su Jboss/Tomcat e cosi saprò cosa "Babbo Natale" mi porterà
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go Ultima modifica di The_ouroboros : 04-12-2012 alle 12:02. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:02.