Par:
Aimé DIUMI DIKOLO
Kleine KAMBALA MBO
Minasquin SOKOMBE
Par:
Aimé DIUMI DIKOLO
Kleine KAMBALA MBO
Minasquin SOKOMBE
Souvent, on choisit d’apprendre l’informatique à cause de l’influence des autres ou après admiration des œuvres des autres en informatique. Et dans la plupart de cas, nous ignorons toutes les possibilités qu’offre l’informatique, on a juste une petite et vague idée de la grandeur et de la profondeur de l’informatique.
Et parfois, nous tombons dans le piège de chercher à apprendre tout sur l’informatique, à chercher à connaitre tout ce qui se dit autour de l’informatique. Et pour plusieurs, il arrive qu’ils ne soient forts en aucun domaine précis malgré tous leurs efforts pour la simple raison qu’ils apprennent l’informatique sans viser un domaine bien défini et par manque de la bonne stratégie d’apprentissage.
Il y a des gens qui n’aiment pas entendre parler de quelque chose en informatique sans chercher à s’intéresser immédiatement à ça. Par exemple, peut-être qu’il était en train d’apprendre les réseaux informatiques, mais s’il entend quelqu’un vanter la programmation, sa motivation côté réseaux diminue et il se penche côté programmation parfois sans même terminer son apprentissage des réseaux informatique. Pendant qu’il cherche à connaitre la programmation, si par malheur, il entend encore parler du job le plus sexy de l’informatique (data scientist), il abandonne encore la programmation pour chercher à être data scientist. Et au finish, il ne sera peut-être pas bon dans aucun des domaines…
L’informatique est un domaine d’activité scientifique, technique et industriel concernant le traitement automatique de l’information numérique par l’exécution des programmes informatiques par des machines : des systèmes embarqués, des ordinateurs, des robots, des automates, etc.
Aujourd’hui, l’informatique touche presque tous les aspects de la vie, on retrouve l’informatique presque partout : dans nos maisons, églises, écoles, universités, entreprises etc. Elle offre plusieurs avantages et facilite la vie…
Mais l’informatique est une grande forêt, dans laquelle on risque de se perdre si on n’est pas prudent ou averti. Etant donné qu’elle a plusieurs champs d’applications, c’est logique qu’elle ait plusieurs domaines. Chaque domaine de l’informatique a des rôles ou finalités bien connus et précis : par exemple, on fait la programmation pour la production des logiciels et applications.
Dans ce guide, nous avons retenu dix domaines de l’informatique à savoir :
Pour chaque domaine, nous allons essayer d’expliquer en bref sa finalité, les compétences nécessaires et les outils nécessaires.
Un développeur ou analyste programmeur est un informaticien qui réalise des logiciels ou des applications. Et il les (logiciels) met en œuvre grâce aux langages de programmation.
Un langage de programmation est un mode de communication vous permettant de dialoguer avec une machine en lui soumettant des instructions à exécuter.
Les langages de programmation se comptent par milliers. Certains sont dits dédiés car utilisés pour traiter les contraintes d’un domaine d’application précis (calcul scientifique, bases de données, …). D’autres sont généralistes car peuvent être utilisés dans tous les domaines.
Les langages de programmation se différencient aussi selon qu’ils soient interprétés ou compilés ou encore de haut ou de bas niveau. Un langage de programmation de haut niveau utilisera ainsi une langue naturelle tel que l’anglais. A contrario, un langage de programmation de bas niveau visera à être compris d’abord et avant tout par la machine et moins par un être humain.
Un Framework est, comme son nom l’indique en anglais, un “cadre de travail ”. L’objectif d’un Framework est généralement de simplifier le travail des développeurs informatiques (les codeurs si vous préférez), en leur offrant une architecture “prête à l’emploi” et qui leur permette de ne pas repartir de zéro à chaque nouveau projet.
Avantages :
Il existe des frameworks pour tout : développer une application mobile, un jeu, un site web, un module d’extension, des CSS… La plupart d’entre eux est spécifique à un langage de script ou de programmation.
Pour répondre aux besoins d'un client, il établit dans un premier temps un « cahier des charges» qui détermine les besoins du client en matière d'informatisation et contrôle.
Dans un second temps il développe une solution technique (Hardware) et crée un modèle (analyse organique) du futur logiciel(software) gérant le futur système informatique (s'il n'existe pas).
Il écrit ensuite des lignes de code nécessaires au correct fonctionnement (programmation), participe aux phases d'essais, réalise la documentation technique, s'occupe du suivi et de la maintenance de son produit. Il peut également former les utilisateurs.
Le développeur travaille en équipe, le plus souvent avec des clients, des chefs de projet et d’autres développeurs.
Un développeur est un expert des langages de programmation. Il doit maîtriser des outils informatiques, de l'anglais technique et des langages de programmation
La connaissance du secteur d'activité dans lequel va être utilisé le logiciel est un atout. Elle permet de mieux saisir les attentes des clients et leur approche du problème. Car on ne peut pas proposer une solution à un problème sans connaitre le problème. Le développeur doit aussi maîtriser l'environnement d'exécution de son programme.
Rigueur, sens de la méthode, qualités relationnelles, rapidité d'exécution et facilité de s'adapter à de nouveaux langages sont autant de qualités demandées. Il faut également faire preuve d'autonomie. Métier d'un secteur en perpétuelle évolution, le concepteur informatique doit avoir une très bonne capacité d'adaptation et d'autoformation tout au long de sa carrière, avec une pointe de curiosité.
Le développeur doit par ailleurs avoir un esprit logique, rigoureux et pragmatique. L'écoute et la rapidité d'exécution peuvent être un plus, notamment pour répondre aux demandes des clients.
Nous pouvons subdiviser le développement en trois sous domaines :
La programmation web est la programmation informatique qui permet d’éditer des sites ou applications web.
Il existe différentes technologies et différents langages permettant de construire des sites web par l'intermédiaire de serveurs web, que l'on peut donc classer selon deux principes : des langages de programmation côté client, ou côté serveur. Cette distinction est faite pour séparer les langages « côté serveur » dont le code est exécuté sur le serveur web avant d'arriver sur le navigateur de l'utilisateur, des langages « côté client » dont l'exécution ne nécessite pas de calcul sur le serveur web mais, seulement après le téléchargement de la page, une interprétation par le navigateur de l'utilisateur.
Il est nécessaire de connaitre :
Les principaux langages sont :
Quelques Frameworks
Un système de gestion de contenu ou SGC (content management system ou CMS en anglais) est une famille de logiciels destinés à la conception et à la mise à jour dynamique de sites Web ou d'applications multimédia.
La plupart des systèmes de gestion de contenu modernes permettent en effet l'édition de contenu selon le principe WYSIWYG. Cet acronyme issu de l'anglais signifie What you see is what you get, c'est-à-dire, ce que vous voyez est ce que vous obtenez. En effet, ce procédé qui a révolutionné la conception web permet de construire une page sur la base de ce à quoi elle doit ressembler. Le CMS génère automatiquement le code lui étant relatif.
Quelques CMS :
Le développement de logiciel consiste à étudier, concevoir, construire, transformer, mettre au point, maintenir et améliorer des logiciels.
Du côté du développement desktop, les langages de programmation sont très nombreux et il est donc très difficile de connaitre la majorité de tous ces langages. Il s’agira donc pour le développeur informatique de se spécialiser dans un ou plusieurs de ces langages et de faire valoir son savoir-faire pour un type d’application ou d’usage en particulier.
Quelques langages pour le développement desktop
Un développeur d’applications mobiles développe des applications pour des terminaux mobiles (smartphones, tablettes…). Il peut également avoir la mission d’optimiser des applications déjà créées ou d’adapter des sites Web au support mobile.
De nos jours, il existe divers enjeux pour développer une application mobile entre autres les enjeux de compatibilité aux différents systèmes d’exploitation ; c’est-à-dire, si vous voulez créer une application, vous allez soit créer une application « native » ou une application « cross-platform ». Une application est dite native si elle est écrite en tenant compte que cela puisse tourner sur un système d’exploitation bien ciblé, de là, il est clair qu’il faudrait deux applications écrites en différents langages de programmation pour enfin avoir une application qui tourne sur Android et sur l’IOS par exemple.
Chacun des OS mobile, dispose d'un langage de programmation à lui propre, permettant le développement de ses applications. Les applications pour les terminaux Apple sont développées dans un langage principalement dédié à ces applications mobiles, le Swift. Celles pour Windows Mobile, sont développées en C#. Le système Android utilise, quant à lui le Java et le Kotlin.
Les applications mobiles sont pour la plupart distribuées depuis des plateformes de téléchargement (parfois elles-mêmes contrôlées par les fabricants de smartphones) telles que l' AppStore (plateforme d'Apple), le Google Play (plateforme de Google / Android), ou encore le Microsoft Store (plateforme de Microsoft pour Windows 10 Mobile. Les applications distribuées à partir des magasins d'applications sont soit payantes, soit gratuites, mais généralement avec des publicités.
En générale, voici les langages, frameworks et outils utilisés pour la programmation mobile :
En 2019:
En 2020
D’après le site hotframeworks.com
Il y existe deux manières de concevoir un logiciel. La première, c’est de le faire si simple qu’il est évident qu’il ne présente aucun problème. La seconde, c’est de le faire si compliqué qu’il ne présente aucun problème évident. La première méthode est de loin la plus complexe"
"Aujourd’hui, la programmation est devenue une course entre le développeur, qui s’efforce de produire de meilleures applications à l’épreuve des imbéciles et l’univers, qui s’efforce de produire de meilleurs imbéciles. Pour l’instant, l’univers a une bonne longueur d’avance."
"Les programmes doivent être faits pour être lus par des gens, et occasionnellement pour être exécutés par des machines. "
Codez toujours comme si la personne qui allait maintenir votre code était un violent psychopathe qui sait où vous habitez.
“ Mesurer la progression du développement d’un logiciel à l’aune de ses lignes de code revient à mesurer la progression de la construction d’un avion à l’aune de son poids ”
“ Neuf femmes ne peuvent pas faire un bébé en un mois ”
“ Mal nommer les choses, c’est ajouter au malheur du monde ”
“ Il semble que la perfection soit atteinte non quand il n’y a plus rien à ajouter, mais quand il n’y a plus rien à retrancher. ”
"Il n'y a que deux sortes de langages de programmation : ceux dont les gens disent toujours du mal et ceux que personne n'utilise."
“ Un langage de programmation est censé être une façon conventionnelle de donner des ordres à un ordinateur. Il n'est pas censé être obscur, bizarre et plein de pièges subtils (ça ce sont les attributs de la magie).”
“ Parler est bon marché. Montrez-moi le code."
"Je m'en fous si ça marche sur votre machine ! Nous ne livrons pas votre machine !"
"Programmer, c'est comme se donner des coups de pied dans le visage, tôt ou tard, votre nez va saigner."
“N’importe quel idiot peut écrire du code qu'un ordinateur peut comprendre. Les bons programmeurs écrivent du code que les humains peuvent comprendre.”