Cela pourrait être une occasion où il peut y avoir une distinction sémantiquement significative entre «programmeur» et «ingénieur logiciel». Dans ce contexte, plus précisément, nous constatons que vous connaissez plusieurs langages de programmation et technologies associées et que vous pouvez les utiliser pour obtenir les résultats souhaités. C’est une définition opérationnelle précise de «programmeur informatique».
Je me considère comme un ingénieur en logiciel. Dans la plupart des activités quotidiennes de mon travail, je fais probablement les mêmes choses que vous. J'utilise le langage informatique et les technologies associées pour produire le résultat souhaité. Cependant, j'ai une bonne compréhension des structures de données et des algorithmes, et j'estime que ces connaissances constituent un fondement fondamental de ma capacité à faire beaucoup plus.
Souvent, mais pas tous les jours, mon travail consiste à trouver une solution à des problèmes complexes pour lesquels il n’existe aucune solution évidente, rien qui ne soit directement pris en compte par les caractéristiques du cadre que j’utilise ou les capacités du langage que je travaille. avec. Pour cela, je dois analyser le problème et trouver une solution. Ce processus s’applique parfois à l’architecture à grande échelle.
Bien qu’une bonne compréhension de ces problèmes plus profonds soit nécessaire pour faire ce genre de travail, cela ne suffit pas . En d'autres termes, il ne suffit pas de savoir comment une table de hachage fonctionne ou pourquoi un tri de tas a de bonnes caractéristiques de performances pour être un architecte de systèmes ou un ingénieur en chef. C'est le point de départ logique, et à partir de là, vous pouvez commencer à creuser plus profondément, à voyager plus largement et à acquérir l'expérience nécessaire pour aborder des problèmes plus vastes.
Je suppose que pour répondre à votre question, vous devriez vous demander: "Qu'est-ce que je veux être? Où irai-je avec ma carrière?" Si vous êtes content de continuer à faire ce que vous faites, vous voudrez peut-être simplement apprendre suffisamment de structures de données et d'algorithmes pour répondre aux questions d'entrevue largement arbitraires auxquelles vous êtes confronté.
Si vous voulez progresser dans votre carrière et que vous en avez la passion essentielle, vous devez embrasser ces sujets aussi étroitement que possible. Si vous avez du temps pour travailler dessus, avec un esprit ouvert et un véritable enthousiasme, vous trouverez des choses merveilleuses et excitantes. Je n'oublierai jamais le jour où j'ai compris le tri rapide. Le sentiment d’excitation et de découverte a jalonné le cap pour le reste de ma vie, et je ne saurais en être plus reconnaissant. Maintenant, je ne peux pas imaginer faire autre chose que d’être un ingénieur en logiciel.
Bonne chance avec tout ce que vous choisissez.