Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/11/2013, à 03:43

teprick

Je débute en programmation

Bonjour à tous,

j'aimerais débuter en programmation et je n'ai aucune idée vers quel langage m'orienter et aussi quels livres choisir. J'aime beaucoup les jeux vidéos mais est ce que ça veut dire que nécessairement, j'aimerais mieux programmer cela?

Vous, quel est le langage que vous aimez le plus et que vous conseilleriez à un débutant?

Merci beaucoup de votre aide ! smile

Hors ligne

#2 Le 26/11/2013, à 04:22

Gatsu

Re : Je débute en programmation

Salut teprick,

Il y a un sujet épinglé en tête de ce forum sur cette question :
> https://forum.ubuntu-fr.org/viewtopic.php?id=352537

Pour ouvrir la foire aux trolls, hum le débat, moi je te conseille vivement python, simple d'accès, lisible, haut niveau et qui permet de programmer dans à peu près tous les domaines. Si tu n'as jamais programmé, plutôt que le livre qui est conseillé dans le sujet du dessus (qui est destiné aux développeurs expérimentés en python), je te conseille de lire « Apprendre à programmer avec Python » , disponible gratuitement ici :
> http://inforef.be/swi/python.htm
Qui est une initiation à la programmation par l'intermédiaire du langage python, avec des exercices à chaque chapitre. Et pas comme d'autres livres qui proposent d'apprendre python quand on connait déjà la programmation. Attention, ces autres livres sont très bien, voire même indispensables pour maitriser le langage, mais leur but est différent.

Il y a aussi l'ancien site du zéro, tout aussi bien :
> http://fr.openclassrooms.com/informatique/python/cours

Hors ligne

#3 Le 26/11/2013, à 05:00

teprick

Re : Je débute en programmation

Merci beaucoup smile

Hors ligne

#4 Le 26/11/2013, à 09:07

pingouinux

Re : Je débute en programmation

Bonjour,
Je conseillerais aussi python.

Hors ligne

#5 Le 26/11/2013, à 09:32

Olivier_Dev

Re : Je débute en programmation

Bonjour
Entierement ok avec mes camarades, Python a conseiller wink
Et peut etre une lecture de ce qu'est l'algorithmie, par exemple : http://www.pise.info/algo/

Hors ligne

#6 Le 26/11/2013, à 16:10

telliam

Re : Je débute en programmation

tout dépend le jeu que tu vx faire : si tu as pas besoin de calcul (genre jeu 2d), le python est un bon choix.
sinon le C ou C++


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

Hors ligne

#7 Le 26/11/2013, à 20:32

teprick

Re : Je débute en programmation

D'accord, je vais commencer par le python. Et la programmation en shell linux, quel est  son intérêt , que peut-on réaliser avec ca?

Hors ligne

#8 Le 26/11/2013, à 20:47

Clodion

Re : Je débute en programmation

Bonsoir,
Le bash ("programmation en shell linux") est utilisé pour automatiser des opérations de maintenance du système (linux). Mais cela est à prendre au sens très très large. C'est un langage de script avec une syntaxe relativement simple mais qui s'appuie sur les commandes et fonctionnalités du système d'exploitation.
Avec il est possible de faire des sauvegardes automatiques, de manipuler des fichiers sous toutes les coutures, de récupérer des pages web, de créer des applets (je ne cite que cela pour essayer de montrer que c'est simplement extrêmement disparate: les possibilité sont vraiment très importantes). De nombreux sujets sur ce forum traitent de scripts bash pour des opérations diverses et variées (pas trop compliqué de faire un petit tour pour "voir").

Un petit tour sur wikipedia ou sur la documentation de ubuntu permet de se faire une petite idée.
Clodion

Dernière modification par Clodion (Le 26/11/2013, à 20:51)

Hors ligne

#9 Le 26/11/2013, à 20:55

Spitfire 95

Re : Je débute en programmation

Moi au contraire je ne conseillerais pas Python comme premier langage, justement parce que c'est plutôt simple à apprendre. Je recommanderai plutôt de commencer avec quelque chose de plus bas niveau, le C par exemple, avant de passer au haut niveau. Je pense qu'il est plus facile de passer de bas niveau à haut niveau orienté objet que l'inverse.


Trisquel GNU/Linux 6.0 / Fedora 19 & rawhide.
joueur ryzom et wesnoth
Développeur livewallpaper
Membre déserteur et traître de la brigade des S.

Hors ligne

#10 Le 26/11/2013, à 22:27

mydjey

Re : Je débute en programmation

telliam a écrit :

tout dépend le jeu que tu vx faire : si tu as pas besoin de calcul (genre jeu 2d), le python est un bon choix.
sinon le C ou C++

Ta remarque m'intéresse, tu peux développer un peu ?
(différence jeux 2D / 3D, ou les calculs interviennent en jeux 3D, pourquoi un langage plutôt qu'un autre)
Merci de satisfaire ma curiosité. smile

Hors ligne

#11 Le 26/11/2013, à 23:42

telliam

Re : Je débute en programmation

python est un langage de script et a donc besoin d'un interpréteur pour s’exécuter, même si cette interpréteur est performant, il rajoute forcément une couche supplémentaire et donc de la lenteur. (comme tous les langages dit de script). le même programme codé en C a de fortes chances d'être plus rapide car le C est plus proche du matériel.
Par contre le C est un peu plus compliqué à apprendre comme 1er langage (en fait il y a 2-3 aspects qu'il faut bien comprendre et après ça va smile ) et demande une bonne phase de formation avant de se lancer sinon tu vas vite être découragé.
en plus le langage de prédilection pour coder un jeu est le C et le C++ donc tu trouveras des librairies et des docs pour gérer le graphique, le son etc....


Néammoins tu trouveras surement des portages de ces libs en python.
En plus sur ce forum, python a la côte:) moi il fau avouer je suis plutot old school smile


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

Hors ligne

#12 Le 27/11/2013, à 10:17

tiramiseb

Re : Je débute en programmation

telliam a écrit :

python est un langage de script et a donc besoin d'un interpréteur pour s’exécuter, même si cette interpréteur est performant, il rajoute forcément une couche supplémentaire et donc de la lenteur.

Tu serais étonné d'apprendre ce qu'on peut faire en Python, en terme de performances...

Pour ma part je ne suis pas hyper spécialiste en perfs de Python, mais j'ai lu pas mal d'articles et de démonstrations liées aux performances de Python (qui peuvent parfois dépasser du code en C grâce à des optimisations spécifiques à Python).

en plus le langage de prédilection pour coder un jeu est le C et le C++

Ah bon ? C'est écrit où ?

Dernière modification par tiramiseb (Le 27/11/2013, à 10:18)

Hors ligne

#13 Le 27/11/2013, à 13:00

telliam

Re : Je débute en programmation

tiramiseb a écrit :
telliam a écrit :

python est un langage de script et a donc besoin d'un interpréteur pour s’exécuter, même si cette interpréteur est performant, il rajoute forcément une couche supplémentaire et donc de la lenteur.

Tu serais étonné d'apprendre ce qu'on peut faire en Python, en terme de performances...

J'en doute pas, mais en général un code interpreter sera toujours plus lent qu'un code executable. meme si l'interpreteur est performant

tiramiseb a écrit :

Pour ma part je ne suis pas hyper spécialiste en perfs de Python, mais j'ai lu pas mal d'articles et de démonstrations liées aux performances de Python (qui peuvent parfois dépasser du code en C grâce à des optimisations spécifiques à Python).

je suis preneur d'info, mais je ne doute pas que sur certains algo qui profitent des structures de données du python ça soit plus efficace que le C, mais je doute fortement que ca soit le cas dans la majorité des cas.

tiramiseb a écrit :

en plus le langage de prédilection pour coder un jeu est le C et le C++

Ah bon ? C'est écrit où ?

Il suffit que regarder les offres d'emploi de dev dans le domaine. la plupart des grosses boites recherchent du C ou C++, voir maintenant java ou C# pour les smartphones.

Mais apres, un langage reste qu'un langage, tu px theoriquement faire des jeux avec n'importe quel langage normalement.

Bon et puis il faut dire que je suis assez vieil école smile pour moi un langage avec lequel tu px pas écrire de driver ou de module kernel, perds bcp de point dans mon estime smile


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

Hors ligne

#14 Le 27/11/2013, à 13:24

tiramiseb

Re : Je débute en programmation

voir maintenant java ou C# pour les smartphones.

Voilà c'est ce que je m'attendais à lire.
Aujourd'hui la plus grosse part de marchés pour les jeux c'est les smartphones, donc java et compagnie tongue

je suis preneur d'info

Malheureusement je n'ai pas gardé les liens vers ces articles parlant de perfs de Python sad

je doute fortement que ca soit le cas dans la majorité des cas

Tu doutes bien... Encore faut-il faire la part des choses entre "suffisamment rapide" et "le plus rapide possible"...

Hors ligne

#15 Le 27/11/2013, à 13:41

telliam

Re : Je débute en programmation

tiramiseb a écrit :

Tu doutes bien... Encore faut-il faire la part des choses entre "suffisamment rapide" et "le plus rapide possible"...

je dirais plutot  dans le temps attendu plutot que "rapidement", qq chose fait rapidement mais trop tard ça sert plus à rien smile
Mais bon de toute façon avec les pcs actuels, il faut deja faire un code assez complexe pour etre limité par les performances du langage ou de la machine utilisé.


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

Hors ligne

#16 Le 27/11/2013, à 16:46

moths-art

Re : Je débute en programmation

Je te conseillerais également le python pour débuter.
Je pars maintenant du principe que les livres et tutos du genre : apprendre C/C++/Java en 2 semaines c'est bullshit.
Il vaut mieux te dire que tu y arrivera en 10 ans : http://sametmax.com/apprendre-le-python-en-10-ans/

Pour ma part, c'est plus ou moins vrai : je prog maintenant tel que je le souhaitais il y a 10 ans.

Te dire que tu vas devenir un cador de la prog en quelques semaines reste une utopie surtout si tu attaques d'emblée du bas niveau : gestion de la mémoire, pré-processeur, makefile etc.

Je trouve que la différence entre compilé/interprété est de plus en plus maigre et que dans 95% des cas, python est suffisant :
c'est batterie include et beaucoup d'opérations peuvent être traité via les libs (en C) sans efforts.
Le JIT (surtout dans Pypy) comble bien l'écart avec le compilé. (la taille de la ram des ordis actuelle en est pour bcp)
Certaines tâches d'optimisation sont souvent mal anticipé car la solution réside en réalité dans l'asynchrone (problème d'IO), dans le caching ou dans la parallélisation. (c'est quand même mieux de tirer parti des proc multi-coeurs actuelles et le C/C++/Java sont pas clairement bons pour faire ça proprement : vaut mieux utiliser les libs python voir Go)

Je suis pas mal dac avec ça : http://www.haypocalc.com/wiki/Optimisation

J'essai de garder du bon sens : un soft qui marche mais qui est lent est toujours mieux qu'un truc qui *marchote* à la vitesse de l'éclair.
La prog c'est aussi "respecter des deadlines" et du coup, il vaut mieux faire du temps son allié plutôt que son ennemi.

Si vraiment on a besoin d'optimiser, il est possible d'utiliser rpython (car c'est souvent les types dynamiques qui font perdre en performance) et/ou du C. Python dispose de bcp d'outilages et binding pour utiliser facilement du bas niveau.

Si vraiment on veut utiliser du bas niveau : pourquoi passer par le C/C++/Java alors que Go, Rust (ok: c'est encore en dev mais prometteur) et C# (petit bémol sur ce dernier quand même) sont leurs dignes successeurs.

Go c'est vraiment bluffant car la compilation (via go run) est tellement rapide qu'on a l'impression d'utiliser de l'interprété.

Enfin, pour les environnements limités tel que les smartphones, il est possible d'utiliser Kivi et/ou des implémentations de python : Jpython/IronPython.

Mais perso, je tendrais à dire que HTML5 est souvent une meilleur solution qu'une app mobile : pas besoin de faire 1 app par plate-forme : i machins, android etc.
La partie intelligente de l'app sera du coup soit dans le serveur (python est génial pour ça) soit côté client : javascript only.

Pour la chronologie d'apprentissage :
1. li des livres et tutos
2. essaie de comprendre des petits projets open-source que tu affectionnes : retourne les bugs et patch les (perso, j'ai envoyé des patches aux projets Mypaint, Gimp, Django, weboob etc.) , c'est vraiment un bon exercice.
Tu vas comprendre l'archi d'un soft déjà existant, son fonctionnement, ses exigences.
3. crée tes propres softs mais évite au possible des objectifs intenables (genre jeu de rôle en 3D) ou alors part du principe que tu n'y viendras sans doute pas à bout.
J'aurais tendance à t'inviter à écrire en premier des scripts plutôt que des applis avec des GUI : tu risques de te noyer dans les api tel que GTK/QT et finalement bloquer sur des détails.
4. Apprend d'autres langages, paradigmes , libs et refait tes softs à partir de zéro.
Tu as forcément eu des soucis d'architecture et refaire de zéro va te permettre de repenser le tout.

Hors ligne

#17 Le 27/11/2013, à 16:59

moths-art

Re : Je débute en programmation

ah oui : apprend à chercher/lire/écrire en anglais... prend les bonnes habitudes.

Hors ligne

#18 Le 28/11/2013, à 03:20

teprick

Re : Je débute en programmation

Merci bien, j'ai beaucoup appris avec ton lien moths-art... C'est parfaitement mon cas, je voulais apprendre à coder en quelques semaines seulement pour ensuite faire un jeu qui me trottait dans l'esprit depuis longtemps mais je me rends de plus en plus compte que c'est difficile, faut prendre son temps au lieu d'apprendre tout d'un coup car sinon le code que tu vas sortir sera pas forcément bon et bien optimisé... Bref, ce n'est que l'humble opinion que d'un débutant mais je crois avoir compris ça smile

Autre question, est ce que le site suivant est bon pour apprendre à programmer?

Hors ligne

#19 Le 28/11/2013, à 09:22

k3c

Re : Je débute en programmation

Il y a eu 6 articles sur linuxfr.org sur le thème "je crée mon jeu vidéo"

Tu les trouveras avec le tag gamedev
http://linuxfr.org/tags/gamedev/public

Le premier
http://linuxfr.org/news/je-cree-mon-jeu … -a-entites


Archlinux sur Xiaomi Air 13

Hors ligne

#20 Le 28/11/2013, à 09:23

k3c

Re : Je débute en programmation

@ moths-art
>>>Enfin, pour les environnements limités tel que les smartphones, il est possible d'utiliser Kivi
le lien pour kivy
http://kivy.org/#home


Archlinux sur Xiaomi Air 13

Hors ligne

#21 Le 28/11/2013, à 09:28

k3c

Re : Je débute en programmation

Ah pour comprendre la programmation orientée objet en Python, je trouve que les cours sur le site sametmax sont les meilleurs.
Le premier
http://sametmax.com/le-guide-ultime-et- … -partie-1/


Archlinux sur Xiaomi Air 13

Hors ligne

#22 Le 28/11/2013, à 10:58

telliam

Re : Je débute en programmation

euh, perso je trouve que leur définition de la programmation objet est un peu simpliste.
parler de la programmation objet sans parler de la partie de modelisation nécessaire avant de se lancer, c'est un peu casse gueule.
et en plus pas un seul mot sur la notion d'héritage...
moi perso pour me former j'utilise les MOOC, genre http://coursera.com au moins tu suis un vrai cours fait par des vrais profs avec exercices, etc...
ça te permet de partir avec de bonnes bases et de ne pas prendre de mauvaises pratiques...


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

Hors ligne

#23 Le 28/11/2013, à 11:34

Olivier_Dev

Re : Je débute en programmation

euh, perso je trouve que leur définition de la programmation objet est un peu simpliste.
parler de la programmation objet sans parler de la partie de modelisation nécessaire avant de se lancer, c'est un peu casse gueule.

entiérement daccords, sauf que c'est pas un peu casse gueule, c'est carrément casse gueule lol.

Quand au langage, je maintien le Python car il permet a un débutant en programmation de faire abstraction de mécanisme flous et obscures du c c++.

Avant de se lancer dans du dev de jeux 3d et s'attaquer a un langage plus bas niveau
il faudra gratter du code et acquérir beaucoup de concept et s'aguerir a la modélisation.
En sachant que maintenant les performances d'une application 3d dependent  de la façon de travailler avec la carte graphique ( vertex buffer ).

aprés une approche avec python, un petit tour sur une page de référence buit-in fonction
Si c'est pour l'apprentissage dans le jeux je conseillerai Pygame
afin d'avoir une approche des concepts de loop principale, sprite, blit ect...

Dernière modification par Olivier_Dev (Le 28/11/2013, à 11:55)

Hors ligne

#24 Le 28/11/2013, à 12:28

telliam

Re : Je débute en programmation

Je plussoie Mr Olivier_Dev smile
faut pas oublier que programmer c'est un métier, ça s'apprend pas en 5-6 lectures smile


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

Hors ligne

#25 Le 28/11/2013, à 14:56

pires57

Re : Je débute en programmation

Pour commencer, pour ma part je conseillerais plutôt Ada


Utilisateur d'Archlinux, Ubuntu et Kali Linux
Administrateur système et réseau spécialisé Linux.
LinkedIn

Hors ligne