Melding til den fremtidige programmereren

Så du bestemte deg for å bli programmerer.

Kanskje du er interessert i å skape noe nytt.

Kanskje høye lønninger lokker deg.

Kanskje du bare vil endre aktivitetsfeltet ditt.

Ikke poenget.

Det som betyr noe er at du bestemmer bli programmerer.

Hva skal jeg gjøre nå?

Melding til den fremtidige programmereren

Og det er flere tilnærminger.

Første: gå på universitetet for en IT-spesialist og motta spesialisert utdanning. Den mest banale, relativt pålitelige, ekstremt lange, mest grunnleggende metoden. Det fungerer hvis du fortsatt fullfører skolen, eller du har midler til å forsørge deg selv fra halvannen (i beste fall hvis du rekker alt i farten og kan begynne å jobbe på 2. året) til fire (hvis du kombinerer arbeid og studier er ikke din sterke side ) år.

Hva er viktig å vite her?

  • Det er nødvendig å velge riktig universitet. Se treningsprogrammer, karakterer. En god indikator er konkurranser fra universitetet. Hvis universitetslag i det minste med jevne mellomrom tar plass blant de ti beste på relativt store programmerings-olympiader, vil ikke koding ved universitetet være et rudiment (til tross for at du personlig kanskje ikke er interessert i olympiader i det hele tatt). Vel, generelt hersker sunn fornuft: det er usannsynlig at Bratsk-grenen til Baikal State University vil gjøre deg til en kraftig full stack.
    Eksempler på gode universiteter: Moscow State University/St. Petersburg State University (selvsagt), Baumanka (Moskva), ITMO (St. Petersburg), NSU (Novosibirsk). Til tross for all deres eminens, er det fullt mulig å komme inn i dem på et budsjett, hvis du ikke sikter mot toppavdelinger.
  • Ikke bare et universitet. Til tross for at du vil bli grundig trent i alle mulige ting, er ikke dette nok. På grunn av byråkrati vil opplæringsprogrammet nesten alltid ligge bak moderne trender. I beste fall - for et år eller to. I verste fall - i 5-10 år. Du må gjøre opp forskjellen selv. Vel, det åpenbare: Hvis du studerer materialet sammen med andre studenter, vil hver av dem være din likeverdige konkurrent. Hvis du eventuelt kommer ut foran, vil du se mye bedre ut på markedet.
  • Se etter jobb så tidlig som mulig. Jeg begynte å jobbe i mitt andre år. Ved slutten av universitetet var jeg allerede en ganske middels utvikler, og ikke en beskjeden junior uten erfaring. Jeg tror det er åpenbart at etter endt utdanning er det hyggeligere å tjene 100k enn å tjene 30k. Hvordan oppnå dette? For det første, se punkt A og B. For det andre, gå på møter, festivaler, konferanser, jobbmesser. Overvåk markedet og prøv å få jobb som deltids junior/trainee i hvilken som helst bedrift du i det minste er tilnærmet egnet for. Ikke vær redd for betalte konferanser: de tilbyr ofte veldig gode rabatter for studenter.

Hvis du følger alle disse punktene, kan du innen du mottar vitnemålet ditt bli en ekstremt god spesialist med arbeidserfaring og et vell av grunnleggende kunnskap, som selvlærte ofte forsømmer på grunn av deres ubrukte natur. Vel, skorpen kan hjelpe hvis du skal til utlandet: de ser på dette ganske ofte der.

Hvis du ikke overholder... Vel, du kan få en poengsum ved å følge strømmen, kopiere og forberede deg til eksamen over natten. Men hvor konkurransedyktig tror du at du blir da? Selvfølgelig sier jeg ikke at du trenger å få A i alt. Du trenger bare å få kunnskap. Bruk sunn fornuft. Studer det som er interessant og nyttig, og bry deg ikke om karakterer.

Melding til den fremtidige programmereren

Det viktigste er ikke hva de prøver å presse inn i deg. Det viktigste er hva som er interessant og relevant

-

videre, andre vei: programmeringskurs. Internett vrimler absolutt av tilbud for å gjøre deg til junior på bare 3 måneder med undervisning. Bare med en portefølje, og de vil til og med hjelpe deg med å finne en jobb. Bare 10k i måneden, ja.
Kanskje dette vil fungere for noen, men rent IMHO: dette er fullstendig tull. Ikke kast bort tid og penger. Og det er derfor:

En person som er langt fra IT vil ikke være i stand til å forstå spesifikasjonene til yrket på 3 måneder. Ingen måte i det hele tatt. Det er for mye informasjon å absorbere, for mye å forstå, og dessuten for mye å venne seg til.

Så hva vil de selge deg? De vil selge deg en "mekanisk ferdighet". Uten å fordype seg mye i detaljene, vil de vise deg hva du trenger å skrive for å få akkurat dette resultatet. Med detaljerte instruksjoner og hjelp fra en lærer vil du skrive en slags søknad. En, maks to. Her er porteføljen. Og hjelp til å finne jobb er å sende ledige stillinger til juniorer fra store bedrifter der du neppe kommer til intervju.

Hvorfor er det slik? Det er enkelt: det er veldig viktig for en programmerer å tenke abstrakt. En programmerer løser problemer som kan løses på en milliard mulige måter. Og hovedoppgaven er å velge en, den mest korrekte, av milliarder, og implementere den. Å lage ett eller to prosjekter i henhold til instruksjoner vil gi deg litt kunnskap om et programmeringsspråk, men vil ikke lære deg hvordan du løser abstrakte problemer. For å trekke en analogi: forestill deg at de lover å lære deg orientering, ta deg med på et par enkle vandreruter og si at du er klar til å erobre taigaen om vinteren alene. Vel, hva, du ble lært opp til å bruke et kompass og tenne bål uten fyrstikker.

For å oppsummere: ikke tro på de som lover å "rulle" deg på kort tid. Hvis dette var mulig, ville alle blitt programmerere for lenge siden.

Melding til den fremtidige programmereren

Venstre: Hva du skal læres. Høyre: Hva vil kreves av deg på jobben?

-

Tredje vei - veien valgt av flertallet. Selvopplæring.

Den vanskeligste, men kanskje den mest edle måten. La oss se på det mer detaljert.

Så du bestemte deg for å bli programmerer. Hvor skal jeg starte?

Først av alt må du svare deg selv på spørsmålet: hvorfor vil du ha dette? Hvis svaret er "vel, selvfølgelig, det er ikke spesielt interessant, men de betaler mye", så kan du stoppe der. Dette er ikke stedet for deg. Selv om viljestyrken din er nok til å sile gjennom en haug med informasjon, skrive tusenvis av linjer med kode, tåle hundrevis av feil, og fortsatt få en jobb, som et resultat, uten kjærlighet til yrket, vil dette bare føre til følelsesmessig utbrenthet. Programmering krever en enorm mengde intellektuell innsats, og hvis denne innsatsen ikke er drevet av en følelsesmessig avkastning i form av tilfredsstillelse for et løst problem, vil hjernen før eller siden bli gal og frarøve deg muligheten til å løse noe i det hele tatt . Ikke det mest hyggelige scenarioet.

Hvis du er sikker på at du er interessert i dette, kan du bestemme deg for detaljene - akkurat hva du vil gjøre. Hvis du ikke vet hvordan programmerere kan skille seg fra hverandre, kan Google hjelpe deg.

Jeg vil skrive det første rådet med en gang, så du ikke glemmer: lær engelsk. Engelsk er nødvendig. Du kan ikke dra noe sted uten engelsk. Aldri. Uten engelsk kan du ikke bli en vanlig programmerer. Det er det.

Deretter er det tilrådelig å lage et veikart: en plan som du vil utvikle deg i henhold til. Studer detaljene, se på ledige stillinger i spesialiteten din, finn ut overfladisk hva slags teknologier som brukes der.

Et eksempel på veikart for en backend-programmerer (ikke for alle, selvfølgelig, dette er bare ett av de mulige alternativene):

  1. Grunnleggende om html/css.
  2. Python. Grunnleggende.
  3. Nettverksprogrammering. Interaksjon mellom python og web.
  4. Rammer for utvikling. Django, kolbe. (bemerkning: bare for å forstå hva slags "django" og "flaske" det er, må du se på de ledige stillingene og lese hva som kreves der)
  5. Dybdestudie av python.
  6. js grunnleggende.

Den veldig, Jeg gjentar, veldig en grov plan, som hvert av punktene er enorme i seg selv, og mange emner er ikke inkludert (for eksempel kodetesting). Men dette er i det minste en slags systematisering av kunnskap som vil tillate deg å ikke bli forvirret om hva du vet og hva du ikke vet. Etter hvert som vi studerer vil det bli tydeligere hva som mangler, og dette veikartet vil bli supplert.

Neste: finn materialene du skal bruke til å studere. Hoved mulige alternativer:

  • Nettkurs. Ikke de kursene som "juni om 3 dager", men de som lærer en bestemt ting. Ofte er disse kursene gratis. Eksempler på nettsteder med vanlige kurs: stepik, Coursera.
  • Lærebøker på nett. Det er gratis, shareware, betalt. Du finner selv ut hvor du skal betale og hvor du ikke skal. Eksempler: htmlakademi, learn.javascript.ru, django bok.
  • Bøker. Det er mange, mange av dem. Hvis du ikke kan velge, tre råd: prøv å ta nye bøker, fordi... informasjon blir utdatert veldig raskt; O'Reilly forlag har et ganske høyt kvalitetsnivå og normal presentasjon; Hvis mulig, les på engelsk.
  • Møter/konferanser/forelesninger. Ikke så nyttig med tanke på informasjonsrikdom, men ekstremt nyttig med tanke på muligheten til å kommunisere med kolleger, stille relevante spørsmål og stifte nye bekjentskaper. Kanskje til og med finne en ledig stilling.
  • Google. Mange undervurderer, men evnen til å enkelt finne svar på noen spørsmål er veldig viktig. Google gjerne ting du ikke forstår. Selv erfarne seniorer gjør dette. Evnen til raskt å finne informasjon om noe er i hovedsak det samme som å vite det.

Ok, vi har bestemt oss for informasjonskildene. Hvordan jobbe med dem?

  1. Les/lytt nøye. Ikke les når du er sliten. Dykk ned i meningen, ikke hopp over punktene som virker åpenbare. Ofte skjer overgangen fra det åpenbare til det uforståelige ganske raskt. Gå gjerne tilbake og les på nytt.
  2. Ta notater. For det første vil det være lettere for deg å forstå notatene dine når det er mye informasjon. For det andre blir informasjonen på denne måten bedre absorbert.
  3. Gjør alle oppgavene som kilden foreslår deg. Selv om nei, ikke sånn. Gjøre ALLE oppgaver som kilden tilbyr deg. Selv de som virker enkle. Spesielt de som virker for kompliserte. Hvis du står fast, be om hjelp stabeloverflyt, i hvert fall gjennom Google translate. Oppgavene er skrevet av en grunn, de er nødvendige for riktig assimilering av stoffet.
  4. Kom på oppgaver selv og gjør dem også. Ideelt sett burde det være mer praksis enn teori. Jo tettere du sikrer materialet, jo mer sannsynlig er det at du ikke glemmer det om en måned.
  5. Valgfritt: lag quizer for deg selv mens du leser. Skriv ned vanskelige spørsmål i en egen kilde, og etter en uke eller måned, les og prøv å svare. Hvis det ikke fungerer, prøv igjen.

Og vi gjentar disse 5 punktene for hver teknologi som studeres. Bare på denne måten (med et grundig studium av teori og en tett dekning av praksis) vil du utvikle en kunnskapsbase av høy kvalitet som du kan bli profesjonell med.

Og det ser ut til at alt er enkelt: vi lærer teknologier én etter én, forstår Zen og går på jobb. Sånn er det, men det er det ikke.

De fleste som lærer programmering går omtrent slik:

Melding til den fremtidige programmereren

bildet er ærlig talt stjålet derav

Og her må du se på hvert av trinnene mer detaljert:

start: Du har null kunnskap. Avreisested. Ingenting er klart ennå, men det er nok ekstremt interessant. Stien begynner oppover, men lett. Veldig snart vil du klatre

Toppen av dårskap: «Hurra, du har fullført de første par kursene dine! Alt ordner seg!" På dette stadiet blender euforien fra de første suksessene øynene. Det ser ut til at suksessen allerede er nær, til tross for at du fortsatt er i begynnelsen av reisen. Og mens du streber etter denne suksessen, legger du kanskje ikke merke til hvordan ditt raske fall i gropen vil begynne. Og navnet på denne gropen:

Fortvilelsens dal: Så du har fullført grunnkursene, lest noen bøker og bestemmer deg for å begynne å skrive noe eget. Og plutselig fungerer ikke. Det ser ut til at alt er kjent, men hvordan man kombinerer det slik at det fungerer er ikke klart. "Jeg vet ingenting", "Jeg vil ikke lykkes". På dette stadiet gir mange mennesker opp. Faktisk eksisterer kunnskap virkelig, og den har ikke forduftet noe sted. Klare krav og støtte forsvant rett og slett. Den virkelige programmeringen begynte. Når du må manøvrere i et rom der det er et mål, men det ikke er noen mellomstadier, faller mange i stupor. Men i virkeligheten er dette bare enda et læringsstadium - selv om de første ti gangene blir alt på en eller annen måte, med enorm innsats, stygt. Det viktigste er å fullføre saken om og om igjen, i det minste på en eller annen måte. Den ellevte gangen blir ting lettere. På den femtiende vil en løsning dukke opp som vil virke vakker for deg. På hundredelen blir det ikke skummelt lenger. Og så kommer det

Helling of Enlightenment: På dette stadiet kommer grensene for din kunnskap og din uvitenhet tydelig frem. Uvitenhet er ikke lenger skremmende; det er en forståelse av hvordan man kan overvinne det. Det vil bli lettere å manøvrere i verdensrommet uten beslutninger. Dette er allerede målstreken. Allerede når du innser hva du mangler som spesialist, vil du fullføre og konsolidere det som er nødvendig og gå inn på feltet med en rolig sjel.

Stabilitetsplatå: Gratulerer. Dette er målstreken. Du er en ekspert. Du kan jobbe, du vil ikke gå deg vill når du står overfor ukjent teknologi. Nesten alle problemer kan overvinnes hvis du anstrenger deg nok. Og til tross for at dette er målstreken, er det bare begynnelsen på en enda større reise.

Programmererens vei.

Lykke til med dette!

Litteratur for valgfri lesning:
Om å bli programmerer og Dunning-Kruger-effekten: stikke.
Hardcore måte å bli programmerer på på 9 måneder (ikke egnet for alle): stikke.
Liste over prosjekter som du kan gjennomføre selvstendig i løpet av studiene: stikke.
Bare litt ekstra motivasjon: stikke.

Kilde: www.habr.com

Legg til en kommentar