JavaScript est-il adapté aux structures de données et aux algorithmes ?
Oui, surtout si tu vises des postes frontend ou full-stack, où c'est le langage dans lequel tu passeras l'entretien. Trois particularités sont à connaître tôt : il n'y a ni tas ni file natifs, sort() compare comme des chaînes sauf si tu lui passes un comparateur, et chaque nombre est un flottant 64 bits, donc les entiers au-delà de 2^53 nécessitent BigInt.
JavaScript a-t-il un tas ou une file de priorité natifs ?
Non. Tu as Array, Map, Set et leurs variantes faibles, et c'est tout. En entretien, soit tu écris un petit tas binaire, une trentaine de lignes, soit tu dis que tu en utiliserais un et tu donnes ses coûts ; dans les deux cas, il faut en avoir déjà écrit un. C'est à l'étape deux de ce parcours que tu le fais.
Pourquoi [10, 9, 1].sort() renvoie-t-il [1, 10, 9] ?
Parce que, sans comparateur, Array.prototype.sort convertit les éléments en chaînes et les compare dans l'ordre UTF-16, et '10' passe avant '9'. Trie les nombres avec nums.sort((a, b) => a - b). C'est le premier bug que la plupart des gens rencontrent quand ils commencent à écrire du code de tri en JavaScript.
Les entretiens frontend comportent-ils des questions de structures de données et d'algorithmes ?
Dans beaucoup de grandes entreprises, oui : en général une ou deux épreuves sur les tableaux, les tables de hachage, les arbres et le parcours de graphes, en JavaScript, à côté des épreuves d'interface et de conception de systèmes. Les entreprises plus petites misent davantage sur des exercices pratiques. Dans tous les cas, savoir qu'une recherche dans une Map se fait en temps constant et qu'une boucle imbriquée sur deux listes non, c'est ce qui distingue une réponse qui marche d'une réponse rapide.
Quels cours de ce parcours ne sont pas enseignés en JavaScript ?
Trois : la programmation dynamique et la série d'entretiens en Python sont enseignées en Python, et la manipulation de bits en C++. Ces trois cours figurent après les étapes, chacun avec un lien qui l'ouvre dans son propre langage. JavaScript a les mêmes opérateurs bit à bit, plus >>>, mais les applique à des entiers 32 bits, ce qu'il vaut mieux garder en tête quand tu portes une astuce.
Faut-il connaître JavaScript avant de commencer ce parcours ?
Au minimum les fonctions, les tableaux, les objets et les classes. Si c'est nouveau pour toi, le cours JavaScript de Coddy les couvre d'abord, gratuitement, et ce parcours prend le relais là où il s'arrête.