Guide - Débutez dans le monde de la programmation !

Maxence ES

Guizou
Premium
Inscription
23 Janvier 2013
Messages
4 842
Réactions
3 146
Points
17 331
ggS98nf.png


Débutez dans le monde de la programmation
C'est sur, on entendra toujours dire "la programmation, c'est incompréhensible", ce qui signifierai que les développeurs sont des génies ? Détrompez-vous. Développer à l'heure actuelle est possible pour chacun d'entre nous, qu'importe notre âge, nos compétences, notre but. En effet, beaucoup d'éléments qui compose notre vie courante part d'une programmation, dans le domaine de l'informatique. Par exemple, votre OS de votre téléphone est programmée , à l'aide de codes, de même que votre OS d'ordinateur, mais aussi de vos jeux vidéo, des sites web , d'applications (que cela soit sur PC comme un navigateur, ou sur téléphone, un jeu par exemple).
Pour chacun de ces éléments cités au dessus existe des langages spécifiques à la réalisation de ceux-ci, que nous découvriront après, c'est au fait le but de ce topic, c'est de vous guider dans vos premiers pas en programmation.

1461164524-separateur.png

L'algorithmie et la programmation
Vous avez peut être déjà entendu parlé d'algorithmie quand on parle de programmation. Rassurez-vous, c'est totalement normal, puisque les deux sont liés. N'importe quelque soit le langage, la programmation est divisée en 2 grandes parties, et bien distinctes : l'algorithmie et la syntaxe du langage. L'un ne va pas sans l'autre.

L'algorithmie. C'est une notion fondamentale à assimiler avant de vouloir vraiment se lancer. On peut se lancer sans connaitre la notion, comme je l'ai d'ailleurs fait, elle se développera au fil de l'apprentissage, mais il est très conseillé de l'avoir assimilée pour mieux commencer. L'algorithmie est le fait de créer chaque étape partant de haut en bas pour arriver à une fin. Ce n'est pas très clair, oui, alors examinons ce code.

Code:
variable a = 0 // age
lire a // on demande à l'utilisateur de donner a
si a > 17 alors
dire "vous etes majeur"
sinon
dire "vous êtes mineur"
finSi

Voici ce que c'est un algorithme, en langage que nous comprenons. PS: les // et les textes écrits après sont des commentaires, ils servent à aider le développeur dans ces codes.Prenons maintenant un algorithme codé en PHP

Code:
if($_POST['age'] > 17)
{
echo("vous êtes majeur");
}
else
{
echo("vous êtes mineur");
}

Après tout, quelles sont les différences entre les deux codes ? Leur syntaxe. En effet leur algorithme est le même, car au final, le même message apparait, il y a dans les deux cas une condition (si-if).

PS: pour les connaisseurs en PHP ou pas d'ailleurs, il faut savoir qu'en PHP pour récupérer une donnée il faut passer par un formulaire. Autrement dit, on imagine qu'on a déjà récolté la donnée qui nous a redirigé vers cette algorithme, et donc que cette donnée est contenue dans $_POST['age'].

La syntaxe. Alors je l'ai bien expliqué au dessus, c'est le fait de retranscrire un algorithme dans différents langages, tout simplement. Dans plusieurs langages, l'algorithme sera le même , cependant la syntaxe : non.

1461164524-separateur.png

Organisation de la suite du topic
Pour bien poursuivre le topic, nous allons procéder par univers, pour ensuite vous guider vers le maximum de langages qui correspondent à ce que vous voulez faire. Chaque langage aura son exemple (du moins le maximum).
Je tiens à remercier ..... pour leur aide à la traduction de l'algorithme donnée dans le langage qu'ils maitrisent. Si vous avez une question à leur poser, n'hésitez pas..

Je disais donc, chaque langage aura son algorithme traduit pour vous montrer un aperçu dans celui ci. L'algorithme donné est celui d'avant, c'est à dire:

Code:
variable a = 0 // age
lire a // on demande à l'utilisateur de donner a
si a > 17 alors
dire "vous etes majeur"
sinon
dire "vous êtes mineur"
finSi


Les univers seront décomposés en 4 univers..
  • Le développement web (création de site web)
  • La création de logiciels
  • La création de jeux vidéo
  • Le développement mobile (application mobile)
Une dernière chose : chaque lien pour apprendre chaque langage sera disponible à la fin de chaque univers. Bonne lecture !

Il est inutile de tout lire, mais lisez seulement ce qui vous intéresse. Il se peut quand dans quelques langages il y a des choses à rectifier, croyez-le ou non, j'suis pas savant. Merci d'avance de votre indulgence.
Les liens sont sous forme goo.gl car sinon trop longs.

1461164524-separateur.png

Premier univers : le développement web
Alors le premier thème, je dirai simple et diversifié, c'est le développement web. Pour le coup, on retiendra de base 4 langages , ce sont 4 langages principaux qui ont tous une fonction différente.

Le HTML : le texte
Ce premier langage est le langage de base de toute création de site web, on parle bien de HTML.On dira que c'est la partie texte d'un site. Autrement dit, sans design.

YeWPmEJ.png

Code:
<h1>Bienvenue sur mon site</h1>
<p>Vous remarquerez mon design très intéressant.</p>
PS: il n'est pas possible de retranscrire l'algorithme avec ce langage, puisque qu'il sert à la construction d'un site web "styslistiquement". Ce qu'on code, on le voit directement. Aucune algorithmie.

Le CSS : le design
Ce deuxième est le complément du HTML puisque lui, il permet la mise en forme de vos textes. Il est très souvent associé avec le HTML. Sur la photo suivante, on peut voir le screen qu'il y a pour le HTML avec le code CSS implanté (donc HTML + CSS)

xaZE77K.png



Code:
.cote
{
background-color: blue;
opacity: 100%
}
@Opacity RGT petite dédie cachée

Dans ce code, c'est en réalité la class cote aura une opacité de 100% et son fond sera bleu. Voilà un exemple du code CSS.


Le PHP : la dynamisation côté serveur
Le PHP est un langage très très important dans la conception d'un site web dit dynamique (HTML+CSS = Statique). Autrement dit, le site qui peut interargir avec le visiteur. Par exemple: un espace membre, un espace pour vous envoyer un mail, mais aussi des fonctions plus cachées, qui permettent par exemple de stocker votre adresse IP, etc..
Ce langage est appelé le PHP. Il est souvent associé avec le langage dit SQL pour les requêtes aux bases de données, mais il ne marche pas sans PHP.

Code:
if($_POST['age'] > 17)
{
echo("vous êtes majeur");
}
else
{
echo("vous êtes mineur");
}

PS:comme je l'ai précisé plus haut, PHP fonctionne avec HTML donc, en HTML on crée le formulaire qui l'envoie dans une page PHP contenant cet algorithme. Il faut donc imaginer que la donnée envoyée est stockée dans $_POST['age'].

Concernant le SQL comme parlé, il se place dans une requête PHP, voici sa syntaxe (SQL)

Code:
SELECT * FROM membres WHERE pseudo = 'Maxence'

Cette requête dit: Sélectionner tout de la table "membres" quand la colonne "pseudo" = "Maxence" tout simplement.


Le Javascript (JS) : la dynamisation côté client
Si vous avez l'habitude de naviguer sur internet, vous n'êtes pas passé à côté de Javscript. C'est un langage qui lui dynamise votre site mais côté client, c'est à dire, directement sur "votre ordinateur" (sans passer par le serveur comme PHP le fait). Cela peut être par exemple des animations. Par exemple, sur RG, quand vous prenez la barre en haut (Conversations, Alertes), que vous soyez en ligne ou hors ligne, il y aura l'icone chargement qui va s'afficher : c'est du javascript. Après PHP prend le relai. On peut utiliser javascript avec une base de données mais ce n'est donc pas sécurisé, puisque le javascript est visible dans le code source, comme HTML et CSS, mais pas PHP.

Code:
var a = parseInt(prompt("Quel est votre âge ?:"));

if (a > 17) {

    alert('Vous êtes majeur');

} else {

    alert("Votre êtes mineur");

}

Conclusion - Apprendre ces langages
Vous savez maintenant que nos sites internet sont composés de 4 principaux langages, dans eux mêmes sont ajoutés d'autres langages (exemple: SQL, Ajax) : HTML, CSS, PHP, JS. C'est une très bonne base pour commencer à développer !

Je vous recommande les tutoriels d'openclassroom pour bien débuter. Soyez curieux !
  • Apprendre le HTML et le CSS :
  • Apprendre le PHP :
  • Apprendre le JS :

Si vous avez par ailleurs, un problème dans le langage PHP uniquement (pas MVC ni orienté objet), n'hésitez pas à me contacter en privé.

1461164524-separateur.png

Deuxième univers - la création d'applications
Dans ce deuxième thème, lui aussi important dans le monde informatique, c'est la création d'applications sur ordinateur (car il y a aussi sur téléphones portables: c'est autre chose !). Disons que c'est un domaine très différent que celui du développement web, puisque on utilise les "capacités" de l'ordinateur pour pouvoir exécuter une application (contrairement aux sites: c'est au serveur). La manière de coder donc change puisqu'on a affaire à une interface graphique, etc. C'est un autre univers.

Contrairement au développement web, sur dans cet univers, il beaucoup de langages qui restent similaires. Nous allons en découvrir ici 6 !

Le C
Vous en avez forcément entendu parlé. C'est un peu le langage incontournable dans la programmation logicielle. Il est néanmoins un vieux langage crée dans les années 70, mais néanmoins toujours d'actualité. C'est un langage complexe, mais une fois l'avoir assimilé, vous aurez de très bonnes bases (solides) en programmation. Vous utiliserez Code:block, visual basic..

Code:
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
   // on récupère la valeur de age

    if (age > 17)
    {
      printf ("Vous etes majeur !\n");
    }
    else
    {
      printf ("Vous etes mineur !\n");
    }

    return 0;
}


Le C++
Vous remarquez une ressemblance avec le C ? Rien qu'au titre, c'est plutôt repérable. En effet c'est la descendance du langage présenté ci dessus, le C. Il apporte la programmation orientée objet (POO), mais de même quelques nouvelles fonctionnalités. On dira qu'une nouvelle aire commence ? On y est pas loin.

Code:
#include <iostream>
using namespace std;

int main()
{
    int a;
    cout << "Quel ages avec vous ? : "; cin >> a;

    if (a > 17)
        cout << "Vous êtezs majeur" << endl;
    else
        cout << "Vous êtes mineur" << endl;

    return 0;
}



Le VB.NET
Vous avez peut être entendu parlé de VB.NET .. On retiendra de ce langage crée par Microsoft sa simplicité. En effet, bien bien moins compliqué que C ou C++, VB.NET se veut simple et intuitif : pas l'temps d'niaiser. Bon néanmoins, il sera limité en performances. Mais pour faire un programme rapidement, on ne passe pas à côté.

Code:
If a > 17 Then

  Console.WriteLine("Vous êtes majeur")

Else

  Console.WriteLine("Vous êtes mineur")

End If


Le C#
Celui ci utilise le framework .NET délivré par Microsoft, et est d'une puissance accrue. Il est utilisé par un bon nombre de professionels (ou pas d'ailleurs, certains logiciels de lobby par exemple), il permet la création de plusieurs types d'applications.

Code:
            // Convertion de la valeur de la textbox en format numérique
            int anInteger;
            anInteger = Convert.ToInt32(textBox1.Text);
            anInteger = int.Parse(textBox1.Text);

            if(anInteger > 17)
            {
                // Si la valeur inscrit est supérieur à 17 alors on affiche vous êtes majeur
                MessageBox.Show("Vous êtes majeur");
            }
            else
            {
                // Sinon on affiche vous êtes mineur
                MessageBox.Show("Vous êtes mineur");
            }
PS: il faut créer un boutton et une textbox (TextBox1.Text). merci à @paradise RGT pour le code


Le Python
Python est un langage clair et intuitif parfait pour débuter dans la programmation et l'algorithmie ! Il possède une communauté active toujours prête en cas de problème.. On pourrait croire que c'est un petit langage de base, et bien sachez que l'on peut faire beaucoup avec Python. De plus en plus de personnes l'utilise.

Code:
if a > 17:
        print("Vous êtes majeur.")
    else:
        print("Vous êtes mineur.")
PS: a contient l'âge qu'on demande precedemment à l'utilisateur.


Java
Java est utilisé pour créer des applications , il est très utilisé actuellement par des professionnels, par des petits développeurs.. dont vous ? Il possède une grande portabilité puisque il est multi-OS : pas besoin de recoder autant de fois qu'il y a d'OS ! La puissance de java est infinie, beaucoup d'applications l'utilise ! La preuve, je suis sur que vous avez Java d'installé sur votre ordinateur.. ce qui signifie que des logiciels l'utilise !
Code:
if(a > 17)
System.out.println("Vous êtes majeur");
else
System.out.println("Vous êtes mineur");
PS : a contient l'âge de l'utilisateur précedemment demandé

Conclusion - Apprendre ces langages
Vous remarquez sans doute le nombre de langages présenté ici est assez élevé, sachez que je n'ai pas listé. Autant de langages qu'être humains. Alors sélectionnez celui qui vous plait, chacun a ses qualités et ses défauts.

Je vous recommande les tutoriels d'openclassroom pour bien débuter. Soyez curieux !
  • Apprendre le C:
  • Apprendre le C++:
  • Apprendre le VB:
  • Apprendre le C#:
  • Apprendre le Python:
  • Apprendre le Java:


1461164524-separateur.png

Troisième univers - la création de jeuxvidéo
Dans ce troisième univers , nous allons nous intéresser sur la création de jeux vidéo, un domaine qui fait rêver, pas vrai ?
Et bien il faudra savoir que la création de jeux vidéo est divisée en deux parties ! Enfin, deux méthodes permettant d'en créer.


Par programmation + libraries
Sachez que les grands jeux vidéo se font à base de programmation logcielle (donc C, C++, Java..) avec ce qu'on appelle des librairies, qui sont en réalité des bibliothèques ajoutant des fonctionnalités au langage de base.

Saviez vous que League Of Legends est développé C++, Java, C# , avec celles ci des librairies ? Vous saviez aussi que Minecraft est développé avec Java (bon pour les joueurs ça parrait évident, crash report tout ça lol) ? Tout cela avec des bibliothèques externes pour pouvoir le développement de ceux ci..

Niveau C++ il existe des bibliothèques comme OpenGL, Ogre3D, Irrlicht..
Niveau C, bien que moins utilisé, SDL
Niveau Java, il existe sdljava, Java2D, JOGL, LWJGL, Java3D, Joal...

Je dirai que ce n'est pas mon boulot de vous donner les librairies mais c'est à vous de trouver celle qui vous correspond(ent). Mais il faut savoir qu'avant de vouloir créer des jeux vidéo, vous devrez apprendre la programmation logicielle avant la création de jeux vidéo.

En utilisant un moteur de jeu
Il existe une alternative au jeu 100 programmé, on appelle cela un moteur de jeu. C'est comme un téléphone, c'est un logiciel qui regroupe toutes les fonctionnalités de celui ci: appeler, envoyer des SMS... Un moteur de jeu revient au même, on crée son jeu dans un espace dédié à cela, autrement dit la gestion des lumières est déjà préconfigurée, etc.

Il existe beaucoup de moteurs de jeu, par exemple Unity3D, GameMaker, RPG Maker, Cryengine 3, Unreal Engine 4.
Par exemple pour ce dernier, Kingdom Hearts III est développé avec UE4.

C'est une bonne alternative, cependant, attention au piège, puisqu'il y aura toujours une part de programmation. Par exemple, dans UE4 il y a possibilité de programmer en C++ !

Conclusion - Apprendre ces langages
Vous remarquez que vous ne pouvez pas (enfin si, mais avec des performances limitées) créer de jeux vidéo sans s'y connaitre en programmation logicielle. C'est comme ça, on s'y fait. Il vous faut donc passer par la case C, C++, Java (y'a le choix) avant de vous orienter dans certaines librairies. Vous pouvez aussi apprendre à manier certains moteurs de jeux pour pouvoir créer votre jeu vidéo tant aimé.

  • Apprendre la librairie OpenGL (necessite la connaissance du C++) :
  • Apprendre la librairie OpenGL pour Java:
  • Apprendre Java3D :
1461164524-separateur.png

Quatrième univers - le développement mobile
C'est le dernier univers que j'aborde actuellement, au bout d'ailleurs de 4h30 de rédaction séquencées, celui du développement mobile. C'est un grand domaine qu'on aborde ici car on divisera celui-ci en 2 grandes parties, en deux grands OS.. iOS De Apple, et Android de Google. Il se peut qu'il y ai des erreurs, les pro mobiles, corrigez-moi.

Programmer sur IOS
Vous êtes possesseur d'un iPhone, d'un iPad ou d'un iPod ? Le développement sur iOS est plutôt spécial puisque apple a crée son propre langage de programmation pour ses appareils. A savoir XCode et Objective-C. Malheureusement programmer sur iOS ne revient pas au même que sur Android puisque son accès est limité, comparé à celui de google ou vous avez accès à beaucoup sur le téléphone.Voici un l'algorithme en Objective-C.

Code:
if (age > 17)
  NSLog(@"Vous êtes majeur");
else
  NSLog(@"Vous êtes mineur");

Néanmoins Apple ne s'arrête pas là. Je suis moi même fier d'avoir mon Rourou 5S, et désolé de mon non objectivité, passons, la distribution de vos applications iOS sur l'AppStore est payante, et ce n'est pas quelques euros : plus de 70 euros...


Programmer sur Android
Vous êtes possesseur d'un smartphone Android ? Vous devriez peut être essayer sa programmation, beaucoup plus accessible que celle d'Apple. Néanmoins pour la création de applications Android il vous faudra apprendre à développer en Java puisque le langage se repose dessus. Quant aux requêtes aux bases de données (fonctionnalités réseaux), l'acquis du langage SQL serait bien plus que demandée.

Code:
if(a > 17)
System.out.println("Vous êtes majeur");
else
System.out.println("Vous êtes mineur");

Quant à la publication de votre nouvelle application, elle change totalement de celle que Apple, vous avez deux possibilités.
La première, gratuite, c'est d'extraire votre application en fichier extension .apk que vous connaissez tous, et partager en masse (ou pas d'ailleurs, sur un forum privé ou pour quelqu'un etc..).
La deuxième, elle payante, c'est de la proposer sur le Play Store ou Google Play. Vous devrez créer donc un compte google (si vous en avez pas), et le passer en mode "développeur", ce qui signifie de signer une charte et payer 25€ en une seule fois (par carte bancaire). Le nombre d'applications crées après sera illimitée. C'est l'option que je vous conseille.
Néanmoins, Apple gagne un point sur un point : les performances. Sur Android, de nombreux téléphones l'utilisent, plus ou moins puissants, alors c'est difficile d'adapter à tous.

Conclusion - Apprendre ces langages
Ca sent la fin du topic tout ça. Et de la partie. Alors comme vous pouvez le voir, la programmation sur les terminaux Android est beaucoup plus accessible que sur ceux de iOS. Je vous laisse sur quelques liens de quoi vous documenter, et pourquoi pas apprendre.
  • Apprendre à développer sur iOS: (il se peut que cette version soit obselète)
  • Le site Apple Developer Program:
  • Apprendre à développer sur Android:

1461164524-separateur.png

Ça sent la fin
Bon ! C'est la fin de 6 heures de rédaction. Autrement dit, de 2h10 + 1h20 + 30 minutes + 35 minutes + 40 minutes + maintenant (finalisation + post du topic)

Je remercie Paradise pour le code C#, de même @Aiekov SNA même si j'ai pas utilisé le header. :trollface: J'identifie aussi les admins de la SNA :love: , soit @Kévin RGT , @Nolwen RGT , @Blake RGT , @Black' et @Snake's, histoire que vous voyez le topic ;)

Si vous avez la moindre question ;)

Maxence SNA
 
Dernière édition:

Kavage

Anciennement Keke.
Ancien staff
Inscription
18 Octobre 2012
Messages
4 243
Réactions
863
Points
21 901
Super topic, on voit que tu as beaucoup taff dessus, félicitation ! Le topic est vraiment complet, et super bien organisé.
 

Snake's

Administrateur
Ancien staff
Inscription
5 Juin 2012
Messages
8 792
Réactions
6 913
Points
25 465
Que dire .. ?
Excellent, complet et très agréable à lire ! :smile:

La récompense est plus que méritée, beau travail Maxence ! :)
 

Maxence ES

Guizou
Premium
Inscription
23 Janvier 2013
Messages
4 842
Réactions
3 146
Points
17 331
Enorme topic, super Maxence ! :p
Merci :D

Très bien présenté ! Je le lirais ce soir même si la programmation c'est pas mon fort !

Tu as de quoi ! Bonne lecture :)

Super topic, on voit que tu as beaucoup taff dessus, félicitation ! Le topic est vraiment complet, et super bien organisé.

En effet j'en ai passé du temps :rêve: Merci beaucoup !

La vache super topic Maxence :o T'as géré

Merci :love:

Que dire .. ?
Excellent, complet et très agréable à lire ! :smile:

La récompense est plus que méritée, beau travail Maxence ! :)

Merci beaucoup Snake's :membre:

Franchement tu as fait de bon boulot, très bon topic ! :ok:

Merci beaucoup :D

Ca c'est du topic badass :neo: Bien joué :dance:

Merci :D
 

Rivals

Ancien staff
Inscription
27 Août 2016
Messages
1 705
Réactions
895
Points
13 104
Bonne rédaction mais qui manque d'actualisation, j'ai réellement l'impression que cette rédaction date qu'il y a 2 ans c'est à dire la période pendant laquelle on utilisait le JS pour réaliser quelques broutilles alors que maintenant nous avons des outils puissants comme NodeJS (cc @JB & @→W∃aK ←) qui permettent la création de serveur en javascript, également concernant le développement d'application IOS tu énonces un langage qui n'est pas évident à mon sens, à apprendre au départ : l'objective C, ce langage qui est actuellement à l'abandon pour ce type de développement car Apple a crée son propre langage de programmation : Swift (je n'énoncerais pas les performances gagnées vis à vis de l'objective C ni même de sa simplicité, cc @iOSx AwH).

Étant gourmand, j'ai lu la partie "BONUS" et j'ai envie de te dire que c'est un peu facile de compter les balises BBCodes. :trollface:


Capture d’e*cran 2016-04-20 a* 18.59.03.png
 

Maxence ES

Guizou
Premium
Inscription
23 Janvier 2013
Messages
4 842
Réactions
3 146
Points
17 331
Bonne rédaction mais qui manque d'actualisation, j'ai réellement l'impression que cette rédaction date qu'il y a 2 ans c'est à dire la période pendant laquelle on utilisait le JS pour réaliser quelques broutilles alors que maintenant nous avons des outils puissants comme NodeJS (cc @JB & @→W∃aK ←) qui permettent la création de serveur en javascript, également concernant le développement d'application IOS tu énonces un langage qui n'est pas évident à mon sens, à apprendre au départ : l'objective C, ce langage qui est actuellement à l'abandon pour ce type de développement car Apple a crée son propre langage de programmation : Swift (je n'énoncerais pas les performances gagnées vis à vis de l'objective C ni même de sa simplicité, cc @iOSx AwH).
C'est techniquement des langages là où j'ai le plus de mal, NodeJS j'avais totalement zappé, j'vais rééditer le topic et m'informer sur le sujet. Concernant le langage d'apple, je n'étais même pas au courant même en refeuilletant un peu tout ça j'ai pas capté.

Merci de ta remarque, j'édite au plus vite.

Étant gourmand, j'ai lu la partie "BONUS" et j'ai envie de te dire que c'est un peu facile de compter les balises BBCodes. :trollface:


https://reality-gaming.fr/attachments/capture-decran-2016-04-20-a-18-59-03-png.87581/
C'est pas le fait d'avoir écrit beaucoup que j'ai voulu faire sortir, mais le fait d'avoir passé plus de 10 minutes à trouver comment raccourcir ce ***** de topic... :trollface:

P0ahuss.png
 

Adidas™

Perlinpinpin
Premium
Inscription
14 Décembre 2011
Messages
1 879
Réactions
625
Points
12 445
I
ggS98nf.png


Débutez dans le monde de la programmation
C'est sur, on entendra toujours dire "la programmation, c'est incompréhensible", ce qui signifierai que les développeurs sont des génies ? Détrompez-vous. Développer à l'heure actuelle est possible pour chacun d'entre nous, qu'importe notre âge, nos compétences, notre but. En effet, beaucoup d'éléments qui compose notre vie courante part d'une programmation, dans le domaine de l'informatique. Par exemple, votre OS de votre téléphone est programmée , à l'aide de codes, de même que votre OS d'ordinateur, mais aussi de vos jeux vidéo, des sites web , d'applications (que cela soit sur PC comme un navigateur, ou sur téléphone, un jeu par exemple).
Pour chacun de ces éléments cités au dessus existe des langages spécifiques à la réalisation de ceux-ci, que nous découvriront après, c'est au fait le but de ce topic, c'est de vous guider dans vos premiers pas en programmation.

1461164524-separateur.png

L'algorithmie et la programmation
Vous avez peut être déjà entendu parlé d'algorithmie quand on parle de programmation. Rassurez-vous, c'est totalement normal, puisque les deux sont liés. N'importe quelque soit le langage, la programmation est divisée en 2 grandes parties, et bien distinctes : l'algorithmie et la syntaxe du langage. L'un ne va pas sans l'autre.

L'algorithmie. C'est une notion fondamentale à assimiler avant de vouloir vraiment se lancer. On peut se lancer sans connaitre la notion, comme je l'ai d'ailleurs fait, elle se développera au fil de l'apprentissage, mais il est très conseillé de l'avoir assimilée pour mieux commencer. L'algorithmie est le fait de créer chaque étape partant de haut en bas pour arriver à une fin. Ce n'est pas très clair, oui, alors examinons ce code.

Code:
variable a = 0 // age
lire a // on demande à l'utilisateur de donner a
si a > 17 alors
dire "vous etes majeur"
sinon
dire "vous êtes mineur"
finSi

Voici ce que c'est un algorithme, en langage que nous comprenons. PS: les // et les textes écrits après sont des commentaires, ils servent à aider le développeur dans ces codes.Prenons maintenant un algorithme codé en PHP

Code:
if($_POST['age'] > 17)
{
echo("vous êtes majeur");
}
else
{
echo("vous êtes mineur");
}

Après tout, quelles sont les différences entre les deux codes ? Leur syntaxe. En effet leur algorithme est le même, car au final, le même message apparait, il y a dans les deux cas une condition (si-if).

PS: pour les connaisseurs en PHP ou pas d'ailleurs, il faut savoir qu'en PHP pour récupérer une donnée il faut passer par un formulaire. Autrement dit, on imagine qu'on a déjà récolté la donnée qui nous a redirigé vers cette algorithme, et donc que cette donnée est contenue dans $_POST['age'].

La syntaxe. Alors je l'ai bien expliqué au dessus, c'est le fait de retranscrire un algorithme dans différents langages, tout simplement. Dans plusieurs langages, l'algorithme sera le même , cependant la syntaxe : non.

1461164524-separateur.png

Organisation de la suite du topic
Pour bien poursuivre le topic, nous allons procéder par univers, pour ensuite vous guider vers le maximum de langages qui correspondent à ce que vous voulez faire. Chaque langage aura son exemple (du moins le maximum).
Je tiens à remercier ..... pour leur aide à la traduction de l'algorithme donnée dans le langage qu'ils maitrisent. Si vous avez une question à leur poser, n'hésitez pas..

Je disais donc, chaque langage aura son algorithme traduit pour vous montrer un aperçu dans celui ci. L'algorithme donné est celui d'avant, c'est à dire:

Code:
variable a = 0 // age
lire a // on demande à l'utilisateur de donner a
si a > 17 alors
dire "vous etes majeur"
sinon
dire "vous êtes mineur"
finSi


Les univers seront décomposés en 4 univers..
  • Le développement web (création de site web)
  • La création de logiciels
  • La création de jeux vidéo
  • Le développement mobile (application mobile)
Une dernière chose : chaque lien pour apprendre chaque langage sera disponible à la fin de chaque univers. Bonne lecture !

Il est inutile de tout lire, mais lisez seulement ce qui vous intéresse. Il se peut quand dans quelques langages il y a des choses à rectifier, croyez-le ou non, j'suis pas savant. Merci d'avance de votre indulgence.
Les liens sont sous forme goo.gl car sinon trop longs.


1461164524-separateur.png

Premier univers : le développement web
Alors le premier thème, je dirai simple et diversifié, c'est le développement web. Pour le coup, on retiendra de base 4 langages , ce sont 4 langages principaux qui ont tous une fonction différente.

Le HTML : le texte
Ce premier langage est le langage de base de toute création de site web, on parle bien de HTML.On dira que c'est la partie texte d'un site. Autrement dit, sans design.

YeWPmEJ.png

Code:
<h1>Bienvenue sur mon site</h1>
<p>Vous remarquerez mon design très intéressant.</p>
PS: il n'est pas possible de retranscrire l'algorithme avec ce langage, puisque qu'il sert à la construction d'un site web "styslistiquement". Ce qu'on code, on le voit directement. Aucune algorithmie.

Le CSS : le design
Ce deuxième est le complément du HTML puisque lui, il permet la mise en forme de vos textes. Il est très souvent associé avec le HTML. Sur la photo suivante, on peut voir le screen qu'il y a pour le HTML avec le code CSS implanté (donc HTML + CSS)

xaZE77K.png



Code:
.cote
{
background-color: blue;
opacity: 100%
}
@Opacity RGT petite dédie cachée

Dans ce code, c'est en réalité la class cote aura une opacité de 100% et son fond sera bleu. Voilà un exemple du code CSS.


Le PHP : la dynamisation côté serveur
Le PHP est un langage très très important dans la conception d'un site web dit dynamique (HTML+CSS = Statique). Autrement dit, le site qui peut interargir avec le visiteur. Par exemple: un espace membre, un espace pour vous envoyer un mail, mais aussi des fonctions plus cachées, qui permettent par exemple de stocker votre adresse IP, etc..
Ce langage est appelé le PHP. Il est souvent associé avec le langage dit SQL pour les requêtes aux bases de données, mais il ne marche pas sans PHP.

Code:
if($_POST['age'] > 17)
{
echo("vous êtes majeur");
}
else
{
echo("vous êtes mineur");
}

PS:comme je l'ai précisé plus haut, PHP fonctionne avec HTML donc, en HTML on crée le formulaire qui l'envoie dans une page PHP contenant cet algorithme. Il faut donc imaginer que la donnée envoyée est stockée dans $_POST['age'].

Concernant le SQL comme parlé, il se place dans une requête PHP, voici sa syntaxe (SQL)

Code:
SELECT * FROM membres WHERE pseudo = 'Maxence'

Cette requête dit: Sélectionner tout de la table "membres" quand la colonne "pseudo" = "Maxence" tout simplement.


Le Javascript (JS) : la dynamisation côté client

Si vous avez l'habitude de naviguer sur internet, vous n'êtes pas passé à côté de Javscript. C'est un langage qui lui dynamise votre site mais côté client, c'est à dire, directement sur "votre ordinateur" (sans passer par le serveur comme PHP le fait). Cela peut être par exemple des animations. Par exemple, sur RG, quand vous prenez la barre en haut (Conversations, Alertes), que vous soyez en ligne ou hors ligne, il y aura l'icone chargement qui va s'afficher : c'est du javascript. Après PHP prend le relai. On peut utiliser javascript avec une base de données mais ce n'est donc pas sécurisé, puisque le javascript est visible dans le code source, comme HTML et CSS, mais pas PHP.

Code:
var a = parseInt(prompt("Quel est votre âge ?:"));

if (a > 17) {

    alert('Vous êtes majeur');

} else {

    alert("Votre êtes mineur");

}

Conclusion - Apprendre ces langages
Vous savez maintenant que nos sites internet sont composés de 4 principaux langages, dans eux mêmes sont ajoutés d'autres langages (exemple: SQL, Ajax) : HTML, CSS, PHP, JS. C'est une très bonne base pour commencer à développer !

Je vous recommande les tutoriels d'openclassroom pour bien débuter. Soyez curieux !
  • Apprendre le HTML et le CSS :
  • Apprendre le PHP :
  • Apprendre le JS :

Si vous avez par ailleurs, un problème dans le langage PHP uniquement (pas MVC ni orienté objet), n'hésitez pas à me contacter en privé.

1461164524-separateur.png

Deuxième univers - la création d'applications
Dans ce deuxième thème, lui aussi important dans le monde informatique, c'est la création d'applications sur ordinateur (car il y a aussi sur téléphones portables: c'est autre chose !). Disons que c'est un domaine très différent que celui du développement web, puisque on utilise les "capacités" de l'ordinateur pour pouvoir exécuter une application (contrairement aux sites: c'est au serveur). La manière de coder donc change puisqu'on a affaire à une interface graphique, etc. C'est un autre univers.

Contrairement au développement web, sur dans cet univers, il beaucoup de langages qui restent similaires. Nous allons en découvrir ici 6 !

Le C

Vous en avez forcément entendu parlé. C'est un peu le langage incontournable dans la programmation logicielle. Il est néanmoins un vieux langage crée dans les années 70, mais néanmoins toujours d'actualité. C'est un langage complexe, mais une fois l'avoir assimilé, vous aurez de très bonnes bases (solides) en programmation. Vous utiliserez Code:block, visual basic..

Code:
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
   // on récupère la valeur de age

    if (age > 17)
    {
      printf ("Vous etes majeur !\n");
    }
    else
    {
      printf ("Vous etes mineur !\n");
    }

    return 0;
}


Le C++

Vous remarquez une ressemblance avec le C ? Rien qu'au titre, c'est plutôt repérable. En effet c'est la descendance du langage présenté ci dessus, le C. Il apporte la programmation orientée objet (POO), mais de même quelques nouvelles fonctionnalités. On dira qu'une nouvelle aire commence ? On y est pas loin.

Code:
#include <iostream>
using namespace std;

int main()
{
    int a;
    cout << "Quel ages avec vous ? : "; cin >> a;

    if (a > 17)
        cout << "Vous êtezs majeur" << endl;
    else
        cout << "Vous êtes mineur" << endl;

    return 0;
}



Le VB.NET

Vous avez peut être entendu parlé de VB.NET .. On retiendra de ce langage crée par Microsoft sa simplicité. En effet, bien bien moins compliqué que C ou C++, VB.NET se veut simple et intuitif : pas l'temps d'niaiser. Bon néanmoins, il sera limité en performances. Mais pour faire un programme rapidement, on ne passe pas à côté.

Code:
If a > 17 Then

  Console.WriteLine("Vous êtes majeur")

Else

  Console.WriteLine("Vous êtes mineur")

End If


Le C#

Celui ci utilise le framework .NET délivré par Microsoft, et est d'une puissance accrue. Il est utilisé par un bon nombre de professionels (ou pas d'ailleurs, certains logiciels de lobby par exemple), il permet la création de plusieurs types d'applications.

Code:
            // Convertion de la valeur de la textbox en format numérique
            int anInteger;
            anInteger = Convert.ToInt32(textBox1.Text);
            anInteger = int.Parse(textBox1.Text);

            if(anInteger > 17)
            {
                // Si la valeur inscrit est supérieur à 17 alors on affiche vous êtes majeur
                MessageBox.Show("Vous êtes majeur");
            }
            else
            {
                // Sinon on affiche vous êtes mineur
                MessageBox.Show("Vous êtes mineur");
            }
PS: il faut créer un boutton et une textbox (TextBox1.Text). merci à @paradise RGT pour le code


Le Python

Python est un langage clair et intuitif parfait pour débuter dans la programmation et l'algorithmie ! Il possède une communauté active toujours prête en cas de problème.. On pourrait croire que c'est un petit langage de base, et bien sachez que l'on peut faire beaucoup avec Python. De plus en plus de personnes l'utilise.

Code:
    if a > 17:
        print("Vous êtes majeur.")
    else:
        print("Vous êtes mineur.")
PS: a contient l'âge qu'on demande precedemment à l'utilisateur.



Java

Java est utilisé pour créer des applications , il est très utilisé actuellement par des professionnels, par des petits développeurs.. dont vous ? Il possède une grande portabilité puisque il est multi-OS : pas besoin de recoder autant de fois qu'il y a d'OS ! La puissance de java est infinie, beaucoup d'applications l'utilise ! La preuve, je suis sur que vous avez Java d'installé sur votre ordinateur.. ce qui signifie que des logiciels l'utilise !
Code:
if(a > 17)
System.out.println("Vous êtes majeur");
else
System.out.println("Vous êtes mineur");
PS : a contient l'âge de l'utilisateur précedemment demandé

Conclusion - Apprendre ces langages
Vous remarquez sans doute le nombre de langages présenté ici est assez élevé, sachez que je n'ai pas listé. Autant de langages qu'être humains. Alors sélectionnez celui qui vous plait, chacun a ses qualités et ses défauts.

Je vous recommande les tutoriels d'openclassroom pour bien débuter. Soyez curieux !
  • Apprendre le C:
  • Apprendre le C++:
  • Apprendre le VB:
  • Apprendre le C#:
  • Apprendre le Python:
  • Apprendre le Java:


1461164524-separateur.png

Troisième univers - la création de jeuxvidéo
Dans ce troisième univers , nous allons nous intéresser sur la création de jeux vidéo, un domaine qui fait rêver, pas vrai ?
Et bien il faudra savoir que la création de jeux vidéo est divisée en deux parties ! Enfin, deux méthodes permettant d'en créer.


Par programmation + libraries
Sachez que les grands jeux vidéo se font à base de programmation logcielle (donc C, C++, Java..) avec ce qu'on appelle des librairies, qui sont en réalité des bibliothèques ajoutant des fonctionnalités au langage de base.

Saviez vous que League Of Legends est développé C++, Java, C# , avec celles ci des librairies ? Vous saviez aussi que Minecraft est développé avec Java (bon pour les joueurs ça parrait évident, crash report tout ça lol) ? Tout cela avec des bibliothèques externes pour pouvoir le développement de ceux ci..

Niveau C++ il existe des bibliothèques comme OpenGL, Ogre3D, Irrlicht..
Niveau C, bien que moins utilisé, SDL
Niveau Java, il existe sdljava, Java2D, JOGL, LWJGL, Java3D, Joal...

Je dirai que ce n'est pas mon boulot de vous donner les librairies mais c'est à vous de trouver celle qui vous correspond(ent). Mais il faut savoir qu'avant de vouloir créer des jeux vidéo, vous devrez apprendre la programmation logicielle avant la création de jeux vidéo.

En utilisant un moteur de jeu
Il existe une alternative au jeu 100 programmé, on appelle cela un moteur de jeu. C'est comme un téléphone, c'est un logiciel qui regroupe toutes les fonctionnalités de celui ci: appeler, envoyer des SMS... Un moteur de jeu revient au même, on crée son jeu dans un espace dédié à cela, autrement dit la gestion des lumières est déjà préconfigurée, etc.

Il existe beaucoup de moteurs de jeu, par exemple Unity3D, GameMaker, RPG Maker, Cyengine 3, Unreal Engine 4.
Par exemple pour ce dernier, Kingdom Hearts III est développé avec UE4.

C'est une bonne alternative, cependant, attention au piège, puisqu'il y aura toujours une part de programmation. Par exemple, dans UE4 il y a possibilité de programmer en C++ !

Conclusion - Apprendre ces langages
Vous remarquez que vous ne pouvez pas (enfin si, mais avec des performances limitées) créer de jeux vidéo sans s'y connaitre en programmation logicielle. C'est comme ça, on s'y fait. Il vous faut donc passer par la case C, C++, Java (y'a le choix) avant de vous orienter dans certaines librairies. Vous pouvez aussi apprendre à manier certains moteurs de jeux pour pouvoir créer votre jeu vidéo tant aimé.

  • Apprendre la librairie OpenGL (necessite la connaissance du C++) :
  • Apprendre la librairie OpenGL pour Java:
  • Apprendre Java3D :
1461164524-separateur.png

Quatrième univers - le développement mobile
C'est le dernier univers que j'aborde actuellement, au bout d'ailleurs de 4h30 de rédaction séquencées, celui du développement mobile. C'est un grand domaine qu'on aborde ici car on divisera celui-ci en 2 grandes parties, en deux grands OS.. iOS De Apple, et Android de Google. Il se peut qu'il y ai des erreurs, les pro mobiles, corrigez-moi.

Programmer sur IOS
Vous êtes possesseur d'un iPhone, d'un iPad ou d'un iPod ? Le développement sur iOS est plutôt spécial puisque apple a crée son propre langage de programmation pour ses appareils. A savoir XCode et Objective-C. Malheureusement programmer sur iOS ne revient pas au même que sur Android puisque son accès est limité, comparé à celui de google ou vous avez accès à beaucoup sur le téléphone.Voici un l'algorithme en Objective-C.

Code:
if (age > 17)
  NSLog(@"Vous êtes majeur");
else
  NSLog(@"Vous êtes mineur");

Néanmoins Apple ne s'arrête pas là. Je suis moi même fier d'avoir mon Rourou 5S, et désolé de mon non objectivité, passons, la distribution de vos applications iOS sur l'AppStore est payante, et ce n'est pas quelques euros : plus de 70 euros...


Programmer sur Android
Vous êtes possesseur d'un smartphone Android ? Vous devriez peut être essayer sa programmation, beaucoup plus accessible que celle d'Apple. Néanmoins pour la création de applications Android il vous faudra apprendre à développer en Java puisque le langage se repose dessus. Quant aux requêtes aux bases de données (fonctionnalités réseaux), l'acquis du langage SQL serait bien plus que demandée.

Code:
if(a > 17)
System.out.println("Vous êtes majeur");
else
System.out.println("Vous êtes mineur");

Quant à la publication de votre nouvelle application, elle change totalement de celle que Apple, vous avez deux possibilités.
La première, gratuite, c'est d'extraire votre application en fichier extension .apk que vous connaissez tous, et partager en masse (ou pas d'ailleurs, sur un forum privé ou pour quelqu'un etc..).
La deuxième, elle payante, c'est de la proposer sur le Play Store ou Google Play. Vous devrez créer donc un compte google (si vous en avez pas), et le passer en mode "développeur", ce qui signifie de signer une charte et payer 25€ en une seule fois (par carte bancaire). Le nombre d'applications crées après sera illimitée. C'est l'option que je vous conseille.
Néanmoins, Apple gagne un point sur un point : les performances. Sur Android, de nombreux téléphones l'utilisent, plus ou moins puissants, alors c'est difficile d'adapter à tous.

Conclusion - Apprendre ces langages
Ca sent la fin du topic tout ça. Et de la partie. Alors comme vous pouvez le voir, la programmation sur les terminaux Android est beaucoup plus accessible que sur ceux de iOS. Je vous laisse sur quelques liens de quoi vous documenter, et pourquoi pas apprendre.
  • Apprendre à développer sur iOS: (il se peut que cette version soit obselète)
  • Le site Apple Developer Program:
  • Apprendre à développer sur Android:

1461164524-separateur.png

Ça sent la fin
Bon ! C'est la fin de 6 heures de rédaction. Autrement dit, de 2h10 + 1h20 + 30 minutes + 35 minutes + 40 minutes + maintenant (finalisation + post du topic)

Je remercie Paradise pour le code C#, de même @Aiekov SNA même si j'ai pas utilisé le header. :trollface: J'identifie aussi les admins de la SNA :love: , soit @Kévin RGT , @Nolwen RGT , @Blake RGT , @Black' et @Snake's, histoire que vous voyez le topic ;)

Si vous avez la moindre question ;)

Maxence SNA

je pense qu'il est inutile de préciser que tous les écrits sont sous ma propriété, je n'ai copié collé de nul part et je n'autorise aucune reproduction. Le header principal vient de Google, les séparateurs d'un topic RG, et les deux images dans la section HTML/CSS de Openclassroom. TOUT LE RESTE VIENT DE M
[/spoiler]
ncroyable ton topic ! Je partage direct sur la Shout :ok:
Sinon appart sa merci sa ma permis d'en apprendre plus et d'en apprendre tout court :)
Merci et bravo :)
 

Zephyr⚡️

Fondateur RMK
Premium
Inscription
17 Mai 2013
Messages
8 457
Réactions
2 541
Points
12 856
Belle présentation et topic très intéressant, je continurai a lire les autres univers ce soir ^^
Merci ;)
 
Haut