W jakiej kolejności uczyć się algorytmów i struktur danych?
Najpierw struktury liniowe (stos, kolejka, lista wiązana), potem tablice mieszające i drzewa, potem algorytmy sortowania, potem rekurencja jako sposób myślenia, potem programowanie dynamiczne i grafy, a dopiero na końcu regularna porcja zadań rekrutacyjnych. Zadania przed strukturami to błąd, który popełnia większość samouków: nie rozpoznasz, że pytanie wymaga kopca, bez wcześniejszego zbudowania własnego. Właśnie tak, w tej kolejności, ułożona jest ta ścieżka.
Jaki język jest najlepszy do algorytmów i struktur danych?
Ten, w którym będziesz przechodzić rozmowę rekrutacyjną. W Pythonie pisze się najszybciej i wybiera go większość osób; Javy i C++ używa wiele dużych firm i programistów sportowych; Go i Rust są coraz częściej akceptowane. Kursy struktur danych, sortowania, grafów i pakiety rekrutacyjne są dostępne w czternastu językach z tymi samymi lekcjami i przypadkami testowymi (programowanie dynamiczne i seria rekrutacyjna w Pythonie są tylko w Pythonie, operacje na bitach w C++), więc wybierz jeden, a jeśli praca wymaga innego, powtórz w nim kurs. Za drugim razem zajmuje to kilka dni.
Czy ta ścieżka wystarczy do przygotowania się do rozmów technicznych?
To materiał, z którego czerpie każda rozmowa techniczna, nauczany przez budowanie, a do tego praktyka: dziesięć pakietów wyzwań rekrutacyjnych, seria rekrutacyjna w Pythonie i dwa zbiory zadań programistycznych na końcu. Nie zastąpi jednak liczby rozwiązanych zadań: po ukończeniu ścieżki dalej rozwiązuj nowe zadania na czas, a projektowanie systemów traktuj jako osobny temat. To, co tu jest, pokrywa większość rekrutacji na stanowiska juniorskie i midowe.
Ile trwa nauka algorytmów i struktur danych?
Około trzech do czterech miesięcy przy godzinie dziennie na całą ścieżkę: trzy do czterech tygodni na pierwsze pięć struktur danych, trzy na kolejne pięć, dwa do trzech na algorytmy sortowania, trzy na rekurencję, programowanie dynamiczne i operacje na bitach, dwa do trzech na algorytmy grafowe, a pakiety rekrutacyjne tak długo, jak chcesz kontynuować. Przy programowaniu dynamicznym większość osób zwalnia; to poprzedzający je kurs rekurencji sprawia, że wszystko nagle staje się jasne.
Czy do nauki algorytmów potrzebuję matematyki?
Mniej, niż się obawiasz. Musisz swobodnie posługiwać się logarytmami (żeby czytać notację Big-O), podstawami kombinatoryki i ideą dowodu indukcyjnego, której w praktyce uczy rekurencja. Żadnej analizy matematycznej ani algebry liniowej. Jeśli rozumiesz, dlaczego wyszukiwanie binarne w każdym kroku dzieli problem na pół, masz matematykę, której potrzebuje ta ścieżka.
Czy kurs algorytmów i struktur danych jest darmowy?
Każdy kurs na ścieżce jest darmowy: lekcje, edytor w przeglądarce, przypadki testowe, podpowiedzi AI i certyfikaty w kursach, które je wydają. Pro usuwa dzienny limit energii i dodaje nielimitowaną pomoc AI; żadna treść z tej strony nie wymaga Pro.
Czy warto uczyć się struktur danych teraz, gdy AI pisze kod?
Bardziej niż wcześniej. Rozmowy rekrutacyjne nadal je sprawdzają, bo to najszybszy sposób, żeby ocenić, czy ktoś potrafi przeanalizować program, a nie tylko poprosić o niego AI. W pracy osoba, która wie, że wyszukiwanie w tablicy mieszającej ma stały czas, a zagnieżdżona pętla nie, to ta, która potrafi przeczytać, co wygenerowało AI, i ocenić, czy przetrwa dziesięć milionów wierszy.