Articles

Les programmeurs doivent-ils apprendre Linux ?

Arrêtez-moi si vous avez déjà entendu celle-ci : « Les programmeurs n’utilisent que Linux. Les PC et les Mac sont pour les noobs ! »

Ouais, non.

Linux est un outil. Windows est un outil. MacOS est également un outil. Chacun est un système d’exploitation (OS) dont vous avez besoin pour rendre un ordinateur utile, et chacun a ses avantages et ses inconvénients. Le problème est que, tout comme de nombreux autres outils, ces OS populaires ont des tribus. Si Windows est DC Comics et macOS est Marvel, alors Linux est Dark Horse.

Uh, c’est quoi Linux, de toute façon?

Commençons par le début. (C’est l’un de mes endroits préférés pour commencer.) Si vous vous demandez si vous devriez apprendre Linux, vous pourriez probablement utiliser une introduction rapide à ce qu’est Linux. Alors que Windows et macOS sont des systèmes d’exploitation individuels que Microsoft et Apple vendent et supportent, ce qu’est Linux (et n’est pas) est un peu plus compliqué.

Bien avant en 1991, un programmeur nommé Linus Torvalds a publié un nouveau noyau qu’il a nommé Linux. Un noyau est, grosso modo, un programme informatique qui se trouve au milieu d’un système d’exploitation et qui contrôle les interactions entre le matériel et le logiciel. Il s’est inspiré d’Unix et d’un autre système d’exploitation similaire à Unix, appelé Minix. Comme vous pouvez le voir, les monikers qui riment avec Unix étaient déjà une chose, donc le noyau de Torvald s’est plutôt bien nommé.

Le noyau a rapidement gagné en popularité, et plus de programmeurs ont contribué à son projet. Bientôt, un nouveau système d’exploitation, également appelé Linux, s’est développé autour du noyau.

Mais une source ouverte doit être une source ouverte, et il n’y a pas – et il n’y aura jamais – qu’une seule version de Linux. Linux est une famille de systèmes d’exploitation, généralement appelés distributions ou distros. Une distribution comprend le noyau Linux et le reste des logiciels nécessaires pour rendre un ordinateur utilisable. Le site DistroWatch répertorie 100 distributions, mais il ne s’arrête là que parce que 100 est un joli chiffre rond.

developing an understanding of any major distribution gives you a significant set of skills that you can map over to any one of them.

Certaines des distributions les plus populaires sont Debian, Red Hat, Ubuntu et Fedora. Ubuntu est en fait basée sur Debian, et Fedora est basée sur Red Hat. Et, bien sûr, il y a CentOS, qui est également basé sur Red Hat, et Mint, qui est basé sur Ubuntu… Comme vous pouvez le voir, c’est compliqué. La bataille pour savoir quelle distro est la meilleure génère autant de chaleur et moins de lumière que les batailles sur les OS ou les bandes dessinées.

Donc, revenons à la question initiale. Lorsque vous demandez « Les programmeurs devraient-ils apprendre Linux ? », une des réponses possibles est « Lequel ? »

Mais ce n’est pas vraiment une réponse utile, n’est-ce pas ?

Donc, devrais-je apprendre Linux ?

Eh bien, cela dépend. Quels sont vos objectifs ?

C’est une question que vous devriez toujours garder à l’esprit lorsque vous rencontrez un outil ou une recommandation pour commencer à en utiliser un. Qu’avez-vous besoin d’apprendre, et le fait de passer du temps sur cet outil vous aidera-t-il à y parvenir ?

What are your goals? That's a question you should always keep in mind you come across a tool or a recommendation to start using one. What do you need to learn, and will spending time on this help you get there?

Linux est le système d’exploitation le plus largement utilisé pour les serveurs. Presque tous les sites web que vous visitez chaque jour fonctionnent sous Linux, tout comme les serveurs qui se trouvent derrière eux pour exécuter des applications « back-end » comme les bases de données. Par exemple, les banques font un usage intensif de Linux pour la gestion des transactions financières. La plupart des serveurs de bases de données fonctionnent également sous Linux.

Linux est très populaire sur les plateformes embarquées. Raspbian est une distribution populaire pour Raspberry Pi. Le système d’exploitation Android de Google est un dérivé de Linux, et de nombreux routeurs et commutateurs de réseau l’utilisent également.

Donc, si votre objectif est d’écrire des logiciels de serveur, du code pour l’internet des objets (IoT) ou des logiciels pour les systèmes embarqués, être à l’aise avec Linux contribuera grandement à vous faciliter la vie.

Si votre rêve est d’écrire des applications pour l’iPhone ou de belles pages Web, l’apprentissage de Linux pourrait ne pas être la meilleure façon de passer votre temps en ce moment.

Que dois-je apprendre sur Linux ?

La question suivante est : que signifie  » apprendre Linux  » ?

Eh bien, cela dépend. (Désolé, je n’ai pas pu résister.)

Si vous allez écrire un logiciel serveur qui fonctionne sous Linux, il doit être déployé sur des systèmes qui l’exécutent. Selon l’endroit où vous travaillez, cela peut signifier confier votre code à une organisation DevOps, ou le faire vous-même. Quoi qu’il en soit, vous pouvez rendre votre vie, sans parler de celle de vos collègues, beaucoup plus agréable si vous êtes à l’aise avec la ligne de commande et la façon dont les fichiers sont organisés sur un système Linux.

Get comfortable with the command line and how files are organized on a Linux system. These skills are transferable regardless of which distribution you learn on and which one your future employer uses.

Ces compétences sont transférables quelle que soit la distribution sur laquelle vous apprenez et celle que votre futur employeur utilise. Bien qu’il y ait quelques différences (souvent gênantes) entre elles, développer une compréhension de n’importe quelle distribution majeure vous donne un ensemble significatif de compétences que vous pouvez mettre en correspondance avec n’importe laquelle d’entre elles. Cela vous donnera également un avantage concurrentiel sur les développeurs qui ne sont à l’aise que dans le monde protégé de leur IDE préféré.

Si vous êtes intéressé par le développement de logiciels pour la robotique ou les systèmes embarqués, alors vous devez devenir intime avec Linux au niveau du noyau. Pour vous, « apprendre Linux » signifie apprendre le noyau Linux.

Ici, encore une fois, la distribution que vous choisissez est moins importante que le simple fait de se mouiller les pieds. Bien que toutes les distributions ne mettent pas à jour les versions du noyau en même temps (et certaines sont comiquement lentes), le noyau Linux est le noyau Linux. Choisissez une distribution et commencez à jouer.

Comment je fais ça?

Si vous vous intéressez à la robotique ou à l’IdO, vous pourriez tout aussi bien vous procurer un Raspberry Pi et vous y mettre directement. Vous devrez vous assurer que vous avez une souris USB et un moniteur auquel le connecter. Le reste est assez simple.

Si vous êtes intéressé par les logiciels de serveur, choisissez une distribution et installez-la.

Le choix de la distribution est vraiment une question de choix. Certains considèrent Ubuntu comme la plus conviviale pour les débutants. D’autres considèrent que Linux Mint est un peu meilleur. La bonne nouvelle, c’est qu’elles sont gratuites, donc vous pouvez toutes les essayer !

L’option la moins coûteuse pour installer Linux et donner des coups de pied dans les portes et claquer des pneus est d’installer un logiciel de machine virtuelle sur l’ordinateur que vous avez déjà. VirtualBox est gratuit et fonctionne sous Windows et macOS. Il vous guidera même sur l’installation de Linux après l’avoir configuré.

Une fois que vous avez installé Linux, commencez à jouer ! La beauté de jouer avec Raspberry Pi ou une machine virtuelle est que vous pouvez toujours recommencer à zéro si vous faites sauter quelque chose. Vous verrez qu’il est assez difficile de casser un système Linux.

Alors, les programmeurs devraient-ils apprendre Linux ?

Il y a de fortes chances que vous rencontriez Linux quelque part dans votre carrière de programmeur. Se sentir à l’aise avec lui à l’avance peut vous donner un avantage concurrentiel sur les autres développeurs qui ne le font pas. Procurez-vous une copie et commencez à jouer avec dès maintenant.

Ce billet a été écrit par Eric Goebelbecker. Eric travaille depuis 25 ans sur les marchés financiers à New York, où il développe des infrastructures pour les réseaux de données de marché et de protocole d’échange d’informations financières (FIX). Il aime parler de ce qui rend les équipes efficaces (ou moins efficaces !)

.