Hur man börjar koda: En praktisk guide för nybörjare (uppdaterad 2020)

Steg 3: Starta ett projekt för att öva på det du lärt dig

Enbart genom att titta på kurser kan du inte internalisera konceptet. Du måste omsätta konceptet i praktiken. Det bästa sättet att göra det skulle vara att komma på projekt.

Om du har en idé till ett projekt eller har ett problem som du vill lösa med kodning är det jättebra!

Om inte har jag förberett en lista med nybörjarvänliga projekt som du kan få inspiration från eller prova.

Några nybörjarvänliga projekt som du kan prova

Här är några terminologier som kan vara förvirrande

Bibliotek: Ett bibliotek är en samling relaterade kodstycken som har kompilerats och lagrats tillsammans i en enda fil. Den filen kan länkas med din kod för att ge dig tillgång till koden i biblioteket.

API: API står för Application Programming Interface. Ett API är en mjukvarumellanhand som gör det möjligt för två program att prata med varandra. Med andra ord gör API det möjligt för dig att begära funktioner från en programvaruleverantör som du kan använda i din kod. Med Spotify API kan du till exempel begära data som låtar och artister från Spotify och du kan använda dessa data i din kod eller tillämpning.

Projekt på nivå 1

Kalkylator

  • Språk: Python
  • Bibliotek: Inga
  • Guide: https://www.programiz.com/python-programming/examples/calculator

Sudoku Solver

  • Språk: Python
  • Bibliotek: Inga
  • Guide: https://techwithtim.net/tutorials/python-programming/sudoku-solver-backtracking/

Hangman

  • Språk: Python
  • Bibliotek: Inga
  • Guide: https://www.pythonforbeginners.com/code-snippets-source-code/game-hangman

Projekt på nivå 2

Schack

  • Språk: Python eller Java
  • Bibliotek: Inga
  • Guide: https://www.youtube.com/watch?v=ejZqLsQDjuo

Weekly Discover Spotify Playlist

  • Bygg ditt eget system för att göra något som liknar Weekly Discover Spotify playlist
  • Språk: Python
  • Bibliotek: Spotify API
  • Guide: https://towardsdatascience.com/making-your-own-discover-weekly-f1ac7546fedb

Automatiskt verktyg för tidsspårning

  • Förbättra fokus genom att spåra den tid som spenderas på skrivbordstillämpningar eller webbplatser i realtid.
  • Språk: Python
  • Bibliotek: Selenium
  • Guide: https://www.youtube.com/watch?v=ZBLYcvPl1MA

Nivå 3-projekt

Instagram Automation

  • Automatisera processen att publicera på Instagram
  • Språk: Python
  • Bibliotek: Flask,Instapy
  • Guide: https://www.youtube.com/watch?v=vnfhv1E1dU4

Twitter Bot

  • En bot som automatiskt twittrar till ditt flöde.
  • Språk: Python
  • Bibliotek: Twitter API
  • Guide: https://medium.com/science-friday-footnotes/how-to-make-a-twitter-bot-in-under-an-hour-259597558acf, https://learn.g2.com/how-to-make-a-twitter-bot, http://socialmedia-class.org/twittertutorial.html

Telegram chatbot

  • En chatbot som gör att du kan automatisera chatt telegrammeddelanden
  • Språk: Python
  • Bibliotek: Python-Telegram-API
  • Guide: https://www.freecodecamp.org/news/learn-to-build-your-first-bot-in-telegram-with-python-4c99526765e4/

Detta är inte en uttömmande lista. Om du har ett problem som du behöver lösa, fundera på hur du kan lösa det med hjälp av programmering. Det kan också vara ett projekt.

Giv inte upp så lätt, du måste bryta dig förbi de första svårigheterna

Det största misstaget du kan göra som blivande programmerare är att ge upp för att du inte tror att du är tillräckligt smart för att lära dig att programmera. Att lära sig koda har inget att göra med din intelligens.

Att lära sig programmera är svårt och de flesta skulle få svårigheter någon gång eftersom det finns många ämnen att lära sig. När du programmerar kommer det att finnas många ämnen som inte kommer att vara begripliga första gången. Så avstå från de negativa självtankarna.

Jag fastnar också. Jag måste ofta se samma föreläsning eller videohandledning på nytt flera gånger för att förstå begreppet. Bli inte avskräckt om du befinner dig i mina skor.

Det är viktigt att bygga en stark grund

Och hur elementära de än kan tyckas vara vid första anblicken, måste programmeringens grunder alltid komma först: ju bättre du förstår dem, desto lättare är det att lära sig mer avancerade begrepp. Om det aktuella ämnet som du håller på att lära dig inte är begripligt för dig, stanna där du är. Fortsätt inte till nästa ämne. Att hoppa vidare är ungefär som att bygga ett hus utan grund och försumma grunden.

Om den handledning (eller bok) du använder inte förklarade ämnet tillräckligt, kan du behöva hitta andra resurser som passar dig. Du kan hitta nästan allt du vill lära dig gratis på Google. Ta reda på vad du ska söka efter (t.ex. i + andra användbara nyckelord).

Ta minst 20 minuter på dig att lista ut något på egen hand innan du söker hjälp. Det finns en god chans att svaret redan finns framför dig. Att kämpa gör att du lär dig bättre och blir en bättre programmerare överlag.

Stackoverflow och learn programming är guldgruvor för hjälp med programmering.

Lär dig genom att göra. Lek alltid med koden när du lär dig.

Målet är att vara medveten om din egen inlärning när du går igenom inlärningsvägen. Följ därför inte blint kurserna och kopiera koden blint utan att först förstå den. Förstå de begrepp som lärdes ut i lektionen och försök att återskapa den.

När du gör framsteg, gör det till en vana att öva din programmering. Du kan göra det på leetcode, hackerrank eller göra ett projekt. Försök att göra ett projekt efter varje modul med de begrepp du har lärt dig. När jag läste onlinekurser försökte jag göra ett projekt varje vecka, där jag tillämpade alla begrepp jag lärt mig.

Del 2: Färdplan för att bli en avancerad programmerare

Nu när du har lärt dig grunderna i programmering skulle nästa steg vara att fundera på vilken väg av programmering du vill lära dig mer om. Det finns många vägar som du kan gå när du har förstått grunderna i programmering, där de största och mest populära vägarna är Software Engineering & Data Analytics.

Data Analytics

Vad är Data Analytics?

Data Analytics är vetenskapen om hur man undersöker rådata för att dra slutsatser om ny information. Det handlar om att tillämpa en algoritmisk eller mekanisk process för att få fram insikter. Till exempel att köra igenom flera datamängder för att leta efter meningsfulla korrelationer mellan varandra.

Så, varför ska du lära dig dataanalys? Big Data är framtiden. Den genereras i en exponentiell takt, och många företag använder sig av dessa data för att fatta bättre beslut samt för att verifiera och motbevisa befintliga teorier eller modeller. Efterfrågan på dataanalys förväntas öka i framtiden eftersom data kommer att utgöra kärnan i beslutsprocessen i många företag.

Hur kan du lära dig dataanalys gratis?

Jag har kammat igenom universitetens kursplaner och kommit fram till en väg för att försöka matcha gratis onlinekurser med universitetskurser. Alla dessa kurser är dock i Python, om du vill lära dig på ett annat språk är du välkommen att kolla in andra kurser.

Outline of Data Analytics Modules

Outlinjen är i allmänhet baserad på universitetsmoduler. Jag utesluter dock några av de viktiga moduler som datastruktur och algoritm som universiteten lär ut, eftersom de är mer konceptuella och på högre nivå.

Notera: Jag har placerat maskininlärning högre upp i prioriteringen eftersom det gör det möjligt för dig att använda dig av de färdigheter som du lärt dig i de grundläggande kurserna.

Fundamentala kurser

Modul 1: Lär dig grunderna i Python (1 månad)

  • Lär dig syntaxen i Python
  • Lär dig loopar
  • Lär dig objektorienterad programmering

Modul 2: Data Pre-processing, Data Visualization, Exploratory Data Analysis (1 Month)

  • Lär dig att använda pythonbibliotek (matplotlib, numpy och pandas)
  • Dessa bibliotek gör det möjligt för dig att manipulera data

Avancerade kurser

Modul 3: Maskininlärning (2 månader)

  • Förutsättningar: Om du vill ha ett mer praktiskt tillvägagångssätt för att lära dig maskininlärning kan du kolla in Kaggle Learn.

Kurser i verktyg för den verkliga världen

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

  • Databasskursen lär dig i princip hur data lagras och hur du kan hämta dessa data för att utföra programmeringsfunktioner.
  • Arbetande kunskaper om databaser och SQL är ett måste om du vill bli datavetare.

Modul 5: Verktygskurser för den verkliga världen

  • Hadoop & Map-Reduce + Spark(välj en) (1.5 månad)
  • Dessa är Big Data-verktyg som branschen vanligen använder för att behandla stora mängder data.
  • Lärande av Hadoop-teknik kommer att ge dig en hel del grundläggande kunskaper, teori och praktiska färdigheter. Dessutom kan du hitta något nytt när du använder den.
  • Spark är den moderna implementeringen av Hadoop och får allt fler användningsområden.

Modul 6: Data Storytelling (1 vecka)

  • Presenting Story with data is the analytics professional’s missing link in delivering the essence of data signals and insights to executives, management, and other stakeholders.

Valfria kurser

  • Datastruktur
  • Algoritm
  • Djupinlärning
  • I fem kurser får du lära dig grunderna för djupinlärning, förstå hur man bygger neurala nätverk och lära dig att leda framgångsrika maskininlärningsprojekt. Du kommer att praktisera alla dessa idéer i Python och i TensorFlow, som de kommer att lära ut.
  • Det är en av de bästa kurserna i djup inlärning som finns. För närvarande är jag mitt uppe i den här kursen och jag håller med om recensionerna eftersom den presenteras på ett enkelt och tydligt sätt trots att Deep Learning är ett tekniskt ämne.
  • En annan bra gratisresurs är fast.ai

Saker att undvika när man lär sig Data Analytics

Fällan är att du bara lär dig men inte tillämpar kunskapen. Ett sätt för mig att försöka tillämpa mina kunskaper är att starta ett projekt efter varje modul jag har avslutat. När det gäller dataanalys kan du göra ditt bästa i en valfri tävling från Kaggle. Använd Kaggle Learn som en hjälpsam guide

Mjukvaruteknik

Vad är mjukvaruteknik?

I ett nötskal är mjukvaruteknik i princip att använda programmeringskoncept för att bygga applikationer

Hur kan du lära dig mjukvaruteknik gratis?

Jag tror att programvaruteknik kräver en mer grundläggande förståelse för datakoncept än dataanalys, därför har jag inkluderat mer teoretiska kurser i min modulplan.

Vill du bygga saker för att få en känsla?

Om så är fallet kan du lära dig Python och gå de praktiska kurserna. Du kan alltid återkomma till de grundläggande kurserna när du stöter på ett hinder när det gäller teoretisk kunskap.

Outline of Software Engineering Modules

Fundamental Courses

Modul 1: Lär dig grunderna i Python (1 månad)

  • Lär dig syntaxen i Python
  • Lär dig loopar
  • Lär dig objektorienterad programmering

Modul 2: Datastrukturer (2 månader)

  • Denna kurs behandlar viktiga datastrukturer som länkade listor, staplar, köer, binära träd och hashtabeller samt sök- och sorteringsalgoritmer som binär sökning, quicksort, mergesort, insertionssortering osv.
  • Datastrukturer är viktiga eftersom de gör det möjligt för oss att förbättra prestandan i vår kod genom att använda den bästa datatypen för vår kod.
  • Den kurs i datastrukturer som jag har rekommenderat är i Java eftersom den tvingar oss att övergå från ett enkelt språk, python, till ett mer utförligt språk. Dessutom är Java bra för att lära sig objektorienterad programmering och datastrukturer.

Modul 3: Algoritmer (2 månader)

  • Det här är den andra delen av en tvådelad serie av kostnadsfria online-kurser på Coursera som täcker datastrukturer och algoritmer och som ges av Robert Sedgewick och Kevin Wayne, som båda är professorer i datavetenskap.
  • I den här delen kommer du att lära dig om algoritmer för grafen och strängbearbetning.
  • Du kommer också att lära dig några avancerade datastrukturer och algoritmer som används vid programutveckling.

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

  • Databasskursen lär dig i princip hur data lagras och hur du kan hämta dessa data för att utföra programmeringsfunktioner.

Modul 5: Nätverk (1 månad)

  • Att gå en nätverkskurs är inte särskilt viktigt, så du kan hoppa över den om du vill. Men om du är intresserad av cybersäkerhet är det absolut en viktig kurs

Praktiska kurser

Modul 6: Vecka 9-10 (Webbutveckling) (2 månader)

  • Teman är bland annat databasdesign, skalbarhet, säkerhet och användarupplevelse. Genom praktiska projekt lär du dig att skriva och använda API:er, skapa interaktiva användargränssnitt och utnyttja molntjänster som GitHub och Heroku. Vid kursens slut kommer du att ha kunskap och erfarenhet av principer, språk och verktyg som ger dig möjlighet att utforma och distribuera applikationer på Internet.
  • Personligen var detta min favoritkurs för webbutveckling eftersom de går igenom front end och back end och det är mycket väl förklarat. De lär dig HTML, CSS, Javascript och PHP.
  • Detta är en bra resurs för inspiration till webbplatser: https://github.com/melanierichards/just-build-websites

Modul 7: Utveckling av mobila appar ( välj den du gillar mest) (2 månader)

  • IOS
  • Android
  • Flutter (Min föredragna metod för app-utveckling)
  • Personligen har jag inte lärt mig IOS-utveckling tidigare. Men om man jämför mellan android och flutter är flutter snabbare att utveckla och skapa prototyper med och därför föredrar jag flutter

Fördjupade kurser

Modul 8: Mjukvaruarkitektur (2 månader)

  • I den här kursen får du lära dig att representera en mjukvaruarkitektur med hjälp av visuella verktyg som UML, vilket är mycket viktigt för att kommunicera arkitekturen med aktieägare såväl som med utvecklare som ska genomföra den.
  • Du kommer också att lära dig några standardarkitekturer, deras kvaliteter och kompromisser. Kursen talar också om hur konstruktioner utvärderas, vad som gör en bra arkitektur till en bra arkitektur och hur arkitekturen kan förbättras.

Modul 9: Programvaruteknik (1 månad)

  • När du har slutfört den här kursen kommer du att kunna
  1. tillämpa centrala programvaruteknikmetoder på konceptuell nivå för ett givet problem.
  2. Gemenskapligt jämföra och kontrastera traditionella, agila och lean-utvecklingsmetoder på en hög nivå. Dessa inkluderar vattenfall, Rational Unified Process, V-modellen, inkrementella modeller, spiralmodeller och en översikt över det agila tänkesättet
  3. Föreslå en metodik som är bäst lämpad för en given situation

Optionellt

Maskininlärning

  • Jag har faktiskt rekommenderat en mer teoretisk kurs i maskininlärning av Andrew Ng
  • Även om den är något föråldrad, han lär ut konceptet bra och är fortfarande en av de bästa maskininlärningskurserna som finns efter många år.

Deep Learning

  • I fem kurser lär du dig grunderna för Deep Learning, förstår hur man bygger neurala nätverk och lär dig hur man leder framgångsrika maskininlärningsprojekt. Du kommer att praktisera alla dessa idéer i Python och i TensorFlow, som de kommer att lära ut.
  • För närvarande är jag mitt uppe i den här kursen och den presenteras på ett enkelt sätt att förstå. En annan bra punkt är att Andrew Ng använder Python istället för octave.
  • En annan bra gratis resurs är fast.ai

Slutsats

Och även om jag har rekommenderat modulerna baserat på universitetskurser kan du blanda och matcha för att skapa den bästa kursplanen för dig själv. Om den här artikeln har hjälpt dig, hjälp mig gärna att dela den med dina vänner! Om du vill veta mer om mig och vad jag gör kan du besöka mig på min webbplats http://www.chiayong.me/

.

Lämna ett svar

Din e-postadress kommer inte publiceras.