Maison > Article > développement back-end > Cinq langages de programmation que tout développeur devrait apprendre (Partie 1)
Il existe de nombreux langages de programmation générauxdans lesquels les programmeurs écrivent du code, et la plupart des programmeurs qui utilisent des logiciels d'entreprise n'utilisent généralement qu'un seul langage de programmation avant de prendre leur retraite. Cependant, il existe également des programmeurs qui ont la possibilité d'utiliser plusieurs langages de programmation dans leur travail quotidien. Par exemple, si un programmeur utilise des modules natifs Flatter, il existe des possibilités d'utiliser Dart, Kotlin (ou Java), Objective-C (ou Swift), C/C++, etc.
La plupart des programmeurs travaillent dans une seule langue depuis des décennies, ce qui limite leurs compétences techniques. Nous voyons souvent de nombreux experts .NET et Java. Mais il est rare de voir des programmeurs maîtriser plusieurs langages. L'apprentissage de plusieurs langages de programmation apporte encore plus d'avantages. Cependant, apprendre tous les langages de programmation populaires n’est pas un choix judicieux.
Dans cette histoire, je vais vous montrer cinq langages de programmation que tout programmeur devrait apprendre. Et utilisez des exemples pour illustrer les avantages de l’apprentissage de ces langages de programmation.
Le langage C est le langage de base pour presque tous les composants logiciels sous-jacents. L'abstraction du C est plus proche du matériel, et C fournit au programmeur une syntaxe minimale (32 mots-clés réservés). Comparée à d'autres langages de programmation populaires modernes, la syntaxe du C est plus proche du langage assembleur. En conséquence, les compilateurs C peuvent convertir efficacement le code source C en langage machine et produire des exécutables binaires légers et extrêmement rapides.
C++ est une extension du C, vous pouvez donc utiliser les fonctionnalités C++ qui manquent au langage C (par exemple : classes, espaces de noms, etc.). L’apprentissage du C/C++ présente de nombreux avantages pour tout programmeur. C/C++ vous oblige à écrire du code optimisé car C/C++ ne fournit pas de garbage collection automatique.
C améliore vos capacités de résolution de problèmes et vos compétences de base en informatique car il ne fournit pas de structures de données prédéfinies ni de bibliothèque standard complète. Par exemple, si vous avez besoin d’une pile en C, vous devez créer la vôtre.
De même, l'apprentissage du C/C++ permet d'améliorer les connaissances et les compétences en informatique. L'histoire suivante explique pourquoi les programmeurs devraient d'abord apprendre le C.
Vous pouvez commencer à programmer dans n'importe quel langage - mais il y a tellement d'autres avantages à commencer par C !
Il existe environ 700 langages de programmation dans le monde. Cependant, les développeurs utilisent environ 20 langages de programmation différents pour créer des logiciels d'entreprise. En d’autres termes, même s’il existe de nombreux langages de programmation, il n’existe que quelques langages de programmation généraux populaires. Les développeurs commencent généralement à coder à l’école, au collège ou au début de leur carrière.
Chaque développeur se pose une question lorsqu'il commence à coder : quel langage de programmation dois-je apprendre en premier ? Si vous étudiez l’informatique à l’université, le programme commence généralement par le langage de programmation C.
Programmation en langage C Le langage miming est encore fréquemment utilisé dans les projets logiciels liés au matériel.
Mais des langages comme Java, C#, JavaScript, Go, Python, Ruby, PHP et Kotlin dominent l'industrie du logiciel moderne. Cela est dû à leur :
D'un autre côté, le C n'est pas souvent utilisé par la communauté moderne - d'autres langages populaires offrent un environnement plus convivial, plus simple et plus flexible que le C. Oui, C est un meilleur choix pour les projets liés au matériel, mais la plupart des développeurs travaillent sur des projets liés au Web et aux mobiles.
Laissez-moi vous expliquer pourquoi apprendre le C est le meilleur choix.
Presque tous les programmes fournissent des méthodes intégrées ou des méthodes de bibliothèque pour résoudre les problèmes de codage qui nécessitent des algorithmes logiques. Par exemple, si vous devez copier des éléments spécifiques dans un deuxième tableau, vous pouvez utiliser les méthodes de filtrage intégrées en JavaScript. Si vous utilisez Java, vous pouvez utiliser la méthode de filtrage du package java.util.stream. Littéralement, n'importe quel langage de programmation populaire possède une méthode intégrée ou une bibliothèque pour filtrer les tableaux. Mais si vous utilisez C, vous devez l'implémenter vous-même - car il n'y a pas de méthode de filtrage intégrée ou de bibliothèque en C.
Lorsque vous trouverez ces scènes, vous serez confronté à un problème qui doit être résolu. Pratiquer des problèmes algorithmiques est un excellent moyen de devenir un bon résolveur de problèmes. Nous ne nous attaquons pas toujours à des tâches simples impliquant uniquement les bibliothèques standard et les fonctionnalités intégrées de votre langage de programmation d'entreprise préféré. Nous traitons souvent de tâches qui impliquent des compétences en résolution de problèmes. Par conséquent, écrire votre code initial en C fera de vous un meilleur résolveur de problèmes.
De plus, les développeurs participant à des hackathons de programmation compétitifs utilisent souvent le C pour résoudre des problèmes.
Les langages de programmation comme Python, C# et Java sont des langages très conviviaux. Cependant, ces langages sont très abstraits du matériel physique. En d’autres termes, vous ne pourrez pas ressentir le comportement de votre matériel informatique tant que vous n’aurez pas commencé à programmer en C. Les langages de programmation modernes cachent toute l'expérience liée au matériel, offrant un tout nouvel environnement sandbox. Dans la plupart des cas, cet environnement sandbox est créé à l'aide d'une machine virtuelle.
Malheureusement, les développeurs ignorent les sujets clés liés au matériel tels que la gestion de la mémoire, la gestion des fichiers et l'optimisation du code, car ils ne démarrent pas en C. Les langages de programmation modernes gèrent automatiquement l'allocation et la libération de mémoire par le garbage collector. En revanche, dans le langage de programmation C, les développeurs gèrent la mémoire en écrivant du code hautement optimisé.
L'écriture du code initial en C vous offre un voyage matériel inoubliable que tout informaticien devrait vivre.
Lorsqu'un langage de programmation fournit des abstractions très humaines, un langage de programmation spécifique devient moins flexible. Chaque méthode de bibliothèque standard et méthode intégrée de votre bibliothèque de programmation préférée agit comme une boîte noire codée en dur. En d’autres termes, les langages de programmation modernes cachent le code de bas niveau et offrent aux développeurs des interfaces claires mais limitées. Avec les langages de programmation modernes, l’allocation dynamique directe de mémoire est pratiquement impossible. Dans le même temps, C vous offre une réelle liberté en exposant tous les accès au code de bas niveau.
Le compilateur C génère un code assembleur extrêmement rapide. Par conséquent, l’environnement de développement C lui-même vous motive à écrire du code hautes performances. En C, nous devons soigneusement déclarer les variables, allouer de la mémoire, nettoyer la mémoire, accéder aux ressources et libérer des ressources. Si vous avez commencé avec C, vous n'utiliserez peut-être pas trop de mémoire, de ressources inutiles et de mauvaises structures de données avec le langage de programmation que vous utilisez actuellement.
Contrairement aux langages de programmation modernes, vous devez écrire de nombreuses lignes de code en C. En effet, C fournit un accès de bas niveau à tout ce dont vous avez besoin – il ne vous donne pas une bibliothèque standard hautement abstraite. Lorsque le nombre de lignes du code augmente, la complexité du code augmente également. Par conséquent, nous devons écrire du code propre et explicite pour nous débarrasser du code encombré.
Écrire du code propre est une compétence indispensable lorsque nous travaillons sur des projets logiciels au niveau de l'industrie. En fait, si nous avons travaillé sur des projets basés sur C, écrire du code propre est un jeu d’enfant.
Avec le développement actif de projets C++, le C est devenu un sous-ensemble du C++. C++ est en effet un langage de programmation moderne doté d’une bibliothèque standard complète. Par conséquent, l’apprentissage du C++ est différent de l’apprentissage du C. Cependant, les capacités d'exploitation directe de la mémoire et les capacités d'accès de bas niveau sont toujours disponibles. Presque tous les langages de programmation modernes se font concurrence en introduisant de nouvelles méthodes de syntaxe, de sémantique et de bibliothèque standard. Cependant, les langages comme Go ne font qu'étendre la bibliothèque standard et les bibliothèques communautaires.
Si les développeurs se lancent immédiatement dans un langage de programmation moderne comme Python, JavaScript, C# ou Java, ils passeront à côté de l'expérience précieuse qu'offre le langage de programmation C. Commencer par programmer en C est un excellent moyen de comprendre comment un langage de programmation s’interface avec le matériel.
Choisissez d'abord la voie difficile en utilisant le langage C. Cela vous aidera à devenir un expert dans votre langage de programmation préféré.
*Lien original : https://betterprogramming.pub/why-every-developer-should-start-programming-with-c-39b3a87392bf.
Bash est un langage de commande et un interpréteur de ligne de commande conçu pour les systèmes d'exploitation de type Unix. Le programme interpréteur Bash est préinstallé sur presque tous les systèmes d'exploitation de type Unix. De plus, de nombreux logiciels de terminal GUI utilisent souvent Bash comme interpréteur de commandes par défaut. Par conséquent, nous pouvons écrire des scripts Bash portables pour différents systèmes d'exploitation de type Unix.
Les programmeurs suivent différentes pratiques pour améliorer l'efficacité de leur programmation quotidienne. De nombreux programmeurs écrivent souvent leurs propres scripts Bash pour les processus manuels répétitifs. Par exemple, j'ai écrit un simple script Bash pour créer et copier la sortie d'un projet TypeScript. Apprendre Bash est sans aucun doute la première étape vers l’automatisation du processus d’apprentissage. L'automatisation des processus est en effet un moyen d'augmenter la productivité.
Bash prend en charge nativement les processus. En d’autres termes, vous pouvez exécuter un autre programme simplement en mentionnant son nom. Par conséquent, vous pouvez écrire rapidement des scripts d’automatisation pour augmenter l’efficacité de la programmation. L'histoire suivante explique comment ajouter des éléments GUI à un script Bash.
Un script Bash consiste en un ensemble d'instructions écrites dans le langage de commande Bash qui peuvent être exécutées dans un interpréteur shell Unix. Nous utilisons des scripts bash pour automatiser plusieurs tâches qui prendraient évidemment beaucoup de temps si nous devions les effectuer manuellement. Mais si nous comparons à l’informatique moderne, les scripts bash sont démodés, car toutes les interactions avec l’utilisateur se font via l’interface de ligne de commande. Nous savons que certains développeurs utilisent des logos et des couleurs accrocheurs pour mettre en valeur le contenu important de l'interface de la console. Si un ancien script bash particulier est utilisé par un public hautement technique, ce n'est pas un problème. Mais s’il est utilisé par un grand public, avoir une interaction conviviale serait évidemment une bonne chose.
En fait, vous pouvez inclure des composants d'entrée/sortie basés sur une interface graphique utilisateur (Graphical User Interface) dans votre prochain script bash à l'aide de l'outil de ligne de commande Zenity, qui nous aide à afficher les boîtes de dialogue GTK. De plus, les notifications natives de l'interface graphique peuvent être affichées à l'aide de l'outil de ligne de commande notify-send. Ces deux outils sont généralement fournis avec les distributions Linux populaires, aucune pré-installation d'aucune sorte n'est donc requise.
Évidemment, il est préférable d'utiliser une boîte de message native pour afficher l'achèvement de la tâche de l'utilisateur plutôt que d'imprimer du texte brut dans la console. Zenity facilite la génération de boîtes de messages de type erreur, information, problème et avertissement.
Boîte de message d'information : zenity --info.
Boîte de message d'avertissement : zenity --info.
Boîte de message d'erreur : zenity --erreur.
Boîte de message d'erreur : zenity --question.
Un message de type question peut être utilisé si un ensemble d'instructions doit être exécuté avec l'autorisation de l'utilisateur. Par exemple, supprimez des fichiers du disque. Cela peut être fait en utilisant une simple condition if ou $? Une variable spéciale qui stocke la dernière valeur de retour.
Les notifications sont idéales pour afficher l'état des instructions par lots de longue durée. Ceci est très important pour que les utilisateurs reçoivent des notifications même s'ils effectuent un autre travail plutôt que de regarder la console pour voir ce qui se passe. Les notifications natives peuvent être facilement générées avec l’outil de ligne de commande notify send.
Considérez l'exemple simple ci-dessous...
Zenity a également la possibilité d'envoyer des notifications, mais notifier l'envoi nous donne plus de liberté d'ajustement.
Zenity fournit un bon support pour la collecte des entrées des utilisateurs en fournissant divers éléments d'entrée. Il dispose des types de zones de saisie suivants.
Boîte de saisie du calendrier zenity --calendar.
C'est une meilleure façon de capturer la date saisie par l'utilisateur au lieu de demander à l'utilisateur de saisir la date requise au format aaaa-mm-jj depuis la console.
Zone de saisie de chaîne zenity --calendrier.
Nous utilisons généralement la commande read pour obtenir une entrée de chaîne depuis la console. La convivialité des scripts bash pour les personnes non techniques peut être améliorée en fournissant un champ de texte GUI qui accepte également les frappes courantes (touches début/fin, etc.) et une simple fonctionnalité copier-coller.
Le très similaire zenity --password peut être utilisé pour capturer la chaîne secrète d'un utilisateur, comme un mot de passe ou un code PIN. De plus, la saisie du mot de passe vous permet d'activer le champ du nom d'utilisateur. Ensuite, le nom d'utilisateur et le mot de passe sont renvoyés, séparés par le caractère |
Boîte de dialogue de sélection de fichiers zenity --file-selection.
La boîte de dialogue native d'enregistrement/ouverture s'affiche en douceur. J'utilise également cette fonctionnalité dans Neutralinojs.
Si nous utilisons la saisie normale de la console pour demander certains choix à l'utilisateur, nous pouvons implémenter plusieurs saisies de touches raccourcies pour les choix souhaités par l'utilisateur. Par exemple, il est demandé à l'utilisateur de saisir la lettre A pour accepter une option, par contre il est demandé à l'utilisateur de saisir la lettre B pour activer une autre option. Du point de vue de l'utilisateur, cette approche peut être légèrement améliorée en affichant une sélection de liste basée sur l'interface graphique.
Supposons que vous créiez un script d'installation dans lequel vous devez demander quel plugin d'assistance doit être installé pour l'authentification à deux facteurs avec le logiciel principal.
Comme mentionné ci-dessus, il existe plusieurs éléments d'entrée GUI qui peuvent être utilisés avec des scripts bash au lieu d'utiliser du texte brut tout le temps. De plus, je vais vous montrer un exemple plus avancé implémenté à l’aide de ces éléments natifs de l’interface graphique.
*Lien original : https://medium.com/swlh/how-to-modernize-your-bash-scripts-by-adding-gui-cba613a34cb7.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!