JavaRush /Java Blog /Random-IT /Il percorso dello sviluppatore Java
trinit
Livello 41

Il percorso dello sviluppatore Java

Pubblicato nel gruppo Random-IT
Bene, tocca a me scrivere la mia storia. In breve, sono uno sviluppatore Java Junior ormai da 3,5 mesi. Se vuoi i dettagli, continua a leggere. Come tutti coloro che scrivono storie lavorative, probabilmente è meglio iniziare con la storia di fondo di chi ero e chi sono diventato. Molto tempo fa, molti, molti anni fa, ho provato a iniziare a programmare. Era la seconda o la terza elementare, mi sono iscritto a un club di programmazione, ci sono andato più volte, ho imparato a digitare il mio nome e indirizzo di casa sulla tastiera, e quella è stata la fine della mia programmazione, perché per qualche motivo ho abbandonato quel club . Non avevo alcuna competenza di programmazione a scuola, né all’università, proprio come stavo studiando per diventare contabile. Diverse volte ho provato a imparare a programmare da solo. Avevo a casa un libro di informatica che conteneva problemi in Pascal, ma non ci capivo niente e non c’era nessuno a cui spiegarlo, quindi ho rinunciato. Passarono gli anni, studiavo da ragioniere, non c'era lavoro. E circa due anni fa ho finalmente trovato lavoro presso un affiliato 1C. Sono andato lì alla linea di supporto tecnico dell'utente, perché... Conoscevo la contabilità e la direzione principale di 1C è ancora questo settore. Dopo un po' il direttore disse che sarebbe stato necessario che imparassi a programmare, perché... Non c'è nessuno a cui scrivere e questa conoscenza non danneggerà il supporto tecnico. Non c'era nessun posto dove andare e questo è stato il mio primo passo sulla strada. Per due mesi ho letto un libro sulla piattaforma 1C, poi mi hanno spiegato cos'è una variabile, e poi è stata come una nebbia :) Sto scherzando. Non capivo niente oltre alle variabili e dovevo guardare corsi per principianti basati su Python. Già durante il lavoro e compiti specifici, ho iniziato a comprendere i loop, gli array e il meccanismo del debug passo passo. La vera svolta è stata quando ho capito come passare i parametri ad altre funzioni. Un giorno ero seduto e cercavo su Google cosa potesse aiutarmi nell'apprendimento di 1C e su uno dei forum ho scoperto che imparare il linguaggio VB.NET poteva aiutarmi in questo. Questa è stata un'altra svolta. Ho scaricato il libro "Lukin S.N. Understanding Visual Basic.NET. Manuale di autoistruzione in 3 volumi" e ho iniziato a studiarlo. Il libro è molto bello, soprattutto per i principianti. E anche il linguaggio per principianti è buono, anche se molte persone ne parlano male (a quanto pare ricordano il vecchio VB). Da un lato ti permette di tagliare la logica senza essere distratto dall'interfaccia utente, dall'altro è procedurale e OOP allo stesso tempo. Inoltre, VB.NET si è rivelato davvero molto simile a 1C, o meglio, 1C era simile ad esso ed è stato facile per me programmare in 1C tutto il giorno, risolvendo problemi di lavoro, e venire la sera e passare rapidamente a un'altra lingua. Ho dedicato tutto il mio tempo libero e i fine settimana alla programmazione. In quel periodo stavo già iniziando a stancarmi di 1C e mi resi conto che non potevo guadagnare con 1C (guadagnavo una volta e mezza meno dei miei clienti contabili, per i quali ho scritto il programma e per i quali ho formato). Ho iniziato a pensare, cosa fare dopo? Il pensiero è venuto su Android, sembrava interessante, promettente, ecc. Un amico programmatore ha detto che scrivono in Java e Internet lo ha confermato. Un amico ha detto che sarebbe meglio imparare il C++ prima di Java. Volevo già iniziare, ma su VB.NET c'era ancora più della metà del libro e non volevo mollare. Il libro avrebbe potuto essere letto in un mese, ma mi sono reso conto che leggere da solo senza pratica non avrebbe dato nulla e ho deciso di scrivere qualche piccolo, ma mio progetto. A questo scopo è stato scelto un blocco note. Ho scritto un blocco note che apre e salva file, determina la codifica all'apertura di un file e colora la sintassi 1C. Poi ho scritto una calcolatrice (non avrei mai pensato che fosse una cosa così complicata). Poi c'è stato un altro grande progetto, secondo i miei standard: un programma per risolvere i test 1C. Il punto è che prende un file di testo con domande e risposte, mette il tutto in un file Excel (sì, allora non sapevo come lavorare con un database) e poi puoi risolvere sia la sezione che i ticket casuali, eccetera. C'erano un paio di altri piccoli programmi per comprendere flussi, modificatori di accesso e altre cose. È giunto il momento in cui ho completato il libro VB.NET. Avevo una base sufficiente, più o meno la stessa di dopo il 2o o anche il 3o anno di università. Anche al lavoro sapevo già scrivere bene e comprendere la giungla del codice. È solo che il lavoro alla fine è diventato noioso, perché per scrivere su 1C non è necessario conoscere la programmazione, ma soprattutto è sufficiente comprendere i meccanismi della piattaforma. È il turno del C++, come ha consigliato il mio amico. Ho aperto il libro C++ e ho aperto il secondo. Ovunque scrivono che prima di imparare il C++, devi conoscere il C. Ho trovato un libro sul C, l'ho sfogliato e ho pensato “FUCK YOU!”, Voglio scrivere su Android, HO BISOGNO DI JAVA. E come se finalmente e senza rinunciare a C, avessi deciso, puramente per il futuro, di guardare ai corsi per principianti in Java. Indovina dove sono inciampato? Sì, al nostro amato JavaRush. Era Capodanno 2015. Non appena ho premuto il grande pulsante verde PLAY, sono rimasto sopraffatto. I primi 10 livelli erano facili. Poi c'era una tassa, e il dollaro era a livelli senza precedenti, dovevi aspettare uno sconto. Nel frattempo mi sono imbattuto in corsi gratuiti su Python di livello di difficoltà intermedio; non è mai una cattiva idea allenare la mente, e ho completato questi corsi, impiegando un altro paio di mesi. Un giorno ho avuto la possibilità di fare un colloquio con un'azienda; avevano bisogno di una persona che sapesse scrivere in Java. Non sono riuscito a dormire bene tutta la notte, continuavo a pensare che me lo avrebbero chiesto, al mattino ripetevo la differenza tra un'interfaccia e una classe astratta, modificatori di accesso, polimorfismo. Ma non mi hanno chiesto nulla, hanno semplicemente scritto un elenco di tecnologie che dovevano essere apprese, dopo di che hanno promesso di darmi un compito di prova, sulla base di esso avrebbero esaminato il mio stile di codifica, la logica e poi avrebbero fatto un decisione sul mio impiego. Il posto vacante non era per Android, ma per un lato server, forse è meglio così. Il secondo giorno, ho lasciato 1C, poiché quest'area era esaurita per me, e ricevere centesimi e spalare tonnellate di codice 1C ogni giorno, dopo di che studiare le tecnologie Java, era oltre le mie forze. Ho iniziato con entusiasmo a studiare le tecnologie Java che mi sono state date, questa Allora non sapevo come lavorare con un database) e poi puoi decidere sia la partizione che i ticket casuali, ecc. C'erano un paio di altri piccoli programmi per comprendere flussi, modificatori di accesso e altre cose. È giunto il momento in cui ho completato il libro VB.NET. Avevo una base sufficiente, più o meno la stessa di dopo il 2o o anche il 3o anno di università. Anche al lavoro sapevo già scrivere bene e comprendere la giungla del codice. È solo che il lavoro alla fine è diventato noioso, perché per scrivere su 1C non è necessario conoscere la programmazione, ma soprattutto è sufficiente comprendere i meccanismi della piattaforma. È il turno del C++, come ha consigliato il mio amico. Ho aperto il libro C++ e ho aperto il secondo. Ovunque scrivono che prima di imparare il C++, devi conoscere il C. Ho trovato un libro sul C, l'ho sfogliato e ho pensato “FUCK YOU!”, Voglio scrivere su Android, HO BISOGNO DI JAVA. E come se finalmente e senza rinunciare a C, avessi deciso, puramente per il futuro, di guardare ai corsi per principianti in Java. Indovina dove sono inciampato? Sì, al nostro amato JavaRush. Era Capodanno 2015. Non appena ho premuto il grande pulsante verde PLAY, sono rimasto sopraffatto. I primi 10 livelli erano facili. Poi c'era una tassa, e il dollaro era a livelli senza precedenti, dovevi aspettare uno sconto. Nel frattempo mi sono imbattuto in corsi gratuiti su Python di livello di difficoltà intermedio; non è mai una cattiva idea allenare la mente, e ho completato questi corsi, impiegando un altro paio di mesi. Un giorno ho avuto la possibilità di fare un colloquio con un'azienda; avevano bisogno di una persona che sapesse scrivere in Java. Non sono riuscito a dormire bene tutta la notte, continuavo a pensare che me lo avrebbero chiesto, al mattino ripetevo la differenza tra un'interfaccia e una classe astratta, modificatori di accesso, polimorfismo. Ma non mi hanno chiesto nulla, hanno semplicemente scritto un elenco di tecnologie che dovevano essere apprese, dopo di che hanno promesso di darmi un compito di prova, sulla base di esso avrebbero esaminato il mio stile di codifica, la logica e poi avrebbero fatto un decisione sul mio impiego. Il posto vacante non era per Android, ma per un lato server, forse è meglio così. Il secondo giorno, ho lasciato 1C, poiché quest'area era esaurita per me, e ricevere centesimi e spalare tonnellate di codice 1C ogni giorno, dopo di che studiare le tecnologie Java, era oltre le mie forze. Ho iniziato con entusiasmo a studiare le tecnologie Java che mi sono state date, questa Allora non sapevo come lavorare con un database) e poi puoi decidere sia la partizione che i ticket casuali, ecc. C'erano un paio di altri piccoli programmi per comprendere flussi, modificatori di accesso e altre cose. È giunto il momento in cui ho completato il libro VB.NET. Avevo una base sufficiente, più o meno la stessa di dopo il 2o o anche il 3o anno di università. Anche al lavoro sapevo già scrivere bene e comprendere la giungla del codice. È solo che il lavoro alla fine è diventato noioso, perché per scrivere su 1C non è necessario conoscere la programmazione, ma soprattutto è sufficiente comprendere i meccanismi della piattaforma. È il turno del C++, come ha consigliato il mio amico. Ho aperto il libro C++ e ho aperto il secondo. Ovunque scrivono che prima di imparare il C++, devi conoscere il C. Ho trovato un libro sul C, l'ho sfogliato e ho pensato “FUCK YOU!”, Voglio scrivere su Android, HO BISOGNO DI JAVA. E come se finalmente e senza rinunciare a C, avessi deciso, puramente per il futuro, di guardare ai corsi per principianti in Java. Indovina dove sono inciampato? Sì, al nostro amato JavaRush. Era Capodanno 2015. Non appena ho premuto il grande pulsante verde PLAY, sono rimasto sopraffatto. I primi 10 livelli erano facili. Poi c'era una tassa, e il dollaro era a livelli senza precedenti, dovevi aspettare uno sconto. Nel frattempo mi sono imbattuto in corsi gratuiti su Python di livello di difficoltà intermedio; non è mai una cattiva idea allenare la mente, e ho completato questi corsi, impiegando un altro paio di mesi. Un giorno ho avuto la possibilità di fare un colloquio con un'azienda; avevano bisogno di una persona che sapesse scrivere in Java. Non sono riuscito a dormire bene tutta la notte, continuavo a pensare che me lo avrebbero chiesto, al mattino ripetevo la differenza tra un'interfaccia e una classe astratta, modificatori di accesso, polimorfismo. Ma non mi hanno chiesto nulla, hanno semplicemente scritto un elenco di tecnologie che dovevano essere apprese, dopo di che hanno promesso di darmi un compito di prova, sulla base di esso avrebbero esaminato il mio stile di codifica, la logica e poi avrebbero fatto un decisione sul mio impiego. Il posto vacante non era per Android, ma per un lato server, forse è meglio così. Il secondo giorno, ho lasciato 1C, poiché quest'area era esaurita per me, e ricevere centesimi e spalare tonnellate di codice 1C ogni giorno, dopo di che studiare le tecnologie Java, era oltre le mie forze. Ho iniziato con entusiasmo a studiare le tecnologie Java che mi sono state date, questa E come se finalmente e senza rinunciare a C, avessi deciso, puramente per il futuro, di guardare ai corsi per principianti in Java. Indovina dove sono inciampato? Sì, al nostro amato JavaRush. Era Capodanno 2015. Non appena ho premuto il grande pulsante verde PLAY, sono rimasto sopraffatto. I primi 10 livelli erano facili. Poi c'era una tassa, e il dollaro era a livelli senza precedenti, dovevi aspettare uno sconto. Nel frattempo mi sono imbattuto in corsi gratuiti su Python di livello di difficoltà intermedio; non è mai una cattiva idea allenare la mente, e ho completato questi corsi, impiegando un altro paio di mesi. Un giorno ho avuto la possibilità di fare un colloquio con un'azienda; avevano bisogno di una persona che sapesse scrivere in Java. Non sono riuscito a dormire bene tutta la notte, continuavo a pensare che me lo avrebbero chiesto, al mattino ripetevo la differenza tra un'interfaccia e una classe astratta, modificatori di accesso, polimorfismo. Ma non mi hanno chiesto nulla, hanno semplicemente scritto un elenco di tecnologie che dovevano essere apprese, dopo di che hanno promesso di darmi un compito di prova, sulla base di esso avrebbero esaminato il mio stile di codifica, la logica e poi avrebbero fatto un decisione sul mio impiego. Il posto vacante non era per Android, ma per un lato server, forse è meglio così. Il secondo giorno, ho lasciato 1C, poiché quest'area era esaurita per me, e ricevere centesimi e spalare tonnellate di codice 1C ogni giorno, dopo di che studiare le tecnologie Java, era oltre le mie forze. Ho iniziato con entusiasmo a studiare le tecnologie Java che mi sono state date, questa E come se finalmente e senza rinunciare a C, avessi deciso, puramente per il futuro, di guardare ai corsi per principianti in Java. Indovina dove sono inciampato? Sì, al nostro amato JavaRush. Era Capodanno 2015. Non appena ho premuto il grande pulsante verde PLAY, sono rimasto sopraffatto. I primi 10 livelli erano facili. Poi c'era una tassa, e il dollaro era a livelli senza precedenti, dovevi aspettare uno sconto. Nel frattempo mi sono imbattuto in corsi gratuiti su Python di livello di difficoltà intermedio; non è mai una cattiva idea allenare la mente, e ho completato questi corsi, impiegando un altro paio di mesi. Un giorno ho avuto la possibilità di fare un colloquio con un'azienda; avevano bisogno di una persona che sapesse scrivere in Java. Non sono riuscito a dormire bene tutta la notte, continuavo a pensare che me lo avrebbero chiesto, al mattino ripetevo la differenza tra un'interfaccia e una classe astratta, modificatori di accesso, polimorfismo. Ma non mi hanno chiesto nulla, hanno semplicemente scritto un elenco di tecnologie che dovevano essere apprese, dopo di che hanno promesso di darmi un compito di prova, sulla base di esso avrebbero esaminato il mio stile di codifica, la logica e poi avrebbero fatto un decisione sul mio impiego. Il posto vacante non era per Android, ma per un lato server, forse è meglio così. Il secondo giorno, ho lasciato 1C, poiché quest'area era esaurita per me, e ricevere centesimi e spalare tonnellate di codice 1C ogni giorno, dopo di che studiare le tecnologie Java, era oltre le mie forze. Ho iniziato con entusiasmo a studiare le tecnologie Java che mi sono state date, questaelenco: 1. OOP. 2. Esperto. 3. Piastrelle Apache. 4. Primavera MVC. 5. Ibernazione. 6. Eclipse (consiglio di non utilizzare un ambiente pulito, ma STS di Spring - https://spring.io/tools/sts/). 7. Tomcat 8. 8. JUnit. Aggiungerò un paio di altre tecnologie che è molto desiderabile conoscere: 9. Bootstrap - con esso puoi creare molto rapidamente l'interfaccia di un sito web senza inventare sai cosa... 10. JQuery - per non scrivere tonnellate di JS nativo code + ci sono tutti i tipi di gadget utili come il completamento automatico(), ecc. 11. Linux/Ubuntu: nella maggior parte dei casi verrà installato al lavoro. Devi almeno essere in grado di installare JDK e Tomcat. 12. GIT/altro sistema di controllo della versione è un must. 13. JSON. e tecnologie che potrebbero dover essere utilizzate nei progetti: 14. AngularJS - framework JS, una cosa molto interessante. 15.MongoDB. 16. ConiglioMQ. e di cosa non puoi fare a meno: 17. Inglese! Era necessario mantenere un equilibrio tra la qualità dello studio e il tempo dedicato ad esso. Il posto vacante non poteva aspettarmi per sempre, e questo è ciò che mi ha spinto ad andare avanti. Ogni giorno dedicavo circa 14-16 ore allo studio. Mi ci sono volute 3 settimane per familiarizzare con queste tecnologie. Ho appena letto alcuni articoli su alcune tecnologie e ho guardato video su altre. Ho conosciuto in pratica persone come Spring e Hibernate: ho guardato video di indiani e ho ripetuto quello che fanno. Ho scritto diversi test JUnit e ho semplicemente installato Tomcat sul mio computer. Maven includeva le dipendenze in pom.xml. Riguardo Eclipse pensavo che fosse solo uno strumento e avrei potuto passare ad esso da IDEA in qualsiasi momento (quanto mi sbagliavo). Anche se non ero sicuro delle mie conoscenze, era ora di fare il test. L'ho preso, si è rivelato non molto difficile, perché nelle ultime 3 settimane mi sono imbattuto in quasi tutto questo mentre studiavo tecnologia. Era necessario scrivere un'applicazione web: un task manager (sito), in cui è possibile creare un'attività, modificarla, eliminarla, assegnarle uno stato e una data di creazione. E sviluppare anche un modulo di registrazione/accesso per questo. Tutto ciò potrebbe essere fatto senza utilizzare JS, una bella interfaccia utente, semplici HTML e CSS. Allo stesso tempo è apparso uno sconto su JavaRush e ho sottoscritto un abbonamento, ma non c'era tempo per i corsi. È stato molto interessante svolgere il compito di prova. Ci è voluta una settimana per completare le funzionalità principali, poi altre 3 per correggere bug minori, refactoring, riscrittura da org.hibernate.SessionFactory a javax.persistence.EntityManager, modifica del database da MySQL a H2 o HSQLDB, scrittura di test JUnit. Mentre rifacevo tutto questo ho riscontrato mille errori, strada facendo ho imparato a leggere il mio ormai amato stackoverflow in inglese e a capirci almeno qualcosina, seppure da Google Translate. Ho anche avuto difficoltà con Eclipse perché era nell'elenco delle tecnologie che mi è stato fornito durante l'intervista. Lasciatemi solo dire che la differenza tra IDEA ed Eclipse è colossale. Immagina di volare su un aereo, quindi IDEA è un aereo con un pilota, dormi in un posto di prima classe e voli lentamente verso la tua destinazione, ed Eclipse: stai anche volando su un aereo, ma come pilota , fuori c'è un temporale e un fulmine colpisce il tuo motore ogni 20 minuti. Seriamente, IDEA fa molte cose per te e tu non lo sai nemmeno; in Eclipse, tutto questo deve essere impostato, configurato e registrato. Nei primi giorni della "mia Eclipse" ho sputato, imprecato e ho mostrato tendenze suicide, dopo 5 mesi di lavoro con questo IDE posso dire che è bello, potente e utilizzabile, devi solo abituarti. Alla fine, tutto ha funzionato, c'è stato un altro colloquio con domande sull'implementazione delle funzionalità dell'applicazione e l'ho superato. Poi un'altra intervista al regista. Poi alcune delle persone che hanno deciso il mio destino sono andate in vacanza, poi ci sono state le vacanze di maggio, poi mi hanno portato il computer e qualcos'altro. Quindi passarono altri 2 mesi. Durante questi 2 mesi sono riuscito a completare i livelli 13-22 in JavaRush, guardare 2 corsi di Batyrshynov su Spring e Spring MVC, a proposito, buoni corsi, ma solo per principianti, perché sostanzialmente tutti gli esempi sono al livello "Hello world". E devo lavorare. Mi hanno subito dato un progetto: un'API REST per un giocattolo per iOS, comunicazione tramite JSON. È stato molto interessante, ma difficile. All'inizio è stato particolarmente difficile approfondire qualcosa che non avevo mai visto: Ubuntu e GIT. Ubuntu può essere padroneggiato senza problemi, ma GIT è una cosa divertente, potente e complessa, soprattutto su progetti di grandi dimensioni e in situazioni non standard. Non dimenticherò mai il mio primo stipendio, che si è rivelato 4 volte superiore rispetto a 1C. Subito dopo aver ottenuto il lavoro, per studiare in modo indipendente la tecnologia e come progetto di prova, ho deciso di scrivere un giocattolo, come una sandbox, per implementare alcune idee. E recentemente l'ho finito. Se vuoi puoi vedere il risultato (ma è altamente consigliabile accedere da computer e Chrome, perché sono ancora un pessimo progettista di layout): http://triangles.cf Lavoro da 4 mesi Ora. Pensavo che tutto ciò che era difficile fosse già alle mie spalle, ma si è rivelato il contrario. Davanti a te c’è l’apprendimento dell’inglese, perché se non lo conosci, anche se vieni assunto, non lavorerai a lungo. Leggere la documentazione, comunicare con i clienti, scrivere codice e commenti, tutto in inglese. Devi anche completare corsi JavaRush, studiare modelli, algoritmi e altre cose utili. Vorrei augurare a tutti buona fortuna, facile sviluppo e una mente forte. Per chi lavora e per chi vuole trovare lavoro. Ci riuscirai, devi solo impegnarti e farlo, lottare con te stesso e con le interruzioni. JAVA a tutti!) combatti con te stesso e con le eccezioni. JAVA a tutti!) combatti con te stesso e con le eccezioni. JAVA a tutti!)
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION