Suosikkini ilmaisista kursseista, joilla opit syvällisesti tietorakenteita ja algoritmeja

by javinpaul

Tietorakenteet ja algoritmit ovat eräitä ohjelmoijien keskeisimpiä aiheita sekä työn saamiseksi että työssä pärjäämiseksi. Hyvä tietämys tietorakenteista ja algoritmeista on hyvän koodin kirjoittamisen perusta.

Jos tunnet keskeiset tietorakenteet, esim. array, merkkijono, linkitetty lista, puu, kartta, ja edistyneet tietorakenteet, kuten tries, ja itsetasapainoiset puut, kuten AVL-puut jne, tiedät, milloin kannattaa käyttää mitä tietorakennetta ja laskea koodisi suorittimen ja muistin kustannukset.

Vaikka sinun ei tarvitsekaan kirjoittaa omaa arraya, linkitettyä listaa tai hashtablea, koska jokainen merkittävä ohjelmoinnin SDK tarjoaa niitä, esim. JDK tai C++ STL-kirjasto, sinun on ymmärrettävä niitä, jotta voit käyttää niitä oikeassa paikassa.

Oikean tietorakenteen käyttäminen voi parantaa huomattavasti algoritmin suorituskykyä.

Todellisuudessa meidän kaikkien pitäisi opetella tietorakenteita ja algoritmeja kouluissa ja korkeakouluissa, mutta sitä käsitellään harvoin. Useimmat ohjelmoijat, minä mukaan lukien, tutustuvat tietorakenteisiin vain tietotekniikan kursseillamme, mutta emme oikeastaan oppineet niiden reaalimaailman merkitystä, emmekä siksi ymmärtäneet niitä paremmin.

Meille ne ovat vain algoritmeja ja tietorakenteita esim. jonkinlainen käsite, eivät työkalu, jota voi käyttää hyvien ohjelmien kirjoittamiseen. Emme tienneet, että Facebook käyttää niitä tietojemme tallentamiseen tai että Google käyttää niitä verkkosivujen tallentamiseen ja linkittämiseen hakukyselyihin.

Mikäli tahansa, koskaan ei ole liian myöhäistä.

Jos olet sitä mieltä, että tietorakenteiden tuntemuksesi ei ole kohdallaan tai haluat parantaa tietorakenteiden tuntemustasi, olet tullut oikeaan paikkaan.

Aiemmin kerroin joistakin ilmaisista kirjoista, joiden avulla voit oppia tietorakenteita ja algoritmeja, ja tässä artikkelissa tutustut joihinkin parhaisiin tietorakenne- ja algoritmikursseihin, jotka ovat saatavilla ilmaiseksi verkossa.

Vapaat kurssit tietorakenteiden ja algoritmien oppimiseen

Tässä on luetteloni joistakin parhaista kursseista, joiden avulla voit oppia tietorakenteita ja algoritmeja ja jotka ovat myös ilmaisia. Monet ohjelmoijat ajattelevat, että ilmaiset resurssit eivät ole hyviä, mikä ei pidä paikkaansa.

Vaikka ne eivät joskus yllä maksullisten resurssien laatuun ja kattavuuteen, ne ovat itse asiassa parhaita resursseja aloitukseen.

Voit käyttää näitä kursseja tutustuaksesi keskeisiin tietorakenteisiin ja opetellaksesi joitakin perusasioita.

Jotkut niistä ovat erityisen hyviä haastattelun kannalta, joten voit käyttää niitä minkä tahansa kirjan rinnalla, jota käytät valmistautuessasi ohjelmointityöhaastatteluun.

Kurssi #1: Tietorakenteiden käsitteet C:ssä

Tämä on toinen ilmainen algoritmi- ja tietorakenteiden verkkokurssi, jonka tavoitteena on opettaa perus tietorakenteet tietokoneohjelmoinnissa.

Kurssilla opetettavat tietorakenteet ovat Stack, Queue ja Linked List käyttäen C-ohjelmointikieltä.

Kurssin päätavoitteena on saada opiskelijat ja ohjelmistosuunnittelijat havainnollistamaan, miten erilaiset tietorakenteet toimivat.

Datarakenteiden käsitteet C:ssä

Kurssi ei ole tyhjentävä kurssi, mutta opit tuntemaan muun muassa Stackin, Queue:n ja Linked Listin.

Lyhyesti sanottuna tämä on hyvä kurssi ohjelmoijille, joille tietorakenteet ovat uusia ja niille, jotka ovat juuri oppineet ohjelmointikielen ja haluavat oppia tietorakenteiden toiminnan perusteet.

Kurssi nro 2: Algoritmit osa 1 – Coursera

Tämä on ensimmäinen osa kaksiosaisesta kurssisarjasta, joka käsittelee algoritmeja ja tietorakenteita Courseralla ja jonka on järjestänyt Robert Sedgewick.

Tässä osassa opit keskeiset tietorakenteet, kuten linkitetyt listat, pinot, jonot, binääripuut ja hash-taulukot, sekä haku- ja lajittelualgoritmit, kuten binäärihaku, quicksort, mergesort, insertion sort jne.

Algoritmit Osa 1

Oppaat myös keskeiset tietorakenteet ja algoritmit, joita käytetään jokapäiväisissä sovelluksissa, ja ymmärrät kunkin tietorakenteen valintaan liittyvät kompromissit sekä läpikäynti-, haku- ja päivitystoiminta-algoritmit.

Kaikki tämän kurssin ominaisuudet ovat saatavilla ilmaiseksi, mutta se ei tarjoa todistusta kurssin suorittamisesta.

Kurssi #3: Algoritmit – Osa 2

Tämä on toinen osa kaksiosaisesta ilmaisten Coursera-verkkokurssien sarjasta, jossa käsitellään tietorakenteita ja algoritmeja.Kurssin kirjoittajat ovat Robert Sedgewick ja Kevin Wayne, jotka molemmat ovat tietojenkäsittelytieteen professoreita.

Robert Sedgewick on myös kirjoittanut Algorithms 4th Edition -kirjan, joka on yksi suosituimmista Java-kehittäjille suunnatuista kirjoista.

Tässä osassa opit graafeja ja merkkijonoja käsitteleviä algoritmeja.

Oppiessasi opit myös joitakin edistyneempiä tietorakenteita ja algoritmeja, joita käytetään sovelluskehityksessä.

Sosiaalisesta todisteesta puheen ollen, sekä Algorithms Part 1 että Algorithms Part 2 ovat erittäin suositeltuja kursseja, ja niillä on vaikuttavia arvosteluja ja arviointeja.

Algorithms – Part 2

>Kurssi nro 4. Tietorakenteet Javassa

Tämä on datarakenteisiin, algoritmeihin ja kompleksisuusanalyyseihin perehdyttävä verkkokurssi. Se opettaa sinulle perustietorakenteiden suunnittelun, toteutuksen ja analyysit Java-kielellä.

Kurssin parasta antia on käytännön esimerkkien määrä ja se, että siinä keskitytään intuitioon eikä niinkään kaavoihin ja matemaattisiin todistuksiin.

Tietorakenteet Javassa

Kurssi antaa hyvän johdatuksen ”kompleksisuusanalyysiin”, jonka avulla on mahdollista havaita huonosti (ja loistavasti) suoriutuva ohjelma, vaikka sitä ei tarvitsisikaan suorittaa.

Tässä oli kaikki muutamista netissä saatavilla olevista maksuttomista tietorakenne- ja algoritmikursseista. Näiden kurssien avulla voit opetella tietorakenteita ja algoritmeja omaan tahtiisi.

Kaikki kurssit eivät ehkä ole kattavia, mutta ne tarjoavat hyvän johdannon. Kun olet käynyt nämä kurssit läpi, voit valita hyvän kirjan, kuten Johdatus algoritmeihin, täydentämään tietojasi.

Kurssi #5. Easy to Advanced Data Structures

Päivitys: tämä kurssi ei ole enää ilmainen, mutta se on loistava kurssi ja saattaa olla sinulle sen arvoinen. Tämä Udemyn tietorakenne- ja algoritmikurssi on tarkoitettu kaikille niille, jotka haluavat oppia tietorakenteita absoluuttiselta perustasolta edistyneemmälle tasolle.

Tämä kurssi ei edellytä sinulta mitään aiempaa tietämystä tietorakenteista, mutta Javan aiemmasta perustietämyksestä on hyötyä.

Kirjoittaja @William Fiset on Googlen ohjelmistoinsinööri ja entinen ACM-ICPC-maailmanfinalisti, ja hänellä on erinomaiset tietokoneohjelmointi- ja ongelmanratkaisutaidot.

Sosiaalisesta todisteesta puhuttaessa, kurssilla on yli 25K opiskelijaa ja 683:sta arvostelukerrasta keskimäärin 4,1 arvosanaa, mikä on vaikuttavaa.

Lyhyesti sanottuna se on täydellinen opas, jonka avulla voit oppia kaiken tietorakenteista.

Easy to Advanced Data Structures

Tämä on ihanteellinen kurssi myös tietojenkäsittelytieteen opiskelijoille ja työssäkäyville ohjelmistoalan ammattilaisille, jotka haluavat oppia tietorakenteita ja algoritmeja haastatteluperspektiivistä.

Jos siis haet työpaikkaa tuotepohjaisista yrityksistä, kuten Amazonista, Googlesta, Microsoftista tai Facebookista, voit käyttää tätä kurssia valmistautumisesi käynnistämiseen.

Jatko-opiskelu

  • Datarakenteet ja algoritmit: Deep Dive Using Java
  • Tietorakenteet ja algoritmit – Osa 1 ja 2
  • 10 kirjaa teknisen ohjelmoinnin/koodauksen työhaastatteluihin valmistautumiseen
  • 10 algoritmikirjaa, jotka jokaisen ohjelmoijan tulisi lukea
  • Top 5 tietorakenne- ja algoritmikirjaa Java-kehittäjille
  • Nollasta yhteen: Data Structures & Algorithms in Java
  • Data Structure and Algorithms Analysis – Job Interview

Closing Notes

Thanks. Pääsit artikkelin loppuun asti. Onnea ohjelmointimatkallesi! Siitä ei varmasti tule helppoa, mutta seuraamalla näitä kursseja olet askeleen lähempänä tietorakenteiden ja algoritmien hallintaa kuin muut.

Jos pidit tästä artikkelista, jaa se ystäviesi ja kollegojesi kanssa, äläkä unohda seurata javinpaulia Twitterissä!

Vastaa

Sähköpostiosoitettasi ei julkaista.