Czy JavaScript nadaje się do nauki algorytmów i struktur danych?
Tak, szczególnie jeśli celujesz w stanowiska frontend albo full stack, gdzie to w nim będziesz mieć rozmowę. Warto wcześnie poznać trzy osobliwości: nie ma wbudowanego kopca ani kolejki, sort() porównuje jak łańcuchy znaków, chyba że przekażesz komparator, a każda liczba to 64-bitowa liczba zmiennoprzecinkowa, więc liczby całkowite powyżej 2^53 wymagają BigInt.
Czy JavaScript ma wbudowany kopiec albo kolejkę priorytetową?
Nie. Masz Array, Map, Set i ich słabe warianty, i to wszystko. Na rozmowie albo piszesz mały kopiec binarny, około trzydziestu linijek, albo mówisz, że sięgasz po gotowy, i podajesz jego koszty. Tak czy inaczej trzeba go wcześniej napisać. Krok drugi tej ścieżki to miejsce, w którym to robisz.
Dlaczego [10, 9, 1].sort() zwraca [1, 10, 9]?
Bo bez komparatora Array.prototype.sort zamienia elementy na łańcuchy znaków i porównuje je w kolejności UTF-16, a '10' wypada przed '9'. Liczby sortuj przez nums.sort((a, b) => a - b). To pierwszy błąd, na który trafia większość osób, gdy zaczyna pisać kod sortujący w JavaScript.
Czy na rozmowach na frontend pytają o algorytmy i struktury danych?
W wielu większych firmach tak: zwykle jedna albo dwie rundy z tablic, map haszujących, drzew i przechodzenia grafów, w JavaScript, obok rund o interfejsie i projektowaniu systemów. Mniejsze firmy częściej stawiają na zadania praktyczne. Tak czy inaczej świadomość, że wyszukiwanie w Map ma stały czas, a zagnieżdżona pętla po dwóch listach już nie, odróżnia działającą odpowiedź od szybkiej.
Które kursy z tej ścieżki nie są prowadzone w JavaScript?
Trzy: programowanie dynamiczne i seria rekrutacyjna w Pythonie są prowadzone w Pythonie, a operacje na bitach w C++. Są wymienione po krokach, każdy z linkiem, który otwiera go w jego własnym języku. JavaScript ma te same operatory bitowe, plus >>>, ale stosuje je do 32-bitowych liczb całkowitych, o czym warto pamiętać, przenosząc jakąś sztuczkę.
Czy muszę znać JavaScript, zanim zacznę tę ścieżkę?
Przynajmniej funkcje, tablice, obiekty i klasy. Jeśli to dla ciebie nowość, kurs JavaScript w Coddy omawia je najpierw, za darmo, a ta ścieżka zaczyna się tam, gdzie on się kończy.