Sådan begynder du at kode: En praktisk guide for begyndere (Opdateret 2020)

Stræk 3: Start et projekt for at øve dig i det, du har lært

Selv at se kurser vil ikke hjælpe dig med at internalisere konceptet. Du ville være nødt til at omsætte konceptet til praksis. Den bedste måde at gøre det på ville være at komme med projekter.

Hvis du har en idé til et projekt eller har et problem, du ønsker at løse med kodning, er det fantastisk!

Hvis ikke har jeg udarbejdet en liste over begyndervenlige projekter, som du kan lade dig inspirere af eller prøve.

Nogle begyndervenlige projekter, som du kan prøve

Her er nogle terminologier, der kan være forvirrende

Biblioteker: Et bibliotek er en samling af relaterede kodestykker, der er blevet kompileret og gemt sammen i en enkelt fil. Denne fil kan linkes med din kode for at give dig adgang til koden i biblioteket.

API: API står for Application Programming Interface. En API er en softwaremellemled, der gør det muligt for to programmer at tale sammen. Med andre ord giver API dig mulighed for at anmode om funktioner fra en softwareudbyder, som du kan gøre brug af i din kode. For eksempel giver Spotify API dig mulighed for at anmode om data såsom sange og kunstnere fra Spotify, og du kan gøre brug af dataene i din kode eller applikation.

Niveau 1-projekter

Kalkulator

  • Sprog: Python
  • Biblioteker: Python
  • Biblioteker: Ingen
  • Guide: https://www.programiz.com/python-programming/examples/calculator

Sudoku Solver

  • Sprog: https://www.programiz.com/python-programming/examples/calculator

Sudoku Solver

  • Sprog: Python
  • Biblioteker: Ingen
  • Guide: https://techwithtim.net/tutorials/python-programming/sudoku-solver-backtracking/

Hangman

  • Sprog: https://techwithtim.net/tutorials/python-programming/sudoku-solver-backtracking/

Hangman

  • Sprog: Python
  • Biblioteker: Python
  • Biblioteker: Ingen
  • Guide: https://www.pythonforbeginners.com/code-snippets-source-code/game-hangman

Projekter på niveau 2

Skak

  • Sprog: https://www.pythonforbeginners.com/code-snippets-source-code/game-hangman

Sprog: Python eller Java

  • Biblioteker: Python eller Java
  • Biblioteker: Ingen
  • Guide: https://www.youtube.com/watch?v=ejZqLsQDjuo
  • Weekly Discover Spotify Playlist

    • Byg dit eget system til at gøre noget, der ligner Weekly Discover Spotify playlist
    • Sprog: Python
    • Biblioteker: Spotify API
    • Guide: Spotify API
    • https://towardsdatascience.com/making-your-own-discover-weekly-f1ac7546fedb

    Automatisk værktøj til tidssporing

    • Forbedre fokus ved at spore den tid, der bruges på desktop-applikationer eller websteder i realtid.
    • Sprog: Spotify: Python
    • Biblioteker: Python
    • Biblioteker: Selenium
    • Guide: Selenium
    • https://www.youtube.com/watch?v=ZBLYcvPl1MA

    Niveau 3 Projekter

    Instagram Automation

    • Automatiser processen med at sende opslag til Instagram
    • Sprog: Selenium, Selenium og Selenium: Python
    • Biblioteker: Python
    • Biblioteker: Flask,Instapy
    • Guide: Flask, Instapy
    • Python
    • Biblioteker: Twitter API
    • Guide: Python
    • Biblioteker: Python
    • Biblioteker: Python-Telegram-API
    • Guide: Python-Telegram-API
    • https://www.freecodecamp.org/news/learn-to-build-your-first-bot-in-telegram-with-python-4c99526765e4/

    Dette er ikke en udtømmende liste. Hvis du har et problem, som du skal løse, så tænk over, hvordan du kan løse det med programmering. Det kan også være et projekt.

    Giv ikke let op, du skal bryde igennem de indledende kampe

    Den største fejl, du kan begå som aspirerende programmør, er at give op, fordi du ikke mener, at du er klog nok til at lære at programmere. At lære at kode har intet at gøre med din intelligens.

    Lære at programmere er svært, og de fleste mennesker vil stå over for vanskeligheder på et tidspunkt, fordi der er mange emner at lære. Når du programmerer, vil der være en masse emner, der ikke giver mening første gang. Så lad være med at tænke negative tanker om dig selv.

    Jeg går også i stå. Jeg er ofte nødt til at gense den samme forelæsning eller video tutorial flere gange for at jeg kan forstå begrebet. Bliv ikke modløs, hvis du befinder dig i mine sko.

    Det er vigtigt at opbygge et stærkt fundament

    Hvor elementært det end kan virke i første omgang, skal programmeringsgrundlaget altid komme først: jo bedre du forstår det, jo lettere er det at lære mere avancerede koncepter. Hvis det aktuelle emne, du er ved at lære, ikke giver mening for dig, så bliv hvor du er. Du skal ikke gå videre til det næste emne. At springe videre svarer til at bygge et hus uden en sokkel og forsømme fundamentet.

    Hvis den tutorial (eller bog), du bruger, ikke forklarede emnet tilstrækkeligt, skal du måske finde andre ressourcer, der passer dig. Du kan finde stort set alt, hvad du ønsker at lære, gratis på Google. Find ud af, hvad du skal søge efter (f.eks. i + andre nyttige nøgleord).

    Tag mindst 20 minutter til at finde ud af noget på egen hånd, før du søger efter hjælp. Der er en god chance for, at svaret allerede ligger foran dig. Hvis du kæmper, lærer du bedre og bliver en bedre programmør i det hele taget.

    Stackoverflow og learn programming er guldgruber for hjælp til programmering.

    Lær ved at gøre. Leg altid med koden, mens du lærer.

    Målet er at være bevidst om din egen læring, efterhånden som du bevæger dig gennem læringsvejen. Derfor skal du ikke blindt følge kurserne og blindt kopiere koden uden at forstå den først. Forstå de begreber, der blev undervist i lektionen, og prøv at genskabe det.

    Gennemfør det som en vane at øve dig i programmering, efterhånden som du gør fremskridt. Det kan du gøre på leetcode, hackerrank eller ved at lave et projekt. Prøv at lave et projekt efter hvert modul med de begreber, du har lært. Da jeg lavede online kurser, prøvede jeg at lave et projekt hver uge, hvor jeg anvendte alle de koncepter, jeg har lært.

    Del 2: Køreplan for at blive en avanceret programmør

    Nu, hvor du har lært det grundlæggende i programmering, vil det næste skridt være at overveje, hvilken vej af programmering du vil lære mere om. Der er mange veje, du kan bevæge dig ind på, når du har forstået det grundlæggende i programmering, hvor de største og mest populære veje er Software Engineering & Data Analytics.

    Data Analytics

    Hvad er Data Analytics?

    Data Analytics er videnskaben om at undersøge rå data for at konkludere nye oplysninger. Det indebærer anvendelse af en algoritmisk eller mekanisk proces til at udlede indsigt. For eksempel at køre gennem flere datasæt for at finde meningsfulde sammenhænge mellem hinanden.

    Så, hvorfor skal du lære dataanalyse? Big Data er fremtiden. De genereres med eksponentiel hastighed, og mange virksomheder gør brug af disse data til at træffe bedre beslutninger samt til at verificere og modbevise eksisterende teorier eller modeller. Efterspørgslen efter dataanalyse forventes at stige i fremtiden, da data vil være kernen i beslutningsprocessen i mange virksomheder.

    Hvordan kan du lære dataanalyse gratis?

    Jeg har finkæmmet universiteternes pensum og er kommet frem til en vej til at forsøge at matche gratis online kurser med universitetskurser. Alle disse kurser er dog i Python, hvis du ønsker at lære på et andet sprog, er du velkommen til at tjekke andre kurser.

    Outline of Data Analytics Modules

    Outline er generelt baseret på universitetsmoduler. Jeg udelukker dog nogle af de vigtige moduler som datastruktur og algoritme, som universiteterne underviser i, da de er mere konceptuelle og på et højere niveau.

    Bemærk: Jeg har sat maskinlæring højere oppe i prioriteringen, da det giver dig mulighed for at gøre brug af de færdigheder, du har lært på de grundlæggende kurser.

    Fundamentale kurser

    Modul 1: Læring af det grundlæggende i Python (1 måned)

    • Læring af syntaksen i Python
    • Læring af loops
    • Læring af objektorienteret programmering

    Modul 2: Data Pre-processing, Data Visualization, Exploratory Data Analysis (1 måned)

    • Læring i at gøre brug af python-biblioteker (matplotlib, numpy og pandas)
    • Disse biblioteker giver dig mulighed for at manipulere data

    Avancerede kurser

    Modul 3: Forberedelse af data, datavisualisering, eksplorativ dataanalyse (1 måned)

    • Modul 3: Maskinlæring (2 måneder)
      • Forudsætning: Linear Algebra
      • Maskinlæring er et ret teknisk kursus om matematik
      • Python har et ret omfattende bibliotek til maskinlæring kaldet Scikit-Learn.
      • Hvis du ønsker en mere praktisk tilgang til at lære maskinlæring, kan du tjekke Kaggle Learn ud.

      Real-World Tools-kurser

      Modul 4: Databaser (SQL) (1 måned)

      • Databasekurset lærer dig grundlæggende, hvordan data lagres, og hvordan du kan hente disse data for at udføre programmeringsfunktioner.
      • Arbejdskendskab til databaser og SQL er et must, hvis du ønsker at blive datalog.

      Modul 5: Real-World Tools-kurser

      • Hadoop & Map-Reduce + Spark(vælg en) (1.5 måned)
      • Dette er Big Data-værktøjer, som industrien almindeligvis bruger til behandling af store datamængder.
      • Læring af Hadoop-teknologier vil give dig en masse grundlæggende viden, teori og praktiske færdigheder. Du kan også finde noget nyt ved at bruge det.
      • Spark er den moderne implementering af Hadoop og oplever en stigende brug.

      Modul 6: Data Storytelling (1 uge)

      • Præsentation af Story med data er analytikerens manglende led i at levere essensen af datasignaler og indsigter til ledere, ledelse og andre interessenter.

      Optionelle kurser

      • Datastruktur
      • Algoritme
      • Deep Learning
      • I fem kurser lærer du grundlaget for Deep Learning, forstår, hvordan man opbygger neurale netværk, og lærer, hvordan man leder succesfulde maskinlæringsprojekter. Du vil praktisere alle disse idéer i Python og i TensorFlow, som de vil lære dig.
      • Det er et af de bedste kurser i deep learning derude. I øjeblikket er jeg i gang med dette kursus, og jeg er enig med anmeldelserne, da det præsenteres på en enkel og klar måde på trods af, at Deep Learning er et teknisk emne.
      • En anden god gratis ressource er fast.ai

      Ting man skal undgå, mens man lærer Data Analytics

      Faldgruben er, at du bare lærer, men ikke anvender viden. En måde, jeg forsøger at anvende min viden på, er at starte et projekt efter hvert modul, jeg har gennemført. For Data Analytics kan du prøve dit bedste i en konkurrence efter eget valg fra Kaggle. Brug Kaggle Learn som en nyttig vejledning

      Software Engineering

      Hvad er Software Engineering?

      I en nøddeskal er Software Engineering grundlæggende at bruge programmeringskoncepter til at bygge applikationer

      Hvordan kan du lære Software Engineering gratis?

      Jeg mener, at Software Engineering kræver en mere grundlæggende forståelse af computerkoncepter end Data Analytics, derfor har jeg i min moduloversigt inkluderet flere teoretiske kurser.

      Vil du bygge ting for at få en fornemmelse?

      Hvis det er tilfældet, så lær Python og gå til de praktiske kurser. Du kan altid genbesøge de grundlæggende kurser, når du støder på en forhindring i forhold til den teoretiske viden.

      Outline of Software Engineering Modules

      Fundamental Courses

      Modul 1: Læring af det grundlæggende i Python (1 måned)

      • Læring af syntaksen i Python
      • Læring af loops
      • Læring af objektorienteret programmering

      Modul 2: Datastrukturer (2 måneder)

      • Dette kursus dækker væsentlige datastrukturer som linkede lister, stakke, køer, binære træer og hashtabeller samt søge- og sorteringsalgoritmer som binær søgning, quicksort, mergesort, insertionssortering osv.
      • Datastrukturer er vigtige, da de giver os mulighed for at forbedre ydeevnen i vores kode ved at bruge den bedste datatype til vores kode.
      • Det kursus i datastrukturer, som jeg har anbefalet, er i Java, da det tvinger os til at gå fra et simpelt sprog som python til et mere mundret sprog. Desuden er Java godt til at lære objektorienteret programmering og datastrukturer.

      Modul 3: Algoritmer (2 måneder)

      • Dette er anden del af en todelt serie af gratis online Coursera-kurser, der dækker datastrukturer og algoritmer af Robert Sedgewick og Kevin Wayne, der begge er professorer i datalogi.
      • I denne del vil du lære om algoritmer til graf- og strengbehandling.
      • Du lærer også nogle avancerede datastrukturer og algoritmer, der anvendes i applikationsudvikling.

      Modul 4 : (Databaser) (1 måned)

      • Databasekurset lærer dig grundlæggende, hvordan data gemmes, og hvordan du kan hente disse data for at udføre programmeringsfunktioner.

      Modul 5: (Netværk) (1 måned)

      • Det er ikke særlig vigtigt at tage et netværkskursus, så du kan springe det over, hvis du vil. Men hvis du er interesseret i cybersikkerhed, er det absolut et vigtigt kursus

      Praktiske kurser

      Modul 6: Uge 9-10 (Webudvikling) (2 måneder)

      • Temaerne omfatter databasedesign, skalerbarhed, sikkerhed og brugeroplevelse. Gennem praktiske projekter lærer du at skrive og bruge API’er, skabe interaktive brugergrænseflader og udnytte cloud-tjenester som GitHub og Heroku. Ved kursets afslutning vil du komme ud med viden om og erfaring med principper, sprog og værktøjer, der sætter dig i stand til at designe og implementere applikationer på internettet.
      • Personligt var dette mit favoritkursus for webudvikling, da de gennemgår frontend og backend, og det er meget godt forklaret. De ville lære dig HTML, CSS, Javascript og PHP.
      • Dette er en god ressource til inspiration til hjemmesider: https://github.com/melanierichards/just-build-websites

      Modul 7: Mobile App Development ( vælg den du bedst kan lide) (2 Month)

      • IOS
      • Android
      • Flutter (Min foretrukne metode til App Development)
      • Personligt har jeg ikke lært IOS-udvikling før. Men hvis man sammenligner mellem android og flutter, er flutter hurtigere at udvikle og lave prototyper med, og derfor foretrækker jeg flutter

      Videregående kurser

      Modul 8: Softwarearkitektur (2 måneder)

      • I dette kursus lærer du at repræsentere en softwarearkitektur ved hjælp af visuelle værktøjer som UML, hvilket er meget vigtigt for at kommunikere arkitekturen med aktionærer såvel som udviklere, der skal implementere den.
      • Du vil også lære nogle af de standardarkitekturer, deres kvaliteter og kompromiser. Kurset handler også om, hvordan design evalueres, hvad der gør en god arkitektur, og hvordan arkitekturen kan forbedres.

      Modul 9: Software Engineering Practices (1 måned)

      • Når du har gennemført dette kursus, vil du kunne
      1. Anvende centrale software engineering-praksisser på konceptuelt niveau for et givet problem.
      2. Sammenligne og kontrastere traditionelle, agile og lean udviklingsmetoder på et højt niveau. Disse omfatter Waterfall, Rational Unified Process, V-modellen, Incremental, Spiral modeller og oversigt over den agile tankegang
      3. Forslag til en metodologi, der er bedst egnet til en given situation

      Optionel

      Machine Learning

      • Jeg har faktisk anbefalet et mere teoretisk kursus i Machine Learning af Andrew Ng
      • Selv om det er lidt forældet, han underviser konceptet godt og er stadig et af de bedste maskinlæringskurser derude efter mange år.

      Deep Learning

      • I fem kurser lærer du grundlaget for Deep Learning, forstår, hvordan man opbygger neurale netværk, og lærer at lede succesfulde maskinlæringsprojekter. Du vil praktisere alle disse ideer i Python og i TensorFlow, som de vil undervise i.
      • I øjeblikket er jeg i gang med dette kursus, og det er præsenteret på en enkel måde at forstå. Et andet godt punkt er, at Andrew Ng bruger Python i stedet for octave.
      • En anden god gratis ressource er fast.ai

      Konklusion

      Og selv om jeg har anbefalet modulerne baseret på universitetskurser, kan du blande og matche for at lave det bedste pensum for dig selv. Hvis denne artikel har hjulpet dig, så hjælp mig med at dele den med dine venner! Hvis du gerne vil vide mere om mig, og hvad jeg laver, kan du besøge mig på min hjemmeside http://www.chiayong.me/

    Skriv et svar

    Din e-mailadresse vil ikke blive publiceret.