Un programmeur est quelqu'un qui connaît le langage de programmation utilisé dans un projet. Il crée du code. De plus en plus de code. C'est en quelque sorte le niveau auquel on arrive dans une école médiocre. Vous pouvez écrire du code, il fonctionne le plus souvent, la plupart du temps.
Un ingénieur logiciel est quelqu'un qui peut effectuer le processus complet de création et de support des logiciels dans un processus moderne et bien structuré. Cette personne peut formuler et comprendre les exigences, créer une conception, examiner les conceptions créées par d'autres. Elle peut écrire du code et le réviser. Elle peut créer des cas de test pour un système de test automatisé. Elle peut corriger des bogues. Ils peuvent répondre aux problèmes qui surviennent sur le terrain après la sortie d'un produit. Ils peuvent comprendre et gérer le processus de création de la prochaine version d'un logiciel.
Le niveau de compétences et de connaissances qu'il faut pour être un bon ingénieur logiciel est environ 3X celui de la programmation.
La programmation est un sous-ensemble du génie logiciel. Si vous voulez être un bon ingénieur logiciel, la programmation est la compétence la plus fondamentale et la plus importante. Vous pouvez apprendre vous-même à programmer. Lisez quelques livres, écrivez un peu de code. Il faut généralement une certaine expérience professionnelle pour apprendre le génie logiciel.
Lorsqu'une entreprise de haute technologie commence à avoir des difficultés liées aux affaires, c'est probablement parce qu'elle n'a pas compris la distinction entre la programmation et le génie logiciel.
Un ingénieur ne commence pas à construire quelque chose avant de s'être assuré que la chose peut être construite, et qu'elle fonctionnera. C'est comme la construction d'un pont. Pas de coulage de béton tant que les calculs ne sont pas terminés, on est sûr que ça va marcher.
Les programmeurs ont tendance à commencer à coder tout de suite. Parfois, cela fonctionne.