Mina favoritkurser för att lära sig datastrukturer och algoritmer på djupet

av javinpaul

Datastrukturer och algoritmer är några av de viktigaste ämnena för programmerare, både för att få ett jobb och för att klara sig bra på ett jobb. Goda kunskaper om datastrukturer och algoritmer är grunden för att skriva bra kod.

Om du är bekant med viktiga datastrukturer, t.ex. array, strängar, länkade listor, träd, kartor, och avancerade datastrukturer som tries, och självbalanserade träd som AVL-träd, osv, vet du när du ska använda vilken datastruktur och kan beräkna CPU- och minneskostnaden för din kod.

Även om du inte behöver skriva en egen array, länkad lista eller hashtable, eftersom alla större programmerings-SDK tillhandahåller dem, t.ex. JDK eller C++ STL-biblioteket, måste du förstå dem så att du kan använda dem på rätt ställe.

Användning av rätt datastruktur kan drastiskt förbättra prestandan hos en algoritm.

I själva verket borde vi alla lära oss datastrukturer och algoritmer i våra skolor och högskolor, men det behandlas sällan. De flesta programmerare, inklusive jag själv, får bara en datastruktur presenterad i våra kurser i datavetenskap, men vi har inte riktigt lärt oss hur viktiga de är i verkligheten, och därför har vi inte förstått dem bättre.

För oss är de bara algoritmer och datastrukturer t.ex. något koncept, inte ett verktyg som man kan använda för att skriva bra program. Vi visste inte att Facebook skulle använda dem för att lagra våra uppgifter eller att Google skulle använda dem för att lagra webbsidor och länka till sökfrågor.

Hursomhelst, det är aldrig för sent.

Om du tycker att dina kunskaper om datastrukturer inte håller måttet eller om du vill förbättra dina kunskaper om datastrukturer, då har du kommit till rätt ställe.

Tidigare delade jag med mig av några gratis böcker för att lära sig datastrukturer och algoritmer, och i den här artikeln kommer du att lära dig om några av de bästa kurserna för datastrukturer och algoritmer som finns gratis online.

Gratis kurser för att lära sig datastrukturer och algoritmer

Här är min lista över några av de bästa kurserna för att lära sig datastrukturer och algoritmer, som också är gratis. Många programmerare tror att gratis resurser inte är bra, vilket inte är sant.

Även om de ibland inte når upp till de betalda resursernas kvalitet och täckning är de faktiskt de bästa resurserna att börja med.

Du kan använda dessa kurser för att bekanta dig med de viktigaste datastrukturerna och lära dig några grunder.

En del av dem är särskilt bra ur intervjusynpunkt, så du kan använda dem tillsammans med någon bok som du använder för att förbereda dig inför din anställningsintervju inom programmering.

Kurs #1: Data Structure Concepts in C

Det här är en annan kostnadsfri online-utbildningskurs i algoritmer och datastrukturer, som syftar till att lära ut grundläggande datastrukturer inom datorprogrammering.

De datastrukturer som lärs ut i kursen är Stack, Queue och Linked List med hjälp av programmeringsspråket C.

Det primära målet med den här kursen är att få studenter och mjukvaruingenjörer att visualisera hur olika datastrukturer fungerar.

Koncept för datastrukturer i C

Det här är inte en uttömmande kurs, men du kommer att få lära dig om Stack, Queue och Linked List.

Samt sett är det en bra kurs för programmerare som är nya inom datastrukturer och för dem som just har lärt sig ett programmeringsspråk och vill lära sig grunderna i hur datastrukturer fungerar.

Kurs nr 2: Algoritmer del 1 – Coursera

Det här är den första delen av en tvådelad kursserie som täcker algoritmer och datastrukturer på Coursera av Robert Sedgewick.

I den här delen kommer du att lära dig 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 etc.

Algoritmer del 1

Du kommer också att lära dig om centrala datastrukturer och algoritmer som används i vardagliga tillämpningar och förstå de avvägningar som är förknippade med valet av varje datastruktur tillsammans med traverserings-, hämtnings- och uppdateringsalgoritmer.

Alla funktioner i den här kursen är tillgängliga gratis, men den erbjuder inte något certifikat när du har slutfört kursen.

Kurs nr 3: Algoritmer – del 2

Detta är den andra delen av en tvådelad serie av gratis online Coursera-kurser som täcker datastrukturer och algoritmer av Robert Sedgewick och Kevin Wayne, båda är professorer i datavetenskap.

Robert Sedgewick är också författare till boken Algorithms 4th Edition, en av de populäraste böckerna om algoritmer för Javautvecklare.

I den här delen kommer du att lära dig om algoritmer för bearbetning av grafer och strängar.

Du kommer också att lära dig några avancerade datastrukturer och algoritmer som används i applikationsutveckling.

När vi talar om det sociala beviset är både Algorithms Part 1 och Algorithms Part 2 starkt rekommenderade kurser och har imponerande omdömen och betyg.

Algorithms – Part 2

Kurs #4. Datastrukturer i Java

Detta är en introduktionskurs online om datastrukturer, algoritmer och komplexitetsanalyser. Den kommer att lära dig design, implementering och analyser av grundläggande datastrukturer med hjälp av språket Java.

Det bästa med den här kursen är antalet praktiska exempel och att den fokuserar på intuition snarare än formler och matematiska bevis.

Datastruktur i Java

Kursen ger en bra introduktion till ”komplexitetsanalys”, som gör det möjligt att upptäcka ett dåligt (och ett bra) presterande program, även utan att det behöver exekveras.

Det är allt om några av de gratis kurser i datastruktur och algoritmer som finns tillgängliga online. Du kan använda dessa kurser för att lära dig datastrukturer och algoritmer i din egen takt.

De är kanske inte alla heltäckande, men de ger en bra introduktion. När du har gått igenom dessa kurser kan du välja en bra bok som Introduction to Algorithms för att ytterligare komplettera dina kunskaper.

Kurs #5. Easy to Advanced Data Structures

Uppdatering: Denna kurs är inte längre gratis, men det är en bra kurs och kan vara värd det för dig. Den här datastruktur- och algoritmkursen från Udemy är för alla som vill lära sig datastrukturer från en absolut grundläggande till avancerad nivå.

Denna kurs förväntar sig inte att du har några förkunskaper om datastrukturer, men en grundläggande förkunskap om Java är till hjälp.

Författaren @William Fiset är mjukvaruingenjör på Google och en tidigare ACM-ICPC världsfinalist och har utmärkt datorprogrammering och problemlösningsförmåga.

På tal om sociala bevis, kursen har mer än 25K studenter och ett genomsnittligt 4,1 betyg från 683 betyg vilket är imponerande.

Kort sagt är det en komplett guide för att lära sig allt som finns att veta om datastrukturer.

Easy to Advanced Data Structures

Det här är också en idealisk kurs för datavetenskapsstudenter och yrkesverksamma mjukvaruproffs som vill lära sig datastrukturer och algoritmer ur ett intervjuperspektiv.

Så om du vill få ett jobb på produktbaserade företag som Amazon, Google, Microsoft eller Facebook kan du använda den här kursen för att starta dina förberedelser.

Fortsatt lärande

  • Datastrukturer och algoritmer: Deep Dive Using Java
  • Data Structure and Algorithms – Part 1 and 2
  • 10 Books to Prepare Technical Programming/Coding Job Interviews
  • 10 Algorithm Books Every Programmer Should Read
  • Top 5 Data Structure and Algorithm Books for Java Developers
  • From 0 to 1: Datastrukturer & Algoritmer i Java
  • Analys av datastrukturer och algoritmer – Jobbintervju

Slutanmärkningar

Tack. Du kom fram till slutet av artikeln. Lycka till med din programmeringsresa! Det kommer säkerligen inte att bli lätt, men genom att följa dessa kurser är du ett steg närmare att behärska datastruktur och algoritmer än andra.

Om du gillar den här artikeln, dela den gärna med dina vänner och kollegor, och glöm inte att följa javinpaul på Twitter!

Lämna ett svar

Din e-postadress kommer inte publiceras.