Come sono passato da un neofita a uno sviluppatore di software per 9 mesi senza interrompere il mio lavoro principale

In questo articolo vi mostrerò come nei primi nove mesi è passata da praticamente pari a zero esperienza nello sviluppo di software per il programmatore con stipendio a sei cifre, mentre si lavora a tempo pieno e di apprendimento per conto proprio.



Ogni volta che vedo la storia di successo di qualcuno, guardo la biografia dell'autore con speranza e improvvisamente la sua storia coincide con la mia. Finora, non ho incontrato una singola persona che si sarebbe sviluppata esattamente come me; molto probabilmente, e troverai alcune differenze tra la mia esperienza e la tua. Tuttavia, spero che questa storia serva da ispirazione e fonte di informazioni preziose che potresti aggiungere alla tua base.

Rapporto completo

Al liceo, ho completato un corso di Visual Basic per applicazioni (che era nove anni fa). Nel primo anno di università, dove ha studiato per un ingegnere, ha avuto una piccola conoscenza di C, Python, Matlab e Labview (era sette anni fa). Ho ottenuto un diploma da una rispettabile università con una laurea in tecnologia chimica con un buon punteggio medio (era tre anni fa). Oltre a queste lezioni, non praticavo più la programmazione, né negli anni della scuola, né all'università, fino a quando, alla fine, ho deciso che l'anno scorso volevo impararlo. Dopo la laurea, ho ottenuto un lavoro come ingegnere di processo in una raffineria di petrolio e ci ho lavorato fino alla partenza per gli sviluppatori.

Perché ho deciso di cambiare lavoro

Mi piaceva risolvere problemi tecnici, ma allo stesso tempo mi sono reso conto che prima o poi volevo entrare nel business e nelle startup. Pensavo di ottenere un MBA, ma se si guardavano solo i prezzi delle migliori università, come l'interesse svaniva immediatamente.

27 maggio 2017, ho ancora una volta consultato il programma MBA e in qualche modo sono andato allo sviluppo del software. Mi è sembrato un'opzione ideale. La domanda di sviluppatori è in costante crescita, gli stipendi meritevoli, inoltre questa sfera è ottima per entrare nel mondo delle start-up senza un enorme capitale iniziale. Hai solo bisogno di un computer, e avrai possibilità illimitate (beh, o quasi illimitate).

In altre branche tecniche, non è possibile inventare un'idea, iniziare immediatamente a implementare, mostrare il risultato agli utenti e iterare con un minimo di investimento e una soglia di ingresso bassa. Nel campo della tecnologia chimica, ad esempio, se crei un nuovo prodotto, avrai bisogno di un operaio o di una fabbrica per proiettarlo.

Ho sentito che alcune persone abbandonano il lavoro e scrivono ai bootcamp. Ma più ho studiato i materiali online, più ho capito che è abbastanza realistico padroneggiare tutto ciò con il giusto grado di motivazione e concentrazione. Si può sostenere che un tale equilibrio priva le opportunità di networking e di assistenza nella ricerca di lavoro fornite da bootcamp. C'è del vero in questo, ma ho avuto la fortuna di vivere nella zona della Baia di San Francisco: mi ha permesso di visitare diversi mitapes e stabilire comunicazioni professionali lì.

Inoltre, anche nel peggior giro degli eventi, capirò semplicemente che non posso gestirmi da solo, che mi chiuderei e andare al bootcamp.



scopo

Stabilire gli obiettivi è necessario, soprattutto se si sta cercando di combinare la formazione con un lavoro a tempo pieno. Quando non c'è pressione dall'esterno, è troppo facile permettere che il processo di autoeducazione si estenda all'infinito. Pertanto, è necessario creare una pressione dall'interno. L'obiettivo dovrebbe essere semplice e correlato agli indicatori quantitativi. Studiare attentamente l'ambito per stabilire un obiettivo ragionevole e realizzabile. Ho formulato la mia strada:
Entro un anno, ottenere un lavoro come sviluppatore con uno stipendio non inferiore a quello che ricevo ora.
piano

Ora che l'obiettivo è stato fissato, abbiamo bisogno di un piano che contribuirà a raggiungerlo. In questa fase, vale la pena leggere le storie di successo del bere. Naturalmente, non corrisponderanno completamente alla tua situazione, ma si può ancora imparare qualcosa di utile da ciascuno. Ho costruito (e iterato) il mio piano sulla base di fonti come sabrezionare la programmazione dell'apprendimento , forum freeCodeCamp e Medium .

Il 27 maggio 2017, ho deciso di fare un salto nella sfera IT e mi sono precipitato per primo. Lo stesso giorno, ho deciso che non avrei trascorso più di 40 ore a settimana nel mio lavoro principale, così ho avuto il tempo di scrivere il codice la sera e nei fine settimana. La buona notizia: ho documentato l'intero processo in dettaglio.

Dopo un'elaborazione senza fine, la versione finale del mio piano ha assunto pressappoco la seguente forma:

Segui il corso Introduzione al CS per comprendere i concetti di base.
Lavora con materiali freeCodeCamp fino a quando non riesco a creare applicazioni web complete per il mio portfolio.
Esegui il refactoring per rendere il codice più ordinato, aggiungere test, prestare attenzione a concetti più complessi.
Dare un contributo ai progetti open source.
Preparati per le interviste.

Il mio piano è iniziato con uno semplice. In quel momento, ho deciso di seguire la guida dello sviluppatore di Google e ho iniziato con il corso, che raccomandavano come introduzione: CS101 di Udacity.

Mese №0 - CS101 da Udacity, corso Harvard CS50

Dalla piacevole sensazione che fu presa una decisione seria, fui investito da un impeto di energia. Appena tornato a casa dal lavoro, ho immediatamente iniziato a scrivere il codice e non mi sono fermato finché non è arrivato il momento di andare a letto. E nei fine settimana ha fatto lo stesso. CS101 di Udacity tiene traccia della percentuale di attività completate e ciò mi ha fornito un'ottima fonte di motivazione. Ogni giorno, dopo aver completato le lezioni, ho annotato la percentuale attuale. Ho superato il primo 75% del corso in dieci giorni. Il restante 25% era più interessato alla ricorsione e mi è stato dato più difficile. Tutto sommato, mi ci sono voluti venti giorni per finire il corso CS101 da Udacity.

Durante il corso, ho anche iniziato ad essere molto interessato a leggere il programma di apprendimento sabredit. Hanno scritto che gli sviluppatori autodidatti che vogliono cambiare la loro professione devono essere attivi online. Ho deciso di creare nuovi account su Twitter, Reddit, Stack Overflow, Medium e Quora con il mio nome completo per illuminare l'ambiente Internet.

Inoltre, ho deciso di iniziare con risorse come Instagram, Facebook e Reddit (con l'eccezione della programmazione dei sabrificits), che mi hanno distratto dalle lezioni. Ho iniziato a visualizzare sul telefono solo le notizie e i post rilevanti per lo sviluppo. Era di fondamentale importanza imparare le migliori tecniche e i motivi di allenamento. È così che ho partecipato al corso Harvard CS50 su edX.

Inizialmente, ero soddisfatto della prospettiva di un solo corso introduttivo, ma tutti gareggiarono con il consiglio del corso Harvard CS50, e decisi che lo avrei seguito. Gli studenti che hanno studiato informatica in altre università hanno detto che un corso ha dato loro più conoscenze di un paio di anni di studi universitari. Entro la fine del mese zero ho padroneggiato le prime cinque lezioni e compiti a casa.

Mese # 1 - Harvard Course CS50, Linux, primo Mitap, freeCodeCamp

Il corso Harvard CS50 ho finito da qualche parte entro la metà del mese. Non mi soffermerò su questo ora, perché ho già dedicato questa esperienza separata a questa esperienza .

In breve: questo è un corso eccellente, lo consiglio vivamente. David Malan è un eccellente docente, inoltre, ci sono molte risorse disponibili che aiuteranno a padroneggiare il materiale. Tutto inizia con C, quindi vai su Python e alla fine stai considerando lo sviluppo web. Il programma è molto ricco, il materiale dovrà passare molto, ma penso che ne valga la pena.

Avendo completato il CS50, ho deciso di installare XPS 15 Ubuntu sul mio laptop accanto a Windows. Il weekend, quando stavo facendo questo, non era piacevole. Ho rovinato il codice e quasi ucciso il mio portatile. Difficilmente resistito, basta non buttarlo via e comprarne uno nuovo.

Poco a poco, ho iniziato a scendere da Windows e alla fine sono passato completamente a Ubuntu. Volevo lasciare almeno la forza, ma per farlo mi sento a mio agio a lavorare con la linea di comando. Secondo me, in qualche modo mi ha aiutato, ma ho ancora molto da crescere.

Mi sono unito alla sessione "100 giorni di codice" per scrivere il codice ogni giorno e non permettere che l'attenzione si dissolva. È importante registrare i tuoi risultati. Se si registra i risultati ogni giorno, può sembrare che niente di speciale è stato fatto, ma più tardi, guardando attraverso i record per un mese o pochi mesi, si vedrà che abbiamo raggiunto buoni progressi, e che servirà come una motivazione per continuare.

Sapevo che tutto sarebbe dipeso dal networking, quindi ho avuto coraggio e sono andato al mio primo MTP per sviluppatori. In generale, non sono mai stato al Mitapah prima, non solo al programmatore. I miei nervi erano così risolti che quando sono arrivato, parcheggiato e sono andato alla porta, ero completamente pronto a girarmi e tornare a casa.

Fortunatamente per me, il gruppo ha incontrato quel giorno per la prima volta. Ho subito capito che non ero preoccupato di nulla. Anche gli altri partecipanti non si conoscevano, nessuno condannava nessuno e tutti erano felici dell'opportunità di imparare qualcosa di nuovo. Questo attacco è diventato l'inizio di un'intera serie per me. Di conseguenza, per nove mesi ho visitato più di cinquanta Mitapov.

Sono contento di aver iniziato a frequentare Mitapes presto. La maggior parte delle persone accetta quando iniziano a cercare lavoro, e in questa fase è quasi troppo tardi. Ci sono molti motivi per iniziare presto. Ecco alcuni di loro:

Ci vuole molto tempo per costruire relazioni. Se inizi presto, nella fase di ricerca di un lavoro, avrai delle connessioni con persone che possono metterti in parole per te.
Le conversazioni sulla programmazione con estranei sono un ottimo modo per prepararsi per un colloquio.
Avrai l'opportunità di conoscere nuovi quadri, strumenti e risorse di formazione da coloro che sono avanzati più avanti di te. Questo può apportare modifiche ai tuoi piani futuri per l'autoeducazione.

In questa fase del percorso del mio programmatore, tutto sembrava piuttosto vago. Dovevo decidere cosa volevo sviluppare.

Alla fine, ho scelto lo sviluppo web, perché sembra avere una buona domanda e il web ha trovato molte risorse. Sulla base di questa decisione, è stato necessario pensare al prossimo passo. Alcuni amici credevano che in questa fase dovessi decidere quali applicazioni web voglio fare e mettermi al lavoro. Altri hanno consigliato di aderire a The Odin Project o freeCodeCamp.

L'organizzatore del settimanale Mitapov, a cui ho partecipato, conosceva Ruby e voleva scrivere progetti su di esso. In molti modi, è per questo motivo che ho deciso di colpire The Odin Project.

Due giorni dopo ho rifiutato questa idea.

Questo è uno degli svantaggi dell'autoapprendimento. Ora può sembrare che tu sappia esattamente in che direzione muoversi, e il giorno dopo dubiti già che stai agendo correttamente.

Ho letto da qualche parte che la popolarità di Ruby sta calando, e il confronto tra il numero di posti vacanti in Ruby e JavaScript ha confermato queste informazioni. E così alla fine ho iniziato a lavorare con freeCodeCamp. L'unica cosa che mi ha infastidito di questa risorsa è stato il fatto che offrono le loro idee per i progetti, in modo che tutti i partecipanti facciano la stessa cosa. Mi preoccupava: vorrei catturare gli occhi dei datori di lavoro. Tuttavia, mi è piaciuto molto il FreeCodeCamp e posso tranquillamente consigliarlo. Se vuoi saperne di più sulla mia esperienza con questo sito e ottenere qualche consiglio, leggi il mio post su questo argomento.

Month # 2 - YDKJS, frontend su freeCodeCamp, React

Ho preso la serie di libri " You Do not Know JavaScript ", perché è consigliato come aggiunta al corso freeCodeCamp. Alcune sezioni dovevano essere lette due volte (il testo è molto denso dal punto di vista informativo), ma è un'ottima fonte per affrontare aree di visibilità, chiusure, promesse e tutti gli altri concetti di JavaScript che senti e vuoi costantemente apprendere, ma non osare, perché sembrano molto complicati

Ho lavorato sull'intera sezione di frontend di freeCodeCamp. Il formato della lista e la visualizzazione del tempo stimato trascorso sulle restanti attività mi hanno motivato a finire il prima possibile. Inoltre, ho dovuto grattarmi le mani il più rapidamente possibile nella sezione successiva e padroneggiare React. Tuttavia, questo ha portato al fatto che la stilistica dei miei progetti era minima. Ho fatto solo ciò che le storie degli utenti richiedevano e non ero distratto da nient'altro. Guardando indietro, probabilmente dovevo prestare maggiore attenzione all'appeal esterno dei prodotti. È possibile che ciò mi aiuti a padroneggiare più profondamente il CSS.

Successivamente ho dovuto prendere React, ed ero pieno di entusiasmo.

Ho sentito molto parlare di lui ed ero impaziente di unirmi alla compagnia dei tizi. Allo stesso tempo, ho esitato un po 'a causa di problemi con la licenza, che è appena sorto in quel momento. Sono molto contento che siano già stati risolti. Lo studio di React non è stato un compito facile. Poi ancora non sapevo dove si possono leggere buoni tutorial (ma ora sono trovati ad ogni passo).

Ho provato a leggere la documentazione e ad andare sul tutorial di Tic-Tac-Toe da Facebook, ma non ho capito tutto su di loro. Mi è stato detto che se non riesco a capire questo materiale, non conosco ancora abbastanza JavaScript. Così sono tornato ai libri che non conosci JavaScript, ma si sono rivelati troppo per me.

Mese # 3 - FreeCodeCamp React, CodeClub, corso di backend per freeCodeCamp (start)

Alla fine, ho deciso di iniziare a lavorare su progetti su React e vedere come stavano andando le cose. Il mio codice sembrava disgustoso, ma mi ha aiutato a capire un po 'la lingua.

Lo stesso gruppo con cui andavo alle riunioni ogni settimana, ha deciso che avrei scritto l'intero progetto in JavaScript, non in Ruby, e come primo progetto ho scelto la creazione del sito Web del gruppo: CodeClub.Social .

Usando React e l'API Mitap, ho creato delle carte speciali, attraverso le quali l'utente poteva registrarsi per i prossimi tre incontri direttamente sul sito. Ho interrotto a malincuore il corso su freeCodeCamp per questo compito, ma questa opportunità non poteva mancare. Lavorare al progetto in un piccolo gruppo si è rivelato molto interessante. Inoltre, mi ha permesso di padroneggiare Git e GitHub.

Alla fine del mese, passai alla sezione back-end del corso freeCodeCamp.

Mese # 4 - corso di backend per freeCodeCamp (finale), Yeggle

Ho fatto tutte le attività relative alle API su freeCodeCamp, ma dopo che sono arrivato al progetto di ricerca di astrazione di Image Search, ho iniziato a deviare dal programma.

Ero ansioso di creare da solo l'applicazione web a ciclo completo, quindi a prima vista il nome di questo progetto ho avuto l'idea del proprio prodotto. Ho deciso di creare un'applicazione sul nodo, che memorizzerà gli URL di immagini casuali con imgur nel database, quindi aggiungo un frontend che fornirà il numero specificato dall'utente di immagini casuali da questo database. La gente dice consapevolmente che si lavora di più e con successo sulla propria idea - è vero.

Ero molto orgoglioso di me stesso quando finalmente ho trovato tutto funzionante. Il sistema era ingombrante e non molto bello, ma faceva ciò che gli era richiesto.

Continuando a lavorare sui compiti con freeCodeCamp, ho simultaneamente capito quali progetti sarebbero stati in mio potere. A quel tempo, mi muovevo regolarmente e di solito tiravo fuori idee proprio in quel momento, e dopo essere tornato a casa, le annotavo. Quindi, quando ero pronto per iniziare, avevo già una lista di possibili progetti.

Alla fine, mi sono sentito pronto per iniziare a lavorare sulla mia applicazione web a ciclo completo di alta qualità, che posso presentare agli utenti e aggiungere al mio portfolio. Ero solo in piena prontezza al combattimento.

Ogni volta che voglio andare in un nuovo bar, per prima cosa apro Yelp per leggere le recensioni, quindi passo a Google Maps per vedere cosa scrivono lì. E se faceste un'applicazione che produrrà entrambe le serie di feedback sullo schermo per il confronto?

Così è apparso Yeggle . Quando l'ho scritto, ho utilizzato Node, Express e React, oltre alle API di Yelp e Google Maps. Un paio di volte mi sono imbattuto in difficoltà che, a quanto pare, non potevano essere risolte affatto, ma ciò nonostante ha portato a termine la questione ed ero molto orgoglioso del mio lavoro. Ho pubblicato l'applicazione su Reddit, ma non ha causato alcun interesse. Era un peccato, ma ho cercato di non prenderlo a cuore.

Mese №5 - StockIT

Questo mese non sono stato così produttivo, perché ho trascorso il primo semestre in vacanza in Giappone e Tailandia!

Tuttavia, ho iniziato e completato il mio prossimo progetto. Spesso ho sentito storie su quanto fosse difficile per uno sviluppatore autodidatta avere un lavoro, quindi ho deciso che avevo bisogno di inventare qualcosa del genere. Mi sono ricordato di un gioco in cui l'indice industriale Dow Jones era in aumento e il giocatore ha avuto l'opportunità di fare un acquisto e una vendita in modo da ottenere un profitto. Lo scopo di questo gioco era quello di trasmettere all'utente quanto sia difficile ri-giocare il mercato.

Ho avuto l'idea di creare un gioco simile, solo che sarebbe stato necessario combattere lì non con il mercato, ma con l'algoritmo del machine learning. E ho fatto StockIT .

Ho guardato il video tutorial su Pandas e Scikit Learn, che descriveva diverse tecnologie di apprendimento automatico. All'inizio volevo includere qualcosa di approfondito, ma ho capito che ciò avrebbe richiesto un enorme database e costi di tempo significativi per i quali non sono pronto.

Invece, mi sono limitato a un modello di regressione lineare. Pensavo che questa parte sarebbe stata la più difficile, ma si è rivelata diversamente. La cosa più difficile era riconciliare D3 con React. Entrambe le biblioteche hanno cercato di prendere il controllo del DOM. Ci sono altre biblioteche che potrebbero aiutare con il loro pooling, ma mi sembravano troppo pesanti. In definitiva, ho usato D3 per generare SVG e React - per lavorare con DOM, e sembrava che sarebbe stato bello.

Questa volta, quando ho presentato il progetto su Reddit, è piaciuto a tutti! Si scopre che il pubblico locale, proprio come gli investitori, è molto indifferente all'apprendimento automatico. La risposta positiva di Reddit mi ha aiutato a credere nelle mie forze. La gente ha giocato il mio gioco e ci è piaciuto!

Month # 6 - jobSort (), preparazione per la ricerca di lavoro

Avendo finito con StockIT, ho immediatamente saltato al prossimo progetto. Volevo creare una scheda di posti vacanti che unisse piccoli elenchi di lavoro da singoli siti IT: Stack Overflow, Github e Hacker News. Per aggiungere qualche risalto, ho deciso di impostare l'ordinamento in base alle tecnologie con cui l'utente vorrebbe lavorare e la possibilità di contrassegnarle come più o meno prioritarie.

Ad esempio, immaginiamo che sto cercando lavoro in un'azienda in cui ho bisogno di un esperto JavaScript, React e / o Python, e voglio davvero lavorare con JavaScript e React, ma non ho forti sentimenti per Python. Poi ho impostato la priorità di 3 per JavaScript e React, ma per Python ne ho inserito uno. I lavori verranno ordinati di conseguenza.

Con questo progetto ho avuto molte difficoltà, un paio di volte ho dovuto cambiare linea d'azione, ma il risultato finale mi ha soddisfatto. Nella sua forma finale, lo stack tecnologico comprendeva React, Node, Express e MySQL. Ho postato un'applicazione in sabreit cscareerquestions , e lui è riuscito a raccogliere 650 visualizzazioni finché non è stato cancellato - non è consentito condividere progetti personali lì.

La versione "finale" del prodotto è qui , e se sei interessato a leggere della mia angoscia e del refactoring, ti rimando a questo post .

A causa di tutti questi problemi, il lavoro su jobSort () ha richiesto la maggior parte del mese. Ho incontrato una tazza di caffè con un'amica che ho incontrato nel primo Mitapa e mi ha consigliato di iniziare a inviare il mio curriculum. Ho riletto un sacco di storie in cui gli sviluppatori hanno ammesso di averlo trascinato per troppo tempo. Sì, e su Reddit, quanti non ho trovato i post con la domanda "Quando è meglio inviare un curriculum?", La maggior parte delle voci componeva sempre la risposta "Proprio ora".

Immagino che tutto questo è rappresentato come segue: I procederà secondo i piani, elaborare un solido portafoglio di progetti personali, poi lavorare sui contributi a progetti open source, quindi già predisposti per le interviste, bene, e, infine, iniziare a inviare curriculum. Ma un amico mi ha persuaso a lasciare questo piano e immediatamente a cercare lavoro. Pertanto, entro la fine del mese ho creato un portfolio e un curriculum. La newsletter era programmata per il mese prossimo.

Mese # 7 - Test e ricerca di lavoro

Ho preso questo mese sotto la revisione dei progetti e la ricerca di lavoro. Volevo anche imparare i test e Redux.

Ho aggiunto il flexbox CodeClub.Social per renderlo più interattivo. UX migliorato nella versione mobile di jobSort (). Ho aggiunto il test con mocha / chai / enzyme a jobSort () - era difficile da configurare, è facile da avviare ed è ancora difficile ottenere una copertura del 100%.

Entro la fine del mese ho risposto a 63 posti vacanti. Ho visto questa come un'opportunità per valutare me stesso. Il mio portfolio e il mio curriculum daranno la giusta impressione? In caso affermativo, a cosa devi lavorare prima di andare a un colloquio? All'inizio ho scelto i posti vacanti della sezione Who is Hiring su Hacker News e da Indeed. Lavori con Hacker News Ho guidato attraverso jobSort () per determinare a quali prestare attenzione. In effetti, ho cercato di entrare in aziende che non lavoravano con il software, solo per vedere se potevo ottenere una callback o un invito a un colloquio da qualche parte.

All'inizio ho spedito l'invio in modo rapido, senza cercare di personalizzare in qualche modo il curriculum e la lettera di presentazione. Più tardi ho deciso di personalizzarli e provare a comunicare direttamente con qualcuno dei dipendenti dell'azienda. Questo metodo ha funzionato chiaramente meglio rispetto all'approccio "frost" originale.

Per tutto il mese ho ricevuto cinque chiamate: due volte - reclutatori, tre volte - società specializzate nello sviluppo di software, in particolare:

una società che offriva lavoro su un contratto relativo ai test e ai DevOps
L'azienda recentemente lanciata che si occupa di analisi nel settore alimentare
una start-up di grandi dimensioni e di successo, che è stata recentemente acquistata da una grande azienda

In due di loro, ho superato con successo un'intervista telefonica con gli ufficiali del personale, ma non ho raggiunto la fase dell'intervista in ufficio da nessuna parte. Ero già soddisfatto del fatto che sono stato richiamato tre volte, questa esperienza mi ha insegnato molto.

Sul web tutti dicevano che fin dai primi anni nessuno sta aspettando una conoscenza profonda fin dall'inizio, è sufficiente che abbiano avuto entusiasmo e voglia di imparare. "Sputa una volta," pensai. Ho così tanto entusiasmo e voglia di imparare. Tuttavia, dopo queste chiamate, mi è stato chiaro che i junior non erano necessari a nessuno. I datori di lavoro si aspettano che il candidato del primo giorno sappia cosa sta facendo.

Queste interviste mi hanno mostrato che dovrei:

avere abbastanza abilità per essere redditizio fin dal primo giorno
avere sufficiente fiducia in se stessi per convincere gli altri che posso trarre beneficio dal primo giorno

Mese # 8 - Night shift, Redux, Open Source, intervista in ufficio

Questo mese è iniziato con il fatto che per il lavoro principale sono stato trasferito al turno di notte per quaranta giorni - sei giorni di lavoro di dodici ore a settimana, dalle cinque di sera alle cinque di mattina. Ecco un pancake.

Ho capito che non potevo fare molto con un regime del genere, ma c'era un obiettivo davanti a me, e volevo raggiungerlo, quindi era impossibile fare una pausa di un mese.

Ho rifattorizzato il codice jobSort () per iniettare Redux - con mia sorpresa, non è stato così difficile come pensavo. Ho ascoltato molti podcast e letto molti post su questo argomento, ma fino a quando non ci sono riuscito fino in fondo, tutto in qualche modo non mi andava in testa.

Mi piace davvero come Redux organizza i dati. È interessante ora leggere le opinioni di persone che sono insoddisfatte di loro. Naturalmente, non ho ancora abbastanza titoli per esprimermi categoricamente, ma mi piace molto lo schema del loro produttore.

Secondo il piano, questo mese ho dovuto dedicarmi al lavoro open source. Mi aspettavo di dare il mio primo contributo a un progetto open source, e il contributo doveva essere brillante e in una libreria di prima classe. Ho taggato su React stesso!

Tutti dicevano che il loro codice e leggere qualcosa è difficile, non qualcosa da integrare. Ma dovevo distinguermi, mostrare la mia unicità. Sapevo che non avrei potuto portare nulla di serio, ma volevo comunque metterlo su.

Per cominciare, ho letto tutta la documentazione da e per e poi ho iniziato a scavare nel codice base. Riconsiderato tutti i problemi e le richieste di pull. Uno studio approfondito della documentazione di React mi ha portato molti benefici, sono contento che sia così. Ma mi sono subito reso conto che il problema principale con i contributi al codice React è che non ci sono molti compiti adatti per i "neofiti", e sono smontati al volo.

Su uno dei mitapes che ho visitato, Anthony Ng mi ha consigliato di prestare attenzione a Downshift, la libreria per la paternità completa di Kent C. Dodds. Questo consiglio è diventato per me un punto di svolta. Era esattamente ciò di cui avevo bisogno. Un livello adeguato di complessità, abbastanza problemi che hanno bisogno di aiuto, non troppe persone che vogliono partecipare, sempre pronti ad aiutare il manutentore e un codice pulito e ben testato. Oltre a ciò, ho trovato soluzioni per molte difficoltà che non sono riuscito a gestire durante il lavoro su jobSort ().

Da qualche parte a metà del mese ho ricevuto una lettera da una delle aziende a cui ho inviato un curriculum nel precedente. Mi hanno offerto un'intervista telefonica e poi un colloquio tecnico, anche per telefono. Le tecnologie che li interessavano coincidevano con il set che ho imparato: React, Redux e D3. Per la maggior parte, ho appena parlato dei miei progetti e ho spiegato perché ho preso questa o quella decisione. Dopo ciò, mi hanno invitato a parlare dal vivo. La mia prima intervista in ufficio!

Non ho avuto il tempo di prepararmi, ecco perché sono arrivato con la convinzione che non avrò un lavoro, ma avrò una preziosa esperienza di interviste. Inoltre, quel giorno dormii per tre ore - il turno di notte non se ne andò, ed era molto inopportuno. Fortunatamente, durante la parte tecnica dovevo scrivere sulla lavagna - tutto era limitato a un'ora di programmazione. I compiti erano generalmente standard, ma ero ancora molto nervoso.

Per prima cosa, sono uscito dalla mia pelle per dimostrare che so tutto e non ho bisogno di sbirciare da nessuna parte. Poi, quando è diventato chiaro che non avevo abbastanza tempo per eseguire l'operazione, mi sono reso conto: è necessario rinunciare a quale impressione sto facendo e basta cercare le risposte in Google o su Stack Overflow. Di conseguenza, non sono mai riuscito a completare il compito fino alla fine, e da ciò ho concluso che ho fallito miseramente.

Rassegnato al fatto che la sezione di programmazione è accatastata, ho trascorso il resto dell'intervista in uno stato rilassato. Alla fine, lasciai l'ufficio a testa alta. Nella peggiore delle ipotesi, trarrò da questa esperienza un sacco di utili, nel migliore dei casi - mi verrà offerto un lavoro.

Mese # 9 - Offerta di lavoro

Ho ricevuto la mia prima offerta di lavoro esattamente esattamente 9 mesi e 7 giorni dopo ho deciso che volevo immergermi nel mondo della programmazione concentrandomi sul cambiamento della professione. Il fatto che siano pronti a prendermi dopo il primo colloquio personale ha ispirato la fiducia, ma d'altra parte - cosa succede se rifiuto e non ci saranno altri inviti nei prossimi mesi? Di conseguenza, ho accettato l'offerta e sono stato molto contento della mia decisione. Volevo davvero scrivere codice per soldi!



Consigli

Fino ad ora, ho praticamente raccontato la mia storia, a volte inserendo raccomandazioni. Se leggi questo, significa, molto probabilmente, che stai pensando di cambiare lavoro o di studiare la programmazione con l'intenzione di entrare in questa sfera. Spero che i seguenti suggerimenti ti aiutino a sviluppare un piano o aderire a ciò che hai già per te stesso e raggiungere l'obiettivo.

1. Trova i modi per motivarti e usarli. Nel mio caso, le liste, la documentazione dei progressi e della comunicazione nelle comunità IT hanno aiutato. Se non hai la motivazione per andare all'obiettivo, tutto il resto perde il suo significato - semplicemente non riuscirai a fare le cose.

2. Stabilisci obiettivi e raggiungili.Mi azzarderei anche a dire che gli obiettivi dovrebbero essere fissati ogni mese, se non tutti i giorni. Gli obiettivi mensili ti aiutano a non deviare da un determinato corso e a raggiungere l'obiettivo principale, mentre quelli giornalieri sono necessari per costringerti a raggiungere continuamente dei progressi. Per me, questa strategia ha funzionato: ho fatto dei piani per il giorno dopo di sera. Così ho evitato le situazioni quando tutto il giorno sei impegnato in un lavoro improduttivo con una falsa sensazione, come se stessi facendo qualcosa di utile. Questo mi ha fatto confrontare quello che avevo fatto il giorno, con quello che era stato pianificato.

3. Partecipa ai Mitapes, senza aspettare che tu sia pronto.Come ho detto sopra, andare a un incontro con altri sviluppatori è spaventoso. Ma in generale, tutti, di regola, sono cordiali e felici di aiutare. Forse incontrerai persone che non vogliono comunicare con te, ma una tale minoranza, e nessuno ti guarderà dall'alto verso il basso. E dare consigli come tutti in generale (è così che sono qui, per esempio).

4. Fornisci contributi all'open source senza aspettare che tu sia pronto. Quando inizi a imparare a programmare, GitHub sembra un posto terribile dove non puoi andare alla vita. In realtà, sono molto amichevoli per i principianti, e in generale è un ottimo posto per leggere un buon codice e ottenere feedback sul tuo lavoro. Se hai ancora dei dubbi, posso consigliare il mio articolo " Perché dovresti dare immediatamente un contributo all'open source".

5. Inizia a inviare riepiloghi molto prima che tu sia pronto. Questo ho imparato con difficoltà: mi sembrava di avere una situazione speciale. Pensavo che non fosse necessario per me sentire il mercato capire quali debolezze dovessero essere rafforzate. Ho pensato che mi sentirò io stesso quando sarò pronto per iniziare a cercare lavoro. Bene, ora posso dirti: nessuna illuminazione, ora che è ora, non succederà, quindi puoi iniziare con lo stesso successo in questo momento. Basta non impazzire e non rispondere a 300 lavori prima di padroneggiare l'operatore del ciclo. Tieni presente che il modo migliore per capire quali conoscenze ti mancano è offrire la tua candidatura e provare la tua mano al mercato.

Bene, ora torna a scrivere il codice!

Коментарі

Популярні дописи з цього блогу

Автомобілі на польській реєстрації.

Малий Прикордонний Рух

база номеров мобильных телефонов украины скачать