JavaRush /Java Blog /Random-IT /La mia storia di successo

La mia storia di successo

Pubblicato nel gruppo Random-IT
  1. Ciao a tutti, vi scrivo dal mio primo posto di lavoro (più precisamente, dal luogo del mio primo stage retribuito come sviluppatore Java junior) prima che inizi la giornata lavorativa.
  2. La mia storia di successo - 1
  3. Ho 39 anni (!), ho iniziato a programmare per hobby mentre avevo una pausa dal lavoro, un po' di soldi, prendermi cura di un bambino appena nato, tornare dalla mia famiglia a Mosca e un paio di altre cose. In precedenza, ha lavorato come finanziere e ha partecipato molto all'implementazione dei sistemi contabili su vari 1Сах.

  4. All'inizio ho provato a iniziare a programmare da solo e persino a iniziare con Kotlin (mi è piaciuto molto sia il linguaggio stesso che coloro che lo sviluppano: JetBrains). Ma rapidamente, probabilmente entro una settimana, mi sono reso conto che senza Java non c'è niente da fare in Kotlin, ed è necessario un certo corso; scavare da solo è molto inefficace. Ho trovato, non ricordo come, JavaRush, mi sono registrato il 30 giugno (l'ho guardato via mail adesso). Già il 5 luglio ho acquistato un abbonamento (in questi 5 giorni ho completato i primi 10 livelli, due livelli al giorno). Ho completato, secondo me, 3 mesi, 25 o poco più livelli (completamente, curiosando nei dettagli, scaricando qualche piccola parte delle soluzioni, ma sicuramente capendole nei dettagli, davvero).

    Ricordo la grande emozione che provai quando finalmente analizzai le espressioni matematiche. Questo compito è stato un grande passo avanti, una svolta nella comprensione di me stesso come programmatore.


  5. Ho scelto di esaminare prima le raccolte e poi la parte relativa alla concorrenza. Ho guardato i contenuti e ho deciso che era più interessante e utile occuparsi delle collezioni. Secondo me, mi ci sono voluti circa due mesi per completare altri 10 livelli (fino al 35esimo da qualche parte).

  6. Da qualche parte nel mezzo della concorrenza divenne chiaro che era quasi inutile continuare a finire. È diventato più interessante analizzare i problemi nella sezione di aiuto (questo mi è stato utile: ho imparato ad analizzare il codice di altre persone e a strutturare le mie conoscenze) piuttosto che fare esercizi. Poi mi sono posto l'obiettivo di realizzare un progetto web usando Spring + Hibernate + Mayesquel + una sorta di motore di template (alla fine l'ho fatto usando Thymeleaf). Ho aperto i livelli rimanenti esclusivamente per scoprire i compiti più deliziosi.

    Se ci fosse stato uno stage in quel momento sarebbe stato fantastico, ma per quello che si stava svolgendo in quel momento era già troppo tardi, e per quello successivo era troppo presto.


  7. Di conseguenza, ho passato un mese e mezzo a disfare tutto questo (la persona nell'esempio del video ha fatto la stessa cosa probabilmente in 50 minuti, se è così). Ho realizzato due servizi web di prova in totale. Uno è una pura ripetizione di ciò che era nel video (l'elenco standard dei libri è analogo a un compito di prova per uno stage). Il secondo è più o meno simile al compito reale, la parte backend del sito per calcolare il costo dei controsoffitti con un controller di riposo (seguendo l'esempio delle reali esigenze degli amici). E sullo stivale a molla, e non sulla primavera nuda. Nella seconda, per divertimento, ho inserito anche le lezioni in Kotlin (in generale consiglio vivamente Kotlin, approfondirò sicuramente anch'io).

  8. Dopo aver praticamente creato da zero un servizio web (non diremo nulla del fatto che non disponeva di autorizzazione, gestore delle transazioni, normali test della web part, ecc.), è diventato chiaro che era necessario imposta il curriculum e cerca lavoro a giugno. A questo punto ho cominciato a capire che mi piaceva davvero programmare e che i programmatori erano davvero necessari. Poi (a metà gennaio, dopo le vacanze) ho finalmente scritto un breve curriculum in inglese, eliminando completamente la mia esperienza precedente (ho lasciato solo una breve descrizione in un paragrafo) e l'ho inviato a NN.

  9. Ciò che è iniziato è solo un paragrafo. Non ho fatto in tempo a mandare una richiesta a nessuno, avevo già ricevuto 4 offerte da aziende per un colloquio e un altro paio di lettere dalle risorse umane con offerte per prendere in considerazione lavori diversi (ma queste un paio di lettere non sono al livello, per persone di mezzo). Non capisco perché ciò sia accaduto, penso che in quel momento ci sia stato un forte aumento degli ordini da Sber (2 su quattro - la stessa Sber, che generalmente invita tutti coloro che hanno pubblicato un curriculum e il suo appaltatore) per un colloquio. Inoltre, il mio curriculum probabilmente sembrava bello.

  10. La prima intervista (Sbertech) è stata brillante. Gli ho insegnato molto bene le nozioni di base e di base, l'intervistatore ha detto che la previdenza sociale è solo una bomba e troverò sicuramente un lavoro, anche se non con loro. Ma il secondo (al telefono) è stato davvero un peccato. Ero completamente perso e conoscevo quasi tutte le domande o potevo dare una risposta sensata, come ho ricordato in seguito. Ora ci sono due intervistatori alla Sbertech, uno pensa che non sono cattivo, il secondo pensa che io sia un idiota clinico. È stata una bella lezione prendere sul serio le interviste, altrimenti ero un po' orgoglioso dopo le offerte e il primo colloquio.

  11. È interessante notare che in 3 colloqui (incluso il luogo attuale) non c'è stato praticamente alcun colloquio tecnico: hanno guardato in modo puramente umano come fossi, anche se ovviamente ero ben preparato. Ricordo soprattutto l'azienda che mi invitò unicamente perché avevo più di 35 anni. Hanno un'atmosfera davvero unica. Quando ho chiesto al loro responsabile dello sviluppo (molto più vecchio di me, davvero vecchia scuola) quale IDE usano (Intellij o Eclipse, c'è una sorta di politica in questa parte), all'inizio non ha nemmeno capito, poi ha risposto "Oh , un editor di testo... Sì, non li uso, è così che scrivo il codice. Ma puoi usare qualsiasi cosa, nessun problema." E sicuramente non stava scherzando. Sono rimasto sorpreso, per usare un eufemismo.

  12. Un paio di settimane dopo ho ricevuto una telefonata da Sbertech (proprio dopo il primo colloquio, lì hanno un mare di dipartimenti, ognuno si recluta da solo) con un'offerta di lavoro per ca. 1,1 mila dollari in mano al mese, tenendo conto del bonus annuale. Ho detto ok, hanno iniziato a elaborare l'offerta. Questo processo richiede loro una discreta quantità di tempo, ho comunque guardato altri lavori. In quel momento, mi sono imbattuto in un annuncio su Javarash sul reclutamento di stagisti per il gruppo di società Smart. Ho scritto che mi piacerebbe chiacchierare, non si sa mai, sono andato quasi subito a fare un colloquio. Tim Lead praticamente non ha fatto domande sul lato tecnico (anche se io stesso ho descritto il mio livello in modo abbastanza adeguato, senza stronzate) e ha detto che era pronto a mettermi alla prova in uno stage retribuito. Ho accettato perché Sbertech mi ha dato un po' fastidio (è chiaro che sarei andato lì se non ci fossero state alternative), in più mi è piaciuta l'atmosfera e la guida del team, in più il loro ufficio si trova a 7 minuti a piedi dal luogo in cui affittiamo un appartamento. Mi ci sono volute più di un paio di settimane per organizzare l'assistenza all'infanzia e in realtà sono andata a lavorare il 28 febbraio.

  13. Ora io (parallelamente ad un altro stagista, viene da un altro corso) comprendo il codice del progetto principale dell'azienda e, parallelamente, sotto la guida del team leader, sto creando un'applicazione di formazione, il cui unico obiettivo consiste nell'utilizzare le tecnologie e le tecniche di base esistenti nella modalità principale end-to-end, dal database al progetto del browser, ma su scala ridotta. Il primo giorno c'era un po' di panico, ma già il secondo giorno mi sono messo in gioco, adesso è molto interessante, arrivo al lavoro prima di tutti, parto quasi più tardi di tutti, ogni giorno mi sento come se' sto migliorando le mie capacità. Il responsabile Tim ha detto che era ora di passare al compito vero e proprio (sono stato assunto il 28 febbraio).

  14. Suggerimenti per i principianti:

    • Inglese. Sono fortunato di avere già un inglese fluente (che fortuna, noi, ad esempio, abbiamo spesso ospitato viaggiatori che praticavano couchsurfing, il mio inglese sta migliorando - Dio ti benedica). Senza l'inglese nella programmazione sei quasi pari a zero. Purtroppo è così.

    • Vite. Durante la mia formazione avevo una regola: non passare un giorno senza una riga di codice. E di solito passavo diverse ore al giorno a programmare. Sfortunatamente (o forse no), non ho letto nessun libro. Ma ho guardato molti tutorial video e discorsi di conferenze + ho riletto davvero un mare di risposte su StackOverflow.

    • Tuttavia, prima le collezioni. Concorrenza - secondo il principio residuo. Anche se ora ho un posto nelle mie reali capacità di multithreading, lavorare con le raccolte è molto più importante IMHO. Durante le interviste, l'unica volta che hanno chiesto è stato: so cos'è un mutex e tutto riguardava la concorrenza. Ma per quanto riguarda le collezioni è stato completamente diverso.

    • Assicurati di fare un paio di dozzine di esercizi su sqlex.ru (questo è rispettivamente secondo esquel). È molto semplice dopo un paio di dozzine di livelli in JavaRush, ma allo stesso tempo estremamente utile sia per la programmazione backend che per le interviste.

    • Assicurati di realizzare il tuo progetto semplice utilizzando framework come spring-boot + hibernate + mayesquel + qualche tipo di motore di template (come timeleaf o mustash). Oppure penso che completare uno stage sarà simile, ma non posso raccomandare nulla qui. Una persona con una semplice teoria su Spring e un progetto completo sulla programmazione è semplicemente cielo e terra. Dopo il progetto, gli esercizi medi del corso sono diventati praticamente un asilo nido, quelli complessi - al di sotto della media. Semplicemente aumentando la maturità del programmatore.

    • È fondamentale comprendere e aggiungere l'elaborazione delle transazioni a questo progetto, non solo a livello di "aggiunta a un metodo nel servizio @Transactional". Il tema delle transazioni era costantemente nelle interviste. Mi rammarico di non aver scovato sqlex.ru e le transazioni Spring e Hibernate prima di cercare un lavoro. Una persona transazionale parlerà agli intervistati per una posizione di backend molto, molto meglio.

    • Se qualcuno ha domande o problemi, scriva, cercherò sicuramente di aiutare come meglio posso. Soprattutto quelli che stanno realizzando il loro primo progetto in primavera. Sarò felice di incontrare chiunque a Mosca.

Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION