Langages :

HTML : Langage qui constitue la base de n’importe quelle page Web (Boutons, titres, paragraphes), il est le seul à avoir ce rôle et ne possède pas d’intelligence à proprement parler. C’est un langage composé de balises.

CSS : Marche de pair avec le HTML, il sert à faire la mise en page d’un site Web (couleurs, alignements, polices etc.)
Javascript : Langage Web qui servait surtout à faire de petites animations en front-end. A aujourd’hui évolué vers plus de polyvalence avec certains framework (plus de puissance via AngularJS, VueJS et ReactJS en front et possibilité de faire du back avec NodeJS).

PHP : Langage Web historique et facile qui permet de faire du back-end.

Java : Langage polyvalent qui permet aussi bien de faire des applications “Desktop” que des applications Web. Il permet même de faire des applications Mobiles grâce au framework Android. En revanche personne on ne fait pas de site Web avec Java. Il a la possibilité de fonctionner sur n’importe quel machine (Windows ou Linux par exemple).

C : Langage de programmation dis de bas niveau, comprendre qu’il est complexe et qu’il permet de faire des programmes qui ont besoin de performance comme un système d’exploitation (Windows, Linux…)

C++ : C’est du C avec les concepts de programmation Objet en plus, il est très utilisé pour la performance une fois encore mais cette fois dans les jeux vidéos et les algorithmes de trading par exemple.

C# : “Concurrent” du Java, c’est avant tout un langage de programmation Microsoft qui permet de faire des applications Web, des applications Desktop et qui était aussi à la base des applications Windows phone. Sa force c’est de faire parti d’un grand écosystème microsoft avec beaucoup de suites logicielles ou d’outils liés. Historiquement il n’était pas possible de faire des applications tournant sur Unix ou Mac, ni
même de programmer avec autre chose qu’un PC, il faut voir si c’est toujours le cas aujourd’hui.

Swift : Langage de programmation Apple, il sert à coder des applications sur les Iphone mais aussi sur tout appareil Apple.

Python : Langage de programmation typé “scientifique”, il est très utilisé par les chercheurs pour des calculs mathématiques mais aussi aujourd’hui pour du Big Data.

 

Autres notions techniques :

Bibliothèque : Les bibliothèques sont utilisées conjointement avec les langages de programmation.
Il s’agit de composants ou de fonctions préfabriqués dans un langage de programmation donné. Une bibliothèque permet finalement de ne pas avoir à recoder à chaque des éléments déja existants. A noter que chaque langage à ses bibliothèque et qu’une bibliothèque d’un langage n’est pas compatible avec les autres.

Framework : Littéralement “cadre de travail”, les frameworks sont également utilisés conjointement avec les langages de programmation. S’ils sont notamment composés de bibliothèques, ce sont surtout des outils qui “cadrent” le développement informatique. Coder dans n’importe langage de programmation est relativement facile, “bien” coder est une autre paire de manches. En effet, il est facile de développer de petites choses rapidement mais quand un logiciel est amené à évoluer régulièrement et qu’il compte plusieurs dizaines de milliers de lignes de code, l’affaire devient de plus en plus complexe. Ca ne pose généralement pas de problème si les bases sont solides et bien cadrées et c’est justement le but d’un framework : imposer une méthode de développement que tout le monde respectera. Chaque langage a ses frameworks mais comme pour les bibliothèques, les frameworks ne sont pas compatibles sur plusieurs langages. Par ailleurs, la maitrise d’un framework étant bien plus complexe que celle d’un langage il faut faire attention à privilégier le framework et non le langage.
Exemple : Un client cherche un développeur qui fait du javascript sous le framework react.js. Je vais chercher un développeur react plutot qu’un développeur javascript car un développeur fera obligatoirement du javascript alors qu’un dev javascript aura un temps d’apprentissage plus ou moins important pour maitriser un framework comme react.js.

Serveur : Un serveur est un genre de “super” ordinateur à vocation “professionnelle”, c’est à dire qu’il est utilisé pour fournir différents services à des utilisateurs : accès a internet, stockage de données, puissance de calcul. Typiquement, quand vous utilisez Google Drive, vos données sont stockées dans un serveur.
Quand vous regardez une Série sur Netflix, cette série vous est envoyée depuis un serveur.
Quand des scientifiques lancent des calculs complexes, il peuvent faire appel à des serveurs pour avoir plus de puissance que sur leurs ordinateurs.

Client : Par opposition au serveur, le client est la personne qui se connecte à un serveur. Pas en tant qu’administrateur mais en temps qu’utilisateur.
Quand on joue en réseau, on rejoint des serveurs de jeux, ce qui fait de nous des clients, quand on se connecte à un site Web, nous devenons un client.

Datacenter : Un datacenter est un entrepot de serveurs. Ce sont de grands batiments qui leurs assurent une sécurité optimale : contre les intrusions, la chaleur, les coupures de courant etc. Tout est fait dans un datacenter pour que les serveurs ne s’arrêtent jamais de marcher. Internet reposant sur les serveurs basés dans les datacenter, on comprends tout l’intérêt de securiser un maximum leur fonctionnement.

Cloud : Le cloud (ou cloud computing) est un ensemble de service fournit par des serveurs.
A l’origine, si on souhaitait avoir de la puissance, du stockage ou un autre type de service informatique, on avait la possibilité de louer un serveur stocké quelque part dans un datacenter. Un serveur étant à la base un ordinateur, on pouvait choisir ses caractéristiques : Processeur, mémoire vive, stockage etc. Aujourd’hui, le cloud computing offre la possibilité d’obtenir une quantité précise de puissance ou de stockage. Il ne s’agit plus de louer un ordinateur en lui même mais des services.
En effet, le cloud computing permet aujourd’hui de mutualiser la puissance des ordinateurs et de rendre leurs ressources extrêmement divisible.

Front end : Le front-end correspond à l’interface que verra l’utilisateur quand il utilise une application ou un site Web.

Back end : Le back-end correspond à “l’intelligence” d’un site Web ou d’une application. Il s’agit de tous les traitements, des accès à la base de données et toute autre opération invisible pour l’utilisateur mais qui lui permet d’obtenir le résultat ou comportement attendu par l’application.

Full Stack : Il s’agit de l’addition du Front-end et Back-end. Terme très en vogue, les développeurs full stack sont en théories capable de coder les deux parties.

API : Une API (Application Programming Interface) part de la volonté d’un développeur de partager les services de son application avec d’autres applications.
De manière plus claire, une application peut être développée pour marcher seule et uniquement seule ou avoir la possibilité de s’interfacer avec d’autres applications et les exemples, usages sont nombreux. Un exemple concret c’est par exemple le moment ou vous vous inscrivez sur une nouvelle application ou site Web. En général on ne vous demande plus de remplir toutes les informations vous concernant. Il suffit de “se connecter via Facebook” ou “Google” ou LinkedIn, etc. Ce qui se passe en réalité quand vous acceptez la connection via Facebook c’est que le site ou l’application sur laquelle vous souhaitez vous inscrire se connecte à votre compte Facebook pour y récupérer des informations : nom, prénom, age etc. Un appel à l’API Facebook à été effectué.

SOAP :

REST :

Versionning : Il s’agit d’un type d’outil utilisé dans le cadre de la programmation voire dans l’élaboration de bases de données. Ces outils offrent deux possibilités :
– Programmer à plusieurs : en effet, il est très difficile de coder à plusieurs sans avoir un outil qui “centralise” le code. Pour imager un peu ce concept, imaginez que vous deviez écrire un livre à plusieurs : Si chacun écrit de son coté et doit envoyer sa version et que personne n’est
forcément synchroniser sur cet effort, c’est très difficile de mutualiser les écrits et avoir une cohérence globale pour le livre.
“Versionner” : c’est à dire, créer des “versions” de son code au fur et à mesure que l’on développe un programme. Cela permet de pouvoir revenir en cas de problème. Exemple : Tinder lance la nouvelle version de son application et on se rends compte que Tinder Bug pour les femmes entre 16 et 24 ans. Tinder peut donc décider de corriger le bug mais vu l’urgence d’une telle situation, ils peuvent aussi proposer de revenir à la version précédente pour que tout marche en attendant de résoudre l’erreur.

Shell : Le shell est un programme représenté par un écran noir et un traitement de texte.
Souvent apercu dans les films, il s’agit d’une alternative à une système de navigation graphique comme on peut avoir sous Windows (pointeurs, fenêtres, icones etc.).
Ce n’est ni mieux, ni moins bien qu’un environnement graphique, ça permet de réaliser exactement les mêmes opérations.
Ces opérations (naviguer, copier, modifier, renommer, créer un nouveau fichier, lancer un programme etc) sont pour certaines plus pratiques à utiliser sous un environnement graphique, pour d’autres plus pratiques sous un shell. C’est pour cela que le shell est très utilisé dans le monde professionnel et pas auprès du grand public.
Différents types de shell existent (sh, bash, ksh, csh, tcsh, zsh) pour Unix / Linux mais il en existe aussi un sous windows (powershell).

 

Bibliotheques :

jQuery : C’est une bibliothèque Javascript. Si elle n’ajoute pas forcément beaucoup de fonctionnalités, elle permet surtout de rendre le Javascript BEAUCOUP plus simple à utiliser. Connaitre du jQuery c’est plus facile que de connaitre Javascript dans les faits.

Bootstrap : Il s’agit d’une grosse bibliothèque de composants graphiques HTML, CSS et Javascript. Elle permet de faire de belles applications tout en les rendant “responsive”, c’est à dire qu’un site développé avec Bootstrap adaptera son affichage en fonction de si vous le consultez avec un téléphone portable, une tablette ou un pc par exemple.

 

Base de données :

SQL : SQL est un langage qui permet d’interagir avec les bases de données dites “relationnelles”. Très différent d’un langage de programmation traditionnel, il va surtout permettre d’ajouter des données, en supprimer, en extraire etc.

PL SQL : Version “avancée” sur SQL, il rajoute des extensions au langage afin de le rendre plus puissant, il est aussi plus complexe.

T-SQL : T-SQL (ou Transact-SQL, c’est la même chose) Même topo que pour PL SQL, juste une syntaxe légèrement différente. Une personne sachant faire du PL SQL saura s’adapter facilement au T-SQL et vice versa. En revanche ça sera plus délicat pour une personne faisant “juste” du SQL de pouvoir être opérationnel tout de suite sur du T-SQL ou du PL SQL.

NoSQL : NoSQL veut dire “not only SQL”, il vient en opposition aux bases de données dites “relationnelles”. C’est un terme générique qui désigne donc les bases de données non relationnelles.

MySQL : Base de donnée SQL la plus basique, elle est simple d’utilisation et gratuite.

PostgreSQL : Plus puissant que MySQL, le langage utilisé cette fois est le PL SQL.

Sybase : Plus puissant que MySQL, le langage utilisé cette fois est le T-SQL.

SQL Server : Plus puissant que MySQL, le langage utilisé cette fois est le T-SQL.

MongoDB : Il s’agit d’une des NoSQL les plus populaires

 

Frameworks :

React.js : Framework front-end Javascript développé par Facebook.

Angularjs : Framework front-end Javascript développé par Google.

Vue.JS : Framework front-end Javascript.

Node.js : Framework back-end Javascript.

Symfony : Framework back-end PHP, il s’agit du plus populaire en PHP.

Zend : Vieux Framework PHP back-end et concurrent de Symfony.

Spring : Framework Java, il s’agit du plus populaire en Java.

Struts : Framework Java.

.NET : Framework C#, il s’agit du seul et il est obligatoire en C# car le tout appartient à Microsoft.

 

Editeurs de code :

Notepad++ : Il s’agit d’un éditeur de code plutot léger, s’il peut supporter n’importe quel langage il est surtout utilisé pour les débutants en HTML et CSS.

Eclipse : C’est l’éditeur de code principal pour du Java.

PHPStorm : Editeur de code puissant pour le PHP.

VisualStudio : Il s’agit du seul éditeur de code pour le C#, environnement Microsoft oblige.

Sublimetext : Editeur de code puissant multi langages.

Xcode : Il s’agit du seul éditeur de code pour Swift et Objective-C, environnement Apple oblige.

 

Outils de versionning :

Git : Il s’agit de l’outil de versionning le plus populaire et le plus puissant.

SVN : SVN (ou Subversion) est le deuxième outil de versionning le plus populaire, il est un peu moins puissant que Git.

TFS : Plutôt à la marge, c’est un outil de versionning Microsoft et qu’on est donc plus susceptible de retrouver sur un environnement C#.

Big Data
IIS
Python
Azure computing
Redux CSS
REST
SOAP
Syn
Blockchain
Hadoop
Spark
Unyc
DevOps
Legacy
Json
XML
Tests unitaires
Test d’intégration
Tests de non regression
TDD
Iot

Aller au contenu principal