JavaRush /Java Blog /Random-IT /Come sono diventato programmatore, ovvero “Attraverso le ...
provisota
Livello 33
Одесса

Come sono diventato programmatore, ovvero “Attraverso le spine alle stelle” =)

Pubblicato nel gruppo Random-IT
Come sono diventato un programmatore, o “Attraverso le spine alle stelle” =) Come sono diventato programmatore, ovvero “Attraverso le spine alle stelle” =) - 1 Ciao Javarashovets!) Voglio condividere la mia storia con voi, perché sento un obbligo morale nei confronti delle persone meravigliose che hanno creato questa risorsa, così come nei confronti della comunità che ha partorito. Vorrei ringraziare almeno in qualche modo i creatori, rallegrare i Javarashiti che non hanno ancora raggiunto il loro caro obiettivo e rafforzarli con una buona dose di motivazione) Ho immaginato molte volte come avrei scritto questo articolo, quali parole avrei usare, e ora, finalmente è successo, e come In linea di principio, mi aspettavo che tutte le parole sparissero da qualche parte, quindi per favore non giudicare rigorosamente dallo stile di presentazione) In generale, per quanto riguarda la cosa principale, ho lavorato come programmatore da due settimane ormai, e questo è in gran parte grazie a Javarash) Ma è tutto in ordine, prima ti parlerò un po 'di te. Ho 37 anni, sono sposato, ho due figli, una femmina di 6 anni e un maschio di 3 anni. =) Negli ultimi 15 anni ho lavorato come scalatore industriale (arrampicatore d'alta quota), un lavoro, come hai capito, legato alla programmazione un po' meno di niente. Ma, in generale, il lavoro non è male, l'aria fresca, ti mantiene in “forma”, parecchio tempo libero, sei il capo di te stesso, e per i soldi, in linea di principio, abbastanza buono (in stagione), MA :
  • Ha una stagionalità pronunciata, ad es. 3 – 4 mesi all'anno praticamente NON c'è lavoro.
  • NESSUNA prospettiva. Avendo lavorato in questo campo per 15 anni, mi sono reso conto che nei prossimi 5-10 anni è molto improbabile che qualcosa possa cambiare, almeno in meglio.
  • I bambini cominciarono a crescere e chiaramente non c'erano abbastanza soldi...
  • Ha iniziato a diventare noioso)… 15 anni sono ancora un periodo molto lungo, durante il quale qualsiasi lavoro probabilmente inizierà a diventare noioso…
E così, circa due anni fa, o per essere più precisi, da qualche parte nel maggio 2013, dopo aver riflettuto e soppesato tutti i pro e i contro, sono giunto alla conclusione che era ora di cambiare qualcosa... cioè, era ora di cambiare lavoro... Beh, ci è voluto molto tempo per pensare a quale non dovevo cambiarlo, ma sarebbe per un lavoro privo dei difetti del precedente:
  • Lavora tutto l'anno.
  • Buone prospettive di crescita.
  • Stipendio significativamente più alto (se non immediatamente, nel prossimo futuro)
  • Un lavoro interessante per il quale ho una certa inclinazione.
Avevo un debole per la programmazione, anche se in pratica questo si esprimeva solo nel fatto che anche a scuola scrivevo un po' in BASIC, ancor meno in assembler (sullo ZX - Spectrum, alias Sinclair una volta era un computer di culto, puoi diciamo, le persone della mia generazione devono ricordarlo), e potevo anche installare / reinstallare facilmente Windows, legna da ardere, beh, in generale, puoi dire "utente avanzato" =) E sono sempre stato bravo anche con l'inglese, potresti anche dire che era il mio hobby... Le contro che si sono svolte nel “grattacielo” hanno avuto anche degli aspetti positivi, vale a dire tutto il mio tempo libero, che ho avuto in abbondanza in primavera e soprattutto in inverno (in bassa stagione ), potrei spendere utilmente per imparare a programmare. Bene, questo significa programmare... e cosa esattamente? La programmazione è un concetto flessibile, ho cercato su Google quali sono i linguaggi più popolari, promettenti e ben pagati oggi... e la mia scelta è caduta su sua maestà Java =) Dato che ho iniziato da zero, ho cercato di trovare una fonte di conoscenza adeguata , il mio primo libro su Java è stato "Programmazione in Java per bambini, genitori, nonni e nonne" di Yakov Fain, che mi ha affascinato soprattutto con il titolo =) Non posso dire se consiglio questo libro ai principianti o no, forse lì sono libri migliori per i principianti, lo capisco già adesso per quanto riguarda la "scuola materna", ma a quel tempo lo trovavo interessante da leggere e abbastanza comprensibile, e gli esempi pratici forniti lì, su cui ho lavorato attentamente, mi hanno dato il minimo necessario di abilità pratiche per ulteriori avanzamenti. Ho finito di leggere il libro, devo voltare pagina, ho deciso di cercare corsi normali, i corsi a tempo pieno mi costavano un po', e non ero sicura che ne valesse la pena, ed ecco, mi sono ricordato che quando Stavo lavorando al libro, penso di essere da qualche parte sull'hub, ho letto un articolo sui corsi online JAVARUSH, gratuiti all'epoca =) Beh, in generale, le cose sono andate bene)… dopo aver letto e lavorato sul libro, ho ho spezzato i primi 10-12 livelli come semi, era anche troppo facile, ma comunque interessante, poi è diventato più difficile e ancora più interessante, ma ho provato a risolvere TUTTI i compiti di seguito, e senza risolvere tutti i compiti, non passare al livello successivo, e poi su Javarash hanno introdotto le tasse universitarie sopra il livello 10... per i primi due o tre mesi ho pagato mensilmente, ma poi a Capodanno hanno annunciato una promozione, sconto del 50%, invece di 200$ potevi comprare illimitato per 100$, ammetto onestamente che in quel momento avevo sicuramente 100$, ma non si poteva definire superfluo... perché... Non ho lavorato tutto l'inverno, anche mia moglie non ha lavorato, e "ogni centesimo contava", perché i soldi accumulati durante la stagione dovevano essere protratti fino a marzo - aprile, quando avrei ricominciato a lavorare... Ma sentivo che questi 100 dollari avrebbero potuto essere l’investimento più redditizio e di maggior successo di tutta la mia vita. Ho un fratello, circa 10 anni fa lui e la sua famiglia si sono trasferiti in Germania per la residenza permanente. Anche io ho avuto questa opportunità, ma non ne ho approfittato, perché... Amo la mia città, Odessa, i miei amici, il mio modo di vivere, e non ero pronto a rinunciare a tutto questo, e credevo anche che qui avrei potuto provvedere adeguatamente a me stesso e alla mia famiglia e, in generale, probabilmente sono solo un ottimista nella vita. E anche se lì le sue finanze vanno abbastanza bene, ho cercato di non chiedergli mai aiuto se non in caso di assoluta necessità, ma sapevo che se avessi dovuto farlo non mi avrebbe rifiutato, soprattutto perché 100 dollari sono una cifra ridicola per lui. L'ho contattato e lui ha trasferito con gioia Zeppa $100 su PayPal, cosa per la quale ovviamente lo ringrazio moltissimo. E io con calma, pensosità, senza fretta, che è sempre presente se paghi mensilmente, ho continuato a “rosicchiare il granito della scienza” =) Ho attraversato i livelli nello stesso “maniera”, rigorosamente in sequenza, cioè Ho letto la lezione e, sebbene la mia comprensione fosse fresca, ho risolto i problemi e non sono passato alla lezione successiva finché tutti i problemi precedenti non sono stati risolti, con rarissime eccezioni. Quindi sono arrivato al livello 20 con 3-5 problemi irrisolti. Se hai problemi a risolvere i problemi, ovviamente, la comunicazione sul forum aiuta molto e, allo stesso tempo, aiutando gli altri utenti del forum, tu stesso migliori le tue capacità! Circa sei mesi dopo, verso la fine del 2013, ho deciso che era ora di tentare la fortuna e mettermi alla prova in un colloquio, ho cercato su Google esempi di curriculum su Internet, diversi esempi di curriculum mi sono stati inviati da amici di Javarash, io ho scritto anche a Zepp, mi ha dato diversi consigli e diversi modelli di curriculum. Ho scritto il mio curriculum, l'ho inviato a Sepp per la valutazione e gli è piaciuto. Successivamente, ho pubblicato il mio curriculum su alcuni dei siti di ricerca di lavoro più popolari, quindi ho compilato un elenco di e-mail dei dipartimenti delle risorse umane delle più grandi aziende IT di Odessa, che hanno posti vacanti per sviluppatori Java (non solo junior), ho ottenuto un elenco di circa 20 aziende. Per ogni evenienza, ne ho messo subito da parte metà per dopo, nel caso avessi fatto un errore ovunque in modo che ci fosse un'opzione di backup, e metà ho inviato il mio curriculum e ho iniziato ad aspettare gli inviti ai colloqui =) Io non dirò che mi hanno bombardato direttamente di inviti, ma alla fine, nel giro di un mese – per un anno e mezzo ho fatto 3 - 5 colloqui, alcuni più o meno riusciti, altri meno, da qualche parte c'erano candidati concorrenti davanti a me, e c'erano anche due o tre compiti di prova, che ho completato con successo variabile, così come un colloquio in inglese parlato, che ho superato con successo, ma prima. L’intervista non è avvenuta perché… come un altro contendente mi ha battuto sul tempo. Anche io sono quasi entrato nel cosiddetto “benchmark” della Luxsoft, ho superato i test, il colloquio, ma all'ultimo momento, quando ho letto il contratto, ho cambiato idea e ho rifiutato, mi sembrava che le condizioni fossero l'offerta era un peccato. In breve, ti insegnano per tre mesi e ti pagano uno stipendio di 300 dollari, al termine della formazione, se gli piaci, ti offrono un lavoro come junior, per 500 dollari, dopo 9 mesi potrebbero aumentare il tuo stipendio, MA la cosa principale, MA, come è emerso chiaramente dall'accordo, era che dal momento della firma, se non frequenti i corsi, ad esempio, o dopo i corsi vuoi cambiare posto di lavoro entro un anno o due, allora sarai obbligato a pagare loro un compenso per la tua formazione in l'importo di $ 2.500. Ho trovato tali condizioni inaccettabili e ho rifiutato. Ho rifiutato anche un altro posto vacante perché... Mi sembrava che non avrei avuto prospettive per quel lavoro. Ma la cosa principale è che ho acquisito un'esperienza molto preziosa durante i colloqui e dopo ogni colloquio avevo un'idea molto migliore di cosa mi aspettava in quello successivo, che tipo di domande mi avrebbero fatto e quali risposte si sarebbero aspettate. da parte mia... beh, non è che a tutti i colloqui mi facciano le stesse domande, ma quasi sempre se ne fanno tante, e dopo ogni colloquio mi sono fatto una piccola lista di domande in cui ho “nuotato”, per poi trovare risposte chiare a loro. In generale, andare ai colloqui è davvero molto utile, indipendentemente dai risultati... Più o meno nello stesso periodo (autunno - inverno 2013), Diana mi ha scritto in un messaggio personale chiedendomi se volevo partecipare al “Progetto Real ”, L'ho detto in generale, quindi non mi dispiace... E da qualche parte un mese dopo Hubert ha scritto con una proposta più specifica per partecipare al progetto che era già iniziato due o tre settimane fa. Probabilmente me lo proposero semplicemente perché in quel periodo ero tra i primi in termini di problemi risolti. Ad essere onesti, dopo che Hubert mi ha elencato le tecnologie utilizzate (Spring, Hibernate, GWT, MySQL, Maven, Git), è diventato un po' strano, perché... Nella maggior parte dei casi, ho sentito queste parole solo per la prima volta, e forse ho sentito qualcosa da qualche parte una volta con il "bordo" dell'orecchio, ma solo con il bordo dell'orecchio... Ebbene, pensavo di non avere nulla da perdere comunque tempo per C'è partecipazione, in ogni caso sarà un'esperienza utile, e ho accettato. Lo ammetto, all'inizio è stato davvero DIFFICILE, ma dopo una settimana - una settimana e mezza - due, ho letto libri e articoli in rete, mi sono abituato un po' e ho approfondito così tanto il funzionamento del codice esistente che avrei potuto scrivere qualcosa da solo e fare il mio primo impegno. Sono stato MOLTO fortunato con i ragazzi del progetto, penso, eravamo in quattro in totale: Timur, Zhenya, Seryoga e io. Abbiamo supervisionato il nostro progetto e Timur ha lavorato principalmente sul back-end, Zhenya sul front-end, Seryozha sul database, io ho lavorato un po' sul front-end, un po' sul back-end, ma probabilmente soprattutto sul front -FINE. Dopo due o tre mesi, siamo diventati la prima squadra a completare con successo un vero "Real Project", che ora usano tutti i residenti di Javarash - questo è il progetto "Ratings" =) Beh, per dire che il "Real Project" mi ha dato un molto è non dire nulla! ) Oltre agli ovvi vantaggi (un'enorme quantità di nuove preziose conoscenze), molto più importante è comprendere che anche per un "programmatore Java", conoscere solo Java non è l'unica competenza necessaria, sebbene è fondamentale. Java è come l'ABC della programmazione, ma oltre all'alfabeto bisogna conoscere anche le regole dell'ortografia, della grammatica, della sintassi, la capacità di costruire correttamente le frasi, avere un ricco vocabolario, beh, in generale, penso che l'analogia sia chiara. Anche nella programmazione sono necessarie conoscenze e capacità di utilizzare numerosi framework, modelli e strumenti di sviluppo, nonché la capacità di cercare soluzioni ai problemi emergenti e risposte alle proprie domande. Dopo il progetto vero e proprio, mi sono interessato a tecnologie più avanzate, e ho approfondito la conoscenza di quelle già conosciute... I miei interessi sono andati oltre il puro Java Core. E nel mio curriculum è apparso un nuovo, solido articolo nella colonna "Esperienza lavorativa", con una descrizione delle tecnologie interessanti e alla moda utilizzate nel progetto =) Ma il progetto è stato completato e ho iniziato tranquillamente un nuovo "lavoro stagione” in un grattacielo... c'era molto meno tempo libero e la questione del cambio di professione passava in secondo piano, ma dedicavo comunque quasi tutto il mio tempo libero (la sera dopo il lavoro e nei fine settimana) alla programmazione , ho scritto per me tutti i tipi di "mini-progetti", a volte ho risolto problemi a Javarash, ho monitorato i posti vacanti e alla fine dell'autunno mi sono anche iscritto a corsi gratuiti presso l'ufficio IT di DataArt. Bene, i corsi stessi si sono rivelati una cazzata, per lo più revisioni, quindi hanno seguito i movimenti, lì non ho imparato quasi nulla di utile, ma nell'ambito di questi corsi, agli studenti è stato chiesto di dividersi in squadre e scrivere un "Progetto" =) Il progetto consisteva nella scrittura di un sistema di test online, con la registrazione dell'utente, la parte utente (riproduzione di questionari) e l'area di amministrazione (creazione di questionari e gestione degli account). Sono finito in uno dei quattro team di questo tipo e in seguito si è scoperto che avevo scritto il progetto praticamente da solo. =) E in circa un mese (mentre lavoravo contemporaneamente su un grattacielo) io stesso ho scritto un'applicazione web abbastanza passabile, come mi sembra, basata quasi sulle stesse tecnologie e schemi che abbiamo usato nel Real progetto con i ragazzi di Javarash, beh, oltre a più jsp, Spring Security e qualcos'altro =) Se qualcuno è molto interessato, posso inserire un collegamento a un repository aperto con il codice sorgente del progetto... Inoltre, da qualche parte a dicembre , Sono stato invitato a un colloquio da un ufficio, poiché in seguito si è scoperto che era Kiev. Il colloquio si è svolto tramite Skype. E dopo c'è stata un'intervista con uno dei manager di una grande azienda, un cliente di Odessa di questo ufficio IT di Kiev. Mi hanno detto che una volta presa la decisione mi avrebbero chiamato... beh, come al solito, ho pensato allora, se non mi avessero assunto subito, allora c'erano poche speranze... ma comunque, circa un mese dopo, dopo Capodanno, ho scritto a questa responsabile delle risorse umane chiedendo informazioni sulla mia candidatura, stranamente mi ha risposto che il posto era ancora aperto e la decisione non era ancora stata presa... beh, questo significa che c'è ancora speranza. E ora, quasi un altro mese dopo, da qualche parte alla fine di gennaio, mi ha chiamato con la domanda "sto ancora cercando un lavoro", alla quale "implacabile" ho risposto "sì, lo sto ancora cercando", poi mi ha detto che ero lei l'ho già trovata, perché... Gli sto bene!))) La sensazione è sicuramente indescrivibile, quando te lo dicono al telefono ti crescono le ali =) per capirlo devi solo sperimentarlo tu stesso, che è quello che ti auguro nel prossimo futuro) Bene, poi è venuto qui un manager di Kiev, ci siamo incontrati con lui, ci siamo conosciuti, ho imparato di più sul progetto su cui devo lavorare. In breve, questa società di Kiev sta sviluppando una grande applicazione ERP per il suo cliente aziendale a Odessa e la sta sviluppando da molto tempo, a quanto ho capito, in totale già 3 - 4 anni =) è già stato scritto da molti, ma ci sono ancora innumerevoli bug. Inoltre, l'applicazione ha molte sfumature specifiche e la comunicazione con il cliente è costantemente richiesta, e mandare costantemente persone qui da Kiev è molto emorroidario, e anche stare seduti al telefono per giorni non è un'opzione, e hanno deciso che loro avevo bisogno di una persona qui, a livello locale, a Odessa. E ora devo finire questa domanda. L'applicazione è scritta in GWT + ExtGWT + Spring + Hibernate + MySQL e un sacco di librerie minori di supporto. Si dà il caso che questo sia esattamente lo stack tecnologico in cui ho sviluppato e ho un'esperienza più o meno tollerabile. Lo svantaggio è che il progetto è vecchio e utilizza vecchie versioni di librerie e approcci di progettazione obsoleti, e sono così obsoleti che praticamente non sono soggetti ad aggiornamento... o a riscrivere metà del codice... si è scoperto anche che Lo finirò DA SOLO =) ovviamente è un po' imbarazzante il lavoro su cui contavo, pensavo che, come ogni junior, mi sarebbe stato assegnato un team leader più esperto, che in qualche modo mi avrebbe guidato, avrebbe rivisto il mio codice, e con chi potevo consultarmi in caso di difficoltà =) Ma il destino ha decretato diversamente... mi è stato affidato un lavoro pensato per uno sviluppatore esperto e indipendente, e questo ha sia pro che contro. Bene, visto che ci ho pensato, sarebbe una buona idea chiedere subito un aumento di stipendio =) e aumentare la cifra iniziale di $ 200. Ciò non ha causato alcuna indignazione da parte loro. Bene, non fornirò numeri specifici, ma dirò che lo stipendio ha superato significativamente le mie aspettative. Inoltre, c'è solo un mese (e non tre, come al solito ovunque) di periodo di prova. E ora sono passate due settimane, a prima vista, ovviamente, è spaventoso guardare un progetto così grande, ma ora so che la prima impressione spesso inganna, e all'inizio è sempre difficile, ma come si suol dire, “è non gli dei che bruciano pentole” e “l'acqua corrode le pietre”. "=) E così, poco a poco, ho iniziato ad approfondire il codice e ora so che tutto funzionerà... È vero, non è stato così vogliono che lo formalizzi, hanno detto che avrei formalizzato l'SPD, ma questa, come ho sentito, è una pratica comune per i programmatori. Voglio anche sottolineare che anche il lavoro come programmatore non è ancora un resort, è anche, prima di tutto, un lavoro per il quale bisogna alzarsi la mattina e rientrare la sera, ma questo lavoro è molto meglio di tanti altri, per una serie di ragioni già elencate sopra, interessi, denaro e prospettive, ha tutto. Ed è particolarmente bello quando sai che sei riuscito a raggiungere questo obiettivo da solo, con la tua mente, con il tuo lavoro, con la tua perseveranza, che sei riuscito a fissarti un obiettivo serio e a raggiungerlo. Sono stato in grado di cambiare la mia vita, in modo che in molti modi tu sia padrone del tuo destino. L'unica cosa di cui ho paura adesso è la mia pigrizia, che una volta raggiunto questo risultato diventerò pigro e smetterò di crescere professionalmente, ma spero davvero che questo non accada =) In conclusione, continuerò la tradizione e elenco brevemente le tecnologie che sono state e sono tuttora per me fondamentali nella formazione e ora nel lavoro) è MOLTO auspicabile, anche forse NECESSARIA, conoscenza di database, SQL (MySQL), jdbc, Hibernate, Jpa, tecnologie di rete html, jsp, servlet , xml, Tomcat, la conoscenza dei pattern JavaSE di base è un MUST chiamato pattern GOF), sarà anche un ENORME vantaggio avere almeno una conoscenza superficiale di Spring, SpringMVC, preferibilmente anche del project builder Maven, logging log4j, unit test JUnit , lavorando con sistemi di controllo versione, Git per esempio, a volte chiedono o danno anche compiti di test sui servizi web (SOAP, REST) ​​... ma insieme a tutto questo, la conoscenza del core Java dovrebbe essere, se non impeccabile, allora almeno molto fiducioso. Eppure, la conoscenza di tutte queste tecnologie (anche se per lo più superficiale) non garantisce che al colloquio non ti venga chiesto qualcosa di cui senti quasi per la prima volta), ma anche qui, a seconda della fortuna... forse viene spinto solo il core Java e basta) Ancora una volta voglio ringraziare i creatori di questa meravigliosa risorsa, in particolare Sepp, Hubert e Diana! E auguro a te, Dzhavarashov, perseveranza e pazienza nel percorso che hai scelto, come diceva nonno Lenin: "Vai lungo il sentiero del villaggio, compagni!" =) e non indulgere alla tua pigrizia, e la cosa principale è "NEVER GIVE UP" e chi cammina padroneggerà la strada! Scusate per le troppe lettere) allora almeno molto fiducioso. Eppure, la conoscenza di tutte queste tecnologie (anche se per lo più superficiale) non garantisce che al colloquio non ti venga chiesto qualcosa di cui senti quasi per la prima volta), ma anche qui, a seconda della fortuna... forse viene spinto solo il core Java e basta) Ancora una volta voglio ringraziare i creatori di questa meravigliosa risorsa, in particolare Sepp, Hubert e Diana! E auguro a te, Dzhavarashov, perseveranza e pazienza nel percorso che hai scelto, come diceva nonno Lenin: "Vai lungo il sentiero del villaggio, compagni!" =) e non indulgere alla tua pigrizia, e la cosa principale è "NEVER GIVE UP" e chi cammina padroneggerà la strada! Scusate per le troppe lettere) allora almeno molto fiducioso. Eppure, la conoscenza di tutte queste tecnologie (anche se per lo più superficiale) non garantisce che al colloquio non ti venga chiesto qualcosa di cui senti quasi per la prima volta), ma anche qui, a seconda della fortuna... forse viene spinto solo il core Java e basta) Ancora una volta voglio ringraziare i creatori di questa meravigliosa risorsa, in particolare Sepp, Hubert e Diana! E auguro a te, Dzhavarashov, perseveranza e pazienza nel percorso che hai scelto, come diceva nonno Lenin: "Vai lungo il sentiero del villaggio, compagni!" =) e non indulgere alla tua pigrizia, e la cosa principale è "NEVER GIVE UP" e chi cammina padroneggerà la strada! Scusate per le troppe lettere) Continuazione
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION