Cette année marque ma cinquième année en tant qu'ingénieur logiciel. Concernant les choses suivantes, je pense souvent : si seulement je les avais connues lorsque je suis entré pour la première fois dans ce domaine, j'aurais pu éviter bien des détours et accomplir plus que ce que j'ai fait jusqu'à présent. Hélas, on ne peut pas revenir sur le passé, alors je veux les partager ici avec tout le monde, en particulier les nouveaux venus qui débutent tout juste dans ce domaine. Veuillez examiner attentivement si vous comprenez ces 8 choses.
1. De bonnes compétences en communication.
La gestion d'ingénierie est une activité d'équipe, même si parfois l'équipe n'est composée que de vous seul. Avec autant de choses nécessitant une compréhension mutuelle à chaque instant, la communication devient le plus grand problème. 90% de la gestion d'ingénierie, c'est de la communication. Par exemple, nous devons expliquer ce qu'est un bug, comment le diagnostiquer efficacement et comment exprimer pleinement nos idées complexes aux autres. La communication est le facteur le plus critique de la réussite d'un projet. Une communication inefficace ne mène qu'à une énorme perte de temps et d'efforts.
2. Fondements de l'informatique.
Pour devenir un excellent programmeur, une base en informatique est essentielle. Mais honnêtement, l'informatique et le génie informatique sont vraiment deux choses différentes. Cependant, pour devenir un excellent ingénieur, vous avez besoin de la curiosité d'étudier les tendances du développement informatique et le fonctionnement des ordinateurs, y compris une compréhension approfondie des pièges potentiels des nouvelles tendances et de quelques solutions alternatives. Cela vous donne les moyens de communiquer avec d'autres ingénieurs. Les algorithmes, sauf en entretien, ne sont pas très utiles dans d'autres situations. Je veux dire, dans la plupart des cas, disposer de bibliothèques de classes suffit. Mais cela ne signifie pas que vous pouvez complètement ignorer les structures de données et les algorithmes. De plus, le raisonnement sur le code et l'optimisation restent importants, en particulier lors de la mise à l'échelle.
3. Apprendre à lire le code.
L'importance d'écrire du code est connue de tous, sans que je le dise, mais peu ont probablement entendu parler de la lecture de code. Cela pourrait être l'une des compétences les plus précieuses à maîtriser. Quant à celle-ci, jusqu'à présent, je suis encore en train de m'efforcer d'atteindre l'objectif. À ce propos, si vous avez la capacité de voir l'essence des choses à travers des phénomènes complexes, alors vous n'êtes pas loin de devenir un excellent ingénieur.
4. Apprendre UNIX et Linux.
Ces deux-là sont presque partout, donc ils valent vraiment la peine d'être appris. Ils nous permettent de manipuler rapidement les ordinateurs via la ligne de commande. Si nécessaire, vous pouvez également installer des paquets Linux et configurer des serveurs. Vous pouvez aussi éditer rapidement avec vi (c'est vrai, vi. Moi-même, je suis un utilisateur d'Emacs). Un autre point important est que les utilitaires UNIX peuvent faire gagner beaucoup de temps. De plus, nous devons savoir utiliser sed, grep, find, les pipes, et écrire du code en utilisant bash/zsh de base.
5. Comprendre les éditeurs de texte.
Les ingénieurs logiciels sont des maîtres de la manipulation de texte. Même Emacs et vi, aujourd'hui considérés comme des antiquités, restent des éditeurs que les ingénieurs doivent apprendre. Vous devriez être compétent dans au moins l'un des deux, car ils ont des philosophies différentes, et comprendre l'un d'eux vous permettra non seulement d'écrire du code plus rapidement, mais aussi de ne pas être enfermé dans un environnement particulier. N'utilisez pas seulement un éditeur ; faites-le vous obéir, automatisez-le, adaptez-le à vos propres raccourcis clavier et écrivez des scripts qui résolvent des problèmes.
6. L'état d'esprit d'automatisation.
Parce que le copier/coller est une forme d'automatisation, nous pouvons certainement écrire des scripts pour le faire. Écrire des scripts sans prétention rendra la programmation plus intéressante. Vous pouvez peut-être terminer une journée de travail fastidieux en seulement 30 minutes. L'automatisation peut rationaliser les processus et aussi nous permettre d'apprendre beaucoup de nouvelles choses.
7. Comprendre la gestion de versions.
J'aime utiliser git pour tout. Malheureusement, je n'avais aucune idée d'une si bonne idée lorsque j'étais à l'école ; quelle honte. La gestion de versions nous permet d'expérimenter hardiment avec le code, car si quelque chose ne fonctionne pas, vous pouvez simplement le restaurer à son état d'origine ou annuler la saisie. C'est si facile !
8. Travaillez sur un petit projet qui vous est propre.
C'est un très bon entraînement, même si parfois vous pouvez vous sentir épuisé et vouloir abandonner. Parce que nos produits sont abstraits, contrairement à la construction d'un pont où vous pouvez voir un produit fini tangible, nous ne pouvons que continuer à coder, ce qui est absolument ennuyeux. Ne voulez-vous pas vous concentrer sur un projet que vous aimez, le traiter comme votre propre enfant, faire de votre mieux, et au cours du processus apprendre de nouvelles connaissances et apprendre à utiliser des outils — une opportunité que vous n'auriez jamais au travail ? La réponse est, bien sûr, OUI.
Je ne parviens pas moi-même à appliquer chaque point ci-dessus à chaque fois, mais je souhaite tout de même que, lorsque j'ai fait mes premiers pas dans ce domaine, quelqu'un m'ait dit ces paroles sincères. J'en serais vraiment reconnaissant.
Lien de traduction : http://www.codeceo.com/article/8-things-new-programmer-know.html