Mes langages de programmation préférés : le parcours

Mar 19 2023
Depuis que je suis à l'université (vers 2009) jusqu'à maintenant, j'y ai vu émerger de nombreux langages de programmation ou les langages des années 90 qui deviennent matures et plus robustes. C'était déroutant car je dois choisir des langages de programmation pour ma carrière.
crédit : https://unsplash.com/photos/IUY_3DvM__w

Depuis que je suis à l'université (vers 2009) jusqu'à maintenant, j'y ai vu émerger de nombreux langages de programmation ou les langages des années 90 qui deviennent matures et plus robustes. C'était déroutant car je dois choisir des langages de programmation pour ma carrière. Mais j'ai éprouvé ce doute quand j'étais à l'université seulement.

Par la suite, au cours de mon parcours professionnel, de nouveaux langages de programmation ont également été publiés dans la communauté en tant que projet open source. Cela m'a également fait douter si je devais choisir ce nouveau langage de programmation ou simplement le quitter.

Après plus de 9 ans depuis que j'ai obtenu mon premier emploi, je pense que je pourrais partager mon expérience sur la façon de choisir mes langues préférées. Cela pourrait donc mettre fin à la "guerre des langages de programmation" si vous êtes toujours dans cette situation. Différent des autres gars talentueux qui ont inventé des outils ou créé de nouveaux langages de programmation. Je suis juste un utilisateur de langages de programmation particuliers.

Commençons!

A. A enseigné à l'université / au collège

crédit : https://unsplash.com/photos/vdXMSiX-n6M

A chacun son point de départ. Pour ma part, j'ai appris la programmation vers 2008 lorsque j'ai échoué à l'examen d'entrée à l'université (SNMPTN). Au cours de cette année sabbatique, j'ai appris Javascript que je peux essayer sur le navigateur Web Firefox. J'ai reçu le matériel d'apprentissage de mon ami qui suit le cours de programmation à l'université privée de Bandung.

A cette époque, je ne comprenais pas vraiment comment un ensemble de code Javascript pouvait me donner une fenêtre pop-up et une alerte. Même, à cette époque, je ne savais pas vraiment qu'il existait une application Web frontale, une application de bureau, une application mobile, une application Web principale, etc.

Puis, j'ai finalement réussi l'examen universitaire pour rejoindre l'Universitas Pendidikan Indonesia. Je me suis inscrit au diplôme d'informatique en 2009. Ce fut mon point de départ pour plonger dans le monde de l'informatique et de l'informatique.

Fondamentalement, j'ai appris ces langages de programmation grâce à mes cours ou à leurs assistants lorsque j'ai suivi certains cours :

  • Pascal : Je l'ai appris en m'inscrivant au cours Algorithme et Programmation I
  • C/C++ : je l'ai appris lors de mon inscription au cours Algorithme et programmation II et structure de données
  • Javascript : je l'ai appris lors de mon inscription au cours de programmation Web
  • PHP : je l'ai appris en m'inscrivant au cours de programmation Web
  • Java : je l'ai appris lors de mon inscription à la programmation orientée objet, à l'informatique mobile, au système de base de données II et à l'intelligence artificielle.
  • SQL : je l'ai appris lors de mon inscription au cours Database System I et Database System II
  • BASH : je l'ai appris lors de mon inscription au cours sur le système d'exploitation

Je pourrais apprendre beaucoup de choses de mes conférenciers. Mais j'ai dû maîtriser peu de choses pour gagner de l'argent et commencer ma carrière d'ingénieur informatique. Notamment en génie logiciel.

Mais quand j'ai eu mon premier travail en freelance, j'utilisais Javascript, PHP et SQL. En complément, j'ai également appris HTML, CSS, XML et JSON. Ensuite, mon stage a également utilisé une pile similaire. Enfin, lorsque j'ai obtenu mon premier emploi, j'utilisais encore HTML/CSS, Javascript, PHP et SQL. Ces langues sont mon tournant pour entrer dans le monde de l'informatique en tant que professionnel.

Langages de programmation : Javascript, Pascal, C, C++, PHP, Java, SQL, BASH

B. Influencé par d'autres pairs

crédit : https://unsplash.com/photos/IgUR1iX0mqM

Quand j'étais à l'université (vers 2009-2014), je n'obtenais pas seulement mes connaissances de mes professeurs de plusieurs cours. Mais mon senior et mon junior sont devenus mes sources de connaissances. Donc, je vais essayer de mentionner ces pairs en fonction des langages de programmation que je connais d'eux.

  • Python : J'ai appris ce langage de programmation pour la première fois avec Bramandityo. J'ai appris Django (HTTP RESTful API), Celery (Async task), Sentry (error tracing tools), CherryPy (HTTP RESTful API), PyGame (framework de jeu) et bien d'autres choses.
  • Erlang : J'ai appris ce langage de programmation pour la première fois avec Bramandityo. Je viens d'apprendre les fondamentaux et j'étais difficile.
  • C# : J'ai appris ce langage de programmation pour la première fois avec Rendy et Yusuf. J'ai appris à créer une application avec C# pour Microsoft Lumia (Windows Phone OS).
  • ActionScript 3.0 : J'ai appris ce langage de programmation pour la première fois avec Yusuf, Giri et Gilang A. Aziz. J'ai appris à créer des jeux et des applications éducatives avec Adobe Flash
  • Node.js : J'ai appris ce langage de programmation pour la première fois avec Bramandityo. J'ai appris Express.js (HTTP RESTful API) et Socket.io (framework WebSocket)
  • Elixir : J'ai appris ce langage de programmation pour la première fois avec Bramandityo. J'ai découvert Phoenix Web Framework pour les applications Web backend (HTTP RESTful API + WebSocket)

Giri était aussi à POSS UPI mais il a beaucoup travaillé avec le Laboratoire Multimédia avec Gilang A. Aziz. Si je me souviens bien, ces pairs faisaient partie de l'ambassadeur Adobe. Pour Rendy et Yusuf, tous deux étaient des partenaires étudiants Microsoft qui ont beaucoup parlé des technologies Microsoft à cette époque.

Si vous avez réalisé, j'ai appris certains des langages de programmation de Bramandityo. J'ai beaucoup appris de lui parce qu'il est mon aîné. À cette époque, Bramandityo est une personne qui aime vraiment en apprendre de plus en plus sur l'informatique. Surtout dans le génie logiciel avec l'open source. Certaines de ses pensées qui deviennent réelles maintenant, par exemple :

  • Le cloud computing deviendra l'avenir de l'informatique. Ensuite, maintenant je travaille beaucoup avec Google Cloud Platform et de nombreux fournisseurs SaaS
  • Python deviendra plus populaire. Ensuite, Python est devenu le langage principal pour IaaC avec Ansible, Data Science, Data Analytics et Data Science. Presque les services cloud ont également leur SDK Python. Il est également considéré comme les langages les plus populaires par JetBrains et StackOverFlow. Et de nombreux autres outils qui sont largement utilisés maintenant
  • Il a partagé des connaissances que l'on appelle l'informatique distribuée. Cela signifie que vous n'avez pas seulement un serveur unique pour servir votre application Web ou exécuter des tâches étendues telles que des tâches ETL. À cette époque, il a mentionné que Celery n'est qu'un des outils qui pourraient être utilisés pour effectuer des calculs distribués. Maintenant, à côté de Celery, nous avons Apache Spark au-dessus de Hadoop, Apache Kafka pour la file d'attente de messages et bien d'autres
  • Linux est aussi l'avenir. C'est pourquoi j'ai beaucoup appris de lui à ce sujet. A cette époque, un évangéliste disait que Linux n'est pas valable pour le cloud computing. Mais maintenant, presque tous les fournisseurs de cloud utilisent Linux comme distribution principale. Même cette société évangéliste fournit Linux et d'autres logiciels open source.
  • Javascript ne fonctionnera pas uniquement dans les navigateurs Web. Un jour, Node.js deviendra également des langages de programmation backend. Ensuite, Node.js devient backend pour la plupart des services SaaS, nous pourrions utiliser Javascript pour créer une application Web backend avec Node.js ou même utiliser Javascript pour créer une application mobile hybride.
  • OpenERP ou maintenant devenu Odoo est l'une des solutions ERP prometteuses pour l'entreprise. À cette époque, quelqu'un disait qu'OpenERP ou Odoo n'étaient pas utiles pour les entreprises. Mais maintenant, comme l'a dit Bramandityo, Odoo est l'une des solutions les plus populaires pour la construction d'ERP.
  • Et bien d'autres dont j'essaie encore de me souvenir, mais la plupart de ses déclarations deviennent réelles. J'ai l'impression qu'il est plus futuriste que d'autres de mes pairs.

Pour moi, Python comme langage de programmation principal et Node.js comme langage de programmation secondaire me suffisent car rien que dans ces deux langages, j'ai pu y voir tellement de choses que je n'ai pas essayées.

Langages de programmation : Python, Erlang, C#, ActionScript 3.0, Node.js, Elixir

C. C'est lié à mon travail

crédit : https://unsplash.com/photos/QBpZGqEMsKg

C.1. Stage

Vers 2013, j'ai travaillé comme ingénieur logiciel pour la construction d'applications Web. Le type d'application Web était une application d'apprentissage en ligne. L'application Web peut télécharger divers supports d'apprentissage tels que des vidéos, des audios, des documents PDF et des liens externes. En plus de cela, l'application Web a pu créer une salle de classe, gérer les devoirs et générer des rapports d'apprentissage.

L'équipe et moi avons utilisé le framework Web CodeIgniter qui est pour le langage de programmation PHP. Pour le côté frontend, j'ai utilisé jQuery et MetroUI CSS. L'apparence était donc similaire à celle du système d'exploitation Windows 8. La base de données principale était MySQL.

L'application a été déployée sur un serveur Linux sur site. Une architecture monolithique a été appliquée et tout a été hébergé sur le serveur sur site à nœud unique.

Parce que j'ai travaillé avec l'équipe, Git est obligatoire pour nous permettre de collaborer. J'ai obtenu ce stage de mon supérieur.

Langages de programmation : HTML/CSS, Javascript, PHP, SQL

C.2. Mon premier indépendant

Je suis devenu ingénieur logiciel indépendant vers 2014. Le projet était intéressant. Avec l'équipe, j'ai construit des médias sociaux pour les voyageurs. Ils peuvent échanger des informations sur les objets touristiques principalement en Indonésie. Évaluez un point d'intérêt. Suivez et commandez les uns les autres. À cette époque, les sites Web itinérants étaient si nombreux. Et le projet veut croiser un site Web itinérant avec une fonctionnalité de médias sociaux.

La partie backend utilisait le framework Web CodeIgniter. Pour la partie frontend, utilisez toujours jQuery mais avec l'ajout de Twitter Bootstrap. Le magasin de données principal était MySQL.

L'application déployée sur le serveur Linux sur site. L'architecture monolithique a été appliquée. Tout a été déployé sur le serveur sur site à nœud unique.

Parce que j'ai travaillé avec l'équipe, Git est obligatoire pour nous permettre de collaborer. J'ai de nouveau obtenu ce stage de mon supérieur

Langages de programmation : HTML/CSS, Javascript, PHP, SQL

C.3. Mon premier emploi chez Online Travel Agent (OTA)

Mon premier emploi était ingénieur logiciel dans la société OTA de 2014 à 2016. Les sites Web fournissaient des billets d'avion, des billets de train et des réservations d'hôtel. L'application Web faisait partie intégrante des services de base internes. Fondamentalement, c'était un sous-produit pour l'utilisateur final.

Mon équipe a utilisé CodeIgniter pour créer la page Web et interagir avec les services de base. Pour la partie frontend, nous avons utilisé jQuery et des templates HTML/CSS personnalisés ont été construits par notre UX Designer. Le magasin de données principal était MySQL. Pour la collaboration, nous avons utilisé Subversion ou SVN.

L'application déployée sur le serveur Linux sur site. L'architecture monolithique a été appliquée. Tout a été déployé sur le serveur sur site à nœud unique.

Langages de programmation : HTML/CSS, Javascript, PHP, SQL

C.4. Mon expérience chez IT Consultant

J'ai travaillé comme ingénieur logiciel ici vers 2016. À cette époque, j'ai construit un prototype de musique en ligne pour devenir un produit maison. L'application peut gérer plusieurs pistes, albums de musique et artistes. Tout le monde peut écouter sa musique préférée depuis un navigateur Web ou une application mobile.

Avec l'équipe, j'ai construit plusieurs composants. Pour l'application web principale, j'ai utilisé Django et Django REST Framework. Il se compose d'une API pour l'application mobile développée par un ingénieur mobile et une page d'administration qui s'appuie sur jQuery et Twitter Bootstrap.

Pour le serveur websocket, j'ai utilisé le serveur web Tornado. Ainsi, en utilisant Python, vous pouvez rivaliser avec Node.js qui a Socket.io. Le serveur websocket aide l'application mobile à obtenir des fonctionnalités en temps réel telles que les commentaires, le statut en ligne et le partage de l'activité d'écoute. Mais à cette époque, les fonctionnalités de Tornado étaient limitées. Peut-être que maintenant a élargi et plus grand.

Dans cette entreprise, j'ai également acquis des connaissances importantes telles que :

  • Tâches asynchrones avec Celery + Redis, vous n'avez donc pas à faire attendre le client
  • FFMPEG pour manipuler des fichiers audio
  • Django UnitTest pour écrire plusieurs tests unitaires qui pourraient aider le développeur à tester au mieux les fonctionnalités de l'application Web avant le déploiement.
  • Elasticsearch utilisé pour fournir des fonctionnalités de recherche et de complétion automatique avec un algorithme plus avancé
  • Sentry devient une véritable solution de traçage d'erreur depuis l'application web Django. Je pourrais vérifier que l'exception Python provient de quel fichier et de quelle ligne spécifique. Je pourrais également vérifier combien d'exceptions se sont produites dans des fenêtres de temps particulières. Ce n'est pas seulement pour l'application Web Django. Les applications mobiles telles qu'Android et iOS, d'autres frameworks Web, même l'application CLI, pourraient envoyer leur exception ou leurs erreurs à Sentry.
  • Pour la collaboration, j'ai utilisé Git et Phabricator. Un serveur git auto-hébergé et open source.

Langages de programmation : HTML/CSS, Javascript, Python, SQL

C.5. Mon expérience chez Data Analytics Company

J'ai travaillé comme ingénieur logiciel ici vers 2017. Il y avait plusieurs projets sur lesquels je travaillais :

  • Réécrivez l'API de suivi principale de PHP vers Python, car nous souhaitons effectuer une preuve de concept dans AWS Lambda. J'ai utilisé Flask et Zappa pour créer l'API sans serveur. L'API de suivi a également été intégrée à AWS SQS pour la file d'attente des messages, AWS SNS pour la notification push, AWS Elasticache (Redis) pour la mise en cache et AWS RDS (PostgreSQL) pour le magasin de données principal. Mais il a été reporté et je devrais passer à d'autres projets
  • Créez un pipeline ETL avec Apache Sqoop + Cronjob pour extraire un ensemble de données à grande échelle de la base de données PostgreSQL existante,
  • Créez un pipeline ETL avec Python et PySpark sur AWS Elastic Map Reduce pour extraire un ensemble de données à grande échelle de Datalake fourni par le fournisseur DSP. La tâche a été déclenchée par Cronjob.
  • Créez un pipeline ETL avec Python et PySpark au-dessus d'AWS Elastic Map Reduce pour extraire un ensemble de données à grande échelle du stockage de données en temps réel (AWS S3) produit par une nouvelle API de suivi construite par notre équipe vers notre Datalake. La tâche a été déclenchée par Cronjob.

C.6. Mon expérience chez Digital Mental Healthcare Company

J'ai travaillé comme ingénieur logiciel ici de 2017 à 2022. C'est assez long pour moi de rejoindre une entreprise. J'ai également travaillé en tant qu'ingénieur en infrastructure cloud dans le même temps. Parce qu'à ce moment-là, nous avons des effectifs limités. Certains ingénieurs backend devraient participer à la gestion de nos infrastructures cloud.

La première fois que j'ai rejoint cette entreprise, j'ai travaillé comme ingénieur logiciel pour créer un service de gamification pour le traitement de la santé mentale. Le service a été écrit en Typescript et utilise Express.js comme framework Web. Le magasin de données principal était MongoDB. Pour la qualité du code, j'ai utilisé TSLint et UnitTest ainsi que Travis CI. J'ai déployé le service en tant que Docker chez Rancher v1.0

Langages de programmation : Node.js, Typescript

Les projets précédents ont été reportés. Ensuite, je suis passé à l'équipe principale pour la construction des principaux services écrits en Python et Django REST Framework. Le service principal contient des services médicaux et un service de capteur. Pour les services médicaux, le magasin de données principal est PostgreSQL. Pour le service de capteur, le magasin de données est MongoDB. Le service est déployé sur Rancher v1.0 en tant que Docker.

Pour aider à améliorer le temps de réponse de notre application Web Django, nous avons utilisé Celery + Redis afin que la réponse soit plus rapide. Certaines des tâches nécessitant une tâche asynchrone sont l'envoi d'e-mails à partir du service de messagerie et l'envoi d'une notification push à Urban Airship.

Pour la qualité du code de notre application web Django, nous avons utilisé Flake8, Django UnitTest, Codecov et Travis CI. Pour tracer l'erreur, nous avons utilisé Sentry et suivi chaque exception soulevée par notre base de code. Nous utilisons également Prometheus et UptimeRobot pour surveiller notre application Web Django.

Pour le service de chat, nous avons utilisé Ejabberd qui est écrit en Erlang. J'ai donc eu la chance de créer une extension sur Ejabberd en utilisant Erlang. Ejabberd utilise MySQL comme magasin de données principal. J'ai modifié mod_prometheus pour permettre à l'export d'envoyer le nombre d'utilisateurs en ligne par seconde à Prometheus. Le service est déployé sur Rancher v1.0 en tant que Docker . C'était difficile mais amusant.

Langages de programmation : Python, SQL, Erlang

J'ai travaillé comme ingénieur en infrastructure cloud ici pour la première fois. Pendant les 2 premières années, je travaille toujours pour deux rôles. Mais au deuxième trimestre 2020, j'ai été transféré dans l'équipe Cloud Infrastructure pour travailler pleinement en tant qu'ingénieur Cloud Infrastructure. Donc j'ai rarement fait une programmation alors que je devrais être un gars dédié à l'infra.

En plus de travailler pour la gestion des infrastructures cloud à la fois sur appel ou sur projet. J'ai également maintenu la base de code Terraform qui contient certaines parties écrites en BASH pour l'exécution locale. J'ai également maintenu le playbook Ansible et construit des scripts Python à intégrer dans le playbook. J'ajoute également quelques scripts pour travailler avec l'API Sentry du playbook Ansible.

En ayant une formation d'ingénieur logiciel, j'ai également commencé à créer des logiciels, mais pour l'ingénierie des infrastructures. J'ai créé un raccourci à partir d'OpsGenie qui pourrait exécuter Ansible Playbook à partir d'AWX pour une alerte fréquente particulière. Il a utilisé l'API OpsGenie et l'API AWX. Le service backend pour cette automatisation a été écrit dans le framework Web Typescript et Nest.js. Le magasin de données principal était PostgreSQL. Le service est déployé sur Rancher v1.0 en tant que Docker.

Langages de programmation : Python, Typescript, BASH, SQL

C.7. Mon expérience chez Educational Technology Company

J'ai travaillé comme ingénieur en infrastructure cloud ici à 2022. La plupart du temps, j'ai géré Kubernetes et des bases de données auto-hébergées (MySQL Galera Cluster, Redis dans Kubernetes, MySQL dans Kubernetes), maintenu un pipeline d'automatisation pour les demandes d'infrastructure et la recherche.

Dans cette entreprise, j'ai monté quelques projets :

  • Ambassadeur et automatisation Cloud Flare. Auparavant, il était ajouté manuellement et faisait perdre du temps. J'ai utilisé le script BASH pour analyser le nouveau manifeste Ambassador et créer automatiquement le CNAME Cloud Flare via Gitlab CI. Mais ensuite, nous sommes passés à Github Action.
  • Déployez Pritunl Enterprise pour VPN Server. Également intégré l'accès du serveur VPN aux pods Kubernetes en utilisant Pritunl VPN Mesh. J'ai déployé le Pritunl VPN Mesh en utilisant Kustomize et Gitlab CI.
  • Extension du playbook Ansible pour l'accès des utilisateurs. J'ai ajouté l'API Pritunl pour interagir avec Pritunl Enterprise, comme récupérer l'URL d'activation MFA, définir le mot de passe par défaut et télécharger le profil VPN approprié. J'ai travaillé avec Python, Ansible et Gitlab CI sur ce projet. Mais après une décision prise par la direction, nous sommes passés de Gitlab CI à Github Action. Il y avait donc quelques changements nécessaires sur le projet.
  • Créer une automatisation pour réinitialiser le profil VPN de quelqu'un en utilisant le script BASH et Jenkins

Langages de programmation : Python, BASH

C.8. Travaille maintenant chez IT Consultant

Maintenant, je travaille ici en tant qu'ingénieur en infrastructure cloud depuis janvier 2023. La plupart du temps, je suis chargé de prendre des tickets liés à l'automatisation des demandes d'infrastructure. Mais j'ai également travaillé sur des demandes d'infrastructure ad-hoc pendant la semaine d'astreinte. Même il est devenu ingénieur d'astreinte L1 ou L2.

Ici, la plupart du temps, j'ai travaillé avec Terraform et BASH pour provisionner et modifier les ressources cloud. Je travaille également sur une automatisation qui pourrait permettre à quelqu'un d'utiliser Slack et d'envoyer la demande directement à l'ingénieur de garde. J'ai utilisé Python et Flask pour terminer les projets et les ai déployés sur Kubernetes via Helm Charts + Gitlab CI et ArgoCD.

Mon objectif principal dans cette entreprise est donc d'automatiser le plus possible les bâtiments.

Langages de programmation : Python, BASH

D. Parce que c'est multiplateforme

crédit : https://unsplash.com/photos/M5tzZtFCOfs

Après plus de 9 ans, j'ai réalisé que certains langages pouvaient être considérés comme multi-plateformes. Pourquoi est-il multiplateforme ? car il pourrait fonctionner sur de nombreuses plates-formes que nous pourrions utiliser maintenant. À mon avis, voici quelques plateformes bien connues qui sont populaires depuis 9 ans :

  • CLI
  • Application de bureau
  • Application Web frontale
  • Application Web principale
  • Application mobile (application Smartphone, application Smartwatch, etc.)
  • Microcontrôleurs (IoT, Robotique, etc.)
  • Java : CLI, application de bureau, application Web backend, application mobile, microcontrôleur
  • Javascript / Typescript : CLI, application de bureau, application Web frontale, application Web principale, application mobile, microcontrôleur
  • Python : CLI, application Dekstop, application Web backend, application mobile, microcontrôleur
  • C# : CLI, application Dekstop, application Web backend, application mobile, microcontrôleur

Mais pourquoi n'ai-je pas choisi Java ou C# ? les deux langages sont prometteurs et ont même plus de postes vacants que Python. J'utilise toujours Python comme langage de programmation principal car c'est facile. Il supporte la POO mais pas aussi dur que Java. De plus, la bibliothèque de Python Index Package (PIP) est gratuite et variée. Python possède également un framework Web backend populaire tel que Django, Flask, Falcon, Tornado et bien d'autres.

Pour être honnête, cela m'a vraiment aidé à créer une application avec Python. De plus, lorsque j'utilise Ansible. Je pense que je pourrais gérer mes compétences Python pour développer Ansible Module. Voici mon exemple de module Ansible que j'ai créé pour un usage personnel :

De plus, j'ai trouvé que Python est plus intéressant lorsque j'ai trouvé des outils comme Sentry et Celery qui pourraient m'aider à créer des outils plus résistants pour prendre en charge mon application Web Django. AWX (Open Source Ansible Tower) est également un outil qui m'aide beaucoup à gérer le playbook Ansible. Je pourrais également créer des tâches ETL avec PySpark pour Apache Spark. Cela m'a donc incité à accorder plus d'intérêt à Python qu'aux autres langages. Pour être honnête, c'est mon opinion subjective sur Python.

Langages de programmation : Python, Javascript

E. En tant que partie essentielle de mes outils préférés

crédit : https://unsplash.com/photos/oamw52SCGi0

Depuis 9 ans, même si c'est pour de vrais projets ou des projets personnels. Jusqu'à présent, mes outils préférés basés sur Python sont :

  • Django, un super framework web pour Python
  • Flask, un micro framework web pour Python
  • Celery, un framework de file d'attente de tâches. Le backend de la file d'attente peut être Redis, RabbitMQ et bien d'autres.
  • Gunicorn, serveur web pour Django ou Flask
  • Sentry, outils de suivi des erreurs pour plusieurs plates-formes
  • Certaines bibliothèques pour effectuer des requêtes HTTP, accéder à des bases de données (MySQL, PostgreSQL, Redis, MongoDB, Elasticsearch), etc.
  • Certaines bibliothèques de création de script ETL (PySpark, boto3, Pandas, etc.)

Certains outils que j'ai principalement utilisés lorsque je suis devenu ingénieur en infrastructure cloud sont :

  • Ansible, infrastructure en tant que code pour provisionner des ressources cloud et des outils de configuration à distance. Écrit en Python
  • AWX (Open Source Ansible Tower), écrit en Python, Celery et Django
  • Prometheus, surveillance du serveur et de l'application. Écrit en Go.
  • Grafana, solution de tableau de bord polyvalent. Écrit en Node.js.
  • Terraform, pour le provisionnement des ressources cloud. Écrit en Go.
  • Packer, écrit en Go.
  • Coffre-fort, écrit en Go.
  • Docker, écrit en Go.
  • Cartes Helm, écrites en Go.
  • Kubernetes, écrit en Go.
  • ArgoCD, écrit en Go.

Python et Go font tous deux partie intégrante des outils que j'aime beaucoup en ce moment. Ce point pourrait devenir une raison importante pour laquelle je choisis Python, puis Go.

Langages de programmation : Python, Go

F. Quelle est la prochaine étape ?

Les sections ci-dessus sont entièrement mon opinion basée sur mes expériences depuis plus de 9 ans. Mais si vous voulez voir la tendance avec plus d'objectifs basés sur l'enquête, vous pouvez voir ces enquêtes :

J'espère que vous choisirez vos langages de programmation préférés en 2023 et au-delà.

Conclusion

Pour l'instant, je choisis ces langages de programmation :

  • Python, j'aime beaucoup ce langage de programmation car à l'université et mes lieux de travail me donnent des chances de l'utiliser pour de vrais projets. De plus, Python prend en charge une large gamme d'applications CLI, d'applications Web, d'apprentissage automatique, de science des données, d'ingénierie d'infrastructure cloud et bien d'autres. De plus, vous avez pu voir que Python est mentionné 49 fois dans cet article.
  • Javascript / Node.js / Typescript, comme alternative, j'ai choisi Javascript parce que j'apprends ce langage de programmation depuis l'université également et qu'il est toujours utile si je dois créer une application Web backend à côté de Python. Mais pour l'instant, j'aime créer une application Web backend avec Nest.js uniquement. Je n'ai aucune expérience dans la création d'applications mobiles ou d'applications Web frontales avec Javascript.
  • Allez, j'ai vraiment besoin de temps pour m'y investir. Parce que mes outils préférés tels que Kubernetes et certaines piles Hashicorp sont écrits en Go. Un jour, si je veux créer une extension pour ces outils, je devrais l'écrire en Go. La plupart du cloud natif

C'est juste mon opinion personnelle, tout le monde peut avoir des idées différentes et des langages de programmation préférés.

Merci d'avoir lu.