Je vais concentrer ma réponse sur la dernière partie ici car elle se rapporte à quelque chose auquel je réfléchis depuis quelques années maintenant:
J'aime être ingénieur logiciel, mais j'ai l'impression qu'il n'y a pas de bonne façon d'évaluer les compétences. Comment puis-je savoir si je suis vraiment mauvais ou si j'ai juste besoin de continuer à m'entraîner davantage?
L ' échelle des nombres de Norris est une mesure par laquelle les individus et les organisations peuvent se mesurer.
Les nombres de Norris commencent à 20 et augmentent par multiples de 10. Ils correspondent à une meilleure compréhension de la conception fondamentale et de la structure de toute application logicielle donnée.
Pour les besoins de cette réponse, le nombre de Norris est une mesure des lignes de code d'application, moins les bibliothèques, qu'un individu peut écrire et maintenir par lui-même.
Tout le monde commence à 20 Norris. La plupart des programmeurs formels déplacent jusqu'à 200 Norris assez rapidement. Les programmes 200 Norris sont généralement des scripts quick-n-dirty qui font quelque chose d'important mais qui ne font qu'une chose. De tels programmes sont «jetés ensemble», ce qui signifie qu'ils ont tendance à manquer de formatage de code et de vérification des erreurs appropriés - en particulier de la part des nouveaux programmeurs. De nombreux programmeurs passent à 2000 Norris lorsqu'ils commencent à créer des programmes / scripts plus volumineux.
Passer de 2000 à 20 000 Norris en dehors d'un environnement d'équipe est beaucoup plus difficile. Vous devez créer une application sérieuse à ce stade. De nombreuses portes s'ouvrent à 20000 Norris (par exemple, de grands projets open source). Dépasser 20 000 à 200 000 Norris au niveau individuel est assez difficile car il n'y a pas beaucoup d'applications logicielles construites par une seule personne avec plus de 200 000 lignes de code application . C'est généralement trop pour une seule personne à maintenir sainement et activement.
Norris indique également le niveau de confort. A quel moment pouvez-vous rédiger une application "dans votre sommeil"? Autrement dit, la quantité d'effort mental requis pour passer de l'idée au déploiement. Ceux qui obtiennent un diplôme CS ont tendance à être 200 et moins souvent 2000 Norris. Il est très rare de trouver 20 000 développeurs Norris dès la sortie de l'université. Ces développeurs commencent généralement à écrire des logiciels bien avant l'université et ils considèrent le diplôme comme un morceau de papier très cher.
Un nombre de Norris organisationnel est similaire mais correspond au nombre moyen de lignes de code d'application par application dans toute l'organisation. La plupart des organisations comptent 2 000 ou 20 000 Norris. Les petites entreprises dotées d'un service informatique qui développe de petits scripts pour l'organisation ne comptent généralement pas plus de 200 Norris. Une organisation peut également avoir une moyenne de 2 000 Norris, mais peut avoir une ou deux applications de 20 000 Norris qui se cachent à l'intérieur et qui augmentent légèrement la moyenne, mais pas assez pour l'amener à 20 000 Norris.
Si une organisation compte 2 000 Norris et que l'individu a à peine 200 Norris, l'individu aura du mal à suivre le rythme (c'est-à-dire que ce sera un défi de rester à flot). Si une organisation compte 20000 Norris ou embauche pour une candidature de 20000 Norris et si une personne est 200 Norris, la personne ne sera probablement pas embauchée sans se frayer un chemin dans le poste, mais la personne ne survivra de toute façon pas plus de quelques semaines. Si une organisation est de 200 Norris et que l'individu est de 2000 Norris, l'individu s'ennuiera probablement et aura du mal à rester intéressé par les projets à venir (c'est-à-dire un manque de défi). De plus, quelqu'un à 20 000 Norris découvrira régulièrement que communiquer avec quelqu'un à 20, 200 et même 2 000 Norris est gênant ou difficile. La personne au niveau inférieur du nombre de Norris ne comprend tout simplement pas le but de certaines décisions et peut essayer de «refactoriser le code» ou appeler la personne à 20 000 Norris un «mauvais développeur de logiciels». D'après mon expérience, le seul "mauvais" développeur de logiciels est la personne qui (involontairement) écrit du code contenant des vulnérabilités de sécurité et participe ensuite à un déni actif lorsque les vulnérabilités sont signalées par des pairs.
Norris Number only peut, tant que toutes les parties sont honnêtes à ce sujet, décider d'embaucher (ou même de licencier) une personne. Il est également possible qu'un développeur individuel devienne trop grand pour une organisation ou vice versa. Lorsqu'on se fie à une métrique de Norris honnête, le test de codage en entretien peut être ignoré, ce qui ne peut vraiment mesurer que 200 Norris dans le temps alloué à l'interview moyenne. Norris Number pourrait être un très bon filtre pour un moteur de recherche d'emploi pour les développeurs de logiciels et je soupçonne fortement que d'autres secteurs ont des indicateurs similaires qu'ils pourraient exploiter de la même manière.
Au lieu de vous entraîner aux problèmes , qui ont tendance à se concentrer sur la conception algorithmique, concentrez-vous plutôt sur des projets . Quels projets vous intéressent? Créez une liste et commencez à construire CES projets pendant votre temps libre. Le but du développement logiciel est de créer ce qui vous intéresse. Le logiciel est une forme d'art remplie d'élégance et de beauté. Oui, vous pouvez aussi être payé pour cela, mais si vous ne faites pas déjà ce que vous aimez en dehors d'un travail formel, vous devriez commencer à le faire. Sinon, vous travaillerez pendant 40 ans et pourtant votre vie sera vide et dénuée de toute réussite personnelle.