La différence entre un développeur Front-End et Back-End 

Si vous voulez apprendre à coder pour devenir un développeur web, bienvenue. Vous êtes au bon endroit. Avant d'aborder les types de postes de développeurs web disponibles et les différences entre front-end, back-end, full-stack et DevOps, je vais prendre la route panoramique et commencer par ce qu'est le codage. C'est nécessaire car je ne fais pratiquement aucune supposition quant à vos connaissances existantes. Si vous êtes un débutant absolu, ce guide est fait pour vous.

Qu'est-ce que le codage ?

Le codage est l'action d'écrire du code pour programmer des machines telles que des ordinateurs et des appareils mobiles. OK, alors qu'est-ce qu'un code ? Le code est l'ensemble des instructions précises que nous donnons auxdites machines pour qu'elles effectuent les actions que nous voulons qu'elles fassent. Les instructions doivent être précises car les ordinateurs, contrairement aux humains, ne peuvent pas faire un tas d'hypothèses basées sur une expérience antérieure. Si je vous demandais de dessiner une maison, vous commenceriez probablement par dessiner quelque chose qui ressemble à ce qu'un enfant de cinq ans dessinerait. Vous commencerez par une boîte, ajouterez un toit pointu, une porte, une fenêtre, etc. Si vous aimez vraiment l'art, vous pouvez dessiner une version en 3D qui sera plus jolie. D'une manière ou d'une autre, vous serez en mesure de traiter ma demande générique et ouverte et de fournir quelque chose qui la satisfasse.

En général, l'ordinateur ne peut pas supposer ce à quoi la maison devrait ressembler, comme vous le feriez. Quelle doit être l'épaisseur des lignes ? Quelle couleur doit-on utiliser (le cas échéant) ? Quelle doit être la taille de la maison ? Quel style ? Et ainsi de suite. En bref, un ordinateur ne dessinait pas des maisons à la maternelle. Oui, il peut dessiner des maisons incroyablement complexes avec un degré de détail fantastique, mais vous aurez besoin d'un code qui lui donne l'ordre de le faire très précisément. Prenons l'exemple de l'application calculatrice qui est installée par défaut sur votre ordinateur. Un programmeur a écrit un tas de codes pour que, lorsque vous cliquez sur l'icône de la calculatrice, l'ordinateur lance l'application sur votre écran et vous présente une série de chiffres et d'opérateurs parmi lesquels vous pouvez choisir. Lorsque vous interagissez avec l'application, par exemple en appuyant sur 6, x, 7 et =, l'ordinateur, instruit par le code du programmeur, saura quoi faire. (C'est-à-dire qu'il multiplie les deux nombres et affiche le résultat pour vous.

Quelle est la différence entre un programme et une application ?

Certains programmes informatiques n'ont pas du tout d'interface utilisateur visuelle. Dans ce cas, on ne les appelle pas des applications. C'est la principale différence entre un programme et une application. Les deux nécessitent du code, mais seules les applications ont une sorte d'interface visuelle avec laquelle l'utilisateur peut interagir. L'interface utilisateur (IU) ne doit pas nécessairement être une fenêtre du système d'exploitation du bureau (par exemple, Windows ou MacOS). Il peut s'agir de votre appareil mobile ou même d'une page web accessible par un navigateur web tel que Chrome ou Firefox.

Différents types d'applications et de développeurs

Une application accessible sur votre ordinateur de bureau et appelée... roulement de tambour... une application de bureau. Une application accessible sur un appareil mobile (par exemple un smartphone Apple ou Android) est appelée application mobile. Qu'en est-il d'un accès par un navigateur web ? Vous l'avez deviné, une application web. Il s'avère que le type de code que nous devons écrire pour créer ces différents types d'applications est un peu différent selon le type d'application que nous créons. La plupart des concepts sont les mêmes, mais les langages de programmation, les bibliothèques (essentiellement du code pré-écrit), les outils et les problèmes auxquels vous serez confronté en tant que programmeur seront différents selon la plate-forme à laquelle vous vous adressez. C'est pourquoi les programmeurs professionnels se spécialisent souvent dans un ou deux de ces types de développement d'applications. Vous pouvez donc être un développeur pour ordinateurs de bureau (moins courant de nos jours), un développeur pour téléphones mobiles ou un développeur web. Parfois, vous entendrez le terme "développeur d'applications", qui est un synonyme de développeur mobile, puisque "app" est souvent utilisé pour désigner spécifiquement les applications mobiles. Certains programmeurs se spécialisent davantage et ne sont que des développeurs iOS ou des développeurs Android, selon le type d'appareils mobiles qu'ils visent. Comme tous les programmes ne sont pas des applications, il convient de noter qu'il existe de nombreux autres types de développeurs qui ne travaillent pas sur des applications. Par exemple, ceux qui travaillent sur le système d'exploitation lui-même, les programmes qui facilitent la communication des réseaux informatiques ou le code qui permet de créer un appareil mobile.

Le Web a gagné

Il existe de nombreuses carrières intéressantes dans le domaine du développement mobile et d'autres types de développement. Toutefois, l'objectif de ce guide étant de vous aider à devenir un développeur web, nous nous concentrerons sur ce sous-ensemble particulier du paysage du développement. Il y a vingt-cinq ans, la plupart des développeurs étaient des développeurs de bureau (ou une version spécialisée, comme un développeur Windows). Au cours des deux dernières décennies, le web n'est certainement pas près de disparaître, de sorte que les compétences que vous acquerrez vous seront utiles pendant longtemps.

Pages statiques et pages dynamiques

Concentrons-nous sur les applications web. Qu'est-ce qu'ils sont et comment fonctionnent-ils ? Commençons par une simple page web, plutôt que par une application web complète. Ma page d'accueil est une page dite "statique", car elle ne change pas de façon dynamique. Par exemple, il ne prend pas les données d'une base de données comme lorsque vous recherchez un produit sur Amazon. Il s'agit simplement d'un document statique qui contient du texte, des images et des liens organisés de manière plutôt logique et agréable (bien que minimaliste). Lorsque le web est né au début des années 90, il n'était que cela pour la plupart. Un tas de pages statiques reliées les unes aux autres. Lorsque les pages web dynamiques côté serveur sont devenues courantes, elles ont transformé le web. Désormais, nous pourrions, entre autres, recueillir des informations auprès de l'utilisateur, les stocker dans une base de données et afficher dynamiquement du contenu à l'utilisateur en fonction de sa demande. Nous pourrions également personnaliser la page qui est rendue à l'utilisateur en fonction de la personne connectée, par exemple.

Au fil du temps, ces capacités ont évolué au point que les applications web peuvent offrir des interfaces et des expériences utilisateur riches, semblables à celles d'un ordinateur de bureau. Techniquement, le blog que vous lisez est une application web écrite en HTML, CSS, JavaScript et PHP. Il me permet de me connecter en tant qu'administrateur et d'écrire des articles de blog. Il vous permet de commenter, de rechercher des articles, de vous abonner à mon flux RSS, de voir les contenus connexes et bien plus encore. Les applications web peuvent être aussi simples qu'une simple liste de choses à faire ou aussi complexes que la version en ligne de Microsoft Excel ou un jeu vidéo élaboré.

Comment fonctionne une demande de page statique

  • On peut considérer le DNS comme les pages blanches de l'internet, où au lieu de faire correspondre les noms des personnes à leurs numéros de téléphone, on obtient les noms des sites web mis en correspondance avec les adresses IP de leurs serveurs. Connaître l'adresse IP du serveur qui héberge le site permettra à votre navigateur d'envoyer la demande au bon serveur parmi les millions de serveurs disponibles sur l'internet.
  • La demande que vous avez faite indique au serveur que vous voulez obtenir la page/information disponible à /. Le serveur va prendre le fichier index.html de mon site et le renvoyer à votre navigateur en tant que réponse. (Sur un site statique, / rendra généralement index.html, tout comme /about rendra le contenu de about. C'est par convention et ce n'est pas toujours le cas. )
  • Dans ce fichier HTML, je fais également référence à un fichier CSS sur le serveur, à des images et à du JavaScript côté client. Votre navigateur demandera tous ces éléments au serveur et rendra finalement la page HTML pour vous.

(Il s'agit d'une simplification, mais d'un point de vue conceptuel, ce sont les principales étapes. Il n'y a pas de développement frontal ici. HTML, CSS et JavaScript côté client sont toutes des technologies de développement frontal. Le langage HTML fournit la structure et le contenu de la page. Le CSS détermine le style de la page (taille de la police, espacement, remplissage, couleurs, etc.) Et JavaScript détermine certains comportements de la page lorsque vous interagissez avec elle. Dans le cas de ma page d'accueil, lorsque vous passez votre souris sur les icônes en haut, vous verrez apparaître une petite info-bulle. Ça et un peu de JavaScript en action. J'ai précisé qu'il s'agissait de JavaScript côté client, car aujourd'hui, il existe également du JavaScript côté serveur, qui relève en fait du développement back-end. Quand je dis côté client, je veux dire le JavaScript qui est exécuté par votre navigateur.

Comment fonctionne une demande de page dynamique

Les applications Web sont des collections de pages dynamiques (et parfois de pages dynamiques et statiques). La demande d'une page dynamique est conceptuellement similaire à la demande d'une page statique, mais en coulisses, il y a quelques étapes supplémentaires. Par exemple, disons que vous entrez "iPad" dans le champ de recherche de ce site et que vous appuyez sur la touche Entrée. Il n'y a pas de fichier ipad.html sur le serveur, puisque vous auriez pu taper n'importe quoi dans le champ de recherche. (Ignorez la mise en cache dans le cadre de cette simplification, si vous êtes déjà familiarisé avec le concept. Ainsi, dans les coulisses, au lieu de localiser le fichier statique et de le renvoyer pour le r

Front-End vs. Back-End Developers

S'il est bon de comprendre à la fois le front-end et le back-end, la plupart des développeurs web finissent par se spécialiser soit dans le front-end, soit dans le back-end. Historiquement, le développement frontal avait un certain stigmate. C'était perçu comme plus facile. De nos jours, je ne pense plus que ce soit une position valable. La capacité des interfaces web s'est considérablement accrue au fil des ans, tout comme la complexité des technologies utilisées pour créer des interfaces utilisateur aussi riches et interactives. Il convient de noter que les salaires des développeurs back-end ont toujours tendance à être plus élevés que ceux des développeurs front-end. Mais cela pourrait être dû, au moins en partie, au fait que la plupart des développeurs web débutants commencent par les technologies frontales. Après tout, vous ne pouvez pas être un développeur back-end sans connaître les bases de HTML, CSS et JavaScript, mais vous pourriez théoriquement être un bon développeur front-end sans connaître les langages côté serveur et SQL. Bien sûr, l'exposition aux deux côtés de la ligne de développement Web est toujours bénéfique.

Développeur Full-Stack

Les développeurs Full-Stack sont des licornes nées dans une forêt enchantée située au confluent des rivières Hanson et Eich. Plus sérieusement, il est rare que quelqu'un soit excellent à la fois en développement frontal et en développement dorsal, mais il existe de nombreux développeurs qui sont compétents dans les deux domaines. Les grandes entreprises ont tendance à préférer les personnes spécialisées, car elles disposent des ressources nécessaires pour engager des équipes plus importantes comprenant des développeurs frontaux et dorsaux. Les startups et autres petites entreprises ne peuvent parfois disposer que d'un ou deux développeurs. Elles peuvent donc trouver un développeur "full-stack" capable de travailler avec elles.

Spécialistes DevOps

L'écriture d'applications web n'est qu'une partie de l'équation. Vous devez ensuite les déployer quelque part sur Internet afin qu'ils soient accessibles au public. (Pousser le code en production, pour utiliser le jargon commun. Vous avez également besoin de stratégies pour assurer leur bon fonctionnement et gérer les mises à jour et les nouvelles versions du code que vous écrivez. Dans les petites entreprises, cette tâche incombe souvent au développeur web. Au fil des ans, cependant, le rôle d'ingénieur DevOps est devenu une profession à part entière. Aujourd'hui, les grandes organisations engagent des spécialistes/ingénieurs DevOps pour travailler aux côtés des développeurs et des opérateurs/administrateurs de systèmes afin de garantir les meilleures pratiques de déploiement. En travaillant pour devenir un développeur web, vous allez inévitablement acquérir certaines des compétences que possède DevOps. Toutefois, il n'est pas nécessaire de devenir un expert DevOps, à moins que vous ne trouviez que c'est ce qui vous plaît le plus et que vous décidiez d'en faire une carrière.

Que devriez-vous choisir ?

Il est trop tôt pour vous engager à devenir un développeur frontal, dorsal ou complet. Le mieux que vous puissiez faire est d'apprendre les bases, puis de décider en fonction de ce que vous aimez le plus, de ce qui vous vient le plus naturellement et, enfin, de ce pour quoi vous avez tendance à être doué. Certaines personnes peuvent avoir du mal à comprendre les bases de données, mais sont capables de créer de merveilleuses interfaces utilisateur. D'autres peuvent être très doués pour résoudre des problèmes algorithmiques, mais échouer lamentablement à mettre au point une interface utilisateur conviviale. Vous découvrirez très vite où se situe votre place.