Table des matières

Un langage de "programmation" ?

Les langages de programmation permettent d'effectuer des tâches bien précises dans l'ordre indiqué par le développeur.

Il y en a énormément, les plus connus sont Python, JavaScript, Java, C, C++, C#, Rust etc...

Haut et bas niveau ?

Un langage peut être de haut niveau s'il requiert moins au développeur de gérer sa machine (mémoire etc...) par rapport à un langage bas niveau où il faut gérer plus de choses de sa machine.

On peut donc faire plus de choses sur un langage bas niveau (=plus proche de la machine), mais il y a donc plus de choses à gérer, dont on n'a pas forcément l'habitude si on n'a fait que du haut niveau

Ca n'a rien à voir avec le "niveau" du langage (même si les possibilités dans ces derniers est forcément liée à leur niveau)

Par exemple Python est de haut niveau et le C est de bas niveau.

Paradigmes

Il y a une autre dimension à prendre en compte pour caractériser un langage, ce sont les paradigmes suivis par ce dernier, des principes qui le caractérisent.

La liste suivante est non exhaustive, et un langage de programmation peut en suivre plusieurs tant qu'ils ne sont pas exclusifs entre eux.

Un langage est impératif s'il est basé sur une série d'instructions ordonnée, c'est celui le plus répandu. Python, C ou encore Java le sont par exemple.

Un langage est fonctionnel s'il met plus l'accent sur l'utilisation de fonctions pures et l'immuabilité (ne pas pouvoir modifier une valeur). Il y a par exemple OCaml qui est par ailleurs français, ou encore Haskell ou Scala.

Un langage est orienté objet s'il permet de créer des instances de classes. C'est-à-dire s'il est possible de définir des concepts ayant certaines caractéristiques de manière généralisée (exemple: être humain), qu'on appelle classes, et de créer des objets concrets de ces classes, que l'on appelle instances

Parcours Programmation

L'art de programmer peut s'avérer très utile, beaucoup plus que ce que l'on pense. Ici, outre l'apprentissage de langages de programmation, on s'intéresse notamment à l'aspect algorithmique.

Pour travailler sa logique algorithmique et sa maitrise des langages, il existe de nombreux sites selon ce que vous visez.

Pour apprendre à programmer il n'y a pas de secret, il faut s'entraîner, car la traduction de la pensée humaine à du code informatique n'est pas toujours aisée !

France IOI

https://www.france-ioi.org/algo/ Ce site est un bon début pour progresser dans divers languages parmi: C, C++, Pascal, OCaml, Java, JavaScool, Python

Il peut être intéressant de commencer par le Python si vous n'y connaissez strictement rien.

Codingame

https://www.codingame.com/ Gamifier la programmation ? C'est ici !

Il y a plusieurs modes de jeu, notamment (liste non exhaustive) :

Leetcode

https://leetcode.com/

Ce site est principalement destiné à l'entraînement pour des programming interviews, il y en a des milliers !

Neetcode

https://neetcode.io/

Ce site répertorie les 150 exercices de Leetcode les plus intéressants à faire, d'un point de vue technique et fonctionnel.