Guru99, L’immense portail de tutoriels en informatique

Je viens de découvrir ce site web Guru99 presque par hasard. Par la magie de l’internet, j’ai fait la connaissance de l’un des administrateurs de ce site web, en raison que nous proposons presque le même continu sur le Net. Après avoir fait un bref détour sur le site, j’ai pu constater que c’était un site énorme, et pour lui rendre justice, je dois clairement le qualifier de portail au lieu de sites web. Il contient énormément de tutoriel, fait par différents enseignants, Incluant différents thèmes. D’ailleurs, je n’arrive même pas à inclure tout le contenu dans cet article, ainsi je vais lister ici-bas les partis qui me semblent les plus intéressantes :

www.guru99.com

Langages de programmation :

Diverses ressources :

Bases de données :



Apprendre l’électronique avec Arduino

Personnellement, je trouve la plateforme Aduino, l’un des meilleurs moyens pour permettre aux étudiants et aux initiés de faire une introduction aux systèmes embarqués. Pour faire simple, les systèmes embarqués sont des systèmes qui nécessitent des connaissances en électronique pour construire la plateforme physique, et en informatique pour programmer la plateforme. Ainsi, pour pouvoir faire du système embarqué, il faut au minimum avoir des connaissances dans les 2 disciplines.

Cours approfondi sur Arduino

J’ai déjà à plusieurs reprises écrit sur Arduino. Mais cette fois-ci, je suis tombé sur une vidéo très approfondie sur le sujet. Parce que, Premièrement, la vidéo ne nécessite de l’étudiant aucune connaissance préalable en informatique et en électronique. Et Deuxièmement, ce qui est le plus intéressant, c’est que l’étudiant n’est pas obligé d’avoir une carte Arduino matérielle pour pouvoir suivre ce cours. Car on retrouve sur la vidéo une référence à un simulateur qui arrive à faire la simulation d’Arduino et de l’électronique avec en plus une superbe interface bien agréable. C’est le simulateur online tinkercad.

La vidéo en question est celle de la chaîne YouTube du site web éducatif www.freecodecamp.org, et comme vu précédemment dans d’autres blogs, c’est un excellent site plein de nombreux cours et tutoriels en informatique.

Projet du weekend : Angry Birds-like en Python

Il n’y a pas plus fun et amusant dans la programmation que la programmation des jeux vidéo, le but étant de créer un univers vidéoludique dans lequel les joueurs peuvent s’amuser, et même parfois apprendre, ou être projeté dans un univers imaginaire et suivre une histoire, ou faire la connaissance et socialiser avec d’autres joueurs. Malgré son aspect jovial, la programmation des jeux vidéo n’est pas une tâche si facile. Contrairement à d’autres types d’application, la programmation des jeux vidéo nécessite la maitrise de nombreux aspects très différents les des autres. Comme par exemple, la programmation procédurale, la programmation objet, la programmation événementielle, la programmation concurrentielle, la simulation physique comme sur le tutoriel en bas, la programmation réseaux, la maitrise de quelques notions en algèbre et en géométrie, l’intelligence artificielle, systèmes d’exploitation pour le portage et la distribution sur différentes plateformes, une bonne base d’algorithmes et de structures de données, et surtout l’infographie (ou en Anglais computer graphics)…etc. 

Simulation physique sur Python

Sur la vidéo en haut, de l’excellente chaîne Youtube Tech With Tim, il est possible de suivre un petit tutoriel sur comment on peut développer avec Python une simulation physique similaire à la simulation utilisée dans le jeu Angry Birds. La vidéo ne se focalise pas réellement sur l’aspect jeu vidéo, mais plutôt sur l’aspect simulation physique. Il y a beaucoup de jeux dont leur gameplay se base sur la physique, mais dans la plupart du temps, ce n’est pas si facile pour un étudiant ou un débutant avec des connaissances basiques de la programmation de passer à la programmation des jeux vidéo utilisant la physique. En réalité, ce que vous allez voir sur la vidéo est une petite introduction au framework graphique PyGame, qui est utilisée le plus souvent pour le développement de petits jeux vidéo (dit jeux indé). Il est utilisé conjointement avec une autre bibliothèque appelée PyMunk dédiée à assurer la simulation physique du jeu. Normalement pour maîtriser le tout, le développeur doit investir beaucoup de son temps, mais la vidéo ici représente juste une petite introduction pour ce type de programmation pour avoir un pas de départ. 

Apprendre le Python

Sans exagération ni de subjectivité, actuellement le langage Python et l’un des langages les plus utilisés en informatique. C’est un langage plutôt orienté vers les applications de bureau, les serveurs web, le calcul scientifique, script et automatisation des tâches, l’intelligence artificielle, data science…etc. D’un point de vue pédagogique, on peut clairement distinguer deux écoles de formation de programmation. L’école classique, comprenant entre autres le langage C et C++. C’est l’école dans la manière de formation se focalise sur une compréhension bas-niveau de la programmation, l’étudiant généralement, assimile en profondeur le fonctionnement de la machine. En contrepartie, il lui est très difficile de réaliser une application complète et finie. La deuxième école se focalise sur un apprentissage haut-niveau, et ça implique généralement le langage Python ou Javascript. Dans lesquels les concepts de programmation sont étudiés d’une manière générique, mais avec l’accès à un arsenal d’outils prêts à être utilisés à la volée. Avec cette dernière école, il devient plus facile de concevoir des applications complètes et prêtes à être utilisées, même si elles sont le plus souvent des applications ballonnées et peu optimisées. La vidéo en bas présente un cours très structuré, et très abordable pour les débutants concernant le langage Python. Ça a été réalisé par l’académicien Mosh Hamedani, possédant une chaîne YouTube et ainsi site web CodeWithMosh.com avec plusieurs vidéos et cours pour apprendre différents langages de programmation. 

Cours en Python

Tutoriels dans différents langages de programmation

Les informaticiens en général doivent consommer une énorme quantité de tutoriels pour se sentir à l’aise face à l’énorme quantité de technologies informatiques qui existent de nos jours, et il n’y a pas plus bénéfique qu’un bon site-web bien structuré et plein de tutoriels sur différents langages et différentes technologies. Le site-web en question est www.w3schools.com, avec une liste, comme vous allez le voir en bas, énorme de langages de programmation. Chaque tutoriel est bien organisé en plusieurs parties, avec pour chaque langage son compilateur online dédié permettant de tester le code étudié directement sur le navigateur. Les tutoriels sont complémentés, pour certains langages, par une base substantielle d’exercices et de quiz, certains langages disposent aussi de fiches de références pour rassembler toutes les ressources du langage dans une seule fiche, il y a aussi des cours en vidéo, mais ces derniers sont pour la plupart payants.

Voici une liste non exhaustive des tutoriels les plus intéressants :

Introduction aux structures de données

Encore un autre cours sur les structures de données, d’autre part c’est très important, le cours sur la vidéo en bas est très court, la vidéo ne dure que 3 heures avec un survol sur les principales structures de données. Pour rappel, cette matière éducative traite les différentes manières d’organiser et d’arranger les données dans la mémoire pour une utilisation optimale dans la programmation, il existe plusieurs structures, chaque une d’elles a ses avantages et ses inconvénients en dépend de la nature du problème et de l’algorithme utilisé.

Cours sur les structures de données

L’auteur au début de la vidéo fait une bonne introduction sur la notion de la complexité (big O), il continue ensuite en séquence par donner de bonnes explications sur les différentes structures, sans pour autant aborder leurs implémentations et programmation, les structures abordées en question sont ; les tableaux, les vecteurs (tableaux à taille variable, appelés dans la vidéo ArrayList), les piles, les files, les listes chaînées, les listes doublement chaînées, les maps (appelés dans la vidéo dictionary), les arbres avec trois variantes, les arbres binaires de recherches, les tries (arbres pour stocker les mots d’un dictionnaire), les tas (appelés dans la vidéo heap), en terminant avec les graphes.

La vidéo est celle de la chaîne Youtube FreeCodeComp.org, la chaîne appartient au site-web éducatif du même nom, la chaîne dispose d’un nombre important de vidéos didactiques et tutoriel de très bonnes qualités sur différents aspects de l’informatique.

Court tutoriel sur Arduino

Ce qui suit est une excellente petite vidéo de 15 minutes sur Arduino, elle nous vient de la chaîne Youtube Afrotechmods, une excellente chaîne sur l’électronique avec énormément de projets, d’explication et de démonstration. La vidéo est un court tutoriel sur Arduino, ça couvre l’essentiel de son utilisation avec de petits exemples.

Cout tutoriel sur Arduino

Commandes basiques dans Linux

Il est bien connu dans la culture informatique que Linux dispose d’un terminal (appelé aussi invite de commande) très puissant et très populaire. Le terminal est littéralement l’interface textuelle permettant à l’utilisateur de commander son système d’exploitation, en d’autres mots ça permet de manipuler l’ordinateur en tapant des commandes. Techniquement parlent cette interface est appelée CLI pour Commad-Line Interface, contrairement à l’interface la plus répondue actuellement qui se base sur l’utilisation de la sourie pour interagir avec une interface graphique constituée de boutons, des barres de défilement, d’onglets, de fenêtres…etc, qui est elle appelée GUI (pour Graphical User Interface).

Tutoriel basique sur les commandes Linux

La vidéo en déçus correspond à un petit tutoriel d’introduction au terminal de Linux, réellement Linux en dispose de plusieurs terminaux, la vidéo présente l’un des plus célèbres entre eux qui est le bash, avec lequel il est même possible de programmer des scripts. Vous pouvez pratiquer en parallèle avec le tutoriel sans avoir à installer Linux ni de machines virtuelle avec le shell online cb.vu (shell est une autre appellation pour invite de commande).

Le contenu de 3dbuzz libre d’accès

Le site 3d buzz (https://www.3dbuzz.com/) a été un excellent site web bien connu dans le domaine de la création vidéoludique, il représentait principalement une collection de vidéos sous format de tutoriels payants touchant les principaux logiciels et langages de programmation pour le développement des jeux vidéo, néanmoins une importante partie des tutoriels, comme vous pouvez le voir sur la liste en bas, n’est pas réservée que pour le domaine vidéoludique mais touche l’informatique en général. Le site malheureusement vient de fermer ses portes en cause de la mort du principal créateur du site, et la famille du défunt a voulu lui rendre hommage en libérant et mettant en accès gratuit le contenu de son site.

Le contenu du site n’est resté que quelques jours librement disponible après la fermeture du site, mais des sites miroirs comme le site miroir (https://mirror.rikuwu.com/3dbuzz/) sont actuellement disponibles répliquant les ressources du site, il existe aussi deux liens torrent (lien1 , lien2) pour télécharger tous les 205 Go du site aspiré. Il existe aussi un post reddit dédié pour la collection des différentes ressources, à consulter pour plus d’informations ou si les liens ci-dessous venaient à disparaître.

La liste de quelques outils et langages de programmation disponible sur le site est comme suite :

  • 2D Artwork
  • 2D Game Art
  • 3Ds Max
  • After Effects
  • AI Programming
  • ASP.net
  • C#
  • C# and XNA
  • Blender
  • C++
  • Building 2D games in C++
  • Building iPhone Applications
  • Unity 4.5
  • CryEngine 3
  • Developing Unity Games for the iPhone
  • Doom 3 Modding
  • Drawing
  • Game Assets in 3DS Max
  • Far Cry Level Development
  • SOLIDWORKS
  • GIMP
  • Half Life 2 Level Development
  • Objective-C
  • Android Development
  • Delphi
  • F#
  • Windows Phone 8 Development
  • Maya
  • Basic Mathmatics
  • MMO Development
  • MOBA MMO
  • Modern HTML and CSS
  • Modern JavaScript
  • OpenGL
  • Photoshop CS5
  • Python
  • Quixel Suite
  • React.js
  • UDK
  • Web Design
  • XNA
  • Zbrush
  • et plusieurs autres…

Conception Hardware dans le jeu Minecraft

Le jeu Minecraft est un jeu vidéo très populaire, réellement il s’agit du jeu vidéo le plus vendu au monde à ce jour. C’est un jeu de type SandBox dans lesquel le gameplay est axé sur la modification, la création et la destruction de l’environnement dans lequel théoriquement le joueur peut modeler et construire n’importe quel maison, building, bâtiment, ou même des villes entières à base de petits cubes qu’il peut disposer à volonté dans le jeu. Le jeu aussi dispose d’un élément appelé Redstone qui permet au joueur de construire des circuits numérique à base de portes logiques et de cellules mémoires de type latch et flipflop, la communauté du jeu a réussi a construire de fabuleux machines numériques entières comme des calculatrices, des processeurs, des téléphones, des robots, des machine automatiques…etc.

Calculatrice en Minecraft Redstone

La vidéo est une introduction d’une série de tutoriaux sur la chaîne youtube de Qubit, pour apprendre comment avec Minecraft pouvoir construire une calculatrice simple et fonctionnelle d’une manière bien détaillée en utilisant des portes logiques et des cellules mémoires.