IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Discussion :

Quel langage pour débuter ?

  1. #1
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2011
    Messages : 8
    Points : 4
    Points
    4
    Par défaut Quel langage pour débuter ?
    Salut,

    Voilà, je voudrais commencer la programmation pour créer des petits programmes perso.
    Mon niveau:
    - connaissance environnement Windows, capable créer sites internet en Joomla (pas fouiller dans les css).
    - Je sui jeune retraité, donc un peut de temps, mais de moins en moins de neurones...
    - Mon Père programme en VB, mais il a des soucis sous SEVEN, donc je ne pense pas que ce soit le langage idéal? (il n'arrive plus à compacter les programmes, il lui manque un complément je crois)

    Alors, je n'ai aucune connaissance en programmation et ne connais pas l'environnement objet, ni même comment ça marche.

    Quel langage me conseillez-vous d'apprendre et comment?

    Merci d'avance.

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Je dirais que ça dépend si tu cherches à "programmer des trucs" ou à "regarder sous le capot".
    • Dans le premier cas, je conseille C#. Avec un bon tutoriel, tu devrais pouvoir l'apprendre assez facilement.
    • Dans le second cas, C voire C++.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre chevronné
    Avatar de tails
    Homme Profil pro
    Inscrit en
    Novembre 2003
    Messages
    799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 799
    Points : 2 148
    Points
    2 148
    Billets dans le blog
    15
    Par défaut
    Sinon, si je peux me permettre, il y a aussi le langage Java :

    • il est semblable au C# recommandé par Medinoc (le C# apporte notamment de légers avantages syntaxiques)
    • il permet de développer des programmes que les utilisateurs des autres systèmes que Windows pourront aussi utiliser (Linux/MacOsX)
    • c'est le langage de prédilection de la plateforme android, si vous envisagez de le faire dans un 2e temps


    Par contre, le C++, je ne pense pas que ce sois un langage pour se mettre dans le bain (même dans un 2e temps).

  4. #4
    Membre éclairé

    Inscrit en
    Novembre 2008
    Messages
    418
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 418
    Points : 828
    Points
    828
    Par défaut
    Pour ma part, je conseille python.
    C'est un langage relativement simple à aborder tout en étant suffisamment puissant et polyvalent pour traiter la plupart des problèmes, il est également utilisé par de nombreux logiciels comme langage de macros (blender, mysql workbench, gimp, Ooo...), ce qui peut être pratique pour l'automatisation de certaines tâches.
    Un autre avantage est la très grande productivité de ce langage. Les commandes sont très concises et un programme python sera très sensiblement moins long que l'équivalent dans les 3 autres langages. Les premiers résultats sont rapides.
    L'absence de phase de compilation (c'est un langage interprété) est confortable pour le développement même si c'est un handicap en terme de performances.

    Qui plus est, même si tout est objet en python, il est tout à fait possible de commencer à programmer sans se préoccuper de ces aspects et donc de poser les briques les unes après des autres.

    Pour commencer, j'attaquerais par ce bouquin
    http://python.developpez.com/cours/apprendre-python3/

    Je suis par contre assez réservé sur l'utilisation de C, C++ ou même java comme premier langage de programmation dans le cadre d'un apprentissage autodidacte. Ils sont sensiblement plus compliqués et risquent donc davantage d'amener à un certain découragement.
    Cette réserve n'est rien de plus qu'une petite alerte et ne doit pas vous empêcher de choisir un de ces langages si ils vous tentent. Ils restent des références et ne sont certainement pas des mauvais choix.

    Les sujets connexes à aborder impérativement sont :
    - l'algorithmique (http://algo.developpez.com/ - http://troumad.developpez.com/C/algorigrammes/) pour acquérir les bases du raisonnement orienté développement
    - la conception et la modélisation (http://alm.developpez.com/cours/ - http://ego.developpez.com/uml/tutori...esTraitements/) pour savoir préparer les plans d'une application réussie.

  5. #5
    Membre chevronné
    Avatar de tails
    Homme Profil pro
    Inscrit en
    Novembre 2003
    Messages
    799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 799
    Points : 2 148
    Points
    2 148
    Billets dans le blog
    15
    Par défaut
    Citation Envoyé par fatbob Voir le message
    Pour ma part, je conseille python.
    C'est un langage relativement simple à aborder tout en étant suffisamment puissant et polyvalent pour traiter la plupart des problèmes, il est également utilisé par de nombreux logiciels comme langage de macros (blender, mysql workbench, gimp, Ooo...), ce qui peut être pratique pour l'automatisation de certaines tâches.
    Un autre avantage est la très grande productivité de ce langage. Les commandes sont très concises et un programme python sera très sensiblement moins long que l'équivalent dans les 3 autres langages. Les premiers résultats sont rapides.
    L'absence de phase de compilation (c'est un langage interprété) est confortable pour le développement même si c'est un handicap en terme de performances.

    Qui plus est, même si tout est objet en python, il est tout à fait possible de commencer à programmer sans se préoccuper de ces aspects et donc de poser les briques les unes après des autres.

    Pour commencer, j'attaquerais par ce bouquin
    http://python.developpez.com/cours/apprendre-python3/

    Je suis par contre assez réservé sur l'utilisation de C, C++ ou même java comme premier langage de programmation dans le cadre d'un apprentissage autodidacte. Ils sont sensiblement plus compliqués et risquent donc davantage d'amener à un certain découragement.
    Cette réserve n'est rien de plus qu'une petite alerte et ne doit pas vous empêcher de choisir un de ces langages si ils vous tentent. Ils restent des références et ne sont certainement pas des mauvais choix.

    Les sujets connexes à aborder impérativement sont :
    - l'algorithmique (http://algo.developpez.com/ - http://troumad.developpez.com/C/algorigrammes/) pour acquérir les bases du raisonnement orienté développement
    - la conception et la modélisation (http://alm.developpez.com/cours/ - http://ego.developpez.com/uml/tutori...esTraitements/) pour savoir préparer les plans d'une application réussie.
    Je suis d'accord pour dire que Python, pour l'avoir pratiqué, est un bon choix pour débuter.

    Si ce n'est que le seul reproche que je peux adresser est que la gestion des dépendances est moins triviale : en Java il suffit d'empaqueter l'application et ses dépendances dans une archive Jar (sauf pour les librairies telles que JOGL, mais là déjà, on avance en territoire complexe) ainsi que de renseigner la classe de démarrage, et l'archive est auto-exécutable.

    Un désavantage crucial qu'ont les langages Java/Python par rapport au CSharp avec Visual Studio : il n'y a vraiment d'éditeur graphique attitré. Même si pour Java, on peut utiliser l’environnement de développement Eclipse et en y ajoutant l'extension WindowsBuilder, qui produit du code "propre" en plus.

    Pour moi, le dernier point à prendre en compte : il existe une version gratuite de VisualStudio pour C# (Express edition), mais cependant elle est restrictive sur un point qui peut ne pas être si important : interdit de commercialiser les application alors réalisées, contrairement au développement d'applications avec Java/Python.

  6. #6
    Membre éclairé

    Inscrit en
    Novembre 2008
    Messages
    418
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 418
    Points : 828
    Points
    828
    Par défaut
    C'est vrai que la distribution empaquetée est moins simple avec python (quoique cela s'améliore).
    Pour ce qui est de l'IDE...
    C'est encore un point qui mériterait débat. J'utilise vim depuis des années et il est tellement customisé que beaucoup des avantages des IDE ne me semblent plus si évident (sauf la complétion quand elle est bien performante).
    Un gros IDE, c'est aussi tout un apprentissage en soi et, pour de petits projets, je pense que la lourdeur compense les avantages.

    Après, il est clair que pour faire une belle interface graphique, c'est nettement plus compliqué sans IDE ou outil adapté. Dans le genre, il existe aussi delphi qui est assez bien perçu.

  7. #7
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2011
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Bonsoir,

    Vous parlez d'IDE, mais c'est quoi?
    Java ou C# voir python, OK, ou télécharge t-on ces logiciels?
    Je croyais que java était surtout pour le net?
    A priori, non, donc?

    Après, le logiciel choisi il faut apprendre, on fait comment? Tutos? livres? Cours?

    Merci d'avance.

  8. #8
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    IDE est un sigle anglophone se traduisant par EDI: Environnement de Développement Intégré.
    Ils sont généralement dédiés à l'un ou l'autre langage (Eclipse pour Java, Code::Blocks pour C et C++, etc.) mais certains en gère plusieurs (Visual Studio Express for Windows Desktop gère C++, C++/CLI, C# et probablement aussi VB.Net.

    Pour Java, disons qu'avant les smartphones c'était surtout dédié au net (surtout côté serveur), mais ça s'est propagé aux smartphones. Le PC restant l'enfant mal-aimé de la famille, avec des performances désastreuses comparées au reste des produits Java, sans compter la laideur des composants graphiques).

    Pour l'apprentissage, regarde dans la section Cours du website, tu devrais y trouver de bonnes références et même des cours en ligne.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #9
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2011
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Merci à tous, et Visual BASIC, vous en pensez quoi?

  10. #10
    Membre éclairé

    Inscrit en
    Novembre 2008
    Messages
    418
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 418
    Points : 828
    Points
    828
    Par défaut
    Je connais assez peu VB dans un cadre autre que le développement de macros Word ou Excel.
    C'est un langage qui a la réputation d'être plutôt facile d'accès avec une plateforme de développement performante (je ne connais pas les tarifs).
    Je lui reprocherais d'être beaucoup trop inféodé à microsoft et à ses outils. L'avantage de tous les autres langages présentés est que, moyennant parfois parfois quelques précautions, les programmes peuvent être portés sur différentes plateformes.
    C'est évidemment un reproche très subjectif mais, utilisateur de linux, je considère l'ouverture comme un élément très important dans mes choix.

    D'autre part, j'aime bien python aussi parce qu'un simple éditeur de texte permet tout à fait de programmer correctement. Pas besoin d'un monstrueux environnement de développement pour obtenir des résultats acceptables. Ceci est particulièrement bienvenu dans le cadre de tous petits projets qui s'apparentent plus à de la discussion avec son ordinateur qu'à du gros développement (ex : faire une liste de tous les répertoires et sous répertoires dans lesquels on a des photos et compter le nombre de photos et de films dans chaque... Découper un ensemble de fichiers mp3 d'émissions de 1h30 en fragments de 3mn pour faciliter l'utilisation dans un lecteur mp3).

  11. #11
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Août 2008
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Août 2008
    Messages : 282
    Points : 939
    Points
    939
    Par défaut Et le "bon vieux" Pascal ?
    Si je puis me permettre mon grain de sel, je mentionnerai : et du "bon vieux" Pascal ?

    Je suis d'accord avec plusieurs possibilités, tant pour l'approche que la documentation disponible ou la portabilité, en particulier :
    - Python, en n'oubliant pas effectivement le Swinnen (et ce que mentionne fatbob),
    - Java, en n'oubliant pas le Doudoux.

    Maintenant, si je reprends le côté
    jeune retraité, donc un peut de temps, mais de moins en moins de neurones...
    je le comprends comme :
    - ne pas passer trop de temps à se poser des questions, à chercher à comprendre les subtilités,
    - avoir une base de repères simples et carrés.
    Donc, j'en arrive à : et pourquoi pas Pascal ? Typiquement free-pascal et son environnement intégré Lazarus.
    Tu pourras faire de la programmation "de base", puis découvrir le monde objet, puis… ce que tu veux !

    Pour tous les autres, je dirai simplement : oui, aussi, pourquoi pas.

    Dans tous les cas : s'intéresser à l'algorithmie.
    poke 1024,0; poke 214,214

  12. #12
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2011
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Bonsoir,

    D'accord je jette un œil, c'est quoi l'algorithmie?
    J'entends parler aussi d'objet mais ça correspond à quoi exactement?

    Tiens, je me pose une question, quel langage le plus approprié si je veux faire reconnaitre des claviers USB (3) et accepter des notes de chacun, en reconnaissant que c'est tel ou tel clavier (donc personne)?

    Genre un jugement avec notation, clavier de chiffres uniquement.

    Je me demandais si je pourrais faire un programme comme ça ( pas demain hein...)?

    Vous en pensez quoi?

  13. #13
    Membre éclairé

    Inscrit en
    Novembre 2008
    Messages
    418
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 418
    Points : 828
    Points
    828
    Par défaut
    L'algorithmie, c'est simplement la façon de concevoir l'enchainement appropriée des étapes nécessaires pour obtenir un résultat donné, sans tenir compte du langage.
    C'est ce qui permet de mettre en place les plans du programme.
    Un projet informatique, c'est comme un bâtiment.
    Si on fait une niche de chien, on peut en général s'en sortir à peu près sans plan ni grosse réflexion (tout dépend de notre aisance en bricolage)
    Si on fait un immeuble de 50 étage, il est indispensable de prévoir des plans détaillés.

    L'objet, c'est une façon d'organiser son code. L'idée générale, c'est de regrouper les données et les fonctions chargées de traiter ces données de façon à améliorer la réutilisabilité.

  14. #14
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Août 2008
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Août 2008
    Messages : 282
    Points : 939
    Points
    939
    Par défaut Algorithmie ? un des quelques éléments fondamentaux des fondations du BTP informatique
    Bon, fatbob est passé devant.
    J'en rajoute quand même un peu plus.

    D'un point de vue moins imagé, ce sont des repères, des méthodes, des structures sur lesquels t'appuyer, et pour lesquels des solutions optimales ont été conçues ou son en cours de développement (un peu comme les études du CSTB pour le bâtiment). Avec, il y a la méthode d'utilisation, et les cas d'utilisation.
    Plus clairement, selon le problème et les outils disponibles, quels structures de données et méthodes appliquer pour avoir une solution optimale.

    Dans outils disponibles, il y a ce que te permet ton langage. Par exemple, ton langage permet-il des listes ? juste des tableaux ?

    Tu jettes un (par exemple et par hasard ) œil sur la section de dvp, tu auras un idée.
    poke 1024,0; poke 214,214

  15. #15
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2011
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Bonsoir et merci,

    Je vais prendre le temps de digérer toutes ces infos, et choisir...

    Après personne peut me dire si je veux faire reconnaitre des claviers USB (3) et accepter des notes de chacun, en reconnaissant que c'est tel ou tel clavier (donc telle personne ou juge) quel sera la façon de procéder ou quel langage le mieux approprié.

    J'ai déjà vu un logiciel de ce genre, en Anglais, qui se nomme RFM755 fais aux USA, mais pas assez complet et ne traite que la partie jugement.
    J'aimerai traiter l'ensemble...

    Donc quel langage me conseillez vous compte tenu de ce critère?

    SI trop dur, je laisse tomber ça, et je ferais avec un langage simple. Sinon, si il y a une possibilité, je veux bien bosser comme un dératé...

  16. #16
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Août 2008
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Août 2008
    Messages : 282
    Points : 939
    Points
    939
    Par défaut
    La réponse est quasiment : n'importe quel langage.

    Détecter des claviers (j'entends sur la même machine ?), ou autre, cela signifie avoir une interaction avec l'os. C'est plus ou moins facile selon le langage. Dans ce cas particulier, ce sera de toutes façons un minimum compliqué car il faudra voir ce que le langage propose de lui-même, ou s'il faut passer un coup de fil à l'os pour avoir le service.

    Le plus important, pour démarrer, c'est de se poser quelques questions :
    - se concentrer sur un os, ou vouloir être "portable" ?
    - quels langages me plaisent, à vue de nez (se faire une short-list) ?
    - qu'est-ce qu'ils me proposent de base (lire la présentation et les mots-clés), quelles librairies d'extension existent qui me donnent les services que je cherche, est-ce que c'est compliqué pour faire ce qui n'est pas dans la pub du langage ?

    Déjà, se trouver un langage avec lequel être à l'aise pour démarrer, et acquérir les premières notions générales, transposables à d'autres. Ensuite, si nécessaire, s'apercevoir qu'on ferait peut-être mieux de migrer pour un autre.

    Bonne découverte !
    poke 1024,0; poke 214,214

  17. #17
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2011
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    A priori, je vais commencer en C#
    Pour les claviers, sur le logiciel RFM755 fait aux USA et en Anglais, il faut en démarrant le programme, taper une touche sur le premier clavier, du coup le logiciel note que c'est le premier, puis le second est demandé à taper une touche, puis le 3eme.
    Ensuite, dés qu'un juge tape sa note, le logiciel enregistre, puis quand les 3 ont tapé leur note, le logiciel affiche un cours instant chaque note et le total!
    Je ne sais évidemment pas faire ça...
    Ni ne sait quel langage est le plus approprié pour ça?

    Merci de vous intéresser à mon cas...

Discussions similaires

  1. Quel est le meilleur langage pour débuter la programmation ?
    Par Amine Horseman dans le forum Débats sur le développement - Le Best Of
    Réponses: 271
    Dernier message: 26/07/2016, 08h36
  2. Quel est le meilleur langage pour débuter la programmation ?
    Par Amine Horseman dans le forum Actualités
    Réponses: 144
    Dernier message: 28/11/2014, 17h06
  3. Quel langage pour débuter, quel livre?
    Par _kal_ dans le forum Windows
    Réponses: 5
    Dernier message: 09/08/2008, 09h05
  4. quel langage pour débuter
    Par tony913 dans le forum Débuter
    Réponses: 14
    Dernier message: 01/12/2004, 19h00
  5. Quel langage pour débuter ?
    Par nerv dans le forum Assembleur
    Réponses: 15
    Dernier message: 26/06/2004, 23h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo