Il est tout à fait possible de consacrer la majeure partie / la totalité de votre carrière à un travail important et utile, avec une connaissance minimale des algorithmes et des structures de données.
Le niveau minimum de connaissance des algorithmes et des infrastructures de données, pour réussir, vous obligera à:
- être au courant de la plupart d'entre eux (y compris en lire occasionnellement de nouveaux à mesure qu'ils sortent)
- savoir où trouver de bonnes implémentations éprouvées et fonctionnelles
- être capable de comparer les algorithmes et leur utilité
- pouvoir en copier correctement un à partir d'un exemple open-source dans votre environnement spécifique, avec un peu de peaufinage
Il n'y a pas de * maximum * . Si vous le souhaitez, vous pouvez porter votre étude au niveau du doctorat et au-delà. Son utilité est directement liée au type d'emplois qui vous intéressent et au type de travail que vous trouvez le plus intéressant et le plus gratifiant.
Cela dit, à titre indicatif (mais pas absolu), plus le langage, le cadre et l'application sur lesquels vous travaillez seront bas, plus gourmands en ressources et moins automatisés, plus le niveau de compétence requis sera élevé aux algorithmes et aux structures de données. Par exemple, implémenter l'algorithme d'Ukkonen dans l'assemblage signifiera probablement, mais pas nécessairement, une maîtrise de l'algorithme et des structures de données impliquées.
Dans votre situation spécifique, passant d'un environnement de développement Java à un travail sur les iO, toutes choses étant égales par ailleurs, attendez-vous à une demande légèrement plus élevée sur votre compréhension générale des algorithmes et des structures de données. Vous voudrez pouvoir exécuter efficacement sur un appareil avec moins de ressources disponibles. Attendez-vous également à ajouter quelques nouvelles catégories à votre arsenal - plus particulièrement, vous voudrez en savoir plus sur la gestion de la mémoire.