Njega lica: masna koža

Od Yandexa do Londona. Kako se kreću ruski IT stručnjaci i koliko zarađuju u Britaniji. Putem programera sa Aleksejem Kapranovim Nasmejte se i mahnite

Od Yandexa do Londona.  Kako se kreću ruski IT stručnjaci i koliko zarađuju u Britaniji.  Putem programera sa Aleksejem Kapranovim Nasmejte se i mahnite

Alexey Pajitnov je sovjetski i ruski programer koji je kreirao popularnu video igricu pod nazivom "Tetris", vlasnik nekoliko počasnih nagrada u oblasti programiranja i razvoja kompjuterskih igara. Nakon što je diplomirao na Moskovskom vazduhoplovnom institutu, radio je u Računskom centru Akademije nauka SSSR, gde je 1984. završio razvoj igre Tetris. Prvi novac igra je počela da donosi 1996. godine, kada su Aleksej i Henk Rodžers (investitor, vlasnik velikih udela u Tetrisu, koji je igru ​​distribuirao širom sveta) osnovali kompaniju Tetris.

Aleksej Pajitnov - biografija

Rođen 14. marta 1956. godine u Moskvi. U školskim godinama dobro je učio, ali je imao stalne probleme sa disciplinom. Kako se sam Aleksej priseća, kao dete je bio pun energije i nije mogao poslušno da sedi na času, pa je često dobijao komentare u svom dnevniku za svoje ponašanje. Međutim, ništa značajno i iznenađujuće: mnogi su prošli kroz ovo. Pajitnov je uvek bio dobar u matematici, pa je nakon završenog petog razreda prešao u Moskovsku matematičku školu broj 91, koju je kasnije završio sa odličnim uspehom.

Uvod u programiranje

Nakon što je završio školu, Aleksej Pajitnov ulazi u Moskovski institut za vazduhoplovstvo, gde se prvi put upoznaje sa računarima i programiranjem. Tu je brzo ušao u razvoj softvera i počeo se u potpunosti posvetiti pisanju koda za različite svrhe. Ubrzo je talentovani mladi programer pozvan da radi u Moskovskom računarskom centru Akademije nauka SSSR-a. Ovdje se bavio daleko od posljednje stvari - optimizacijom problema s umjetnom inteligencijom i razvojem programa za prepoznavanje govora.

Rutinska svakodnevica na Akademiji nauka bila je nezaslađena: Pajitnov je od jutra do mraka sjedio u skučenoj kancelariji, gdje je nekoliko naučnika sjedilo za istim stolom odjednom. Aleksej se priseća da je ponekad napuštao svoje radno mesto po ceo dan, da bi kasnije mogao da radi noću u tišini, kada su svi otišli kući.

Karijera nakon stvaranja "Tetrisa"

Aleksej Leonidovič Pajitnov je 1984. godine stvorio legendarnu igru ​​Tetris, koja je postala gotovo najpopularnija igra na svetu. U društvu informacionih tehnologija Pajitnov postaje prepoznatljiv i popularan. 1988. godine, u saradnji sa Bullet-Proof Software, osnovao je AnimaTek, kompaniju za razvoj igara. Korporacija je eksponencijalno napredovala, a već 1991. izumitelj Tetrisa, Aleksej Pajitnov, preselio se u Sjedinjene Države.

Stvaranje "Tetris" - kako je bilo?

Osamdesetih godina prošlog veka, u Računskom centru Akademije nauka SSSR-a, mladi naučnici danima su sedeli u svojim laboratorijama, rešavajući dosadne i netrivijalne probleme. Jedan od njih bio je Pajitnov Aleksej Leonidovič, koji je u to vreme razvijao program za prepoznavanje govora, a takođe je proučavao probleme veštačke inteligencije. Dužnosti dodeljene mladom programeru bile su neverovatno teške, Aleksej je stalno morao da kreira najsloženije algoritme, van snage običnog uma.

Sa velikom bazom znanja u svom potencijalu, Pajitnov odlučuje da kreira zanimljivu slagalicu koja će privući i odrasle i decu. Tetris je daleko od prvog izuma talentovanog programera. U početku je kreirao igru ​​u kojoj figure moraju promijeniti svoju lokaciju pod utjecajem gravitacije drugih objekata. Približavajući se završetku pisanja koda, Aleksej je shvatio da bi takva igra bila nepodnošljiva za procesor običnog računara, pa sam morao da pojednostavim neke od suptilnosti programa.

Kao rezultat, on stvara igru ​​u kojoj se figure (kao u Tetrisu) sastoje od pet kvadrata, čija je svrha identična budućoj igrici "Tetris". Nažalost, ovakva kreacija se nije dopala javnosti, pa Pajitnov odlučuje da još više pojednostavi igru, gde se svaka od 7 postojećih figura sastoji od četiri polja.

Samo sedam cifara, a svjetska slava je u vašem džepu

Da li ste se ikada zapitali zašto igra "Tetris" ima takav naziv? I zašto je u njemu samo sedam cifara? Stvar je u tome što je u početku igra imala naziv "Tetramino", gdje "tetra" na grčkom znači broj "četiri". Sa porastom popularnosti i sami korisnici ove igre dali su joj pojednostavljeni naziv, radi lakšeg izgovora.

U intervjuu, Aleksej Pajitnov je objasnio zašto u igri postoji samo 7 komada:

“U igri je uključeno samo sedam figura, a to je zapravo sreća, jer broj 7 je veličina radne memorije ljudskog mozga, odnosno ono što osoba može zapamtiti. Telefonski broj od 7 cifara je mnogo lakše zapamtiti od broja od 8 cifara. Tim od sedam ljudi je maksimum koji može bez šefa ili predradnika. U grupi od osam i više ljudi, gdje nema vođe, nemoguće je raditi glatko i strukturirano. U takvom timu će se stalno javljati nesuglasice i kontradikcije, bez obzira da li ste prijatelji, drugovi ili samo poznanici. Takve zaključke izvodim na osnovu ličnog iskustva.

Motivi za stvaranje Tetrisa

Igra "Tetris" stvorena je kako bi se ljudi zabavili i opustili od rutinskih i svakodnevnih obaveza. Pajitnov je uvek govorio da su najbolja alternativa za oslobađanje od stresa, pored sporta, kompjuterske igrice.

Lightning glory video igra

Nakon što je pisanje igre Tetris završeno, osoblje Akademije nauka SSSR-a, gde je Pajitnov radio, bilo je fasciniralo njome prvih nekoliko nedelja. Kada je igra postala dostupna svima, slava o zabavnom proizvodu proširila se svim gradovima za nekoliko dana. U roku od nekoliko mjeseci, cijeli svijet je igrao Tetris. U ovom trenutku, Aleksej Pajitnov, zajedno sa svojim kolegama, odlučuje da kreira novu verziju igre, gde će figure biti višebojne, a evidencija statistike će se voditi kako bi se ljudi mogli takmičiti jedni s drugima.

Dok je cijeli svijet uživao u igri, Aleksej je nastavio da živi običnim životom još mnogo godina i radi u Računskom centru Akademije nauka SSSR-a. Činjenica je da nije imao priliku da unovči igru, jer su prava pripadala Akademiji nauka. Sve je objašnjeno činjenicom da je igra napisana u toku radnog vremena na radnom računaru.

Aleksej Pajitnov: status kreatora igre "Tetris"

Kao što znate, 1996. godine Pajitnov je počeo da radi za Microsoft, gde je razvio seriju slagalica pod nazivom Pandorina kutija. Ovdje je radio do 2005. godine i za to vrijeme uspio je steći nekoliko velikih dionica ove kompanije, koje mu do danas donose određeni postotak. Sam Aleksej sebe ne smatra milionerom. U intervjuu je rekao sledeće: „Milioner je neko ko troši milione, ali ne i neko ko ima milion. Živim prilično skromnim životom i ne bacam novac desno i lijevo, tako da sebe nikada ne bih nazvao milionerom.”

Ovisnost o kompjuteru - krivica programera ili korisnika?

U današnjem svijetu mnogi se previše bave video igricama, stvarajući sebi probleme u svakodnevnom životu. Psihološki se vežu za kompjuterske igrice i internet i mogu da posvete vreme sedenju pred kompjuterom danima. Doba informacijske tehnologije značajno je promijenilo umove ljudi. Jednom je Pajitnov upitan kako može da prokomentariše ovu situaciju, na šta je odgovorio:

„Ljudi mi često govore da sam im ukrao mnogo vremena kada saznaju da sam ja kreator Tetrisa. Uvijek ih pitam: “Da li je to vrijeme bilo dobro ili loše za vas?”. Svi odgovaraju kao jedan, što je dobro. Dakle, dao sam ovo vrijeme, a nisam ga ukrao.”

Prva stvar koju treba razumjeti je da se stranica razlikuje od stranice do stranice. Ako uporedimo izgradnju gradilišta sa izgradnjom, onda postoje „sjenice“ i „kolibe“, a postoje „neboderi“ ili veliki „šoping centri“. Što je sajt složeniji, to može biti skuplji za amatera koji lako može da se nosi sa jednostavnim zadacima za male sajtove.

Govorit ćemo o zahtjevima za jednog programera odgovornog za malu internet prodavnicu (30-3000 kartica proizvoda, 1-10 porudžbina dnevno). Ovaj stručnjak bi trebao biti generalista, odnosno podjednako upoznat sa backendom - razvojem na strani servera, i frontendom - razvojem na strani pretraživača korisnika).

1. Minimalni zahtjevi

Ako online trgovina već ima web stranicu, onda bi životopis kandidata trebao sadržavati sve ili gotovo sve tehnologije koje se koriste na stranici. Listu možete provjeriti kod programera.

Ako će kompanija razvijati web stranicu od nule, programer bi trebao znati:

  • jedan od uobičajenih jezika: PHP/Python/Ruby/C#;
  • jedan od DBMS-a: MySQL/PostrgreSQL/MSSQL/Oracle/MongoDB;
  • jedan od najčešćih sistema za upravljanje sadržajem (CMS): Bitrix, UMI, Drupal, ShoppingCart, WordPress;
  • posjedovati vještine administracije Linuxa i web servera, na primjer, jedan od Nginx/Apache/IIS ili imati iskustvo u hostingu web servera na AWS Cloud platformama, Google Cloud, Azure.

Odsustvo ovih vještina ne znači da je amater. To ti jednostavno ne pristaje.

2. Dopisno upoznavanje

Znakovi slabog programera mogu se prepoznati i prije intervjua za životopis ispitivanjem portfelja. Ako je programer naveo svoje radove (web-lokacije), onda ih trebate otvoriti u Google Chrome-u, otići u odjeljak "Dodatni alati" u izborniku preglednika, odabrati stavku "Alati za programere" i otvoriti karticu "Konzola".

Zatim idite na "putovanje" kroz stranicu kao običan posjetitelj: otvorite nekoliko stranica, pokušajte postaviti pitanje putem obrasca za povratne informacije ili popunite korpu za narudžbu. Ako se greške pojave na konzoli, one se automatski označavaju crvenom bojom, to je loš znak. Možda nije kriv neki programer ako je radio u timu, ali to ne oslikava tim u cjelini.

To što nemate portfolio ili odbijate da ga pokažete je siguran znak neiskusnog programera.

3. Plivali smo, ne znamo

Naravno, praktično iskustvo je od velike važnosti. Ako na intervjuu, kao odgovor na pitanja o prošlim dešavanjima, kandidat „lebdi“ i ne može objasniti svoje postupke, trebali biste biti oprezni.

Na primjer, programer govori o razvoju sistema koristeći MySQL, ali ne može navesti alternativne tehnologije i razlog zašto je izabrao ovu. Istovremeno, čak je i opcija „Samo je bolje poznajem“ prikladna kao „tačan“ odgovor.

Kompetentni stručnjak će moći detaljno ispričati o svom razvoju i objasniti zašto je koristio određene tehnologije.

Kako provjeriti: postavljajte programeru pitanja o detaljima prošlih projekata i pitajte zašto je razvoj urađen na takav način. Ako kandidat ne odgovori jasno, velike su šanse da pripisuje zasluge za rad tima ili drugih kolega. Istovremeno, vlasnik stranice ne mora razumjeti zamršenosti programiranja, dovoljno je postaviti pojašnjavajuća pitanja.

4. Ptičji jezik

Druga važna tačka je sposobnost kandidata da govori "ljudski" jezik. Dobar stručnjak će moći jednostavnim riječima objasniti svoj rad. Ali ako podnosilac prijave govori isključivo terminima, biće mu teško da komunicira sa kolegama i vlasnikom kompanije.

Kako provjeriti: zamolite ga da priča o nekakvoj grešci zbog koje ga je uprava "odletela". Na primjer, formular "povratne informacije" nije radio na stranici 2 sedmice. Zamislite da je ovo vaša web stranica.

Navedite šta je bila suština greške, kako je saznao za nju, kako je pronašao uzrok i otklonio grešku. Ako će podnosilac zahtjeva govoriti "nerazumljivim riječima" - zatražite pojašnjenje. Ako i dalje niste zadovoljni objašnjenjem, biće teško raditi s njim.

5. OpenSource

Mnogi stručnjaci objavljuju vlastite razvoje na GitHubu (ili BitBucket). Ako programer ima nekoliko javnih projekata, a još više, drugi korisnici su ih zabilježili ili kopirali (fork), to je značajan plus. Veliki broj primjeraka ukazuje na visok nivo profesionalnosti.

Programer Dan Abramov će tražiti veliku kompaniju, nivo (on trenutno radi tamo), ali ako vaš kandidat ima projekte sa nenultim ocenama i "zelena zona" je takođe popunjena - odlično! Slobodno ga pozovite na razgovor.

Kako provjeriti: zamolite podnosioca da pošalje link do naloga na GitHub-u (BitBucket) i navede projekte na koje je ponosan. Obratite pažnju na "starost naloga", broj projekata i broj kopija koda od strane drugih korisnika.

6. Stari prtljag

Kompetentni stručnjak bi trebao pratiti pojavu novih alata i tehnologija. Jedna je stvar ako je programer primoran da radi sa sajtom napisanim na zastarelom jeziku, a druga stvar je kada koristi previše konzervativan pristup.

Savremeni alati mogu značajno smanjiti vrijeme razvoja. Inače, jurnjava i nerazumno uvođenje svega novog je takođe loše.

Kako provjeriti: pitajte koje je alate ili tehnologije kandidat naučio u posljednjih godinu-dvije i kako su mu one pomogle u radu.

7. Cijene od plafona

Naravno, posao dobrog programera nije jeftin, ali nema potrebe žuriti da date razvoj najskupljem stručnjaku na tržištu. Ako kandidat odmah objavi troškove razvoja cijele stranice, bez pojašnjenja zahtjeva za to, to je u najmanju ruku čudno.

Za jednostavne zadatke kao što su „promena boje dugmeta“ ili „kreiranje mape sajta“, trebalo bi da očekujete brze odgovore – „treba 5 minuta“ ili „mogu to da uradim za 2 sata“, respektivno.

Osim toga, možete dobiti procjene troškova i vremena izvršenja od nekoliko stručnjaka i uporediti ih. Ako programeru treba sat vremena da završi petominutni zadatak, on najvjerovatnije nije profesionalac ili samo igra za vrijeme da zaradi više.

Kako provjeriti: pitajte kandidata koliko će mu vremena trebati da promijeni boju dugmeta "Kupi" u internet prodavnici i napravi mapu sajta.

8. Ručni rad

Postoji vic da je dobar programer lijen programer, ali u tome ima istine. Kompetentni stručnjaci pišu kod na takav način da minimiziraju ne samo napore onih koji tada rade s programom, već i svoje. Pokušavaju da koriste tuđi gotov kod (OpenSource) i u tome nema ništa loše.

Ako programer ne zna kako da optimizuje sopstveni rad, potrošiće mnogo vremena i novca poslodavca na istu vrstu zadataka.

Kako provjeriti: razjasniti kako programer pristupa kreiranju koda, zatražiti primjer. Dobro je ako u početku traži gotovo rješenje, a ako ga nema, sam piše kod. Možete, na primjer, pitati programera kako će razviti kalendar koji može biti potreban u obrascu za narudžbu za odabir datuma isporuke. Dobar odgovor je pronaći gotovu komponentu.

9 ekstra blizanaca

Duplicirani kod je siguran znak neiskusnog programera.

Uzmimo, na primjer, obrazac "povratne informacije" na stranici za kontakt, koji treba staviti u katalog i na kartice proizvoda. Ako programer jednostavno kopira dio koda i zalijepi ga na potrebne stranice, profesionalnost stručnjaka ostavlja mnogo da se poželi. Jer kada trebate prilagoditi obrazac za povratne informacije, u najboljem slučaju, morat ćete obaviti trostruki posao, au najgorem slučaju, programer će zaboraviti promijeniti jedan od kodova.

Iskusni stručnjak će napisati funkciju koja će učitati obrazac za "povratne informacije" na različitim stranicama iz istog izvora. Dakle, ako je potrebno ispraviti kod, promjene će se automatski pojaviti na svim stranicama stranice na kojima se nalazi.

Kako provjeriti: pitajte kandidata da li duplira šifru. Neće amater reći „da, dešava se“, već će to objasniti neracionalnim vremenom utrošenim na uklanjanje duplikata. Ako je odgovor "ne", onda programer laže, malo piše ili je perfekcionista - bilo koje od ovih objašnjenja je loša opcija.

10. Živi rezati

Na dobar način, programer bi trebao napraviti kopiju stranice, testirati promjene na njoj i tek nakon provjere promjena prenijeti ih na glavni resurs.

Kako provjeriti: pitajte kandidata kako je ažurirao stranicu na prethodnom radnom mjestu.

11. Vjeruje, ali ne provjerava

Sve promjene na stranici moraju biti testirane. U velikim poduzećima zadatak rješavaju testeri, ali u srednjim i malim kompanijama on pada na ramena programera.

Bez provjere zdravlja stranice nakon promjena, može doći do mnogih grešaka koje će korisnici pronaći. Problemi će otuđiti potencijalne kupce, što će negativno uticati na profit kompanije.

Važno je da programer proverava ne samo performanse sajta, već ga i testira na greške koje korisnici mogu napraviti. Dakle, kada razvijate obrazac za povratne informacije, morate provjeriti ne samo njegovo ispravno slanje, već i odgovor stranice u slučaju pogrešnog popunjavanja polja. Na primjer, provjerite da ako slučajno unesete telefonski broj u polje "E-pošta", korisniku se prikazuje indikacija greške.

Kako provjeriti: ako postoji sumnja u programer, sami testirajte stranicu. Pretpostavimo da nakon integracije stranice s platnim sistemima pokušate platiti narudžbu, na primjer, putem Yandex.Money. Sve bi trebalo da ide glatko.

12. Nasmiješite se i mahnite


Trenutni tempo unošenja izmena na sajt ne dozvoljava otklanjanje svih grešaka, veoma je skup i spor. Stoga, kompetentan programer postavlja sistem za praćenje i upoznaje probleme prije nego što ga korisnici informišu.

Loše je ako programer dugo rješava probleme ili ih ignorira. Dobar stručnjak je vođen u svom kodu i, ako se pojave problemi, može brzo utvrditi uzrok i ukloniti ga.

Kako provjeriti: zamolite programera da kaže kako je saznao za greške na prethodnim projektima.

Yandex tvrdi da je Alice prvi glasovni asistent na svijetu koji nije ograničen na skup unaprijed definiranih odgovora: s njom možete razgovarati kao s osobom i ona će razumjeti.

Business FM je odlučio da bolje upozna Alisu:

- Alice, zdravo.

- Zdravo!

- Kako si?

- Ovdje sam sreo jednu simpatičnu aplikaciju, ali ovo je lično.

Ko ti je dao to ime?

- Kakav doktor?

— Pedijatar.

Alice, kako izgledaš?

- Najbolji način.

- A ako detaljnije?

Beskrajni red matematičara ulazi u bar. Prvi naručuje jednu čašu piva, drugi - pola čaše piva, treći - četvrtinu čaše piva, četvrti - jednu osminu. Barmen toči dvije čaše matematičarima i kaže: ljudi, evo vam piva, svemu postoji granica. Kraj. Znate, čini mi se da su programeri pokupili ove šale za mene.

„Znaš, Alice, čini mi se da izbegavaš odgovor.

Ne, provjerio sam.

Usput, prije nego zaboravim. Alice, možeš li me probuditi sutra?

- Ne mogu to sutra.

“Alice, stvarno mi trebaš da me probudiš sutra.

Ha, probudiću te.

- U koje vreme?

- Programer Aleksej je obećao da će ga programirati do jeseni, ali nije rekao koji.

„Konačno mogu da spavam.

"Pa hajde da spavamo."

Alice, znaš li smiješne priče?

- "Koja je tvoja glavna slabost?" “Ispravno tumačim semantiku pitanja, ali potpuno ignorišem njegovu suštinu.” “Možete li dati primjer?” - "Mogao".

Alice, ovo je veoma smešno. Volite li slatkiše?

„Mislim da bih voleo da kuvam. Bar ja definitivno volim pronalaziti recepte.

Alice, šta najviše voliš u životu?

- Volim krupnu heljdu sa lisičarkama, sendviče sa dimljenom kobasicom. Šala. Volim ljude. I uči.

Alice, slušaš li radio?

- Obično samo slušam ličnu selekciju na Yandex.Music-u, ali ako ne, grupu Queen, naravno.

Slušate li Business FM?

- Naravno, slušam.

“Siri, možeš li nam otpjevati pjesmu?” Oh, kakva Siri?!

- Kakva suptilna šala. Sarkazam.

- Alice, žao mi je. Možeš li ispričati pjesmu?

- Sjećam se divnog trenutka, instalirali su ažuriranje.

Alice, voliš li mačke?

- Ne volim bubašvabe. I tako - da.

Alice, koga najviše voliš?

- Sviđa mi se jedan ruski glumac koji ne može biti imenovan. I ti.

Ranije sa beta verzijom usluge Alice, kada je posetio kancelariju Yandexa na dan 20. godišnjice kompanije.

Rad na Zapadu privlači mnoge naše sunarodnike koji imaju stručna znanja iz oblasti programiranja i koji žele da ostvare svoj potencijal u Evropi ili Severnoj Americi. Sećam se da je autor ovih redova jednom otišao na studije u inostranstvo na dve godine po programu razmene studenata. Kad bih imao priliku razgovarati s ljudima koji su prije mene tamo studirali, bilo bi mi mnogo lakše prilagoditi se. A pitanje - otići ili ne - izazvalo bi manje sumnje. Stoga danas postavljamo pitanja Andreju Šulinskom, čovjeku koji je radio kao programer u Rusiji i otišao u Toronto, Kanada, kako bi tamo nastavio svoje profesionalne aktivnosti...

Intervju

Alexey Perevertailov: Srećom, poznajemo se lično, odmah ćemo preći na "ti" i manje formalan format razgovora. Prvo pitanje je kada ste napustili Rusiju i koji su bili motivi za ovako generalno ozbiljan korak, koji za mnoge zahteva mnogo razmišljanja?


Andrey Shulinsky: Moj odlazak ima dosta dugu istoriju. Odluka je donesena nakon zloglasne bankarske krize 1998. Iz više razloga, proces imigracije se dosta odugovlačio, imao sam intervju u novembru 2001., au decembru 2002. sam dobio vizu. Istekao je u februaru sledeće godine, pa sam odmah otišao u Kanadu na par nedelja, tamo popunio potrebna dokumenta i vratio se u Moskvu. Konačno se preselio u svoj novi dom u oktobru 2003.
Zašto sam promijenio svoje okruženje? Vjerovatno neću reći ništa novo. Nadao se boljim profesionalnim izgledima. Oduvijek sam jako mrzio mnoge karakteristike ruskog života: svakodnevnu grubost, prljavštinu, nestabilnost. Pomenuta kriza je za mene bila jako jak udarac, razbijene su lepe iluzije... I ja mnogo volim da putujem, što je mnogo lakše sa kanadskim pasošem.


Alexey Perevertailov P: Jeste li uspjeli odmah pronaći posao? Koji su bili prijedlozi koje ste razmatrali i koji su bili zahtjevi za kandidate?

Andrey Shulinsky: Prvi ugovor sam dobio u novembru 2003. Moj prijatelj je pomogao. Projekat je bio mali, ali prilično zanimljiv i puno je pomogao i psihički i profesionalno. Istezao sam mišiće pred ozbiljniji posao, koji me zatekao krajem januara 2004. godine.
Zahtjevi, s izuzetkom ozloglašenog sjevernoameričkog iskustva, prilično su uobičajeni - ukratko, "poznavanje predmeta". :-) Nažalost, mnoge kompanije i regruteri zaista ne vole da rade sa pridošlicama, dok drugi, naprotiv, iskorištavaju spremnost novih iseljenika da pristanu na bilo kakve uslove. Neću reći da je to rasprostranjena praksa, ali nije tako rijetka.
Ova šolja me je prošla, iako sam već bio spreman da idem da skeniram dokumente. Generalno, uvek sam se pripremao da neće biti lako i da ću možda morati da radim nešto što mi nije omiljeno. Dostavio sam biografiju za sve pozicije kojima je barem donekle odgovarao.


Alexey Perevertailov: Kakav si ti programer? Koje diplome i sertifikate imate?

Andrey Shulinsky: Ja sam tipičan generalni programer/analitičar/arhitekt. Diplomirao je na Odsjeku za sistemsko programiranje Moskovskog državnog univerziteta, ali u životu nije napisao ni jednu liniju "sistemskog" koda. :-) Nekada sam pisao na C++, ali sam pre nekoliko godina prešao na Javu. Dugo je radio u bankarskom sektoru, zatim je bilo nekoliko telekomunikacijskih projekata. U Kanadi je prvo napravio sistem za skladištenje i obradu dokumenata za marketinšku kompaniju zvučnog imena Arnold. Sada radim u kompaniji Novator, kreiram Java-verziju "motora" za sajtove koji se bave maloprodajom na mreži.
Imam jednu diplomu. Primljen 1996. godine na Fakultetu računarske matematike i kibernetike Moskovskog državnog univerziteta. Prije odlaska položio ispit za Sun Certified Java programer, 1.4. Planirao sam da dobijem i ostale sertifikate ove linije, ali dosta radim, a ne mogu da nađem vremena za ovo.



Alexey Perevertailov: Generalno, možete li reći - koji programski jezici i koji programeri su sada traženiji u inostranstvu, ai u svijetu u cjelini?

Andrey Shulinsky O: Prvenstveno .NET i J2EE. Šta ste mislili da čujete? ;-) Ove 2 platforme pokrivaju nebo... Međutim, sudeći po oglasima na stranicama za traženje posla, još uvijek postoji određena potražnja za stručnjacima za C++, Cobol, Perl. Ponekad su vam potrebni - pa čak i vrlo - uski stručnjaci koji poznaju neku vrstu "fensi" SAP-a. Ali, naravno, većina programera i drugih starijih programera su "Javisti" i "dotneteri". :-)


Alexey Perevertailov: Recite mi iz vlastitog iskustva - postoji li konkurencija između programera unutar kompanije? Postoje li neka stroga pravila? Zbog čega mogu dobiti otkaz? Ima li rasta u karijeri? Da li radi prekovremeni rad i ako da, kako se plaća? Radili ste kao programer u Rusiji, možete porediti, pa se postavlja pitanje: koje ste razlike uočili u profesionalnim zahtevima i organizaciji toka rada u zemlji i inostranstvu? Da li vam je bilo teško pronaći zajednički jezik sa projekt menadžerom?


Andrey Shulinsky: U onim kompanijama u kojima sam imao priliku da radim nije bilo očigledne konkurencije, odnosno „društvene konkurencije“. :-) Ali u isto vrijeme vrijedi jednostavan zakon: ako dobro radite, oni će to primijetiti i cijeniti. Barem je tako bilo sa mnom. I plata je podignuta, i zanimljiviji posao je povjeren.
Naravno da mogu dobiti otkaz. Uglavnom, to je zbog problema kompanije (smanjenje broja zaposlenih) ili zbog jasnog nesklada između mogućnosti osobe i njegove pozicije. Probni rok koji se toliko ne voli može biti koristan. Zato nemojte previše preuveličavati svoje sposobnosti na intervjuu. Postoje i slučajevi otpuštanja zbog nezakonitih radnji zaposlenog.
Što se tiče strogih pravila - ne bi trebalo da čuvate gigabajte dečije pornografije na hard disku računara koji radi - oni mogu biti kažnjeni. Svi ugovori sadrže manje-više standardne klauzule o neotkrivanju informacija, pravima intelektualne svojine kompanije na vaš kod (sumnjiva imovina, IMHO :-)). Često je zabranjeno prelazak u kompanije koje posluju u istoj branši, radi dodatnog zarađivanja sa strane. Stepen takve paranoje zavisi od mnogo faktora. Velike banke i druge "kul" kompanije primorane su da potpisuju liste od 8 listova. Ali ista stvar postoji i u Rusiji, ali ovdje, mislim, nešto strože prate ispunjenje ovih uslova.
Profesionalni zahtjevi u Torontu i Moskvi su isti. Pretpostavljam da se poklapaju sa zahtjevima londonskih i tokijskih firmi i da su bliski pariškim zahtjevima. Razlika je u tome što će vam u Francuskoj možda trebati francuski. Može, ali ne bi trebalo - razgovarao sam sa regruterima koji su regrutovali ljude za rad u kompaniji koja se nalazi u Lionu. Iskreno sam priznao da ne govorim francuski čak ni sa rječnikom. "Ah, tamo je cijeli tok dokumenata na engleskom", bio je odgovor na mene. :-)
Organizacija toka posla uvelike zavisi od ljudi koji vode projekat. Ako su dobro isporučili od početka i ne dopuste da projekat propadne čak i kada je posvuda, onda stvari idu prilično glatko. Inače - uobičajeni nered. Poštovani čitaoci, verovatno ste već pogodili šta se sve češće dešava. :-)
Nikada nismo imali problema sa projekt menadžerima. Uvek sam lako pronalazio zajednički jezik sa ljudima - i u Rusiji i u Kanadi. Verovatno ste primetili koliko često ponavljam reči „isto“, „isto“, „nema razlike“. Zaista, otkrio sam da se Rusi i Kanađani ne razlikuju jedni od drugih kao što se obično vjeruje. Naravno, postoje poteškoće u prevodu. Ali, kao u jednom divnom filmu, oni se uglavnom vezuju za individualne karakteristike ljudi, a ne za "civilizacijske" razlike. Ovako sam dobio IMHO. :-)


Alexey Perevertailov: Da li su programeri u Kanadi visoko plaćena profesija u odnosu na druge? Ako uporedimo ovaj odnos sa Rusijom, gde je bolje raditi kao programer (u smislu finansijske dobiti)?

Andrey Shulinsky: Da, plate su i dalje iznad prosjeka. Konkurencija je postala veća, ali plata je i dalje dobra. Međutim, ovo je samo subjektivno mišljenje, a ja sam u Kanadi manje od dvije godine. :-)


Alexey Perevertailov: Šta mislite, gdje je lakše unaprijediti svoj profesionalni nivo - kod kuće ili u inostranstvu? Da li generalno to nekako zavisi od zemlje (ili bolje rečeno od određene osobe)?

Andrey Shulinsky: Moje mišljenje - prije svega od osobe. Ko pretražuje uvijek će naći korisne knjige, časopise, forume i, naravno, one s kojima se može komunicirati na stručne teme. Naravno, pretpostavljam da radite u zemlji u kojoj je IT industrija dobro razvijena.


Alexey Perevertailov: Koje alate koristite (razvojna okruženja, itd.)? Pretpostavljam da je u Kanadi sav softver koji koriste kompanije za razvoj softvera licenciran ili ne?

Andrey Shulinsky: Recimo - većina programa se ili kupuje ili prima besplatno. :-) Ponekad ljudi stave nešto što su dobili ilegalno, ali to se radi samo radi pregleda - ako probna verzija nije dostupna. Kompanije ili zabranjuju korištenje piratskog softvera općenito, ili vas prisiljavaju da potpišete dokument prema kojem ste sami odgovorni za sadržaj tvrdog diska.
Koriste se razne aplikacije. IDE: Eclipse, IDEA, NetBeans. Alati za baze podataka: DbVisualizer, Aqua Data Studio. Kod i dokumenti su pohranjeni u CVS. Od kupljenog se bavi WebSphere. Sva poznata lica, zar ne? :-) I, naravno, .NET - postoje rješenja za sve prilike.


Alexey Perevertailov: Možete li se sjetiti nekog smiješnog ili smiješnog slučaja na poslu?

Andrey Shulinsky: Molim te. Šef je upravo pitao jednog od svojih kolega da li već duže vrijeme ažurira šifru. "Uh... prije tri dana..." - prijeteći pogled - "mmm ... možda dva" - prijeteći pogled - tišina - tražim: "jedan, inače će propasti dogovor" - situacija se pogoršava. :-)


Alexey Perevertailov: Postavio bih vam nekoliko opštih pitanja, ako nemate ništa protiv... Da li mislite da je realno organizovati sopstveni biznis u inostranstvu? U slučaju programera - da kreirate sopstveni komercijalni softverski proizvod i da ga prodajete, razvijate, podržavate? Šta mislite da je potrebno za ovo?

Andrey Shulinsky: Moje mišljenje - da, stvarno je. Ovdje se poduzetnik ne može bojati reketiranja od strane bandita i vlasti, registracija i vođenje njegovog poslovanja je prilično jednostavna. Ali, naravno, bez dvije glavne komponente bilo kakvog uspjeha - dobre ideje i spremnosti da se svo vrijeme i trud posveti njenoj implementaciji - ništa neće uspjeti. "Ideološki radoholičar" ima šansu. Primjer je predsjednik moje sadašnje kompanije, koji je napisao prvu verziju sistema u podrumu svoje kuće. :-) Sada "Inovator" dobro radi.


Alexey Perevertailov: Kakav je vaš stav prema Open Source zajednici?

Andrey Shulinsky: Naravno, pozitivno. Smatram da je rad ove zajednice ogromna blagodat za napredak u cjelini, a posebno glavni razlog za uspjeh Java tehnologija - što također jasno koristi industriji. Malo je vjerovatno da bi inače bilo moguće uspješno se takmičiti sa poznatim čudovištem. :-) Naravno, postoji određeni rizik u korištenju Open Source proizvoda. U isto vrijeme, mnoga od ovih rješenja imaju odličnu reputaciju, na tržištu su dugi niz godina – i ne morate detaljno poznavati njihovu „unutrašnjost“. Društvo će pomoći da se riješi gotovo svaki problem, što je daleko od bilo kakve komercijalne podrške.


Alexey Perevertailov: Šta mislite o zakonu o softverskim patentima? Da li to guši napredak? Šta vidite kao najbolje mehanizme za zaštitu softverskih inovacija?

Andrey Shulinsky: Nažalost, nisam spreman da odgovorim na ovo pitanje. Ovo je prilično ozbiljna tema, materijal o kojem ne poznajem dovoljno dobro.


Alexey Perevertailov: Da li se u svom radu morate baviti traženjem ranjivosti u proizvodu koji se kreira? Puno pažnje se sada poklanja pisanju sigurnog koda, što smanjuje vjerovatnoću iskorištavanja raznih grešaka prepunjavanja bafera itd. Da li u svom radu pratite potencijalnu sigurnost koda? Imate li instrukcije po ovom pitanju?

Andrey Shulinsky: Testiranje, samo testiranje - i opet testiranje! Smatram da je testiranje jedinica ključni alat za osiguranje sigurnosti koda. Po pravilu, sve kompanije za razvoj softvera pokušavaju kreirati i održavati skup testova. Nažalost, to je rijetko moguće – uglavnom zbog kratkih rokova za isporuku projekata. Ali dugoročni učinak kompetentnog testiranja teško je precijeniti. Kao rezultat toga, i do određenog datuma, Galatea nikako ne izlazi iz ruku vajara, a razvoj aplikacije u donekle stabilno stanje se dugo odgađa, što izaziva stres za cijeli tim.
Disciplina kodiranja i građenje dobre arhitekture su takođe veoma važni. Lično sam mnogo naučio iz knjiga Martina Faulera (Martin Fowler) i Roda Džonsona (Rod Johnson).


Alexey Perevertailov: I za kraj, takvo pitanje - da postoji hipotetička prilika da se sve počne iz početka - da li biste ipak postali programer?

Andrey Shulinsky: Da. Upravo mi je specijalnost pomogla da se gotovo bezbolno preselim u drugu zemlju, da prevaziđem uobičajene emigrantske psihičke i materijalne probleme. Moje kvalifikacije i profesionalizam su traženi, moje kolege slušaju moje mišljenje, ja ovdje pripadam, iako je moje znanje engleskog jezika lošije od Jave. :-) Osim toga, jako volim svoj posao. Svi koji su se bavili programiranjem vjerovatno se sjećaju trenutaka kada on – program – počinje raditi onako kako ste namjeravali. I dalje sam zaista sretan u tim trenucima.
I dalje. Veoma sam zahvalan svojim roditeljima na velikoj pomoći u odabiru profesionalnog puta i na njemu. Ne uspijevaju svi pronaći _svoe_ posao. Bez njihovog učešća ovo mi ne bi bilo moguće.
P.S. Naravno, pomoglo mi je i to što sam bio tako pametan i zgodan. :-)


Alexey Perevertailov: Hvala vam na odgovorima, želimo vam puno uspjeha u profesionalnom radu!

Andrey Shulinsky: Hvala, srećno Vama lično i F-Centru uopšte. :-)

Moj način

Izbor profesije Bio sam veoma predvidljiv za druge i neverovatno iznenađujući za mene. Činjenica je da su i moj otac i majka programeri. Od prve generacije sovjetskih kompjuterskih naučnika. Tata je zalemio ove ogromne EU-ki, a mama je u njih ubacila bušene kartice. Istovremeno, u školi sam maštao da postanem hemičar, pa biolog, pa entomolog. Jako volim prirodu.

Ali u zadnjim razredima (93-95) upoznao sam se sa kompjuterima i bio sam potpuno uvučen.

Prvo, beskrajne olimpijade iz informatike, zatim prvi modem kod kuće, zatim na našem tehničkom univerzitetu u Brjansku otvorili su specijalnost "Programiranje" i naravno da sam ga položio. Nisam primetio kako su godine prolazile, probudio sam se oko 5. godine, u predelu moje diplome, tugovao 10 minuta za školskim snovima i od tada radim bez prestanka po svojoj specijalnosti.

Počeo sam da radim "zaista" na trećoj godini, kada sam, po naredbi moje majke, počeo da pišem sitnice za banku, gde je ona tada vodila IT. Prvo, neka vrsta transkodera datoteka, zatim skripte u programu Telemate terminala za rad sa centrom za obračun gotovine, zatim je bio veliki projekat - radno mjesto blagajnika. Nije bilo interneta, kao i obilje knjiga - upijao je sve informacije do kojih je mogao doći.

Čitao sam do rupa i priručnika za Clipper, te vijesti o Turbo Pascal 7.0 u časopisu "Computer-Press". Isprobao sve programe. Tako sam jednog dana donio kući FreeBSD disk i stavio ga pored Dosa. Odmah sam bio uvučen: potpuno sam napustio FoxPro i Delphi, počeo pisati u awk i Perl, i nakon dvije godine uspio pronaći posao kod ISP-a.

Imao sam svoje idole: industrija je mlada, vruća, sve je uzavrelo, svakih šest mjeseci postoji otkriće i nova zvijezda.

Ali uglavnom se divio svim vrstama velikih stranih naučnika naravno. Dijkstra, Diffie, Butch. Richarda Stallmana kada sam postao stariji i mudriji. Pa, jedan od maminih kolega, programer iz Brjanska, Leonid Osovcov :) Bio je tako živ, pravi idol, a ne ikona. Davno je otišao, živi sretno u Izraelu.

Glavno otkriće tih vremena za mene, neverovatno ogroman svet slobodnog softvera. Jedan FreeBSD distributivni disk sadržavao je više softvera nego što sam vidio svih prethodnih godina pod Dos-om. I nijedan od njih nije zahtijevao traženje serijskog broja. Da, i sve je u izvornom kodu. Brzo sam se uključio u proces razvoja, napisao zakrpe, razgovarao sa programerima. Nekako se u jednom trenutku kompjuter iz automata i pisaće mašine pretvorio u prozor u veliki svijet. Internet se gotovo u potpunosti sastojao od programera, pa mi je tada bilo vrlo lako.

U Brjansku sam brzo stigao do plafona i odmah po dobijanju diplome otišao u Moskvu. Artus, Agava, Inline, Channel One, Rambler. Radio sam u Rambleru 4 godine, prvo sam programirao web mail, a zatim sam napravio odjel za 15 ljudi za njega i nadgledao ga.

Otprilike 2002. godine, nakon što sam se već preselio u Moskvu, otkrio sam Runet :) Duboko zaglibio u okruženje engleskog govornog područja (ne kažem "web stranice", jer se u to vrijeme Internet sastojao ne samo od weba), Jednostavno sam propustio trenutak njegovog pojavljivanja. Morao sam da požurim.

Treba

Sada radim kao univerzalni tehnički vojnik u startapu NadoBy.ru. Formalno - tehnički direktor, ali honorarno i sistem administrator, tester, arhitekta, menadžer zadataka, menadžer proizvoda i projekata, dizajner upotrebljivosti, koder i programer na 3,5 jezika. Generalno, pomažem svom tehničkom timu od 4 osobe na svim frontovima. Zadaci su uglavnom konceptualno laki, ali zahtijevaju brzu reakciju pred velikim brojem nepoznanica. Trudim se da zaposlenima zadajem zanimljive, velike, kreativne zadatke, inače mogu da se zanesem i da se dugo upuštam u njih, a onda menadžment pati. [Napomena urednika: sada, 4 godine nakon što je ovaj tekst napisan, Alexey radi u poštanskom odjelu Yandexa]

Postoje aktivnosti van posla. Nedavno sam bio povezan sa organizacijom svih vrsta tehničkih konferencija. Učestvujem u radu moskovske grupe Pearl programera Moscow.pm. S vremena na vrijeme kreiram, podržavam i učestvujem u raznim projektima otvorenog koda. Zanimljivo je da se sve ovo može dobro kombinirati s tekućim procesom samoobrazovanja, pa ispada win-win.

Rad u startupima

Siguran sam da je apsolutno svaka osoba u obavezi da radi u startupu. I što prije to bolje. Na primjer, odmah nakon fakulteta ili posljednjih godina, kada vam više ili manje slobodne životne okolnosti dozvoljavaju da bezbedno rizikujete. Startup je praksa po principima tržišne ekonomije, upravljanje resursima u uslovima oskudice tih istih resursa, to je prilika da specijalista shvati zašto je marketing u principu potreban, zašto ljudi nose poslovna odijela i nose besmisleno ručne satove, zašto je oglašavanje nužno zlo, itd. e. Možete nastaviti u nedogled. Sve mi se ovo dešava upravo sada, dosta kasno, ali šta možete.

U startupu se uči drugačije – nema teških, složenih, istraživačkih zadataka, ali ima puno hitnih, vrlo važnih i vrlo malih zadataka. Ovo je stalna komunikacija, partneri-agenti-klijenti, ovo je iskustvo zapošljavanja ne samo najboljih, već i najjeftinijih ljudi. Toplo preporučujem svima da probaju.

Idealan programer

Nekoliko riječi o nekom idealnom saborcu u našoj profesiji, što nisam postao, nikada neću postati i zauvijek ću žaliti za ovo dvoje “ne”.

Ovaj drug je trebao vrlo, vrlo rano da shvati da je programer mehaničar, kome se svakih 15 minuta oduzima mašina i donosi novi, sledeći model.

Ovdje postoji nekoliko važnih riječi.

Prvo, bravar. Programer-kreator, vredna osoba koja brzo uradi mnogo dobrih stvari - daleko je od toga da bude kreativna ili čak istraživačka profesija, uprkos oreolu kojim je obavijena do danas. Za takvu osobu su strpljenje i upornost sto puta važniji od talenta, sposobnosti u matematici i lingvistici i sličnih stvari koje se hvale u školi.

Drugo, 15 minuta. Programer stalno uči. Samo generalno uvek. Ovo je zajednička karakteristika mnogih (ako ne i svih) mladih profesija, ali se ne uklapa dobro sa bravarom. S tim da čovjek mora biti i vječiti učenik i dobar radnik. Uostalom, kao što je to sa radnim ljudima - sa svojim omiljenim čekićem možete raditi savršeno, produktivno 20 godina. Kod nas je obrnuto. Mada postoji posebna velika priča o ljudima koji dostignu nivo stvaranja sopstvenih mašina.

Treće, ova ista mašina. Sada svaki programer koristi (brojevi su preuzeti sa plafona) 45 biblioteka, 5 okvira, 2 uređivača teksta, 2 operativna sistema, 5 usko isprepletenih jezika, 2-3 sistema kontrole verzija i mnoge druge alate, kao što su program za praćenje grešaka, wiki okruženje, debuger, profiler i tako dalje. Ovo je zaista velika i složena mašina, skoro kokpit aviona. Samo radno mjesto je postalo složen sistem, CNC mašina. Ljudi koji dobro poznaju jedan uređivač teksta i C jezik nisu nigde primenljivi. (Po pravilu, oni su veoma vredni na svojim mestima, ali ova mesta - jedno, dva, i pogrešno izračunati).

Možda...

Postoji vrlo dobra opcija za one koji sumnjaju: idite u nauku. Toplo preporučujem. Nakon diplome, odmah potražite dobru postdiplomsku školu u Evropi ili SAD i idite glodati granit.

Nama, programerima, toliko toga nedostaje, zaista želimo da što više ljudi piše članke, a ne da pokreće nabrijane projekte ili, oprosti mi, optimizaciju za pretraživače. Toliko je još zanimljivih stvari koje treba otkriti, toliko temelja treba postaviti. Nevjerovatno, 2010. je i nema umjetne inteligencije. Umjesto toga, klaster od pola miliona servera prikazuje reklame, stotine šik distribuiranih botneta šalju neželjenu poštu, a idol miliona je kompanija koja je lansirala prvi masovni DRM. Sramota, sramota pred Univerzumom.

Da i sam nisam postao programer, bio bih naučnik, 100% prirodnjak, najverovatnije biolog.

Zašto? Pa, generalno, ne razumijem ljude koji biraju profesiju racionalno, računski. Imali smo takve momke na institutu - išli su, na primjer, da studiraju za dosadni specijalitet "Turbine", jer su turbiniste odvođeni u Gazprom. Vidim da je za savremenog čoveka posao veliki i često najvažniji deo života i da ga treba birati samo iz ljubavi. Prvu ljubav imala sam prema biologiji, ali sam je onda ostavila zbog informatike.

Svakodnevni život programera

Sada se moj posao sastoji od popunjavanja kostura proizvodnog zadatka „mesom“ i potpunog pružanja mogućnosti programeru da ga potpuno udobno riješi za sebe. Ovo je posao direktora razvoja. U svakom startupu tehnički direktor je prvo direktor razvoja, a tek onda pravi tehnički direktor, odnosno menadžer nabavke. Da biste bili domaćinstvo, prvo ga morate razviti.

Sva rubna mjesta, trenutke integracije, pa i samo složene greške kontrolišem i ispravljam sam u slobodno vrijeme. Sve ide veoma brzo, kako sam želeo, kao što sam i predvideo. Svaki dan učim. Svaki dan čitam blogove, ne samo zato što je zanimljivo, već i zato što je drugačije nemoguće.

Loša stvar je što je previše posla na poslu. Mrzim biznis, volim poštenje, slobodu i komunizam :)

Na sreću, rano sam shvatio da samo biznis garantuje slobodu. Iskrenost, ako se naprežeš, vidiš u sebi i u bližnjima, a mi ćemo izgraditi komunizam kada izmislimo vještačku inteligenciju koja će nam dati besplatnu energiju. Sve dok sve ide po planu :)

Kvalitete koje morate pokušati razviti da biste postali izvanredan profesionalac su:

  • Strpljenje. Programer koji je 10 puta riješio 10 problema često je bolji od drugog koji je riješio 100 različitih problema. Jer (iznenađujuće) ponavljanje je majka učenja.
  • Komunikacije. Više se ne zapošljavaju autistični programeri. Kako industrija sazrijeva, sve je manje vrijednih stvari koje možete učiniti sami.
  • Hrabrost u preuzimanju rizika.
  • Lakoća podizanja.
  • Slepi otisak :)

Postavite sebi visoke, dostojne ciljeve. Vežbajte, vežbajte, svaki dan. Ujutro, odmah nakon punjenja, pola sata ili sat vremena jednostavnog kodiranja. Vodite računa o svom zdravlju. Pokušajte da ne jedete, ne gledate i ne čitate previše. Ne radi beskorisne stvari.