Partage

Apprendre à programmer

14 avril 2015 à 12:11:25

Bonjour j'ai 18 ans et je passe beaucoup de temps à jouer à l'ordinateur mais voilà j'essaye aussi de découvrir autre que de jouer comme un abruti pendant des heures.

Donc je voulais savoir si :

- Du à mon âge si c'était pas trop tard pour

- Par ou commencer  (les bases médium et avancé si vous voyez ce que je veux dire)

-Combien de temps cela me prendra

Et tout sa de le but de créé un antivirus ou autre en bref quelque chose de compliquer mais bien plus tard une fois que j'aurais maîtriser le sujet.

Merci de votre aide à bientôt :)

Vous êtes demandeur·se d'emploi ?
Sans diplôme post-bac ?

Devenez Développeur·se web junior

Je postule
Formation
courte
Financée
à 100%
14 avril 2015 à 12:30:11

- Non c'est pas trop tard ;)

- Je dirais python pour commencer, c'est un langage facile à prendre en main, et on peux quasi tout faire avec (à part un système d'exploitation, mais ça risque d'être tendu aussi pour faire un antivirus)

- Toute ta vie :)

14 avril 2015 à 13:36:44

Il n'est jamais trop tard pour se mettre à coder. Maintenant clairement, "par où commencer", ça dépend avant tout de ce qui te branche. Python est un bon point de départ générique dans l'absolu.

Zeste de Savoir, le site qui en a dans le citron !
14 avril 2015 à 13:53:47

Salut l'amis :D

Je partage l'avis des autres, c'est jamais trop tard pour commencer à coder

Pour le langage, j'ai jamais fait de python et j'ai commencé avec le java mais à l'école ce qui m'a peut être un peu aidé

Peut importe le langage au final... les bases resteront à jamais les même, j'aime bien dire que une fois que tu maitrise vraiment bien un langage tu peux programmer en presque tout les langage, la plus part du temps c'est "juste" la syntaxe qui change

Voilà mon avis ^^

Juste pour préciser, j'espère que tu es persévérant et que tu es motivé parce que il y a bien des chances que tu te tires une fois ou l'autres les cheveux pour au final pas grand chose, je dis ça pas pour te faire peur mais plus pour te dire que la vie de développeur est pas tout le temps toute rose ;)

N'aies pas peur d'être curieux, qui n'essaie rien n'a rien :)
14 avril 2015 à 14:51:22

Dingue tous ces jeunes qui pensent que 15, 16, 18 ans c'est trop vieux :p

Théoriquement, même une personne âgée (motivée) peut apprendre à programmer. Il n'y a pas d'âges limites.

14 avril 2015 à 14:57:52

Vekin a écrit:

Dingue tous ces jeunes qui pensent que 15, 16, 18 ans c'est trop vieux :p

Théoriquement, même une personne âgée (motivée) peut apprendre à programmer. Il n'y a pas d'âges limites.


Si tu sais pas programmer à 10 ans tu a raté ta vie :D

-
Edité par romain51 14 avril 2015 à 14:57:59

Un jour les Valaisans domineront le monde. Mais pas demain, ya apéro
14 avril 2015 à 15:40:25

Ok alors j'ai commencer à apprendre le langage c via ce site je continu ou je me met au python ? Merci de vos réponses 

14 avril 2015 à 15:59:30

C et Python ont l'immense avantage d'être un couple de langages faciles à interfacer entre eux, et très complémentaires (Python est haut niveau et rapide à développer, C est bas niveau et permet d'aller gratter des perfs).

Si tu te sens bien en C, continue le C et garde Python sous le coude pour plus tard. Sinon, si tu sens que tu commences à bloquer, passe à Python et garde le C pour plus tard.

Dans les deux cas puisque tu as commencé le C, ce serait dommage de le laisser tomber définitivement.

Zeste de Savoir, le site qui en a dans le citron !
14 avril 2015 à 23:49:51

Salut!

Tout dépends de ce que tu veux faire:
-si tu veux faire des sites web et applications mobile, le mieux est à mon avis le html/css/js puis php. Par contre pour faire des logiciels ça sera bien moins pratique... Cela dit je considère qu'il est plus facile de faire un site web potable qu'un logiciel innovant..

-si tu veux faire plutôt des logiciels et pas trop de web je te conseil de faire du java ou du python ou du C#. Le Les deux premiers langages sont trés facile à apprendre et relativement performant. Tu trouvera beaucoup de ressources sur le web pour ces langages car ils sont très souvent utilisés à l'université ou en école d'ingé pour apprendre à coder.
Le C# est un langage trés prisé aussi, il est très performant et facile à apprendre, et dispose des outils extrêmement puissants de Microsoft pour développer avec. Il permet de faire bien entendu des logiciels, mais aussi du web, des applications mobiles et des jeux vidéos (avec Unity3D). Le seul inconvenant du C# est qu'on trouve un peu moins de ressources en français dessus. Mais si tu lis un peu l'anglais je te conseil vraiment ce langage pour débuter.

Je te déconseil le C qui pour moi est un langage de professionnel et plutôt réservé à des usages poussées: gros logiciels comme des jeux vidéos AAA, recherche scientifique et big data, logiciels de dessins etc.. Au final en C tu risque de faire plein d'erreurs et de laisser plein de bug dans tes programmes, pour un gain de performance qui ne te sera pas utile dans 99% des cas...
Pour te donner une idée, le jeu minecraft codé en Java est super mal optimisé et la plupart des développeurs trouvent son code horrible. Mais ça n’empêche pas le jeu de tourner plutôt correctement chez la plupart des gens, et le developper en Java à été bien plus rapide que si il y avait fallu faire du C.
Aussi à moins que tu ne veuille devenir développeur pro (et faire une école pour avoir les savoirs théoriques associés) pour travailler sur des gros logiciels, le C t'apportera plus de contraintes que d'avantages.

Je te conseil donc de choisir entre Python, java et C# selon tes goûts et envies, les 3 langages sont assez proche (surtout java et C#).
15 avril 2015 à 9:35:58

Je vais contre l'avis de Maximilien Pegasus au sujet du langage C : à mon avis (donc c'est subjectif hein, faut pas s'offusquer) c'est un bon langage pour apprendre à programmer, par pour ses qualités, mais justement pour ses défauts. Je trouve que les difficultés que l'on rencontre en apprenant le C ont un réel intérêt pédagogique.
J'ai jamais été trop pour apprendre avec un langage "facile".

J'illustre mon propos par une image que tout le monde comprendra : un adulte qui monte un meuble Ikéa dira que c'est facile si enfant il jouait aux légos, et non aux playmobils.
"On ne remplace pas des plombs sautés avant de savoir pourquoi ils ont sauté." 2001 l'odyssée de l'espace, Arthur C. Clarke
15 avril 2015 à 11:08:37

Aussi à moins que tu ne veuille devenir développeur pro (et faire une école pour avoir les savoirs théoriques associés) pour travailler sur des gros logiciels, le C t'apportera plus de contraintes que d'avantages.

Autant je suis plutôt d'accord que débuter par le C n'est pas le chemin le plus simple, autant je trouve que cette remarque est juste stupide et fausse.

D'abord tu t'amuses à présenter C comme un "langage difficile de pros" : non seulement ce n'est pas le reflet de la réalité puisque Java est plus utilisé en entreprise que C, mais surtout, c'manquer complètement de recul à propos du C. Oui, faire des choses complexes en C est difficile, mais ça ne l'empêche pas d'être un langage simple, qui expose au developpeur la façon dont fonctionne son ordinateur, ainsi que son système d'exploitation.

Si apprendre la programmation par le C est discutable (mais perso c'est ce que j'ai fait il y a un peu plus de 10 ans et je n'en suis pas mort), connaître le C, à un moment donné, est fondamental.

Du reste, pour les avoir pratiqués pendant mes etudes je n'aime pas plus C# que Java, qui me donneront toujours l'image de sous-C++ qu'on aurait bridés pour éviter aux développeurs d'apprendre à concevoir correctement leurs programmes. Raison pour laquelle je préfère Python, qui a le mérite de ne pas offror un système de typage aussi chiant qu'il est inefficace (coucou Java), de ne pas enfermer l'utilisateur dans un paradigme unique au risque de produire des atrocités en objet faute de façon plus élégante d'exprimer la même chose, ni d'astreindre l'utilisateur à un framework propriétaire.

J'estime également qu'un langage pour apprendre à programmer en autodidacte doit être amusant à pratiquer, ce qui est le cas de C (pour peu qu'on aime jouer avec la mémoire) et Python, mais m'a toujours déçu dans les autres langages que tu cites.

Par ailleurs, dire aujourd'hui que PHP est indispensable pour le web me semble egalement une ineptie : c'était peut-être encore vrai il y a 5 ans, mais ce n'est plus le cas aujourd'hui.

Mais c'est purement subjectif.

Zeste de Savoir, le site qui en a dans le citron !
15 avril 2015 à 11:44:06

le soucis de ton raisonnement c'est que tu raisonne comme un professionnel alors qu'ici on parle d'un amateur qui veut apprendre à coder..
Quelle est probabilité que cette personne fasse des gros logiciels comme des jeux vidéos ou du maching learning et ai besoin d'utiliser un langage hautement performant comme le C? Quasiment aucune. Si c'est le cas elle aura forcement fait des études d'infos avant et aura appris ces langages.
Idem, quel intérêt de comprendre réellement comment fonctionne son ordinateur et l'OS? C'est intéressant (selon les gens) mais ce n'est pas ça qui t'aidera véritablement à programmer.

La gestion de la mémoire comme en C vient du fait qu'il s'agit d'un vieux langage et qu'il à y a 30 ans vu le peu de mémoire disponible on devait l'optimiser parfaitement. De nos jours si ton application smartphone n'est pas parfaitement optimisée et consomme 20% ou 50% de plus que ce qu'elle pourrait, ce n'est pas dramatique dans 90% des cas. Ça devient dérangeant dans le cadre de gros logiciel/applications. Sauf qu'un amateur n'a quasi aucune chance de développer ce genre de produits...

Ok il n'aurai jamais la rigueur et la connaissance que quelqun qui apprends avec le C peut avoir. Et alors? Un programme bien conçu en java ou C# sera probablement plus performant qu'un programme mal conçu en C. Il ne faut pas se voiler la face, un amateur restera toujours un "mauvais" dév car il n'aura pas tout à un tas de connaissances théoriques pour faire ça dans les règles de l'art.
Il faut savoir s'adapter au publique je penses!


Concernant le php tu vas râler mais là encore tu as une vision "pro" des choses... Tu as l'habitude de développer et tu lis sans doute facilement l'anglais. Il est très facile de trouver plein de ressources en php en français pour débuter et ainsi avoir un niveau correct en web et faire pas mal de choses. L'ex sdz en est la preuve non? :p
Commencer directement à faire du web avec java ou ruby demande bien plus de prérequis et les ressources en français sont trés rares comparativement au php. De plus la communauté est plus réduite et un débutant trouvera moins facilement des conseils/ressources de son niveau.
Avec du html/css/php il pourra facilement faire des petite sites web cool et trouver une idée simple et faire un site à sucés (type sdz qui repose sur une idée et non sur des algorithmes ou super performances). Ca ne sera respectera pas les règles de l'art et fera crier plein d dév pro, et alors?

Pour moi le but en temps qu'amateur est de pouvoir rapidement faire des choses sympas, prendre du plaisir et s'amuser. Pour ça il me semble bon de commencer avec les technologies les plus simples et rependus, quitte à sacrifier un peu en performance et en compréhension de ce qui se passe sous le moteur. Tant pis si le code ne sera pas parfait, pas optimisé et ne respectera pas les conventions professionnelle...
15 avril 2015 à 12:42:43

le soucis de ton raisonnement c'est que tu raisonne comme un professionnel alors qu'ici on parle d'un amateur qui veut apprendre à coder.

Le soucis c'est que la totalité de ta réponse est à côté de la plaque parce que cette phrase prouve que tu n'as ni lu, ni compris mon message, et encore moins le point de vue que j'adopte.

Partant de là je ne prendrai pas la peine de chercher à te répondre parce que j'ai mieux à faire que sortir des explications dans le vide, et te laisserai donc te complaire dans les préjugés que tu exposes depuis 2 messages, en déplorant le fait que d'autres, parmi lesquels des débutants, les prendront pour argent comptant.

Bonne journée ! :)

Zeste de Savoir, le site qui en a dans le citron !
15 avril 2015 à 13:11:27

Tu m'excusera mais c'est toi qui ne fais pas vraiment l'effort de lire correctement je crois :p

Dans mon premier message je dis simplement que si il veut faire du web c'est bien de commencer par html/css/php, et toi du me critique en disant que php n'est pas indispensable, chose que je n'ai jamais dites...

Idem je n'ai jamais dis que java n'était pas un langage professionnel et que le C était utilisé partout. J'ai juste dis que le C était surtout utile pour les professionnels car il permet une optimisation que les autres langages ne permettent pas. Et que la plupart des réalisations n'ont pas besoin d'une telle optimisation et peuvent donc se faire avec des langages plus pratique bien que moins performant... comme le Java qui est très utilisé.

Bref commence par te remettre un peu en question avant de dire que ma réponse est à coté de la plaque ;)

-
Edité par Maximillien Pegasus 15 avril 2015 à 13:11:59

15 avril 2015 à 13:45:09

Bon, puisqu'il faut t'expliquer longtemps les choses, voilà point par point pourquoi ta reponse passe à côté de l'essentiel.

D'abord, tu considères que le seul attrait du C est ses performances. C'est faux :

  • les programmes ayant le plus besoin de performances aujourd'hui n'utilisent PAS le C. Aujourd'hui les gros développements se feront plus souvent en C++ qu'en C. Dans les cas extrêmes vraiment calculatoires, tu trouveras de la parallélisation de masse avec Cuda/OpenCL d'une part, et même des bibliothèques de calcul scientifique en Fortran.

  • Le réel intérêt de connaître le C est de se frotter à la manipulation directe de la mémoire ainsi qu'aux couches basses des systèmes d'exploitation (interaction directe avec le kernel). Certes on ne développe pas ce genre de code tous les quatre matins, mais ça permet de comprendre ce qui se passe, et de ne plus jamais avoir besoin de se hasarder sur des questions pourtant simples, comme est-ce que ce code va passer son temps à dormir ou bien va-t'il me manger 200% de CPU ?, ou j'ai envoyé mes données sur ce flux de sortie, pourquoi n'apparaissent-elles pas de l'autre côté ?, ou bien ça veut dire quoi quand mon programme plante avec l'erreur "Segmentation Fault" ? Quel genre de code en est responsable ? Où dois-je chercher ?.

  • Tout cela fait que les gens qui utilisent le plus massivement le C ne sont pas "les pros", mais plutôt les gens qui vont toucher à la programmation système (parmi lesquels ceux qui développent des systèmes embarqués) d'une part, et ceux qui font de la compilation d'autre part. Nombreux sont les langages qui prennent le C comme représentation intermédiaire lors de leur compilation, ou dont l'interpréteur est fait en C (Python, Perl, Ruby, Lua...). Là encore, on ne débute pas en développant un OS ou un compilateur, néanmoins ce sont deux domaines fondamentaux qui permettent à l'informatique d'exister, et dans lesquels un peu de connaissances ne peut qu'être bénéfique, quel que soit le langage que l'on pratique au quotidien.

  • À la lumière de cette dernière remarque C a non seulement une valeur pédagogique unique puisqu'il frotte l'utilisateur à son système, mais également un potentiel d'utilisation qui dépasse de très loin le cadre du développement d'applications brutes : il est la voie rêvée pour créer des extensions performantes et/ou à un niveau d'interaction très proche du système pour des langages plus friendly, parmi lesquels Python, que je connais très bien, ou même Lua qui est diaboliquement simple à intégrer dans un programme en C ou C++.

Dans tous les cas, ne t'en déplaise, qu'on soit pro ou passionné (et je suis les deux), il reste un langage virtuellement immortel (il reste vivant aujourd'hui, et le restera au moins aussi longtemps que les noyaux Linux ou BSD continueront à être maintenus, i.e. probablement encore pour quelques décennies), et l'avoir dans son bagage de compétences est un atout inestimable.

Ensuite tu me dis que je prends un point de vue "professionnel". Si c'était le cas j'aurais conseillé au PO de se ruer sur Java, or je considère ce langage comme ennuyeux, rébarbatif, et d'une valeur pédagogique comparativement faible : Java n'est pas un langage avec lequel on s'amuse. Il est fait pour transpirer.

Si je conseille Python dès le départ, c'est d'abord parce qu'il possède toutes les qualités indispensables à l'apprentissage de la programmation que C, Java et PHP n'ont pas. Il est clair, il vient avec les batteries incluses (sa bibliothèque standard gigantesque), il est marrant à pratiquer, et surtout il est polyvalent. Une fois python dans tes cordes, que tu veuilles faire de la programmation système, des jeux, du web, de la sécurité, ou des applis scientifiques : non seulement il sait le faire, mais surtout il le fait très bien, et facilement.

C'est la raison pour laquelle je considère que pour un amateur qui désire apprendre seul, les couples Python/C et Python/C++ sont une arme ultime : chaque langage complète l'autre et permet de ne jamais se retrouver face à une difficulté bloquante.

Et ça explique mon conseil au PO qui, rappelons-le tout de même, hésitait entre C et Python : ma réponse est, fonce et apprends les deux. Si la question était dans quel ordre c'est le plus simple je répondrais Python en premier, sans hésiter. Mais c'est au PO de le décider.

Quoi qu'il en soit, déconseiller vertement le C, c'est être à côté de la plaque : peu importe quand on l'apprend, c'est un incontournable à terme. Pas nécessairement pour son retour sur investissement immédiat, mais a minima pour sa valeur pédagogique.

-
Edité par nohar 15 avril 2015 à 14:37:27

Zeste de Savoir, le site qui en a dans le citron !
15 avril 2015 à 19:19:29

Commencer directement à faire du web avec java ou ruby demande bien plus de prérequis

Essaie de faire un site sympa dont tu n'as pas honte en PHP puis avec Rails.

Compare le résultat.

Honnêtement pour un débutant pure souche dans le web les frameworks webs qu'on appelle "opinionated" me semblent complètement adaptés.

Tu rentres dans un canvas, tu apprends à écrire proprement des vues et structurer ton code, ton chemin est balisé. Je trouve ça débile de dire "faîtes du PHP parce que... bah parce que c'est plus simple". Non, honnêtement c'est pas franchement plus simple à mon sens.

J'ai bricolé du PHP et du Ruby (CGI) quand j'ai commencé à bricoler dans le web, c'était absolument infect. Je ne pigeais rien à ce qu'était une requête HTTP, à comment réutiliser des morceaux de code, à comment faire des espèces de "templates" pour ne pas me noyer dans un verre d'eau. Ca ne m'a quasiment rien appris. A part à me noyer justement, et à lire des pavés de code spaghetti.

J'ai fait un bon gigantesque en avant en achetant un bouquin sur RoR par pure curiosité. (note : ça aurait pu être Symfony / CakePHP ou un truc PHP aussi si ça avait existé et/ou que j'étais tombé dessus à l'époque).

Le "unopinionated" (i.e. tu peux faire ce que tu veux, y'a pas a priori de bonne façon de faire, la techno/le framework ne t'impose rien) c'est très bien quand tu commences à maîtriser ton sujet et que tu es un développeur d'expérience.

-
Edité par Javier 15 avril 2015 à 19:21:28

15 avril 2015 à 23:35:26

Bonjour j'ai 18 ans et je passe beaucoup de temps à jouer à l'ordinateur mais voilà j'essaye aussi de découvrir autre que de jouer comme un abruti pendant des heures.

Donc je voulais savoir si :

- Du à mon âge si c'était pas trop tard pour 

Tu demande si 18 ans c'est trop tard !? Tu viens à peine de naître et tu crois que c'est trop tard? Tu as encore 70 années à vivre l'ami soit pas si impatient d'être vieux :p

dsl je sais pas comment enlever la fonction de citation donc j'ai pas le choix d'écrire comme si c'était une citation

-
Edité par ducobu123 15 avril 2015 à 23:43:25

La joie peut être donnée mais ne peut être achetée que par la tristesse des autres :P
16 avril 2015 à 9:51:19

Maximillien Pegasus a écrit:

De nos jours si ton application smartphone n'est pas parfaitement optimisée et consomme 20% ou 50% de plus que ce qu'elle pourrait, ce n'est pas dramatique dans 90% des cas. Ça devient dérangeant dans le cadre de gros logiciel/applications. Sauf qu'un amateur n'a quasi aucune chance de développer ce genre de produits...

Je n'aime pas cette mentalité de "on a plein de ressources aujourd'hui, on s'en fout de consommer 50% en plus". C'est à cause de ça qu'on a des trucs énormes et pas optimisés.

16 avril 2015 à 9:53:06

Et des batteries qui ne tiennent pas la route.

Zeste de Savoir, le site qui en a dans le citron !
16 avril 2015 à 13:44:52

Bonjour à vous et merci de toute vos réponse.

Du coup j'ai continué le c je suis à la fin de la parti 1 du cours qui et sur ce site et il y aurait 2 -3 chose que je n'aurais pas compris et des question aussi :)

Alors déjà comment on organise ce qu'on écrit?  En gros comment savoir si ce qu'on écrit a la bonne place par que dans le top qui et à la fin au amélioration y demande de rajouter un compteur sauf que si je le mes soit 0 avec la 1 ère phrase que j'ai écrite soit un chiffre rien à voir avec encore écrit ma 1 ère phrase en fait elle s'affiche tout le temps ma 1 ère phrase . Donc comment bien organisé sont texte ?

Après comme je les dit plus haut mon but c'est de faire un logiciel bien compliqué genre anti virus jeux etc malgré le temps qu'il faudra et je suis déterminer :) Donc quel langage et autre connaissance à avoir ?

Merci de vos réponse :)

16 avril 2015 à 13:49:33

Donc quel langage et autre connaissance à avoir ?

Tu verras en temps voulu. C'est pas pour tout de suite.

Zeste de Savoir, le site qui en a dans le citron !

Apprendre à programmer

× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
  • Editeur
  • Markdown