Carriera di programmatore. Capitolo 1. Primo programma

Carriera di programmatore. Capitolo 1. Primo programmaCari lettori di Habr, presento alla vostra attenzione una serie di post che in futuro ho intenzione di unire in un libro. Volevo scavare nel passato e raccontare la mia storia di come sono diventato uno sviluppatore e di come continuo a esserlo.

Sui prerequisiti per entrare nell'IT, il percorso di tentativi ed errori, autoapprendimento e ingenuità infantile. Inizierò la mia storia dalla prima infanzia e la finirò con oggi. Spero che questo libro sia particolarmente utile per coloro che stanno appena studiando per una specialità informatica.
E chi già lavora nell’IT probabilmente troverà dei paralleli con il proprio percorso.

In questo libro troverai riferimenti alla letteratura che ho letto, all'esperienza di comunicare con persone che ho incrociato mentre studiavo, lavoravo e lanciavo una startup.
A partire dai docenti universitari fino ai grandi investitori di venture capital e proprietari di aziende multimilionarie.
Ad oggi sono pronti 3.5 capitoli del libro, su un massimo di 8-10. Se i primi capitoli troveranno un riscontro positivo da parte del pubblico, pubblicherò il libro intero.

Informazioni su di me

Non sono John Carmack, Nikolai Durov o Richard Matthew Stallman. Non ho lavorato in aziende come Yandex, VKontakte o Mail.ru.
Anche se ho avuto esperienza di lavoro in una grande azienda, di cui ti parlerò sicuramente. Ma penso che il punto non sia tanto nel grande nome, ma nella storia stessa del percorso per diventare uno sviluppatore e, inoltre, nelle vittorie e nelle sconfitte che si sono verificate durante i miei 12 anni di carriera nello sviluppo commerciale. Naturalmente, alcuni di voi hanno molta più esperienza nel settore IT. Ma credo che valga la pena descrivere i drammi e le vittorie accadute durante la mia attuale carriera. Gli eventi sono stati tanti e tutti diversi.

Chi sono oggi come sviluppatore
— Ha partecipato a più di 70 progetti commerciali, molti dei quali ha scritto da zero
— In una dozzina dei nostri progetti: open source, startup
— 12 anni nell'informatica. 17 anni fa - ha scritto il primo programma
- La persona più preziosa di Microsoft 2016
— Professionista certificato Microsoft
— Scrum Master certificato
— Ho una buona padronanza di C#/C++/Java/Python/JS
— Stipendio — 6000-9000 $/mese. a seconda del carico
— Il mio luogo di lavoro principale oggi è lo scambio freelance Upwork. Attraverso di essa lavoro per un'azienda che si occupa di NLP/AI/ML. Ha una base di 1 milione di utenti
— Rilasciate 3 applicazioni nell'AppStore e GooglePlay
— Mi sto preparando a fondare la mia società IT attorno al progetto che sto attualmente sviluppando

Oltre allo sviluppo, scrivo articoli per blog popolari, insegno nuove tecnologie e parlo a conferenze. Mi rilasso nel fitness club e con la mia famiglia.

Probabilmente è tutto merito mio per quanto riguarda il tema del libro. La prossima è la mia storia.

Storia. Inizio.

Ho imparato per la prima volta cos'è un computer quando avevo 7 anni. Ho appena iniziato la prima elementare e al corso di arte ci hanno dato i compiti per realizzare un computer con cartone, gommapiuma e pennarelli. Ovviamente i miei genitori mi hanno aiutato. La mamma ha studiato in un'università tecnica all'inizio degli anni '80 e sapeva in prima persona cosa fosse un computer. Durante l'addestramento riuscì persino a perforare le schede perforate e a caricarle nella gigantesca macchina sovietica che occupava la parte del leone nella sala di addestramento.

Abbiamo completato i nostri compiti con un voto di 5 perché abbiamo fatto tutto diligentemente. Abbiamo trovato uno spesso foglio di cartone A4. I cerchi sono stati ritagliati da vecchi giocattoli di gommapiuma e l'interfaccia utente è stata disegnata con pennarelli. Il nostro dispositivo aveva solo pochi pulsanti, ma io e mia madre abbiamo assegnato loro la funzionalità necessaria, e durante la lezione ho mostrato all'insegnante come premendo il pulsante "On" si accendeva una lampadina nell'angolo dello "schermo", ” mentre contemporaneamente disegna un cerchio rosso con un pennarello.

Il mio prossimo incontro con la tecnologia informatica è avvenuto intorno alla stessa età. Nei fine settimana andavo spesso a trovare i miei nonni, che a loro volta vendevano varie cianfrusaglie e le compravano anche volentieri per pochi centesimi. Vecchi orologi, samovar, caldaie, distintivi, spade di guerrieri del XIII secolo e altro ancora. Tra tutta questa varietà di cose, qualcuno gli portò un computer che funzionava con una TV e un registratore audio. Fortunatamente mia nonna le aveva entrambe. Di fabbricazione sovietica, ovviamente. TV Electron con otto pulsanti per cambiare canale. E un registratore Vega a due cassette, che potrebbe persino ri-registrare i nastri audio.
Carriera di programmatore. Capitolo 1. Primo programma
Computer sovietico “Poisk” e periferiche: TV “Electron”, registratore “Vega” e audiocassetta con linguaggio BASIC

Abbiamo iniziato a capire come funziona l'intero sistema. In dotazione con il computer c'erano un paio di audiocassette, un manuale di istruzioni molto logoro e un'altra brochure dal titolo “Linguaggio di programmazione BASIC”. Nonostante la mia infanzia, ho cercato di partecipare attivamente al processo di collegamento dei cavi al registratore e alla TV. Quindi abbiamo inserito una delle cassette nello scomparto del registratore, premuto il pulsante "Avanti" (ovvero, avviato la riproduzione) e sullo schermo televisivo è apparsa una pseudo-grafica incomprensibile di testo e trattini.

L'unità principale sembrava una macchina da scrivere, solo leggermente ingiallita e di peso notevole. Con l'eccitazione di un bambino, ho premuto tutti i tasti, non ho visto alcun risultato tangibile, sono corso e sono andato a fare una passeggiata. Anche se già allora avevo davanti a me un manuale sul linguaggio BASIC con esempi di programmi che, a causa della mia età, semplicemente non potevo riscrivere.

Dai ricordi d'infanzia, ricordo sicuramente tutti i gadget che i miei genitori mi hanno comprato, dopo aver lavorato con altri parenti. Il primo sonaglio fu il famoso gioco “Il lupo cattura le uova”. L'ho finito abbastanza velocemente, alla fine ho visto il tanto atteso cartone animato e volevo qualcosa di più. Poi c'era Tetris. A quel tempo valeva 1,000,000 di buoni. Sì, è stato in Ucraina all'inizio degli anni '90 e mi è stato dato un milione per il mio successo accademico. Sentendomi meritatamente milionario, ho ordinato ai miei genitori questo gioco più complesso, in cui dovevano disporre correttamente figure di forme diverse che cadevano dall'alto. Il giorno dell'acquisto, Tetris mi è stato portato via in modo incontrollabile dai miei genitori, che per due giorni non sono riusciti a liberarsene.

Carriera di programmatore. Capitolo 1. Primo programma
Famoso "Il lupo prende le uova e il Tetris"

Poi c'erano le console di gioco. La nostra famiglia viveva in una piccola casa, dove nella stanza accanto vivevano anche mio zio e mia zia. Mio zio era un pilota militare, passava per i punti caldi, quindi nonostante la sua modestia era molto tenace e aveva paura di poco, in fondo
operazioni militari. Proprio come molte persone negli anni '90, mio ​​zio si mise in affari e aveva un reddito piuttosto buono. Quindi nella sua stanza apparvero una TV importata, un videoregistratore e poi un set-top box Subor (analogo a Dendy). Mi ha lasciato senza fiato vederlo giocare a Super Mario, TopGun, Terminator e altri giochi. E quando mi ha consegnato il joystick tra le mani, la mia felicità non ha conosciuto limiti.

Carriera di programmatore. Capitolo 1. Primo programma
Console a otto bit "Syubor" e il leggendario "Super Mario"

Sì, come tutti i bambini normali cresciuti negli anni Novanta, passavo l'intera giornata in cortile. Giocando a palla da pioniere, o a badminton, o arrampicandosi sugli alberi del giardino, dove crescevano molti frutti diversi.
Ma questo nuovo prodotto, quando puoi controllare Mario, saltare gli ostacoli e salvare la principessa, si è rivelato molto più interessante di qualsiasi appassionato di ciechi, ladushka e classici. Pertanto, visto il mio genuino interesse per i prefissi, i miei genitori mi hanno affidato il compito di imparare la tavola pitagorica. Allora realizzeranno il mio sogno. Le insegnano in seconda elementare e io ho appena finito la prima. Ma, detto e fatto.

Era impossibile pensare a una motivazione più forte di quella di avere la propria console di gioco. E nel giro di una settimana rispondevo facilmente alle domande “sette nove”, “sei tre” e simili. La prova è stata superata e mi hanno comprato l'ambito regalo. Come imparerai più avanti, le console e i giochi per computer hanno avuto un ruolo significativo nel farmi interessare alla programmazione.

Anno dopo anno è andata così. La prossima generazione di console di gioco stava uscendo. Prima Sega 16 bit, poi Panasonic, poi Sony PlayStation. I giochi erano il mio divertimento quando stavo bene. Quando c’era qualche problema a scuola o a casa, mi portavano via i joystick e, ovviamente, non potevo giocare. E, naturalmente, anche cogliere il momento in cui sei tornato da scuola e tuo padre non era ancora tornato dal lavoro per occupare la TV è stata una sorta di fortuna. Quindi è impossibile dire che fossi un dipendente dal gioco d’azzardo o che passassi tutto il giorno a giocare. Non c'era tale opportunità. Piuttosto passavo l'intera giornata in cortile, dove potevo anche trovare qualcosa
interessante. Ad esempio, un gioco completamente selvaggio: sparatorie aeree. Oggigiorno una cosa del genere non si vede nei cortili, ma allora era una vera guerra. Il paintball è solo un gioco da ragazzi rispetto alla carneficina che abbiamo causato. C'erano palloni aerostatici
caricato con densi proiettili di plastica. E dopo aver sparato a bruciapelo a un altro ragazzo, ha lasciato un livido su metà del braccio o sullo stomaco. È così che vivevamo.

Carriera di programmatore. Capitolo 1. Primo programma
Pistola giocattolo fin dall'infanzia

Non sarebbe fuori luogo citare il film “Hackers”. È uscito solo nel 1995, con la ventenne Angelina Jolie. Dire che il film mi ha colpito molto è non dire nulla. Dopotutto, il pensiero dei bambini percepisce tutto per valore nominale.
E il modo in cui questi ragazzi, notoriamente, hanno ripulito i bancomat, spento i semafori e giocato con l'elettricità in tutta la città: per me è stato magico. Poi mi è venuto in mente che sarebbe stato bello diventare onnipotente come gli Hacker.
Qualche anno dopo, comprai tutti i numeri della rivista Hacker e tentai di hackerare il Pentagono, anche se non avevo ancora Internet.

Carriera di programmatore. Capitolo 1. Primo programma
I miei eroi del film "Hackers"

Una vera scoperta per me è stata un vero PC, con un monitor con lampada da 15 pollici e un'unità di sistema basata su un processore Intel Pentium II. Naturalmente fu acquistato da suo zio, che alla fine degli anni Novanta era abbastanza in alto da poterselo permettere
tali giocattoli. La prima volta che mi hanno proposto un gioco, non è stato molto entusiasmante. Ma un giorno, arrivò il giorno del giudizio, le stelle si allinearono e noi andammo a trovare nostro zio, che non era a casa. Ho chiesto:
— Posso accendere il computer?
"Sì, fai quello che vuoi con lui", rispose l'amorevole zia.

Naturalmente, ho fatto quello che volevo con lui. C'erano diverse icone sul desktop di Windows 98. WinRar, Word, FAR, Klondike, giochi. Dopo aver cliccato su tutte le icone, la mia attenzione si è concentrata su FAR Manager. Si presenta come una schermata blu incomprensibile, ma con una lunga lista (di file) che è possibile avviare. Facendo clic su ciascuno di essi a turno, ho colto l'effetto di ciò che stava accadendo. Alcuni hanno funzionato, altri no. Dopo un po’ mi sono reso conto che i file che finiscono con “.exe” sono i più interessanti. Lanciano diverse immagini interessanti su cui puoi anche fare clic. Quindi probabilmente ho lanciato tutti i file exe disponibili sul computer di mio zio, e poi mi hanno appena tirato per le orecchie dal giocattolo super interessante e mi hanno portato a casa.

Carriera di programmatore. Capitolo 1. Primo programma
Lo stesso Direttore FAR

Poi c'erano i club informatici. Io e il mio amico andavamo spesso lì per giocare a Counter Strike e Quake online, cosa che non potevamo fare a casa. Chiedevo spesso un cambio ai miei genitori per poter giocare mezz'ora nel club. Vedendo i miei occhi come quelli del gatto di Shrek, mi hanno offerto un altro lucroso contratto. Finisco l'anno scolastico senza voti C e mi comprano un computer. Il contratto è stato firmato a inizio anno, a settembre, e l'ambito PC sarebbe dovuto arrivare già a giugno, salvo rispetto degli accordi.
Ho fatto del mio meglio. Per emozione ho addirittura venduto la mia amata Sony Playstation per potermi distrarre meno dai miei studi. Sebbene fossi uno studente così così, il 9° anno è stato significativo per me. Maledizione al naso, dovevo solo prendere buoni voti.

Già in primavera, in previsione dell'acquisto di un PC, è accaduto probabilmente l'evento più significativo della mia vita. Cerco di pensare al futuro, e così un bel giorno dissi a mio padre:
- Papà, non so usare il computer. Iscriviamoci ai corsi

Detto fatto. Aprendo il giornale con gli annunci, il padre trovò un blocco scritto in caratteri piccoli con l'intestazione "Corsi di informatica". Ho chiamato gli insegnanti e un paio di giorni dopo ero già a questi corsi. I corsi si svolgevano dall'altra parte della città, in un vecchio edificio a pannelli di Krusciov, al terzo piano. In una stanza c'erano tre PC in fila, e chi voleva studiare veniva effettivamente addestrato su di essi.

Ricordo la mia prima lezione. Windows 98 ha impiegato molto tempo a caricarsi, poi ha preso la parola l'insegnante:
- COSÌ. Davanti a te c'è un desktop Windows. Contiene le icone dei programmi. In basso c'è il pulsante Start. Ricordare! Tutto il lavoro inizia con il pulsante Start. Fare clic con il pulsante sinistro del mouse.
Lui continuò.
- Qui - vedi i programmi installati. Calcolatrice, Blocco note, Word, Excel. Puoi anche spegnere il computer facendo clic sul pulsante "Spegni". Provalo.
Alla fine passò alla parte più difficile per me in quel momento.
"Sul desktop", ha detto l'insegnante, puoi anche vedere i programmi che possono essere avviati con un doppio clic.
- Doppio!? - Com'è la situazione in generale?
- Proviamo. Avvia Blocco note facendo doppio clic su di esso con il tasto sinistro del mouse.

Sì, Schaass. La cosa più difficile in quel momento era tenere il mouse in un punto e allo stesso tempo fare clic rapidamente due volte. Al secondo clic, il mouse si è mosso leggermente e con esso il collegamento. Tuttavia, durante la lezione sono riuscito a superare un compito così insormontabile.
Poi c'è stata la formazione su Word ed Excel. Un giorno mi hanno semplicemente lasciato guardare immagini di natura e monumenti architettonici. È stata l'attività più interessante che ricordi. Molto più divertente che imparare a formattare il testo in Word.

Accanto al mio PC, altri studenti studiavano. Un paio di volte mi sono imbattuto in ragazzi che scrivevano programmi, mentre discutevano animatamente di questo processo. Questo ha interessato anche me. Ricordando il film Hackers ed essendo stanco di MS Office, ho chiesto di essere trasferito ai corsi
programmazione. Come tutti gli eventi significativi della vita, questo è accaduto spontaneamente, per interesse.

Sono arrivato alla mia prima lezione di programmazione con mia madre. Non ricordo perché. Apparentemente ha dovuto negoziare per nuovi corsi ed effettuare il pagamento. Fuori era primavera, era già buio. Abbiamo attraversato l'intera città in minibus-Gazelle fino alla periferia, abbiamo raggiunto il famigerato
pannello Krusciov, si avvicinò al pavimento e ci fece entrare.
Mi hanno fatto sedere davanti al computer e hanno aperto un programma con uno schermo completamente blu e lettere gialle.
- Questo è Turbo Pascal. L'insegnante ha commentato la sua azione.
- Guarda, qui ho scritto la documentazione su come funziona. Leggilo e dai un'occhiata.
Davanti a me c'era una tela di testo giallo, assolutamente incomprensibile. Ho provato a scoprire qualcosa da solo, ma non ci sono riuscito. Grammatica cinese e basta.
Alla fine, dopo un po', il responsabile del corso mi ha consegnato un foglio di carta A4 stampato. Sopra c'era scritta una cosa strana, che avevo già intravisto in precedenza sui monitor dei ragazzi dei corsi di programmazione.
- Riscrivi ciò che è scritto qui. L'insegnante comandò e se ne andò.
Ho iniziato a scrivere:
programma Summa;

Ho scritto, cercando contemporaneamente le lettere inglesi sulla tastiera. In Word almeno mi sono allenato in russo, ma qui devo imparare altre lettere. Il programma è stato digitato con un dito, ma con molta attenzione.
inizio, fine, var, intero - Cos'è questo? Sebbene studiassi inglese dalla prima elementare e conoscessi il significato di molte parole, non riuscivo a collegarle tutte insieme. Come un orso ammaestrato in bicicletta, ho continuato a pedalare. Finalmente qualcosa di familiare:
writeln('Inserisci il primo numero');
Poi - writeln('Inserisci il secondo numero');
Poi - writeln('Risultato = ',c);
Carriera di programmatore. Capitolo 1. Primo programma
Il primissimo programma Turbo Pascal

Uff, l'ho scritto. Tolsi le mani dalla tastiera e attesi che apparisse il guru per ulteriori istruzioni. Alla fine si è avvicinato, ha scansionato lo schermo e mi ha detto di premere il tasto F9.
"Ora il programma viene compilato e controllato per eventuali errori", ha detto il guru
Non ci sono stati errori. Poi ha detto di premere Ctrl+F9, cosa che ho dovuto spiegare passo dopo passo per la prima volta. Quello che devi fare è tenere premuto Ctrl, quindi premere F9. Lo schermo è diventato nero e finalmente è apparso un messaggio che ho capito: "Inserisci il primo numero".
Su comando dell'insegnante ho inserito 7. Poi il secondo numero. Inserisco 3 e premo Invio.

La riga "Risultato = 10" appare sullo schermo alla velocità della luce. Era euforia e non avevo mai provato niente di simile prima in vita mia. Era come se l'intero Universo si aprisse davanti a me e mi ritrovassi in una specie di portale. Il calore attraversò il mio corpo, un sorriso apparve sul mio viso e da qualche parte, molto nel profondo del subconscio, realizzai: che questo è mio. In modo molto intuitivo, a livello emotivo, ho iniziato a percepire l'enorme potenziale di questa scatola ronzante sotto il tavolo. Ci sono così tante cose che puoi fare con le tue mani, e lei lo farà!
Che questa è una specie di magia. Era completamente al di là della mia comprensione come quel testo giallo e incomprensibile su uno schermo blu si trasformasse in un programma comodo e comprensibile. Che conta anche se stesso! Ciò che mi ha sorpreso non è stato il calcolo in sé, ma il fatto che i geroglifici scritti si trasformassero in una calcolatrice. A quel tempo c'era un divario tra questi due eventi. Ma intuitivamente ho sentito che questo componente hardware poteva fare quasi tutto.

Per quasi tutto il viaggio verso casa in minibus mi sono sentito come se fossi nello spazio. Questa immagine con la scritta "Risultato" mi girava in testa, come è successo, cos'altro può fare questa macchina, posso scrivere qualcosa da solo senza un pezzo di carta. Mille domande che mi interessavano, emozionavano e ispiravano allo stesso tempo. Avevo 14 anni. Quel giorno la professione scelse me.

To be continued ...

Fonte: habr.com

Aggiungi un commento