Pourquoi LeetCode est-il si important pour un ingénieur logiciel ? Pourquoi les universités ne nous apprennent-elles pas à résoudre les problèmes de LeetCode ?


Vous faites une erreur dans votre première question.

LeetCode n'est pas vraiment important pour un ingénieur logiciel en aucune façon. Presque tous les ingénieurs logiciels ne sont jamais confrontés à des questions similaires à LeetCode dans leur travail quotidien. Vous n'obtenez pas d'augmentation de salaire ou de promotion pour votre capacité à résoudre ces énigmes.


On peut dire que LeetCode est important pour les personnes qui cherchent un emploi dans ce domaine. Les nouveaux diplômés, les chômeurs et ainsi de suite. C'est aussi un peu exagéré, car LeetCode n'est pas le seul site que vous pouvez utiliser pour développer des compétences liées à la résolution de telles tâches, et toutes les entreprises ne posent pas ce genre de questions lors des entretiens.

Pourquoi les universités ne vous apprennent-elles pas à résoudre ces problèmes ? D'un côté - elles le font. Pendant les années universitaires, vous devriez apprendre les algorithmes, les structures de données, etc. et vous devriez avoir une bonne maîtrise des concepts de base de la CS. Avec ces connaissances, pour les questions d'entretien qui sont "bonnes" et qui n'exigent pas que vous connaissiez des astuces très spécifiques difficiles à trouver par vous-même, vous devriez être capable de les résoudre par vous-même, ou au moins de trouver plusieurs idées sous-optimales pour prouver que votre cerveau est capable de quelque chose. Je me souviens que je discutais d'un problème avec un autre gars de Google pendant mon stage, et quand il a eu une bonne idée, j'ai dit : "Oui, c'est logique, je connais ce problème grâce à la programmation compétitive... Mais je pensais que tu n'avais jamais fait de programmation compétitive, alors comment l'as-tu trouvé ? Sa réponse a été : Il ne s'agit pas de programmation compétitive, il s'agit d'utiliser le bon sens.

D'un autre côté - à l'université, vous ne pouvez probablement pas vous attendre à un cours axé spécifiquement sur le traitement de telles tâches. Honnêtement, je ne sais même pas quel est le but principal de l'enseignement universitaire - mais je supposerai qu'ils essaient de vous enseigner les choses requises pour être un bon ingénieur logiciel, plutôt que de vous préparer à la recherche d'emploi. Maintenant, vérifiez le début de ma réponse - vous n'avez pas besoin de LeetCode en tant qu'ingénieur logiciel... Il est donc logique de vous enseigner quelque chose d'autre à la place, non ?

.