ecosmak.ru

Hääleassistent “Alisa” naljatab: “Programmeerijad valisid need naljad minu jaoks välja. Hääleassistent "Alisa" naljatab: "Programmeerijad valisid need naljad minu jaoks kui vana on teie programmeerija Aleksei

Erinevalt paljudest kolleegidest ei sündinud ma programmeerijaks. Olen sündinud muusikuna. Ma ei õppinud ülikoolis programmeerimist ja teatud ajani ei kavatsenud ma isegi oma elu IT-ga siduda.

Aga mind on alati tõmmanud Moskva oma laiade kõnniteede, pikkade vallide ja tohutute parkidega. Kuid sinna sattudes tunnete rahavajadust rohkem kui üheski teises meie hämmastava kodumaa linnas. Sel ajal üüris mu vanem vend kahe programmeerija juures korterit mingis pangas. Nii sukeldusin ühes köögivestluses esimest korda Pythoni maailma. Sellest hetkest möödus palju aega, enne kui sain oma esimese töökoha Pythoni arendajana.

Esimesed sammud programmeerimisel

Nii et kord Moskvas pidin ma tööd otsima, kuna ma ei saanud pikka aega eemal elada. Minu oskustest piisas tollal vaid ühe suure ja ebamoraalse ettevõtte tehnilise toe ametikoha saamiseks. Võtsin telefoni teel tellimusi vastu ja kõndisin mööda maja pikki koridore edasi-tagasi, et süsteemiüksustega ühendada hiired, kes kordamööda kõigi kontoritöötajate pesadest välja lendasid.

Just seal, mõistes toimuva absurdsust, kirjutasin oma esimese programmi. Vabal ajal uurisin keele võimalusi ja kirjutasin skripte süsteemihalduseks. Vanemadministraatorid märkasid seda kiiresti ja hakkasid mulle selle või teise programmi kirjutamiseks ülesandeid andma ning üllatusena avastasin, et isegi oma minimaalse kogemusega programmeerin ma neist paremini ja saan neile selles kasulik olla.

Esimene töökoht

Üllataval kombel pole ma kunagi juuniorina töötanud. Läksin kohe keskele. Kuid mul oli katseid saada tööd nooremarendajana. Mäletan seda intervjuud hästi.

Kaks hästi haritud programmeerijat (mis on naljakas, nad olid mees ja naine) testisid minu teadmisi ja mõtlemist tervelt kaks tundi, misjärel nad jõudsid järeldusele, et minu teadmistest ei piisa, kuid nad ei keelanud mind, vaid andsid mulle kirjanduse loetelu ja saatis mind õpinguid lõpetama. Kaks nädalat hiljem tulin tagasi intervjuule ja näitasin üles fantastilist õppimisvõimet, vastates paljudele küsimustele, millele ma varem vastata ei osanud. Järgmisel päeval helistati ja öeldi, et olen vastu võetud. Mulle öeldi palk, millest ei piisa isegi eluaseme ja toidu üürimiseks, rääkimata mõningatest ekstsessidest. Keeldusin kohe ja ei kahetsenud seda kordagi, kuna sain tööd süsteemiadministraatorina ühes maailmakuulsas ettevõttes, kus jätkasin iseõpet programmeerijana. Sellest loost võtsin ühe oluline punkt Miski ei juhi ega lükka nii hästi kui intervjuu!

Mis järgmiseks

Mingil hetkel, olles väsinud kontorielust ja administraatoritööst, kogusin raha ja läksin kuueks kuuks Indiasse reisima. Oh, kui ma saaksin kuus kuud kirjeldada, mis see oli, siis raamatust ei piisaks, mitte nagu see artikkel. Tagasi tulles teadsin juba, et proovin uuesti programmeerijana tööd saada ja seekord naeratas õnn mulle ning olin selleks palju paremini ette valmistatud. Kuue kuu jooksul reisides olen oma inglise keele kõnekeelt väga-väga hästi täiendanud, mis aitab nüüd iga päev kolleegidega suhtlemisel. Keelekeskkonda sattumine osutus palju tõhusamaks kui mistahes õpikud (muide, sama võib öelda ka programmeerimise kohta). Kuid parem on hüpata sinna juba põhitõdesid mõistes, vastasel juhul kasutate põhitõdede õppimiseks tingimusi, milles saate edasijõudnuks saada.

Niisiis. Esimesel töökohal programmeerijana olin ettevõttes ainuke taustaarendaja! Hullemat ei kujuta ettegi! Noh, mida ma tahtsin, selle ma sain. Teisel töökohal aga sattusin suurepärasesse meeskonda, kus töötasid suurte kogemustega tõelised professionaalid. Tänu neile omandasin koodikultuuri ja õppisin tundma kõrgeid arendusstandardeid. Miša Korsakov ja Andrei Belyak - lugupidamine ja austus!

Nüüd

Ja nüüd töötan kaugtööna ühes rahvusvahelises ettevõttes ja sellel on oma eelised! Lihtsalt ärge arvake, et ma laman nüüd sülearvutiga rannas ja naudin elu täiel rinnal. Ma töötan endiselt palju ja väsin palju, aga ma ei pea kontoris käima. Elan Peterburis, vahel reisin. Mul õnnestus elada Portugalis, Itaalias, Gruusias, aga ma ei saa öelda, et oleksin seal kuidagi eriliselt puhanud. Reisi korraldamine lisab palju lisakeerukust ja tööga kombineerituna võib see olla kaks korda raskem kui kodus või kontoris töötamine. Aga näha saab palju uut, ilusat ja huvitavat. Ja see on selge pluss!

mentorlus

Ja minu mentorlus algas väga naljakalt ja ilma minu osaluseta. Kord käisin sõbral külas ja jätsin talle kogemata Pythoni ja Django raamatu. Ja järgmine kord kohtusime alles aasta hiljem ja siis üllatas ta mind. Ta ütleb, ja nüüd töötan ma programmeerijana! Kas mäletate, et unustasite mu raamatu, nii et lugesin seda, tegin selle kohta oma veebisaidi ja sain hiljuti oma esimese töökoha.

Juhtub!

Hiljem jätkus mu mentorlus sellega, et hakkasin õpetama üht oma sõpra. Vaatamata sellele, et ta veedab peaaegu iga päev erineval töökohal, läheb meie äri väga kiiresti ja hästi. Esimene töökoht programmeerijana on kohe-kohe käes!

Kuidas saada edukaks Pythoni arendajaks? Aleksei Kurõlev jagab oma kogemusi nii algajatele kui ka kogenud programmeerijatele

Küsimused

Millist nõu annaksite algajatele, mis on haruldane või mida peetakse ebatavaliseks, vastuoluliseks?

Liituge mis tahes liikumisega! Ärge jätke kasutamata ühtegi võimalust harjutamiseks! Olge alati avatud kõikidele ettepanekutele!

Ja mis on väga oluline:

"Kui seisate silmitsi ebaselgusega, pange vastu kiusatusele arvata." - Pythoni zen

Kuidas hoiate oma oskusi ajakohasena? Kuidas arendajana edasi areneda ja paremaks saada?

Noh, töö ei lase sul ebaoluliseks muutuda. Iga päev tuleb midagi uut ette võtta. No ma lugesin muidugi. Õpin teisi keeli. Suhtle teiste arendajatega. Arendan erinevaid veebiteenuseid meeskonnas koos sõpradega, ilma palgata, lihtsalt huvi pärast. Ja võimalusel puhkan rohkem, see on ka vajalik, nii läheb eneseareng lihtsamalt ja kiiremini.

Top 3 raamatut algajatele
  • Mark Summerfield – "Python 3 programmeerimine. Lõplik juhend"
  • Wesley Chan, Paul Bissex, Jeffrey Forsier – “Django. Veebirakenduste arendamine Pythonis”
  • Robert Martin - "Puhas kood" - Lugege seda isegi siis, kui te Javast aru ei saa, see on väga lihtne head nõu. Ja samal ajal hakkate õppima Java.

Aleksei Pajitnov on Nõukogude ja Venemaa programmeerija, kes lõi populaarse videomängu "Tetris", mis on programmeerimise ja arvutimängude arendamise alal mitmete auhindade omanik. Pärast saamist kõrgharidus Moskva Lennuinstituudis töötas ta NSV Liidu Teaduste Akadeemia Arvutuskeskuses, kus 1984. aastal lõpetas Tetrise mängu arenduse. Esimene raha, mida mäng hakkas tooma 1996. aastal, kui Alexey ja Henk Rogers (investor, Tetrise suurte aktsiate omanik, kes levitas mängu üle maailma) asutasid Tetrise ettevõtte.

Aleksei Pajitnov - elulugu

Sündis 14. märtsil 1956 Moskvas. IN kooliaastaidõppis hästi, kuid distsipliiniga oli pidevalt probleeme. Nagu Aleksei ise meenutab, oli ta lapsena energiat täis ega suutnud tunnis kuulekalt istuda, mistõttu sai ta oma käitumise pärast sageli päevikusse märkusi. Samas ei midagi tähelepanuväärset ja üllatavat: paljud on selle läbi elanud. Pajitnov oli matemaatikas alati hea, nii et pärast viienda klassi lõpetamist läks ta üle Moskva 91. matemaatikakooli, mille lõpetas hiljem kiitusega.

Sissejuhatus programmeerimisse

Pärast kooli lõpetamist siseneb Aleksei Pajitnov Moskvasse lennundusinstituut kus ta tutvus esmakordselt arvutite ja programmeerimisega. Just siin sattus ta kiiresti tarkvaraarendusse ja hakkas täielikult pühenduma erinevatel eesmärkidel koodi kirjutamisele. Varsti kutsuti andekas noor programmeerija tööle NSVL Teaduste Akadeemia Moskva Arvutuskeskusesse. Siin tegeles ta kaugeltki viimase asjaga - probleemide optimeerimisega tehisintellekt ja kõnetuvastusprogrammide väljatöötamine.

Teaduste Akadeemia rutiinne argipäev oli magus: hommikust õhtuni istus Pajitnov kitsas kabinetis, kus mitu teadlast istus korraga ühe laua taga. Aleksei meenutab, et ta jättis mõnikord oma töökoht terveks päevaks, siis öösel vaikides tööle, kui kõik on koju läinud.

Karjäär pärast "Tetrise" loomist

1984. aastal lõi Aleksei Leonidovitš Pajitnov legendaarse Tetrise mängu, millest sai peaaegu kõige populaarsem mäng maailmas. Ühiskonnas infotehnoloogiad Pajitnov muutub äratuntavaks ja populaarseks. 1988. aastal asutas ta koostöös Bullet-Proof Software'iga mänguarendusettevõtte AnimaTek. Korporatsioon õitses hüppeliselt ja juba 1991. aastal kolis Tetrise leiutaja Aleksei Pajitnov USA-sse.

"Tetrise" loomine – kuidas see oli?

1980. aastatel NSVL Teaduste Akadeemia Arvutuskeskuses istusid noored teadlased päevad läbi oma laborites, lahendades igavaid ja mittetriviaalseid probleeme. Üks neist oli Pajitnov Aleksei Leonidovitš, kes töötas sel ajal kõnetuvastuse programmi ja uuris ka tehisintellekti probleeme. Noorele programmeerijale pandud ülesanded olid uskumatult rasked, Aleksei pidi pidevalt looma kõige keerukamaid algoritme, mis ületas tavamõistuse jõu.

Oma suure teadmistebaasi potentsiaaliga Pajitnov otsustab luua huvitava pusle, mis tõmbab ligi nii täiskasvanuid kui ka lapsi. Tetris pole kaugeltki andeka programmeerija esimene leiutis. Algselt lõi ta mängu, kus figuurid peavad teiste objektide raskusjõu mõjul oma asukohta muutma. Koodi kirjutamise lõpule jõudes mõistis Aleksei, et selline mäng oleks tavalise arvuti protsessori jaoks väljakannatamatu, mistõttu pidin programmi mõningaid peensusi lihtsustama.

Selle tulemusena loob ta mängu, kus figuurid (nagu Tetrises) koosnevad viiest ruudust, mille eesmärk on identne tulevase mänguga "Tetris". Kahjuks avalikkusele selline looming ei meeldinud, mistõttu otsustab Pajitnov mängu veelgi lihtsustada, kus iga 7 olemasolevast kujundist koosneb neljast ruudust.

Ainult seitse numbrit ja maailmakuulsus on teie taskus

Kas olete kunagi mõelnud, miks mängul "Tetris" selline nimi on? Ja miks on selles ainult seitse kuju? Asi on selles, et algselt kandis mäng nime "Tetramino", kus "tetra" tähendab kreeka keeles numbrit "neli". Populaarsuse kasvades andsid selle mängu kasutajad ise sellele lihtsamaks hääldamiseks lihtsustatud nime.

Aleksei Pajitnov selgitas ühes intervjuus, miks mängus on ainult 7 nuppu:

"Mängus osaleb ainult seitse kuju ja see on tegelikult õnn, sest number 7 on suurus muutmälu inimese aju, st see, mida inimesel on võimalik meeles pidada. 7-kohalist telefoninumbrit on palju lihtsam meeles pidada kui 8-kohalist. Seitsmeliikmeline meeskond on maksimum, mis saab hakkama ilma ülemuse või töödejuhatajata. Kaheksast ja enamast inimesest koosnevas grupis, kus juht puudub, on võimatu töötada sujuvalt ja struktureeritult. Sellises kollektiivis tekivad pidevad erimeelsused ja vastuolud, olenemata sellest, kas olete sõbrad, kamraadid või lihtsalt tuttavad. Sellised järeldused teen ma isikliku kogemuse põhjal.

Tetrise loomise motiivid

Mäng "Tetris" loodi selleks, et inimestel oleks lõbus ning nad saaksid lõõgastuda rutiinsetest ja igapäevastest kohustustest. Pajitnov ütles alati, et parim alternatiiv stressi maandamiseks on lisaks spordile arvutimängud.

Välguhiilguse videomäng

Pärast Tetrise mängu kirjutamise valmimist olid NSVL Teaduste Akadeemia töötajad, kus Pajitnov töötas, esimesed paar nädalat sellest vaimustuses. Kui mäng sai kõigile kättesaadavaks, levis meelelahutustoote kuulsus mõne päevaga kõikidesse linnadesse. Paari kuu jooksul mängis kogu maailm Tetrist. Sel hetkel otsustab Aleksei Pajitnov koos kolleegidega luua uus versioon mängud, kus figuurid saavad olema juba mitmevärvilised, samuti hakatakse pidama rekordite statistikat, et inimesed saaksid omavahel võistelda.

Sel ajal kui kogu maailm mängu nautis, elas Aleksei veel palju aastaid tavalist elu ja töötas NSV Liidu Teaduste Akadeemia Arvutuskeskuses. Fakt on see, et tal polnud võimalust mängu rahaks realiseerida, sest õigused kuulusid Teaduste Akadeemiale. Kõik oli seletatav sellega, et mängu kirjutati tööajal töötavas arvutis.

Aleksei Pajitnov: mängu "Tetris" looja staatus

Nagu teate, asus Pajitnov 1996. aastal tööle Microsoftis, kus ta töötas välja mõistatusmängude sarja nimega Pandora laegas. Siin töötas ta kuni 2005. aastani ja selle aja jooksul õnnestus tal omandada sellelt ettevõttelt mitu suurt aktsiat, mis tänaseni toovad talle teatud protsendi. Aleksei ise ei pea end miljonäriks. Ühes intervjuus ütles ta järgmist: "Miljonär on see, kes kulutab miljoneid, kuid mitte see, kellel on miljon. Elan üsna tagasihoidlikku elu ega loobi raha paremale ega vasakule, nii et ma ei nimetaks end kunagi miljonäriks.

Arvutisõltuvus – kas arendajate või kasutajate süü?

IN kaasaegne maailm paljud inimesed sekkuvad liiga palju videomängudesse, tekitades sellega endale probleeme Igapäevane elu. Nad kiinduvad psühholoogiliselt Arvutimängud ja Internetti ning saavad oma aega pühendada päevi järjest arvuti taga istumisele. Infotehnoloogia ajastu on inimeste meelt oluliselt muutnud. Kord küsiti Pajitnovilt, kuidas ta saaks seda olukorda kommenteerida, millele ta vastas järgmiselt:

"Inimesed ütlevad mulle sageli, et röövisin suure osa nende ajast, kui nad saavad teada, et olen Tetrise looja. Küsin neilt alati: "Kas see aeg oli teile hea või halb?". Nad kõik vastavad ühena, mis on hea. Niisiis, ma andsin selle aja ja ei varastanud seda. ”

Kõigepealt tuleb mõista, et sait on saiditi erinev. Kui võrrelda objektide ehitamist ehitusega, siis on olemas "lehtlate" ja "onnide" alad ning "pilvelõhkujad" või suured "kaubanduskeskused". Mida keerulisem on sait, seda kallim võib see olla amatöörile, kes saab väikeste saitide puhul lihtsate ülesannetega hõlpsasti hakkama.

Räägime nõuetest üksikule programmeerijale, kes vastutab väikese veebipoe eest (30-3000 tootekaarti, 1-10 tellimust päevas). See spetsialist peaks olema generalist, st samavõrra tuttav taustaprogrammiga - serveripoolne arendus ja kasutaja brauseri poolel - arendusega frontend).

1. Miinimumnõuded

Kui veebipoel on juba veebisait, peaks kandidaadi CV sisaldama kõiki või peaaegu kõiki sellel saidil kasutatavaid tehnoloogiaid. Saate seda loendit arendajaga kontrollida.

Kui ettevõte hakkab saiti nullist välja töötama, peaks programmeerija teadma:

  • üks levinumaid keeli: PHP/Python/Ruby/C#;
  • üks DBMS-idest: MySQL/PostrgreSQL/MSSQL/Oracle/MongoDB;
  • üks levinumaid sisuhaldussüsteeme (CMS): Bitrix, UMI, Drupal, ShoppingCart, WordPress;
  • omama Linuxi ja veebiserveri haldusoskusi, näiteks ühte Nginx/Apache/IIS või omama kogemust veebiserverite hostimisel AWS-i pilveplatvormidel, Google Cloudis, Azure'is.

Nende oskuste puudumine ei tähenda, et ta oleks amatöör. See lihtsalt ei sobi sulle.

2. Kirjavahetustutvus

Nõrga programmeerija tunnuseid saab portfooliot uurides tuvastada juba enne intervjuu jätkamist. Kui programmeerija on oma teosed (saidid) märkinud, peaksite need avama Google Chrome'is, minge brauseri menüü jaotisesse "Lisatööriistad", valige üksus "Arendaja tööriistad" ja avage vahekaart "Konsool".

Seejärel minge tavalise külastajana saidile "reisile": avage mitu lehekülge, proovige esitada küsimus tagasisidevormi kaudu või täitke tellimuse korv. Kui konsoolis ilmuvad vead, tõstetakse need automaatselt punasega esile, see on halb märk. Võib-olla pole see konkreetse arendaja süü, kui ta töötas meeskonnas, kuid see ei värvi meeskonda tervikuna.

Portfelli puudumine või selle näitamisest keeldumine on kogenematu arendaja kindel märk.

3. Ujusime, me ei tea

Loomulikult suur tähtsus omab praktilist kogemust. Kui kandidaat "hõljub" intervjuul vastates küsimustele mineviku arengute kohta ega suuda oma tegevust selgitada, peaksite olema ettevaatlik.

Näiteks programmeerija räägib MySQL-i abil süsteemi arendamisest, kuid ei oska nimetada alternatiivseid tehnoloogiaid ja põhjust, miks ta just selle valis. Samas sobib “õigeks” vastuseks isegi variant “Ma lihtsalt tunnen teda paremini”.

Pädev spetsialist oskab oma arengutest üksikasjalikult rääkida ja selgitada, miks ta konkreetseid tehnoloogiaid kasutas.

Kuidas kontrollida: esitage programmeerijale küsimusi varasemate projektide üksikasjade kohta ja küsige, miks arendus tehti nii, nagu see tehti. Kui kandidaat ei suuda selgelt vastata, on tõenäoline, et ta tunnustab meeskonna või teiste kolleegide tööd. Samal ajal ei pea saidi omanik mõistma programmeerimise keerukust, piisab täpsustavate küsimuste esitamisest.

4. Linnu keel

Teine oluline punkt on kandidaadi oskus rääkida "inimlikku" keelt. Hea spetsialist oskama oma tööd selgitada lihtsate sõnadega. Kuid kui taotleja räägib eranditult termineid, on tal raske kolleegide ja ettevõtte omanikuga suhelda.

Kuidas kontrollida: paluge tal rääkida mingist veast, mille eest juhtkond teda "lennutas". Näiteks vorm "tagasiside" ei töötanud saidil 2 nädalat. Kujutage ette, et see on teie veebisait.

Täpsustage, mis oli vea olemus, kuidas ta sellest teada sai, kuidas põhjuse leidis ja vea kõrvaldas. Kui taotleja räägib ebasündsalt – küsige selgitust. Kui te pole ikka veel selgitusega rahul, on sellega raske töötada.

5. OpenSource

Paljud eksperdid avaldavad oma arendused GitHubis (või BitBucketis). Kui programmeerijal on mitu avalikku projekti ja veelgi enam, teised kasutajad märkisid või kopeerisid (kahvliga), on see märkimisväärne pluss. Suur hulk kopeerimine räägib kõrge tase professionaalsus.

Otsitakse Dan Abramovi tasemel programmeerijat suur ettevõte, tase (ta praegu töötab seal), aga kui teie kandidaadil on nullist erineva hindega projekte ja ka "roheline ala" on täidetud - suurepärane! Helistage talle intervjuuks.

Kuidas kontrollida: paluge taotlejal saata link GitHubi kontole (BitBucket) ja loetleda projektid, mille üle ta on uhke. Pöörake tähelepanu "konto vanusele", projektide arvule ja koodi koopiate arvule teiste kasutajate poolt.

6. Vana pagas

Pädev spetsialist peaks jälgima uute tööriistade ja tehnoloogiate tekkimist. Üks asi on see, kui programmeerija on sunnitud töötama sisse kirjutatud saidiga vananenud keel, teine ​​on see, kui ta läheneb liiga konservatiivselt.

Kaasaegsed tööriistad võivad oluliselt vähendada arendusaega. Muide, kõige uue tagaajamine ja põhjendamatu juurutamine on ka halb.

Kuidas kontrollida: küsige, milliseid tööriistu või tehnoloogiaid on kandidaat viimase aasta või paari jooksul õppinud ja kuidas need teda tema töös aitasid.

7. Hinnad laest

Hea programmeerija töö pole loomulikult odav, kuid pole vaja kiirustada arendust andma turu kõige kallimale spetsialistile. Kui kandidaat teatab kohe kogu saidi arendamise maksumuse, täpsustamata sellele esitatavaid nõudeid, on see vähemalt kummaline.

Lihtsate ülesannete puhul, nagu "nupu värvi muutmine" või "saidiplaani loomine", peaksite ootama kiireid vastuseid - vastavalt "selleks kulub 5 minutit" või "Saan sellega hakkama 2 tunniga".

Lisaks saate mitmelt spetsialistilt hinnanguid maksumuse ja teostusaja kohta ning neid võrrelda. Kui programmeerijal kulub viieminutilise ülesande täitmiseks tund aega, pole ta tõenäoliselt professionaal või mängib lihtsalt aega, et rohkem teenida.

Kuidas kontrollida: küsi kandidaadilt, kui kaua tal kulub veebipoes nupu "Osta" värvi muutmiseks ja saidikaardi tegemiseks.

8. Käsitsi valmistatud

On nali, et hea programmeerija on laisk programmeerija, kuid selles on omajagu tõde. Pädevad spetsialistid kirjutavad koodi nii, et minimeerida mitte ainult nende, kes siis programmiga töötavad, vaid ka nende endi pingutusi. Nad üritavad kasutada kellegi teise valmiskoodi (OpenSource) ja selles pole midagi halba.

Kui programmeerija ei tea, kuidas oma tööd optimeerida, kulutab ta sama tüüpi ülesannetele palju tööandja aega ja raha.

Kuidas kontrollida: tee selgeks, kuidas programmeerija koodi loomisele läheneb, küsi näidet. Hea, kui ta esialgu otsib valmislahendust ja kui seda pole, kirjutab koodi ise. Saate näiteks küsida programmeerijalt, kuidas ta töötab välja kalendri, mida võib vaja minna tellimisvormis tarnekuupäeva valimiseks. Hea vastus on leida valmis komponent.

9 ekstra kaksikut

Dubleeritud kood on kindel märk kogenematu programmeerija kohta.

Võtame näiteks kontaktide lehel oleva "tagasiside" vormi, mis tuleb paigutada kataloogi ja tootekaartidele. Kui arendaja lihtsalt kopeerib osa koodist ja kleepib selle vajalikele lehtedele, jätab spetsialisti professionaalsus soovida. Sest kui teil on vaja tagasiside vormis muudatusi teha, peate parimal juhul tegema kolmekordset tööd ja halvimal juhul unustab programmeerija mõnda koodi muuta.

Kogenud spetsialist kirjutab funktsiooni, mis laadib "tagasiside" vormi sama allika erinevatele lehtedele. Seega, kui koodi on vaja parandada, ilmuvad muudatused automaatselt kõikidel saidi lehtedel, kus see on esitatud.

Kuidas kontrollida: küsi kandidaadilt, kas ta dubleerib koodi. Mitte amatöör ei ütle "jah, see juhtub", kuid ta seletab seda ebaratsionaalse ajaga, mis kulub duplikaatidest vabanemiseks. Kui vastus on "ei", siis programmeerija valetab, kirjutab vähe või on perfektsionist – kumbki neist selgitustest on halb variant.

10. Lõika elusalt

Heas mõttes peaks programmeerija tegema saidist koopia, testima sellel tehtud muudatusi ja alles pärast muudatuste kontrollimist need põhiressurssi üle kandma.

Kuidas kontrollida: küsige kandidaadilt, kuidas ta saiti eelmisel töökohal värskendas.

11. Usaldab, kuid ei kontrolli

Kõiki saidi muudatusi tuleb testida. Suurtes ettevõtetes lahendavad ülesande testijad, kuid keskmistes ja väikestes ettevõtetes langeb see arendaja õlule.

Ilma saidi seisukorda pärast muudatusi kontrollimata võivad kasutajad leida palju vigu. Probleemid võõrandavad potentsiaalseid kliente, mis mõjutab negatiivselt ettevõtte kasumit.

On oluline, et programmeerija kontrolliks mitte ainult saidi jõudlust, vaid testiks seda ka vigade suhtes, mida kasutajad võivad teha. Seega peate tagasisidevormi väljatöötamisel kontrollima mitte ainult selle õiget saatmist, vaid ka saidi vastust väljade eksliku täitmise korral. Näiteks kontrollige, et kui sisestate kogemata telefoninumbri väljale "E-post", kuvatakse kasutajale veateade.

Kuidas kontrollida: kui programmeerijas kahtlete, testige saiti ise. Oletame, et pärast saidi integreerimist maksesüsteemidega proovige tellimuse eest tasuda näiteks Yandex.Money kaudu. Kõik peaks kulgema sujuvalt.

12. Naerata ja lehvita


Praegune saidil muudatuste tegemise tempo ei võimalda kõiki vigu kõrvaldada, see on väga kulukas ja aeglane. Seetõttu loob pädev arendaja seiresüsteemi ja saab probleemidest teada enne, kui kasutajad teda teavitavad.

On halb, kui programmeerija lahendab probleeme pikka aega või ignoreerib neid. Hea spetsialist juhindub oma koodis ja probleemide ilmnemisel suudab ta kiiresti kindlaks teha põhjuse ja selle kõrvaldada.

Kuidas kontrollida: paluge programmeerijal rääkida, kuidas ta sai teada eelmiste projektide vigadest.

Läänes töötamine meelitab ligi paljusid meie kaasmaalasi, kellel on erialased teadmised programmeerimise vallas ja kes soovivad oma potentsiaali Euroopas või Põhja-Ameerika. Mäletan, et kunagi läks nende ridade autor õpilasvahetusprogrammi raames kaheks aastaks välismaale õppima. Kui mul oleks võimalus rääkida inimestega, kes on seal juba enne mind õppinud, siis oleks palju lihtsam kohaneda. Ja küsimus – lahkuda või mitte – tekitaks vähem kahtlusi. Seetõttu esitame täna küsimused Andrey Shulinskyle, mehele, kes töötas Venemaal programmeerijana ja lahkus Kanadasse Torontosse, et seal oma karjääri jätkata. ametialane tegevus...

Intervjuu

Aleksei Perevertailov: Õnneks tunneme üksteist isiklikult, läheme kohe üle "sina" ja vähem formaalsele vestlusvormingule. Esimene küsimus on, millal te Venemaalt lahkusite ja mis olid sellise üldiselt tõsise sammu ajendid, mis paljude jaoks nõuab palju mõtlemist?


Andrei Šulinski: Minu lahkumine on ilus Pikk lugu. Otsus sündis pärast kurikuulsat 1998. aasta panganduskriisi. Mitmel põhjusel venis immigratsiooniprotsess väga pikaks, 2001. aasta novembris käisin intervjuul ja 2002. aasta detsembris sain viisa. See aegus järgmise aasta veebruaris, seega läksin kohe paariks nädalaks Kanadasse, välja Vajalikud dokumendid ja naasis Moskvasse. Lõpuks kolis ta uude koju 2003. aasta oktoobris.
Miks ma oma keskkonda muutsin? Midagi uut ma ilmselt ei ütle. Loodeti paremaid professionaalseid väljavaateid. Mulle on alati väga meeldinud paljud vene elu jooned: igapäevane ebaviisakus, mustus, ebastabiilsus. Mainitud kriis oli minu jaoks väga tugev löök, ilusad illusioonid purunesid... Armastan ka väga reisimist, mida on Kanada passiga palju lihtsam teha.


Aleksei Perevertailov K: Kas teil õnnestus kohe töökoht leida? Milliseid ettepanekuid kaalusite ja millised olid taotlejatele esitatavad nõuded?

Andrei Šulinski: Sain oma esimese lepingu 2003. aasta novembris. Mu sõber aitas. Projekt oli väike, kuid üsna huvitav ja aitas palju nii psühholoogiliselt kui ka tööalaselt. Sirutasin lihaseid enne tõsisemat tööd, mis leidis mind 2004. aasta jaanuari lõpus.
Nõuded, kui Põhja-Ameerika kurikuulus kogemus välja arvata, on üsna tavalised – lühidalt öeldes "teadmised teemast". :-) Kahjuks ei meeldi paljudele ettevõtetele ja värbajatele uute tulijatega koostööd teha, samas kui teised, vastupidi, kasutavad ära uute väljarändajate valmisolekut nõustuda mis tahes tingimustega. Ma ei ütle, et see on laialt levinud tava, kuid see pole nii haruldane.
See tass läks minust mööda, kuigi olin juba valmis dokumente skaneerima minema. Üldiselt olen end alati ette valmistanud selleks, et see ei saa kerge olema ja võib-olla pean tegema midagi, mis pole minu lemmik. Esitasin CV kõikidele ametikohtadele, millele see vähemalt mingil määral vastas.


Aleksei Perevertailov: Mis programmeerija sa oled? Millised diplomid ja tunnistused teil on?

Andrei Šulinski: Olen tüüpiline üldrakenduse programmeerija/analüütik/arhitekt. Ta on lõpetanud Moskva Riikliku Ülikooli süsteemiprogrammeerimise osakonna, kuid oma elus ei kirjutanud ta ühtegi rida "süsteemi" koodi. :-) Varem kirjutasin C++ keeles, aga läksin paar aastat tagasi Javale üle. Ta töötas pikka aega pangandussektoris, siis oli paar telekommunikatsiooniprojekti. Kanadas valmistas ta esmakordselt dokumentide säilitamise ja töötlemise süsteemi kõlava nimega Arnold turundusettevõttele. Nüüd töötan ettevõttes Novator, loon "mootori" Java-versiooni veebijaemüügiga tegelevate saitide jaoks.
Mul on üks diplom. Sai 1996. aastal Moskva arvutusmatemaatika ja küberneetika teaduskonnas riigiülikool. Enne lahkumist sooritas Sun Certified Java programmeerija 1.4 eksami. Plaanisin hankida ülejäänud selle liini sertifikaadid, kuid töötan palju ja ma ei leia selleks aega.



Aleksei Perevertailov: Kas saate üldiselt öelda - millised programmeerimiskeeled ja millised programmeerijad on nüüd välismaal ja maailmas tervikuna nõudlikumad?

Andrei Šulinski V: Peamiselt .NET ja J2EE. Mida sa kuulda mõtlesid? ;) Mõnikord on vaja - ja isegi väga - kitsaid spetsialiste, kes teavad mingit "väljamõeldud" SAP-i. Kuid loomulikult on suurem osa programmeerijatest ja teistest kõrgematest arendajatest "javistid" ja "punktvõrgud". :-)


Aleksei Perevertailov: Öelge omast kogemusest – kas programmeerijate vahel on ettevõtte sees konkurents? Kas on mingeid rangeid ja kiireid reegleid? Mille eest neid vallandada saab? Kas on olemas a karjääri? Kas ületunnitöö tehakse ja kui jah, siis kuidas neid tasutakse? Töötasite Venemaal programmeerijana, saate võrrelda, seega on küsimus: milliseid erinevusi märkasite kutsenõuetes ja töövoo korralduses nii kodu- kui välismaal? Kas teil oli projektijuhiga raske ühist keelt leida?


Andrei Šulinski: Nendes ettevõtetes, kus mul oli võimalus töötada, puudus ilmselge konkurents aka "sotsiaalne konkurents". :-) Aga samas kehtib lihtne seadus: kui teed hästi tööd, siis nad märkavad ja hindavad seda. Vähemalt minuga oli nii. Ja palka tõsteti ja huvitavamat tööd usaldati.
Muidugi võivad nad vallandada. Põhimõtteliselt on see tingitud ettevõtte probleemidest (vähendamine) või selgest lahknevusest inimese võimete ja tema ametikoha vahel. Väga ebameeldiv katseaeg võib olla kasulik. Nii et ära liialda oma võimetega intervjuul liiga palju. Esineb ka vallandamise juhtumeid töötaja ebaseadusliku tegevuse tõttu.
Mis puudutab rangeid reegleid - te ei tohiks salvestada gigabaiti lastepornot töötava arvuti kõvakettale -, neid saab karistada. Kõik lepingud sisaldavad enam-vähem tüüpklausleid teabe mitteavaldamise kohta, ettevõtte intellektuaalomandi õigusi teie koodile (kahtlane vara, IMHO :-)). Sageli on keelatud liikuda samas valdkonnas tegutsevatesse ettevõtetesse, et kõrvalt lisaraha teenida. Sellise paranoia aste sõltub paljudest teguritest. Suured pangad ja muud "lahedad" ettevõtted on sunnitud allkirjastama 8-lehelisi nimekirju. Aga sama asi on ka Venemaal, aga siin, ma arvan, jälgivad nad nende tingimuste täitmist mõnevõrra rangemalt.
Kutsenõuded Torontos ja Moskvas on samad. Ma kahtlustan, et need langevad kokku Londoni ja Tokyo ettevõtete nõuetega ning on lähedased Pariisi nõudmistele. Erinevus seisneb selles, et Prantsusmaal võib vaja minna prantsuse keelt. Saab, aga ei tohiks – rääkisin värbajatega, kes värbasid inimesi Lyonis asuvasse ettevõttesse tööle. Tunnistasin ausalt, et ma ei räägi prantsuse keelt isegi sõnaraamatuga. "Ah, seal on kogu dokumendivoog inglise keeles," vastati mulle. :-)
Töövoo korraldus sõltub väga palju projekti juhtivatest inimestest. Kui nad on algusest peale hästi toime pannud ja ei lase projektil katki minna isegi siis, kui see on kõikjal, siis läheb asi üsna libedalt. Muidu - tavaline segadus. Kallid lugejad, arvatavasti juba arvasite, mis juhtub sagedamini. :-)
Projektijuhtidega pole meil kunagi probleeme olnud. Olen inimestega alati kergesti ühise keele leidnud – nii Venemaal kui ka Kanadas. Olete ilmselt märganud, kui tihti ma kordan sõnu "sama", "sama", "vahet pole". Tõepoolest, olen avastanud, et venelased ja kanadalased ei erine üksteisest nii palju, kui tavaliselt arvatakse. Muidugi on tõlkimisraskusi. Kuid nagu ühes imelises filmis, seostatakse neid enamasti inimeste individuaalsete omadustega, mitte "tsivilisatsiooniliste" erinevustega. Nii sain selle IMHO. :-)


Aleksei Perevertailov: Kas Kanada programmeerijad on teistega võrreldes kõrgelt tasustatud elukutse? Kui võrrelda seda suhet Venemaaga, siis kus on parem programmeerijana töötada (rahalise kasu mõttes)?

Andrei Šulinski: Jah, palgad on ikka üle keskmise. Konkurents on tihenenud, kuid palk on endiselt hea. See on siiski vaid subjektiivne arvamus ja olen Kanadas olnud vähem kui kaks aastat. :-)


Aleksei Perevertailov: Mida arvate, kus on lihtsam oma professionaalset taset tõsta – kodumaal või välismaal? Kas see üldiselt oleneb kuidagi riigist (või pigem konkreetsest inimesest)?

Andrei Šulinski: Minu arvamus - ennekõike inimese poolt. Kes otsib, see leiab alati kasulikke raamatuid, ajakirjad, foorumid ja muidugi need, kellega saate edasi suhelda professionaalsed teemad. Muidugi eeldan, et töötate riigis, kus IT-tööstus on hästi arenenud.


Aleksei Perevertailov: Milliseid tööriistu kasutate (arenduskeskkonnad jne)? Eeldan, et Kanadas on kogu tarkvara, mida tarkvaraarendusfirmad kasutavad, litsentsitud või mitte?

Andrei Šulinski: Ütleme nii – enamus programme on kas ostetud või tasuta saadud. :-) Vahel pannakse ka midagi illegaalselt hangitud, aga seda tehakse lihtsalt tutvuse pärast - kui käepärast pole prooviversioon. Ettevõtted kas keelavad piraattarkvara kasutamise üldiselt või sunnivad sind allkirjastama dokumendi, mille kohaselt vastutad kõvaketta sisu eest ise.
Kasutatakse mitmesuguseid rakendusi. IDE: Eclipse, IDEA, NetBeans. Andmebaasi tööriistad: DbVisualizer, Aqua Data Studio. Kood ja dokumendid salvestatakse CVS-is. Alates ostetud WebSphere'iga. Kõik tuttavad näod, eks? :-) Ja muidugi .NET – lahendusi leidub igaks juhuks.


Aleksei Perevertailov: Kas mäletate mõnda naljakat või naljakat juhtumit tööl?

Andrei Šulinski: Palun. Ülemus küsis just ühelt oma kolleegilt, kas too on juba pikka aega koodi uuendanud. "Oh ... kolm päeva tagasi ..." - ähvardav pilk - "mmm ... võib-olla kaks" - ähvardav pilk - vaikus - ma viipasin: "üks, muidu tehing ebaõnnestub" - olukord halveneb. :-)


Aleksei Perevertailov: Tahaksin esitada teile mõned üldised küsimused, kui te ei pahanda... Kas teie arvates on reaalne korraldada oma äri välismaal? Programmeerija puhul - luua oma kommertstarkvaratoode ja seda müüa, arendada, toetada? Mida on teie arvates selleks vaja?

Andrei Šulinski: Minu arvamus – jah, see on tõsi. Siin ei saa ettevõtja karta bandiitide ja võimude väljapressimist, oma ettevõtte registreerimine ja ajamine on üsna lihtne. Kuid loomulikult ei tööta miski ilma igasuguse edu kahe peamise komponendita – hea idee ja valmisoleku pühendada kogu aeg ja jõud selle elluviimisele. "Ideoloogilisel töönarkomaanil" on võimalus. Näiteks minu praeguse ettevõtte president, kes kirjutas oma maja keldrisse süsteemi esimese versiooni. :-) Nüüd läheb "Innovaatoril" hästi.


Aleksei Perevertailov: Kuidas suhtute avatud lähtekoodiga kogukonda?

Andrei Šulinski: Muidugi positiivne. Pean selle kogukonna tööd suureks õnnistuseks edusammudele üldiselt ja eelkõige Java tehnoloogiate edu peamiseks põhjuseks – millest on selgelt kasu ka tööstusele. Vaevalt, et muidu õnnestuks kuulsa koletisega edukalt võistelda. :-) Muidugi on avatud lähtekoodiga toodete kasutamisel teatud risk. Samas on paljud neist lahendustest suurepärase mainega, turul olnud juba aastaid – ja nende "sisemust" pole vaja põhjalikult tunda. Ühiskond aitab lahendada peaaegu kõiki probleeme, mida ei suuda kaugeltki teha ükski kaubanduslik tugiteenus.


Aleksei Perevertailov: Kuidas suhtute patendiõigusesse valdkonnas tarkvara? Kas see pärsib progressi? Millised on teie arvates parimad mehhanismid tarkvarauuenduste kaitsmiseks?

Andrei Šulinski: Kahjuks ei ole ma valmis sellele küsimusele vastama. See on üsna tõsine teema, mille materjali ma piisavalt hästi ei tunne.


Aleksei Perevertailov: Oma töös peate tegelema haavatavuste otsimisega loodud toode? Nüüd pööratakse palju tähelepanu turvalise koodi kirjutamisele, mistõttu on väiksem tõenäosus erinevate puhvri ületäitumiste jms ärakasutamiseks. Kas jälgite oma töös koodi võimalikku ohutust? Kas teil on selles küsimuses juhiseid?

Andrei Šulinski: Testimine, ainult testimine – ja veel kord testimine! Pean ühikutestimist koodi ohutuse tagamise võtmevahendiks. Reeglina püüavad kõik tarkvaraarendusettevõtted luua ja säilitada testide komplekti. Kahjuks on see harva võimalik – seda eelkõige tänu projektide üleandmise tähtaegadele. Kuid pädeva testimise pikaajalist mõju on raske üle hinnata. Selle tulemusena ja teatud kuupäevaks ei ole Galatea mingil juhul skulptorite käest ära ja rakenduse arendamine mõnevõrra stabiilseks olekuks viibib pikka aega, tekitades stressi kogu meeskonnale.
Väga oluline on ka kodeerimise distsipliin ja hea arhitektuuri ülesehitamine. Isiklikult õppisin palju Martin Fowleri (Martin Fowler) ja Rod Johnsoni (Rod Johnson) raamatutest.


Aleksei Perevertailov: Ja lõpetuseks selline küsimus - kui oleks hüpoteetiline võimalus alustada kõike algusest - kas sinust saaks ikkagi programmeerija?

Andrei Šulinski: Jah. Just eriala aitas mul peaaegu valutult teise riiki kolida, saada üle tavapärasest väljarändajate psühholoogilisest ja materiaalsed probleemid. Minu kvalifikatsioon ja professionaalsus on nõutud, kolleegid kuulavad mu arvamust, kuulun siia, vähemalt tean praegu inglise keel hullem kui Java. :-) Pealegi, ma armastan oma tööd väga. Kõik, kes on programmeerimisega tegelenud, mäletavad ilmselt hetki, mil see - programm - hakkab töötama nii, nagu te kavatsesite. Olen nendel hetkedel ikka tõeliselt õnnelik.
Ja edasi. Olen väga tänulik oma vanematele nende suure abi eest valikul professionaalne tee ja selle peal seistes. Kõigil ei õnnestu _svoe_ äri leida. Ilma nende osaluseta poleks see minu jaoks võimalik olnud.
P.S. Muidugi aitas kaasa ka see, et olin nii tark ja nägus. :-)


Aleksei Perevertailov: Täname vastuste eest, soovime teile edu professionaalses tegevuses!

Andrei Šulinski: Aitäh, edu teile isiklikult ja F-keskusele üldiselt. :-)
Laadimine...