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 :

[Etudiant Info] Se construire une "culture" en programmation

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 24
    Points : 47
    Points
    47
    Par défaut [Etudiant Info] Se construire une "culture" en programmation
    Bonjour,

    Je suis en première année de licence d'informatique, où je travaille en Java et en Caml (Java pour des notions de base de POO au premier semestre, pour avoir un support pour l'introduction à l'algorithmique, et Caml pour la programmation fonctionnelle). J'ai eu quelques aperçus du C et du Python, histoire de découvrir...

    Ce que je cherche ce ne sont pas des cours de programmation ou d'algo, internet et les bibliothèques sont largement suffisants ! Par contre j'aimerai voir autre chose que les simples exemples de cours (je ne sais pas si la classe Rectangle parlera à certaines personnes...). Je sais qu'il existe plein de choses sur internet, des communautés comme GitHub, que l'on peut avoir accès au code de certains projets... Seulement je ne sais pas du tout où regarder, n'étant pas vraiment entré dans le "monde" de l'informatique professionnellement parlant, je ne sais pas vers où me diriger sans tomber sur une frontière que me bloque, au niveau des connaissances ou de quoi que çe soit d'autre...

    Ce que je vous demande c'est des pistes, des ressources, du code, enfin du "palpable" quoi ! Ce n'est pas pour participer, j'ai déjà mes cours à assimiler, mais je pense que l'apprentissage par l'exemple peut être un plus, sur le plan des études, puis simplement par curiosité de toute façon...

    J'espère avoir été clair,

    Bonne journée,
    Drolls

  2. #2
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 119
    Points
    28 119
    Par défaut
    Bonjour,

    Ca depend beaucoup de ce que tu veux apprendre... C'est tres difficile d'etre un bon specialiste d'un domaine, et extremement difficile d'etre un generaliste.

    Je te conseille d'essayer de trouver des blogs reconnus dans les domaines qui t'interessent. Si tu precises les domaines, je suis certain que tu auras des reponses ici. Difficile de conseiller de lire slashdot si l'information un peu generale ne t'interesse pas, difficile de te conseiller www.reddit.com/r/Programming si tu veux des informations generales qui sortent des problematiques de programmation.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  3. #3
    Membre émérite
    Inscrit en
    Janvier 2011
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Janvier 2011
    Messages : 805
    Points : 2 918
    Points
    2 918
    Par défaut
    Citation Envoyé par Drolls Voir le message
    je ne sais pas vers où me diriger sans tomber sur une frontière que me bloque
    C'est très difficile car connaitre un langage ne garantit pas de pouvoir comprendre les sources de n'importe quelle application. Le langage c'est les briques de base mais il y a beaucoup d'autres dimensions à l'édifice : design patterns, architecture, protocoles de communication avec d'autres systèmes, conventions de nommage ou d'organisation des sources, "idiomatismes" propres à un style de programmation, etc.

    Décrypter des sources de vraies applis sur GitHub sans connaissances théoriques préalables sur le design et l'architecture d'applications, c'est un peu comme regarder une maison et essayer de déduire comment elle a été construite sans avoir de notions d'architecture des bâtiments. Tu vas forcément détecter des patterns, des "gimmick" particuliers mais sans forcément pouvoir le rattacher à des pratiques identifiées. Il ne faut pas non plus partir du principe que tout ce qu'on voit est représentatif de l'état de l'art dans la conception de programmes. Il n'y a pas qu'une façon de faire, et beaucoup d'entre elles sont mauvaises en termes de maintenabilité, de performances, de lisibilité... Déterminer quels auteurs font autorité, lesquels savent ce qu'ils font et lesquels sont des programmeurs du dimanche demande un petit travail de recherche.

    De bons moyens de s'y mettre peuvent être de regarder le compte Github d'une "célébrité" du monde du développement que tu apprécies particulièrement, d'acheter un bouquin accompagné de codes sources d'une application exemple réaliste (peu fréquent mais ça existe) ou tout simplement de partir d'un domaine que tu aimes bien et trouver un projet open source simple où farfouiller.

    Au début, tu auras probablement la sensation de boire l'eau d'une bouche a incendie Le plus souvent, l'expérience du terrein est une chose qu'on acquiert en travaillant sur des applis du monde réel au fur et à mesure de sa carrière, d'abord en stage, puis dans des "vrais" jobs... mais c'est tout à ton honneur et bon signe de t'y intéresser maintenant !

  4. #4
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Points : 4 732
    Points
    4 732
    Par défaut
    C'est pas une question de langage de programmation que d'informatique au sens large. Car dans le fond, tous les langages d'un même paradigme se ressemble plus ou moins et n'importe quel gus qui programme est capable d'apprendre un nouveau langage de programmation.

    Par contre, tout programmeur devrait avoir des bases sur le fonctionnement d'un OS, du matériel, sécurité, du réseau, les algorithmes, les BDD, quelques grand paradigmes de programmation et des bases un minimum solides en maths (liste non exhaustive). Ca s'obtient en général en lisant des livres/articles sur plein de sujets différents. Wikipedia est en général un bon point de départ.

    L’idée c'est qu'avec ces bases, même si tu n'es pas bon dans les domaines cités , tu es capable le cas échéant de reconnaitre un problème lié a un de ces aspect et d’adapter le bon comportement : aller chercher les bonnes infos ou la bonne personne qui te permettra de résoudre le problème.

    faut pas se meprendre, c'est un travail de fond, pas toujours conscient, qui se fait sur plusieurs années.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  5. #5
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Question difficile en effet. En vrac :

    * Un code source est difficile et pénible à lire. C'est possible avec de l'expérience mais en tant que débutant tu peux oublier. Participer à un projet libre, en revanche, te force à t'immerger dans le code et à vraiment le comprendre, et ça peut être plus intéressant. Trouve par exemple une fonctionnalité que tu aimerais ajouter à un projet libre et soumets un patch. Voilà qui peut être très formateur et enrichissant.

    * Au début rien ne vaut les mains dans le cambouis.

    * Les livres et, dans une moindre mesure, la presse. Mais j'insiste sur les livres, c'est un facteur décisif d'évolution.

  6. #6
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 058
    Points
    32 058
    Par défaut
    Citation Envoyé par DonQuiche Voir le message
    Question difficile en effet. En vrac :

    * Un code source est difficile et pénible à lire. C'est possible avec de l'expérience mais en tant que débutant tu peux oublier. Participer à un projet libre, en revanche, te force à t'immerger dans le code et à vraiment le comprendre, et ça peut être plus intéressant. Trouve par exemple une fonctionnalité que tu aimerais ajouter à un projet libre et soumets un patch. Voilà qui peut être très formateur et enrichissant.

    * Au début rien ne vaut les mains dans le cambouis.
    Grillé. Il faut PRATIQUER. D'abord seul pour acquérir un peu de logique, puis dès que possible en équipe.

    Citation Envoyé par DonQuiche Voir le message
    * Les livres et, dans une moindre mesure, la presse. Mais j'insiste sur les livres, c'est un facteur décisif d'évolution.
    Certain blogs sont intéressants aussi. Même si ceux que je suis sont plus orientés gestion de projet. L'important, toutefois, c'est d'essayer. Quoi qu'on aie lu, tant que l'on ne l'a pas essayé, ne reste que de la théorie.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 24
    Points : 47
    Points
    47
    Par défaut
    Merci pour vos réponses !

    Effectivement les chaises de la bibliothèque universitaire commencent à me connaître...

    Je viens de retomber sur ce post, je l'avais complètement oublié

    Au cas où des étudiants (ou autres, peu importe) tombent sur ce sujet, depuis Octobre, quand j'ai ouvert ce topic, j'ai essayé de bidouiller deux trois programmes, j'ai commencé par me lancer sur un automate cellulaire, le jeu de la vie, mais trop compliqué. J'ai fais quelques petits scripts pour mon pc (je tourne sous linux), au fur et à mesure je me suis habitué aux commandes, maintenant j'utilise le moins possible la souris, la flemme de bouger le bras... C'est signe de bonne santé chez les informaticiens parait-il
    Surtout j'ai repris les TP que l'on fait en cours, à savoir une calculette très très simple en java, que j'ai essayé d'améliorer. Je passe sur les détails mais je me suis retrouvé face à un mur bien droit et bien haut quand j'ai voulu gérer les priorités des opérateurs (multiplication avant l'addition, etc...). J'en ai discuté avec un prof qui m'a expliqué vite fait deux trois choses, et qui m'a guidé sur le sujet de l'analyse syntaxique. Pour le coup, effectivement je l'ai ressenti la bouche à incendie

    Mais je m'en suis pas trop mal sorti, j'ai réussi à le faire mon analyseur... Maintenant je suis sur un émulateur, sur un "processeur" ultra simpliste proposé comme exemple dans un cours d'introduction sur l'architecture des ordis.

    Bref, j'apprends en rajoutant ma touche sur ce qu'on fait en cours, je pousse simplement le sujet un peu plus loin, et à chaque fois les difficultés rencontrées rajoutent des zones à explorer.

    Les bouquins sont ensuite là pour aider à formaliser les idées, à comprendre les méthodes, etc...

    C'est exactement ce que vous disiez, "Les mains dans le cambouilli" ---> "Les bouquins" ---> ("La bouche à incendie") ---> "La compréhension" ---> "Et on recommence !"


    Pour ce qui est de patcher des projets existants, pourquoi pas, mais à mon avis, à mon niveau, le plus gros travail restera de trouver un projet qui soit abordable pour moi


    Mais qui sait, plus on avance plus c'est intéressant, plus on a envie d'avancer !

Discussions similaires

  1. Réponses: 5
    Dernier message: 15/04/2005, 14h22

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