JavaRush /Java Blog /Random-IT /Java Medio in 2,5 mesi.
novago219
Livello 34

Java Medio in 2,5 mesi.

Pubblicato nel gruppo Random-IT
Un saluto a tutti i lettori che pensavano che in 2,5 mesi da zero si potesse davvero diventare Medi. Mi affretto a deluderti: questo è possibile solo con un duro lavoro su te stesso, e so che tutti vogliono tutto in una volta, proprio adesso e in nessun altro modo. E la frase da zero si applica a me solo in un certo stato condizionale, perché in realtà non avevo assolutamente alcuna conoscenza di Java come linguaggio di programmazione. Ma sapevo già qualcosa e potevo farlo anche prima di incontrare JavaRush, e forse vorrei iniziare la mia storia con questo, perché la mia crescita professionale è una combinazione piuttosto strana di conoscenza, abilità e fortuna in un certo senso. Quindi, lascia che ti faccia un elenco che mi ha dato un vantaggio competitivo rispetto agli altri e mi ha anche permesso di superare JavaRush (fino al livello 34) abbastanza velocemente e senza troppe difficoltà (almeno non mi ha sorpreso). L'elenco è composto dalle conoscenze che mi ha dato l'università e da ciò che mi interessava. Non separerò dove si trova tutto e non nominerò nemmeno l'università. Se lo desideri, dovresti padroneggiare tutte queste conoscenze da solo se la tua università non le insegna.
  1. Algoritmi e strutture dati: il mio percorso in questa direzione è iniziato con lo studio dei principi di costruzione degli algoritmi, la lettura di libri classici (Knuth) e lo studio del linguaggio di programmazione Pascal, ed è proseguito con il linguaggio C, l'implementazione di tutte le strutture dati e l'analisi dei i vantaggi e gli svantaggi di ciascuno di essi. Non dico che, oltre a tutto il resto, so lavorare con le Macchine di Turing e gli Algoritmi di Markov, o meglio, questo l'ho già detto, ma questo potete ignorarlo, anche se, secondo me, il concetto di nastro di memoria infinita e il movimento del puntatore lungo di esso danno l'idea più corretta di come funziona effettivamente un computer dall'interno, ma questa è solo la mia modesta opinione.
  2. Architettura del computer e Assembler: quando decidi di aver compreso completamente il principio di funzionamento del computer, prova a scrivere programmi a un livello molto basso (altrimenti come apprezzerai tutte le delizie di Java?), e personalmente ho considerato tutte le opzioni educative con una , due, tre registri e ho capito come devi schivare quando c'è un solo registro e il programma funziona (sorprendente, vero?).
  3. Matematica discreta: naturalmente, parallelamente a quanto sopra, vale la pena affrontare anche questo argomento, poiché fornisce una comprensione completa del pensiero logico, e la teoria delle macchine a stati finiti ti dirà come sono disposti gli interni del processore e come sono organizzati in circuiti integrati. Non dimentichiamo che qui si studia anche la Teoria dei Grafi, che non sarà superflua al 100%.
  4. Matematica superiore: ho deciso di evidenziare tutte le altre materie matematiche in un paragrafo, per non ingombrarvi troppo la testa. Qui ci sono: analisi matematica, teoria e statistica della probabilità, algebra lineare - tra l'altro, una cosa molto, molto importante se vuoi fare grafica tridimensionale (lo so, il sogno di tutti è scrivere giochi, anche se per questo lo farai anche devo seguire un corso di equazioni differenziali e metodi numerici, ma è così - piccole cose) e altre aree.
  5. Architettura del sistema operativo. Linux: dopo che ti sarai sentito a tuo agio qui, il multithreading in Java solleverà molte meno domande e si scopre che hai già sentito la fiaba sui filosofi da qualche parte.
  6. OOP, linguaggio C++: beh, siamo quasi arrivati ​​al vertice della catena alimentare. Non lo spiegherò in dettaglio qui e non dirò perché l'implementazione dell'OOP in C++ sia molto più interessante da guardare.
  7. Inoltre: un altro paio di piccole cose che già sapevo erano: computer grafica (OpenGL, Unity 3D) e C# (Core).
Cosa c'entra JavaRush con tutto ciò?
Bene, insieme a tutta questa spazzatura di conoscenza, a settembre dell'anno scorso mi sono imbattuto in JavaRush, ho scorso un paio di livelli e ho rinunciato, dato che ho trovato abbastanza facilmente un lavoro dopo l'università (non come programmatore, ma nell'IT, forse qualcuno indovina cosa potrebbe essere?). Ma presto ho scoperto che non ero affatto interessato a questo; in un paio di mesi ho quasi raggiunto il tetto e ho capito che non aveva senso sviluppare qui, sebbene il management dell'azienda offrisse opzioni quasi divertenti (tra cui DevOps), che ho rifiutato. Allo stesso tempo, stavo preparando gli scolari per le Olimpiadi di informatica (ho dimenticato di dirlo: mi piaceva molto la programmazione sportiva) e, dopo aver lasciato il lavoro principale, ci sono andato a capofitto. Sono stato contento di tutto per circa 4-5 mesi, finché non mi sono stancato anche di questo. Le domande venivano ripetute, tutti gli argomenti venivano trattati ed è stato allora che mi sono ricordato di JavaRush. Essendo un razionalista (avido), ho prima attraversato i primi 10 livelli da una copertina all'altra, poi ho guardato oltre (sembrava che il livello 15 fosse sufficiente), ho capito che era piuttosto interessante e nel mio modo tipico - l'ho fatto e basta in ogni momento libero. Hai 5 minuti a disposizione? Ottimo, aggiungo la logica del metodo. Totale: ho acquistato due abbonamenti mensili. Nel primo mese sono passato dal livello 10 al 28, nel secondo incompleto (circa 15 giorni) sono passato dal livello 28 al 34. Cronologicamente, era aprile-metà maggio, cioè sono trascorsi 1,5 mesi (fai tu stesso i conti in rubli). Non ti dirò come farlo e come non farlo: è già stato detto molto al riguardo.
Occupazione
Intorno al livello 30, ho esaminato i posti vacanti nella mia città e ho deciso di non affrettarmi e di non inviare curriculum a tutti, ma di selezionare specificamente l'azienda desiderata, prepararmi e solo dopo inviare i miei scarabocchi al dipartimento delle risorse umane. Ho disegnato anche gli scarabocchi con molta attenzione e il risultato è stato molto buono. Sono stato subito invitato ad un colloquio e l'ho superato con molta sicurezza (almeno per quanto riguarda Java Core). Non descriverò quali fossero le domande. I problemi sono iniziati quando mi hanno chiesto come funzionava Spring e se conoscevo qualche tecnologia Enterprise. In realtà, ho detto che non lo so, ma con un livello del genere - Junior è garantito (non salterai più in alto), ma ho comunque saltato e qui, probabilmente, inizia la parte più interessante. In generale, quando mi sono state spiegate le condizioni (2 mesi - periodo di prova, posizione - Junior e fascia salariale), ho capito che non mi piacevano molto, ma ho detto che ero d'accordo e ho chiesto se potevo iniziare a lavorare più tardi, motivante perché avevo bisogno di finire il mio lavoro attuale prima di entrare in una nuova azienda. Quindi mi sono concesso quasi un mese per prepararmi. Ho avuto un colloquio all'inizio di maggio e ho iniziato a lavorare il 23. Naturalmente, ho studiato ancora una volta i requisiti, ho scoperto quali tecnologie sono state utilizzate (Java EE 6) e mi sono preparato per il lavoro.
Medio o non medio?
Ebbene, mi sono messo al lavoro e ho scoperto che avevano reclutato circa 5 Juniors, tra i quali, ovviamente, spiccavo io, ma non molto. Prima di tutto, ho incontrato il mio diretto superiore, ho notato che fumava e ho iniziato a uscire a fumare con lui (e io non fumo affatto). Con noi c’era anche un altro programmatore, di lui vi parlerò poco dopo. In generale, mentre fumavo (3-4 volte al giorno lavorativo), ho parlato con il manager, ho parlato più in dettaglio dei miei successi, ho menzionato casualmente le mie conoscenze (deve essermi tornato utile) e in generale, ho acquisito sicurezza come meglio potevo Potevo. Il barbecue e la birra alla fine della prima settimana hanno permesso di stabilire rapporti migliori, che ho organizzato. Sono rimasto in ufficio a lavorare fino alle 23 (giorno lavorativo fino alle 18:30), finché la guardia giurata non mi ha cacciato. A volte il CEO e il CTO dell'azienda sono rimasti con me in ufficio, con i quali ho anche comunicato, abbiamo cenato insieme e siamo usciti insieme dall'ufficio (il CTO mi ha anche offerto un passaggio a casa, ma ho gentilmente rifiutato). Pertanto, in primo luogo, ho stabilito un buon rapporto con il mio diretto superiore e, in secondo luogo, ho mostrato al senior management che avrei completato il compito e solo allora sarei tornato a casa. Naturalmente tutto questo non fa di me un Medio. Quindi cosa ha fatto? Lascia che ti ricordi che prima del colloquio non conoscevo un solo framework (tranne JUnit). È qui che vale la pena tornare al programmatore di cui ho parlato sopra. Era un programmatore molto potente con 20 anni di esperienza, che ha lavorato per 5 anni a Mosca, circa 7 anni in America (come capo architetto del progetto) e in molti altri posti, compresi progetti governativi di particolare importanza (ho imparato tutto questo fumando con lui). Quindi, a questo programmatore è stato affidato un compito molto serio e ha deciso di prendermi come assistente. Dopo che gli è stato affidato questo incarico, si è scoperto che aveva urgente bisogno di lasciare il paese e non sarebbe stato in grado di lavorare. Ha scritto la struttura della domanda e mi ha lasciato responsabile, dicendo che avrebbe monitorato da lontano. È stato questo momento che mi ha aiutato a diventare Middle e a finire il periodo di prova non in 2 mesi, ma in uno e ad avere diritto a uno stipendio più serio. Perché questo programmatore non era in grado di monitorare da lontano e il progetto è stato lasciato interamente a me. L'ho completato con successo entro un mese, per il quale ho ricevuto la mia posizione e l'opportunità di richiedere uno stipendio più alto.
Qual è la morale?
Si può dire che ho avuto la fortuna di studiare dove mi hanno dato tutta questa conoscenza (ma attenzione, l'ho usata solo per menzionarla ai miei superiori), che le circostanze erano tali che un progetto del genere è caduto sulle mie spalle, e cosa deve fare JavaRush farne a meno, sembrerebbe ? Lascia che ti ricordi ancora una volta che prima di JavaRush il mio livello di conoscenza di Java era 0: tutto qui. In secondo luogo, quando risolvi i problemi al 52esimo tentativo, qualcosa ti rimane in mente: avevo un talento per le eccezioni, i controlli, ecc., che era anche un vantaggio competitivo rispetto ad altri, e in generale - inizi a comprendere JavaCore in modo molto approfondito ( che conferma il certificato OCA, che ho superato a spese dell'azienda e ha ottenuto un punteggio del 94%), e senza questo non vedo molto motivo di andare avanti. La prossima settimana mi verrà assegnato un nuovo progetto da zero, che condurrò io stesso (inclusa la progettazione del database, la selezione della tecnologia e anche il reclutamento di un team). Inoltre, condurrò interviste ed esaminerò i progressi dei Juniors per determinare se ne vale la pena o meno. Voglio dire che in queste questioni mi ha aiutato non solo la conoscenza fattuale, ma anche la capacità di stabilire una comunicazione con la squadra, presentarmi bene alla direzione, la capacità di lasciare il segno e la prova che farò tutto fino in fondo fine. Grazie per l'attenzione, auguro a tutti più perseveranza e attenzione ai dettagli.
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION