Hva er noen av de beste måtene å lære programmering på?

Beste svaret

Mange spør meg, hvordan å lære programmering fra bunnen av. Fra dette svaret vil du lære hvordan du gjør det. Jeg programmerer i 20 år. Jeg deler mine erfaringer og av mennesker som jeg har hjulpet i denne karriereveien.

Svaret ble opprinnelig skrevet på bloggen min og mottok 30 000 visninger og 1 000 stemmer på Wykop – polsk reddit-lignende side. Kos deg!

Mange spør meg om hvordan jeg kan lære programmering fra bunnen av. Hver dag leser jeg kommentarer av slike slag. For eksempel jobber noen i et annet område, og vil bli programvaretester. Eller han / hun jobber innen IT, men ønsker å hoppe på et nytt nivå og begynne å programmere. Alle disse menneskene har en ting til felles. De ønsker å starte programmeringsreisen. Men dette området er så bredt at de ikke vet hvordan de skal begynne. Og alle forteller andre ting om hvordan du gjør det.

Fra dette svaret lærer du hvordan du begynner å programmere fra bunnen av. Du vil også motta noen råd som vil hjelpe deg i fremdriften. La oss begynne:

For å lære å kode må du følge disse trinnene:

1. Se deg rundt

For tiden er programmering et veldig bredt område. Så det er bra å se deg rundt og se i hvilke retninger du kan gå. For hvis du vet mulige måter, kan du velge den rette for deg. Det hjelper også å velge teknologier du bør lære deg.

For det første kan jeg fortelle om nettstedsprogrammerere . Dette er mennesker som bruker for eksempel WordPress eller annet innholdsstyringssystem (CMS), og ved hjelp av sine ferdigheter justerer de nettstedet slik at det fungerer slik klienten forventer det. For å gjøre det, må slike mennesker mest kjenne JavaScript, HTML og CSS.

Nettstedutvikler – dette er antagelig den mest populære tolkningen av en “programmerer” i verden.

Men programmering handler ikke bare om WordPress-nettsteder. Det er mye mye mer. Programmering er delt inn i flere realer. Først vil jeg gi deg tre eksempler på frontend-riker. Frontend programmering er programmering av noe som brukeren / klienten ser. Et grensesnitt. Med korte ord:

Webapp-programmering – bygge forretningsprogrammer på nettet (for eksempel bankappen din, eller filmsammenligningsappen). Dette er spesifikke applikasjoner som fyller behovene til en bestemt brukergruppe. De tjener ikke til å administrere innhold (som WordPress), men til å administrere prosesser (det vil si: slik at folk i korte ord kan fullføre noen oppgaver). I tillegg til JavaScript, trenger HTML- og CSS-programmerere å kjenne til noen tilleggsteknologier for webapp-programmering. Det avhenger av et prosjekt, for eksempel: SCSS, TypeScript og noen av følgende rammer: Ember, Angular, Vue eller React. (Framework er et skjelett av et program med build it-funksjoner).

Desktop app programmering – som ovenfor, men det handler om programmering av applikasjoner du kan installere for eksempel på et Windows-system. Denne gruppen skiller seg fra den forrige. Den bruker andre teknologier. For eksempel kan programmering for Windows bruke C # språk og .NET Framework.

Programmering av mobilapper – det handler om å skrive apper installert på mobile enheter . Hovedsakelig på enheter med Android- og iOS-operativsystemer. Programmering for Android bruker hovedsakelig Java-programmeringsspråk og for iOS: raskt språk. For hvert system er det forskjellige rammer. Det er også rammer for begge systemene.

Dette var eksempler på frontend reals. Nå kan vi gå videre til backend realms. Backend er mer eller mindre programmering av noe klienten / brukeren ikke ser, men er viktig for at systemet skal fungere:

Databaseprogrammering – databaser som MySQL og MSSQL. Database er mer eller mindre et avansert regneark. Database lagrer dermed mer data, og lar deg manipulere det programatisk. Legg til data, fjern dem, endre. I tillegg tillater det å sette opp forskjellige måter å håndtere data på. For eksempel avvise ufullstendige data, eller samle inn data fra forskjellige tabeller. Databasesystemer bruker sine varianter av SQL-språk (for eksempel T-SQL for MSSQL). Språket gjør det mulig å kode forskjellige operasjoner på dataene. Det er også databaser som ikke bruker SQL-språk. De bruker et mystisk navn: NoSQL.

Backend-programmering – backend-utvikler behandler data mellom database og frontend, eller mellom forskjellige systemer som trenger samarbeide. Nesten hvert programmeringsspråk kan brukes til backend-formål. Men siden backend har spesifikke brukstilfeller, har folk en tendens til å bruke forskjellige språk enn for frontend. For eksempel: PHP, Ruby, Python, Java, men også JavaScipt.

De fleste programmerere deler seg i frontend- og backend-utviklere. Men det er også fullstack-utviklere.Fullstack-utvikler er en person som kjenner teknologi for frontend og backend. Han / hun kan ta seg av alt for å sette opp en applikasjon: database, backend og brukergrensesnitt.

Men dette er ikke alle riker. Og i de fleste av slike oversikter er andre riker utelatt. Vi har mer og mer avanserte enheter, sensorer, som leverer data til informasjonssystemer. Disse må også programmeres. Dette kalles innebygd programmering. Innebygd programmering gjøres hovedsakelig på C og C ++ språk, fordi disse språkene gir programmereren tilgang til lav abstraksjon. Det sparer ressurser på disse små enhetene.

Et annet blomstrende område for programmering er dataanalyse. Utviklere av dataanalyse bruker store datasett i selskaper og forbereder resultater for forretningskonklusjoner som skal treffes om dem. Slike programmerere bruker forskjellige sett med språk, inkludert Python og R (ja, dette er navnet på et programmeringsspråk, bare bokstaven R. Hvor kommer verden til høyre?).

Et annet rike er arv programmering. Eldre utviklere kjenner teknologier som ble brukt til å bygge systemer, men som ikke er populære lenger. De støtter eldre systemer som trenger å fungere, men ble bygget for mange år siden.

Det er mange andre programmeringserfarelser. Jeg vil ikke skrive om alle disse her. Men det er mulig å finne dem.

Dette er slutten på dette punktet. Hvorfor er det så viktig? Hvis du vet hvilket område du er interessert i, kan du velge teknologier, bør du lære. Og det er lettere å lære noen få teknologier enn 200 av disse.

La oss anta at du allerede vet hvilket område du er interessert i, skal vi? Hva er neste?

2. Velg teknologier

For å komme videre må du ta en informert beslutning om teknologier du bør lære deg. Men ærlig talt er det vanskelig å få gode råd om det. Du kan spørre noen, eller gå på studier eller et bootcamp. Men uansett, vil du ende opp med å lære: a) hva som er populært b) hva som er kjent av personen som lærer deg c) hva som bruker personen som svarer. Og ofte er det ikke et godt valg. Men jeg har gode nyheter. Du kan gjøre det bedre og gjøre det bra.

Les om hvilke teknologier som brukes av selskaper som jobber i området, du er interessert i. Søk etter jobbtilbud, se hvilke teknologier som skjer igjen. Ikke mist entusiasme fordi det er 20 teknologier der. Det er en fiksjon. Folk skriver ting som ikke kreves senere for jobben.

Ofte leser jeg at folk vet litt om dette, litt av det. Og de vet fortsatt ikke hvordan de skal bli programmerer. De er tapt. Det er helt sant. Programmering er et veldig bredt område, og du kan ikke lære alt. Du må velge retning og holde deg til den. På den måten øker du sjansen for å lykkes.

3. Velg læringsmetode

Dette punktet er veldig viktig, og jeg vil skrive hvorfor. Alle har sin mening om hvordan en utvikler skal lære. Hvis du lette etter svaret på nettet, vil du finne mange ideer om hva som er riktig. Man vil gi råd om å bruke YouTube-videoer. Andre vil fortelle bok er veien å gå. En annen person vil fortelle at et bootcamp er det beste. Programvareutvikler lærer av en dokumentasjon! Noen utviklere sier også at høyskoleutdanning er ubrukelig. Jeg er lei meg over slike uttalelser.

Du vet ikke hva som er best. Og det er helt naturlig. Alle forteller forskjellige ting. Personlig kan jeg anbefale e-bøker og videoopplæringer, fordi jeg liker disse. Men dette ville ikke være et riktig eller nyttig svar.

I virkeligheten spiller det ingen rolle hvordan du lærer deg. Så lenge du lærer. Og husker du hvordan du lærte på skolen? Hvordan så det ut? Be en lære deg å lære litt av dette, litt av det. Ting som ikke har noen sammenheng mellom? Nei. Og på skolen lærer du kompliserte ting. Ting som ikke gjorde noe for deg. Men alle husket litt fra dette.

Det er fordi læring i skolene er systematisk og metodisk. Trinn etter trinn. Systemet ble utviklet gjennom hundre års erfaring. Hvis du synes det ikke er bra nok: spør deg selv: hvordan lager du et potetbatteri? Dette systemet er så bra!

Du er interessert i å lære programmering. Det beste du kan gjøre for deg selv er å velge en metode som er metodisk og systematisk. Så la oss svare på oss selv, hva er den mest metodiske og systematiske metoden for læring? Åpenbart er det en videregående utdanning. Lærere på videregående skoler kjenner metodisk og systematisk utdanning veldig godt. Det vil være vanskelig, men du lærer programmering.

En annen måte å lære på er bøker og bøker. Med litt forsiktighet finner du en bok som lærer ting trinn for trinn. Fra enkle til vanskelige ting. Fra A til Å. Men du trenger å like å lese.

Videoopplæring og online kurs – disse kan være bra hvis forfatteren forberedte det metodisk – det vil hjelpe deg med læring. Spesielt hvis du liker å se og lære.

Bootcamp – en intensiv programmeringstrening. Du kan også ha nytte av dette. Det er en god løsning hvis du liker å jobbe med mennesker i en gruppe.

Det eneste jeg vil gjøre deg oppmerksom på å ikke bruke ikke-metodiske, ikke-systematiske og ufullstendige måter å lære programmering på. Tenk deg at du lærte 50\% av et emne fra et YouTube-videokurs (fordi det er gratis). Men det er ingen siste del. Du søker etter andre kurs. Men i andre kurs er det ting du ikke vet. Også noen ting du vet. Og temaet blir forklart på en helt annen måte. Det er så ned-ånd! Så for det første: innhold som dekker emnet fra A til Å.

Når jeg snart når slutten av dette punktet, ønsket jeg også å legge merke til en sak som er ekstremt viktig. Jeg leste at folk anbefaler nybegynnere å bruke engelsk innhold for å lære. Disse menneskene vet ikke hva de gjør. Når du er nybegynner – ikke gjør livet ditt vanskelig. Hvis du har innhold på morsmålet ditt – bruk det. Hvorfor bør du lære programmering på fremmedspråk? Det er et fullstendig søppel. Du kan også lære spansk fra tysk bok mens du snakker engelsk, eller polsk fra kanadisk bok mens du snakker japan. er det mulig? Ja. Men hvorfor?

4. Sett et mål

Å sette mål er ofte utelatt når du planlegger en arbeidskarriere. Folk begynner å lære ett kurs enn å stoppe, og deretter gå til et bootcamp mens tiden uunngåelig går. Etter flere måneder husker du ikke hva du har lært før. Det ser ut til at du har lært noe, men hva oppnådde du akkurat?

For å gjøre læringen enklere er det en god ide å sette et mål. For eksempel kan du sverge på at du vil lese en 800 sider lang bok om en måned. Eller du vil ende opp med studiene, eller finne en juniorutviklerjobb om seks måneder.

Alt går bedre, hvis du vil sette deg et mål. Det er noe om vår natur at målene gjør livet enklere. Læring er ikke lett. Programmering er ikke lett. Læring programmering er utenfor diagrammene. Derfor er et mål så viktig. Og tilfredshet med å nå det gir motivasjon for videre arbeid.

5. Lær systematisk

Når du allerede har et mål, er neste trinn å lage en læringsplan. Hver dag en time. Men hver dag, alltid en time. Og ikke å ta en ny videoopplæring eller lese en artikkel, men å lære noe meningsfylt.

Er det en måte å gjøre det lettere? Mind focus er nødvendig for å lære programmering. Mye sinnsfokus. Prøv dette. Kunngjør til alle: klokka 18.00 lærer jeg programmering i en time, og vær så snill å ikke forstyrre meg. Slå av telefonen, logg av fra Facebook. Gi barn til svigerforeldre. Gi hund til en nabo.

Observer hvor mye du vil lære! Du må avskjære deg fra verden, for å virkelig forstå forståelsen av programmering.

6. Kod deg selv

Jeg følger en fantastisk nybegynnerprogramvareutvikler på LinkedIn. Hun fant en fin måte å øve på programmering på. Hver dag setter hun opp et mål om å kode noe. For eksempel: en dag: enkel kalkulator. Neste dag: enkel side med filmomslag. Hun lager en animert GIF med det hun gjorde og legger den på LinkedIn. Hun skriver det hun har lært på dagtid. Jeg elsker å følge henne. Hun lager noen strålende miniprosjekter. Over dette har jeg også i begynnelsen gjort det hun gjør. Hva alle gode programvareutviklere jeg kjenner gjorde. Utarbeide oppgaver og programmering. Slik blir du programvareutvikler.

Det er åpenbart lettere når du studerer, jobber eller blir med i et bootcamp, eller har en bok med eksempeloppgaver. Fordi du ikke trenger å finne ut av oppgaver alene. Dette er også en god metode. Men noen ganger er slike oppgaver kjedelige, ikke tving deg til å gå utenfor komfortsonen. Og hva om du finner ut av en oppgave selv? Enn du vil treffe noen hindringer som vil finne ut hva du bør lære å gå videre med din praksis.

7. Be om hjelp

Siden vi snakker om problemer. Det er vanskelig å formulere det du har problemer i de tidlige programmeringsdagene. For eksempel når en feil oppstår i en applikasjon. Hvordan oversette problemet til ord? Hvordan be om det? Noen ganger er det så vanskelig at folk ikke vet hvilken setning de skal sette inn i et DuckDuckGo-søk. For mange år siden var det lettere. Det var StackOverflow og støttegrupper, hvor du var i stand til å stille spørsmål. Du kan stole på hjelp fra andre.

I dag kan du møte slike svar som «søk på internett», eller «dette ble spurt før» eller «igjen». Dette er frustrerende. Dessverre. Internett er fylt med svar. Det avanserte programvareutviklere ikke forstår, er at det er vanskelig å nevne et problem hvis du er nybegynnerprogrammerer. Selv om de hadde akkurat det samme problemet! Jeg kan forsikre deg om dette!

Derfor ber jeg deg sterkt om å stille spørsmål. Finn et fint sted på internett for programvareutviklere, eller finn en mentor. Og spør spør spør.Noen ganger vil du snuble over en nøling. Men det skal ikke føre deg ned. Og i så fall, finn et annet sted som er bedre.

Jo mer du vil spørre, desto lettere blir det å formulere det du har problemer med. Mens tiden vil gå vil spørsmålene dine bli bedre og bedre, svarene vil dukke opp raskere og raskere. Og senere, vil du oppdage, at noen problemer kan løses bare ved å formulere et riktig spørsmål.

8. Finn arbeid raskt

Jeg leser ofte at folk utsetter jobbsøking til de lærer noe mer. Og halvparten av året går forbi. Programvareutvikling er et felt der du trenger å fornye kunnskapen din hele tiden. La oss si at du har lært deg 3-4 teknologier du trenger. Du begynner å søke etter en jobb, og får problemer. Du kan søke i en jobb i flere måneder! Og mens du gjør det, vil du glemme halvparten av tingene du har lært.

Så mitt råd er at du bør begynne å søke etter en jobb mer eller mindre halvveis i læringsveien din. Av flere gode grunner. Først av alt hvis du tar en stilling, eller juniorjobb, antar arbeidsgiveren at du vet nesten ingenting. For det andre tar gjenopprettingsprosessen tid selv. Før du finjusterer CV-en din, før du lærer forhåndsinnstilt, tilgjengelig online, vil testspørsmål tiden gå. Det vil passere mens du vil skjerpe rekrutteringssnakk uten rystelser. Å finne en jobb er også noe du trenger å lære.

Så halvveis i læringsveien begynner du å lete etter en jobb. Send CV, planlegg møter, bli vant til det. Enn din tekniske beredskap vil møte rekrutteringsklarhet, og det vil ikke være noen forsinkelser.

9. Be om mer kompliserte oppgaver

Nå har du en arbeidsstilling. Men den største fellen for programmering er foran deg. Siden du har en jobb, kan du legge bøker i hyllene og bare gjøre det du blir bedt om å bli gjort.

Det er ikke slik! Vær oppmerksom på at ofte ikke praktikanter / juniorer blir bedt om å gjøre kompliserte oppgaver, men veldig enkle. Du vil merke det snart, det tar mindre og mindre tid å fullføre dem, og begynner å bli kjedelig. Hvis du ikke vil gjøre noe med det, mister du tid. Du kan lære nye ting. Ikke løp rundt i sirkler.

Utover det ser arbeidsgiveren din når praktikant / junior står stille. Jeg er arbeidsgiver, det er like klart som himmelen. Og ingen vil ha tidløst internett / junior.

Så når du ser, blir du bedre, be veilederen din om mer kompliserte oppgaver. Han / hun burde vite for å gi deg noe mer komplement. Dette er viktig for å fortsette å lære og utvikle deg selv mens du er på jobb.

Som praktikant / junior må du lære mye, mye mer. Jeg er 100\% sikker på at du ikke vil bli en av disse gutta på internett som sier at intern / junior stilling ikke ga dem noe, lærte ingenting. De lærte ikke, fordi de ikke ønsket å gå lenger. De kaster bort tiden deres og arbeidsgiveren.

10. Beherske ny teknologi

Programmering er et fantastisk felt, men det endres hele tiden. Det du har lært i dag, vil bli utdatert om ett år. Og foreldet i 5. Når du finner en jobb, og føler deg komfortabel med den, mestrer du noe nytt. Utvid ferdighetene dine. Ikke stå stille med din profesjonelle utvikling. Hvis du slutter å studere, er det kanskje verdt å gå tilbake. Delta på et bootcamp, les en bok, delta på et online kurs. Uansett hva som vil tillate deg å være oppdatert med teknologier.

Oppdatering: hvis du vil huske programmeringsmetoder, se etter Summon The JSON-prosjektet. For øyeblikket er det et kort for JavaScript-programmerere. Du kan lære mer her: Summon The JSON: JS Deck

Det er alt du trenger for å lære å begynne å programmere fra bunnen av. Dette var en veldig lang artikkel, og jeg er veldig overrasket over at du har nådd slutten av den. Jeg er sikker på at 99\% av menneskene ikke gjorde det. Det ser ut til at du bryr deg om å bli programvareutvikler. Omsorg er 99\% av en suksess. Jeg ønsker deg lykke til. Programmering er fantastisk og gir mye profesjonell tilfredshet. Ikke mist hjertet ditt for det. Fortsett. Trinn for trinn.

Engelsk er ikke morsmålet mitt. Hvis du finner feil i svaret, kan du rette det. Du vil bli nevnt i svaret. Takk!

Svar

En god start er å finne ut hvordan man elsker programmering. For å sitere fra en ny programmerer som jeg hjalp til:

GASP DET FUNGERTE DET FUNGERTE DET FUNGERTE HVORDAN BLIR DU ALDRI SYK AV DENNE FØLELSEN

Hun hadde brukt den forrige timen på å prøve å få et objekt i spillet hennes for å endre farge og fargen hadde nettopp endret seg.

Skrivekode er som å snakke magiske ord som faktisk gjør noe . Det er engasjerende og kanskje litt vanedannende.Det er også vanskelig. Å finne disse små motivasjonsmomentene er veldig nyttig for de gangene du trenger å lære noe hardt; minnet om hva som er mulig kan hjelpe deg med å slå igjennom det som er kjedelig.

Likevel, hvis du kommer dit, må du ha noen morsomme, kreative opplevelser med programmering. Her er noen ideer:

  1. Ta tak i StarCraft (1 eller 2) nivåredigerer og finn ut hvordan du bruker utløserne. Jeg har tilbrakt mange lykkelige timer med å hacke bort StarCraft-kartene, og du kan skrive noen utrolig involverte spill innen spillet ved hjelp av det.
  2. Finn ut all redstone-mekanikken i MineCraft, og bygg deg en latterlig maskin. Å lage mods som tilfører MineCraft nye funksjoner er også populært, men lær deg noen grunnleggende ting før du prøver det; veiledningene deres ( Basic Modding – Minecraft Forge ) er mye lettere å forstå hvis du allerede kjenner noe Java.
  3. Finn ut hvordan du kan bygge noe fantastisk i Factorio (advarsel: videoen nedenfor er latterlig; ikke forvent å gjøre dette med en gang). Factorio har også en ganske komplett modding API støttet av utvikleren ( Modding Tutorial ), men du vil kanskje lære litt mer grunnleggende før du prøver det.
  1. Last ned Scratch og lag noen få enkle spill med det (den artikkelen nevner også en rekke andre pedagogiske programmeringsspråk nederst). Scratch behandler programmering som puslespillbiter som du passer sammen for å bygge oppførsel, og det er enkelt nok til at yngre barn kan lage arbeidsprogrammer med liten innsats. Det er som å programmere med treningshjul.

Bildekreditt: Av Lifelong Kindergarten Group kl. MIT Media Lab.

  1. Finn en av de «lær X på 21 dager» bøker og kraft gjennom den. Det er verken prangende eller grundig, men det kan gi deg nok grunnlag til at noen av disse andre ideene blir mulig.
  2. Ta en klasse. OK, booooring, men jeg fant ut at presset for å tjene en karakter presset meg til å jobbe meg gjennom de tøffe begrepene. Jeg anbefaler dette bare hvis du allerede er sikker på at du vil å lære programmering. Klasser er gode til å skyve informasjon inn i hjernen men er ganske dårlige til å motivere deg. Det beste med å ta en kurs er at de «lærer deg om ting du aldri hadde gjettet eksisterte; du kan ikke selvlære et konsept du ikke vet eksisterer.
  3. Vil du at programmene dine påvirker den virkelige verden? Vurder å gjøre noen prosjekter ved hjelp av en mikrokontroller, noe sånt som disse: Topp 10 Kickass Arduino-prosjekter . Hvis Arduino er for skremmende, vil du kanskje prøve LEGO Mindstorms først.

Sikkerhetssystem? Roboter? Dumme kjempebra julelys? Dette er enheten din. Bilde fra Arduino .

  1. Game Maker ( Yoyo Games ) er et ganske godt utviklingsmiljø for enkle videospill; det er mer avansert enn Scratch, og dypere enn triggerredaktørene i StarCrafts kartredigerer. Det er mulig å lage en rekke 2d-videospill med det, og det er mulig å lage noe godt nok til å selges kommersielt.
  2. Hvis du vil flytte til 3d, Unity ( Unity – Game Engine ) er en anstendig 3D-spillmotor av høy kvalitet. Du trenger litt mer programmeringsferdigheter enn Game Maker, og du trenger noen måte å tjene penger på, men det er kraftig nok til å lage ganske avanserte spill.
  3. Din stasjonære eller bærbare datamaskin inneholder allerede et halvveis anstendig utviklingsmiljø: nettleseren din. Hvis du oppretter en webside på din egen harddisk, kan du åpne den med nettleseren din. Hvis den websiden inneholder JavaScript, vil nettleseren kjøre den. Du kan begynne å lære uten trenger å laste ned eller installere noe annet. HTML5-spillopplæring – Lag et slangespill med HTML5-lerret og Jquery er en morsom gjennomgang av hvordan du lager et grunnleggende spill.
  4. Lær hvordan du spiller RoboZZle online puslespill . Av alle programmeringsspillene jeg har spilt, er dette uten tvil den dypeste. De fleste spill vil lære deg mye om variabler og objekter, men dette vil lære deg å tenke dypt om rekursjon. Lambda-kalkulator burde føles vagt kjent hvis du «har slått noen middels til harde Robozzle-oppgaver.
  5. Last ned -versjonen av Visual Studio . Dette er et profesjonelt verktøy, og det er vanskelig å få ditt første program til å kjøre. Når du først vet det godt, kan du lage hva som helst.Hvis du er på en Mac, er ekvivalenten XCode .

Forhåpentligvis vil noen av disse ideene få deg i bevegelse. Til slutt, hvis du vil bli god på det, vil du trenge å knekke lærebøkene og gjøre noen formelle studier, men jeg synes det fungerer best hvis du finner din hvorfor først.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *