Sporočilo bodočemu programerju

Torej ste se odločili postati programer.

Morda vas zanima ustvarjanje nečesa novega.

Morda vas pritegnejo visoke plače.

Morda želite samo spremeniti poklic.

Ni bistvo.

Pomembno - vi se odločite postati programer.

Kaj storiti zdaj?

Sporočilo bodočemu programerju

In tukaj obstaja več pristopov.

Prvič: iti na univerzo na IT specialnost in pridobite specializirano izobrazbo. Najbolj banalen, relativno zanesljiv, izjemno dolg, najbolj temeljen način. Deluje, če še končuješ šolo ali pa imaš sredstva, da si zagotoviš od ene in pol (v najboljšem primeru, če vse dojemaš sproti in lahko začneš delati v 2. letniku) do štirih (če kombiniraš delo s študijem ni vaša močna stran ) let.

Kaj je tukaj pomembno vedeti?

  • Izbrati morate pravo univerzo. Glej učne načrte, ocene. Dober pokazatelj so olimpijade z univerze. Če se ekipe univerze vsaj občasno uvrščajo med prvih deset na razmeroma velikih programskih olimpijadah, potem kodiranje na univerzi ne bo rudiment (kljub dejstvu, da vas osebno olimpijade morda sploh ne zanimajo). No, na splošno zdrava pamet pravi: malo verjetno je, da bo podružnica Baikalske državne univerze Bratsk iz vas naredila močan polni kup.
    Primeri dobrih univerz: Moskovska državna univerza / Državna univerza v Sankt Peterburgu (očitno), Baumanka (Moskva), ITMO (Sankt Peterburg), NSU (Novosibirsk). Kljub vsej njihovi eminentnosti je povsem mogoče priti vanje na proračun, če ne ciljate na vrhunske oddelke.
  • Niti ena univerza. Kljub temu, da vas bodo vsestransko naučili najrazličnejših stvari, to ni dovolj. Zaradi birokracije bo učni načrt skoraj vedno zaostajal za sodobnimi trendi. V najboljšem primeru za leto ali dve. V najslabšem primeru 5-10 let. Razliko boste morali nadomestiti sami. No, očitno: če učite snov enakovredno z drugimi študenti, potem bo vsak od njih vaš enakovredni tekmec. Če se po želji oglasite, boste na trgu videti veliko bolje.
  • Poiščite službo čim prej. Delati sem začela v drugem letniku. Ob koncu univerze sem bil že precej srednji razvijalec in ne skromen junior brez izkušenj. Mislim, da je očitno, da je po diplomi zaslužiti 100k bolj prijetno kot 30k. Kako to doseči? Prvič, glejte točki A in B. Drugič, pojdite na srečanja, festivale, konference, zaposlitvene sejme. Spremljaj trg in poskusi pridobiti honorarnega juniorja/pripravnika v katerem koli podjetju, kjer vsaj približno ustrezaš. Ne bojte se plačanih konferenc: študentom pogosto dajejo zelo lepe popuste.

Če upoštevate vse te točke, lahko do trenutka, ko prejmete diplomo, postanete izjemno dober strokovnjak z delovnimi izkušnjami in zalogo temeljnega znanja, ki ga samouki pogosto dosežejo zaradi svoje neuporabnosti. No, skorja lahko pomaga, če greš v tujino: tam jo kar pogosto pogledajo.

Če ne izpolnjujete ... No, lahko dobite skorjo in se prepustite toku, goljufanju in pripravah na izpit čez noč. Kaj pa mislite, kako konkurenčni boste potem? Seveda ne pravim, da je treba vse zapreti s peticami. Potrebno je le pridobiti znanje. Uporabite zdrav razum. Učite se, kar je zanimivo in uporabno, in ne skrbite za ocene.

Sporočilo bodočemu programerju

Glavna stvar ni tisto, kar vam poskušajo vtakniti. Glavna stvar je, kaj je zanimivo in relevantno

-

Poleg tega drugi način: tečaji programiranja. Internet je poln ponudb, ki vam bodo v samo 3 mesecih pouka naredile mladinca. Prav tukaj z portfeljem in celo pomagali vam bodo najti službo. Za samo 10k na mesec, ja.
Morda komu deluje, ampak čisto IMHO: to je popolna smeti. Ne izgubljajte časa in denarja. In zato:

Oseba, ki je daleč od IT, v 3 mesecih ne bo mogla vstopiti v posebnosti poklica. To sploh ne. Preveč informacij je, da bi se jih naučili, preveč da bi jih razumeli in več kot to – da bi si napolnili dlan.

Kaj vam bodo potem prodali? Prodali vam bodo "mehansko spretnost". Brez posebnega poglabljanja v podrobnosti vam bodo pokazali, kaj morate napisati, da boste dobili točno tak rezultat. S podrobnimi navodili in pomočjo učitelja boste napisali nekakšno prošnjo. Eno, največ dve. Tukaj je portfelj. In pomoč pri iskanju zaposlitve je pošiljanje prostih delovnih mest za mlade iz velikih podjetij, v katerih je malo verjetno, da boste opravili razgovor.

Zakaj tako? Preprosto: za programerja je zelo pomembno, da razmišlja abstraktno. Programer rešuje probleme, ki jih je mogoče rešiti na milijardo možnih načinov. In glavna naloga je med milijardami izbrati enega, najbolj pravilnega, in ga izvesti. Ustvarjanje enega ali dveh projektov v skladu z navodili vam bo dalo nekaj znanja o programskem jeziku, vendar vas ne bo naučilo reševanja abstraktnih problemov. Naredite primerjavo: predstavljajte si, da vam obljubijo, da vas bodo naučili orientacije, vas popeljali po nekaj preprostih turističnih poteh, nato pa vam povedali, da ste pripravljeni pozimi sami premagati tajgo. No, kaj, naučili so te uporabljati kompas in zanetiti ogenj brez vžigalic.

Če povzamemo: ne verjemite tistim, ki vam obljubljajo, da vas bodo v kratkem "zrolali". Če bi bilo mogoče, bi že vsi postali programerji.

Sporočilo bodočemu programerju

Levo: kaj vas bodo naučili. Prav: kaj se bo od vas zahtevalo v službi

-

Tretja pot pot, ki jo je izbrala večina. Samoizobraževanje.

Najtežji, a morda najbolj plemenit način. Oglejmo si podrobneje.

Torej ste se odločili postati programer. Kje začeti?

Najprej si morate odgovoriti na vprašanje: zakaj si to želite? Če je odgovor "No, zagotovo ni zelo zanimivo, vendar plačajo veliko", potem se lahko tam ustavite. Ni te tukaj. Tudi če je vaša moč volje dovolj, da prebrskate kup informacij, napišete na tisoče vrstic kode, preživite na stotine neuspehov in kljub temu dobite službo, bo to brez ljubezni do poklica povzročilo samo čustveno izgorelost. Programiranje zahteva ogromno intelektualnega napora in če ti napori niso podprti s čustvenim povračilom v obliki zadovoljstva za rešeno nalogo, bodo možgani prej ali slej ponoreli in vas prikrajšali za to, da bi karkoli rešili. Ni najbolj prijeten scenarij.

Če ste prepričani, da vas zanima, potem se lahko odločite za posebnosti - kaj točno želite početi. Če ne veste, v čem se lahko programerji med seboj razlikujejo, vam bo Google pomagal.

Takoj bom napisal prvi nasvet, da ne pozabim: učite se angleščine. Angleščina je potrebna. Nikjer nobene angleščine. Ni šans. Brez angleščine ne moreš postati normalen programer. To je vse.

Nato je zaželeno sestaviti načrt: načrt, po katerem se boste razvijali. Preučite posebnosti, poglejte prosta delovna mesta v vaši specialnosti, površno ugotovite, kakšne tehnologije se tam uporabljajo.

Primer načrta za backend programerja (seveda ne za kogarkoli, to je le ena od možnih možnosti):

  1. Osnove html/css.
  2. Python. Osnove.
  3. Mrežno programiranje. Interakcija med pythonom in spletom.
  4. Okviri za razvoj. Django, Flask. (opomba: samo da bi razumeli, kakšen "django" in "flask" potrebujete, si oglejte prosta delovna mesta in preberite, kaj se tam zahteva)
  5. Python za globoko učenje.
  6. js osnove.

To zelo, Ponavljam, zelo približen načrt, katerega vsaka točka je ogromna sama po sebi in številne teme niso vključene (na primer testiranje kode). Toda to je vsaj nekakšna sistematizacija znanja, ki vam bo omogočila, da se ne boste zmedli glede tega, kaj veste in česa ne. V procesu študija bo postalo bolj jasno, kaj manjka, in ta načrt se bo dopolnil.

Naprej: poiščite materiale, iz katerih se boste učili. Glavne možnosti so:

  • Spletni tečaji. Ne tistih tečajev, ki so "junij v 3 dneh", ampak ki učijo eno točno določeno stvar. Pogosto so ti tečaji brezplačni. Primeri spletnih mest z običajnimi tečaji: stepik, coursera.
  • Spletne vadnice. Obstajajo brezplačni, shareware, plačani. Kje plačati in kje ne, boste ugotovili sami. Primeri: htmlacademy, learn.javascript.ru, django knjiga.
  • knjige. Veliko, veliko jih je. Če ne morete izbirati, trije nasveti: poskušajte vzeti nove knjige, saj. informacije zelo hitro zastarajo; založba O'Reilly ima dokaj visoko kakovost in normalno prezentacijo; če je mogoče, preberite v angleščini.
  • Srečanja/konference/predavanja. Ne tako uporabno v smislu bogatosti informacij, a izjemno uporabno v smislu možnosti komuniciranja s kolegi v delavnici, postavljanja ustreznih vprašanj in sklepanja poznanstev. Morda celo najti službo.
  • Google. Mnogi podcenjujejo, vendar je sposobnost preprostega iskanja odgovorov na nekatera vprašanja zelo pomembna. Pogumno poguglajte stvari, ki jih ne razumete. Tudi izkušeni starejši delajo to. Sposobnost hitrega iskanja informacij o nečem je pravzaprav enakovredna dejstvu, da to poznate.

V redu, glede virov informacij smo se odločili. Kako delati z njimi?

  1. Pozorno preberi/poslušaj. Ne berite, ko ste utrujeni. Poglobite se v pomen, ne preskočite trenutkov, ki se zdijo očitni. Pogosto se prehod iz očitnega v nerazumljivo zgodi precej hitro. Lahko se vrnete in ponovno preberete.
  2. Pregled informacij. Prvič, lažje boste razumeli svoje zapiske, ko je veliko informacij. Drugič, na ta način se informacije bolje absorbirajo.
  3. Opravite vse naloge, ki vam jih ponuja vir. Čeprav ne, ni. naredi VSE naloge, ki vam jih ponuja vir. Tudi tiste, ki se zdijo preproste. Še posebej tiste, ki se zdijo preveč zapletene. Če se vam zatakne, prosite za pomoč preobremenitev, čeprav prek google translate. Naloge so napisane z razlogom, potrebne so za pravilno asimilacijo snovi.
  4. Naloge si izmislite sami in jih tudi opravite. V idealnem primeru bi morala biti praksa več kot teorija. Bolj kot tesno pritrdite material, večja je verjetnost, da ga čez mesec dni ne boste pozabili.
  5. Izbirno: med branjem sestavljajte kvize. Zapletena vprašanja napišite v ločenem viru in po enem tednu ali mesecu preberite in poskusite odgovoriti. Če ne deluje, poskusite znova.

In teh 5 točk se ponovi za vsako tehnologijo, ki se preučuje. Le tako (s poglobljenim študijem teorije in gosto pokritostjo s prakso) si boste ustvarili kakovostno bazo znanja, s katero boste postali profesionalec.

In zdi se, da je vse preprosto: eno za drugo se učimo tehnologij, razumemo zen, gremo na delo. Tako je, vendar ne tako.

Večina ljudi, ki se nauči programirati, to počne takole:

Sporočilo bodočemu programerju

slika je pošteno ukradena zato

In tukaj se morate podrobneje posvetiti vsakemu od korakov:

Старт: nimaš nič znanja. Izhodišče. Zaenkrat nič jasno, a verjetno izjemno zanimivo. Pot se začne navkreber, vendar rahlo. Kmalu boste plezali

Vrhunec neumnosti: »Hura, končali ste prvih nekaj tečajev! Vse se izide!” V tej fazi evforija ob prvem uspehu zasenči oči. Zdi se, da je uspeh že blizu, kljub temu, da ste še vedno na začetku poti. In če si prizadevamo za ta uspeh, morda ne opazimo, kako se začne hiter padec v jamo. In ime te luknje:

Dolina obupa: Torej ste opravili osnovne tečaje, prebrali nekaj knjig in se odločili, da začnete pisati nekaj svojega. In nenadoma ne deluje. Zdi se, da je vse znano, a kako združiti, da bo delovalo, ni jasno. "Nič nevem", "Ne zmorem". V tej fazi mnogi obupajo. Pravzaprav znanje res obstaja in ni nikamor izhlapelo. Jasne zahteve in podpora so preprosto izginile. Začelo se je pravo programiranje. Ko je treba manevrirati v prostoru, kjer je cilj, ni pa vmesnih stopenj, mnogi padejo v stupor. A v resnici je to le še ena stopnja učenja - naj se vse izide nekako, z velikim trudom, prvih desetkrat grdo. Glavna stvar je, da zadevo vedno znova pripeljete do konca, vsaj nekako. Enajstič bo šlo vse lažje. V petdesetem se bo pojavila rešitev, ki se vam bo zdela lepa. V stoti ne bo strašno. In potem bo prišlo

Slope of Enlightenment: Na tej stopnji se jasno pokažejo meje posameznikovega znanja in neznanja. Nevednost ni več strašljiva, obstaja razumevanje, kako jo preseči. Manevriranje v prostoru brez rešitev bo postalo lažje. Je že ciljna črta. Že ko se zavedate, kaj vam kot strokovnjaku manjka, boste dokončali študij in utrdili potrebno ter mirne duše vstopili v

Plato stabilnosti: Čestitam. To je ciljna črta. Ste specialist. Lahko delate, ne boste se izgubili, ko se soočite z neznano tehnologijo. Skoraj vsako težavo je mogoče premagati z dovolj truda. In kljub temu, da je to konec, je to šele začetek še večje poti.

Poti programerja.

Vso srečo pri tem!

Literatura za neobvezno branje:
O tem, kako postati programer in Dunning-Krugerjev učinek: tyk.
Trd način, da postanete programer v 9 mesecih (ni primeren za vsakogar): tyk.
Seznam projektov, ki jih je mogoče samostojno izvajati med usposabljanjem: tyk.
Samo malo dodatne motivacije: tyk.

Vir: www.habr.com

Dodaj komentar