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 :

Comment se situé pour apprendre à programmer

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Comment se situé pour apprendre à programmer
    Bonjour à tous,

    Issu d'un parcours scientifique, je n'ai pas un profil informaticien, mais j'ai toujours tenté différentes approches du milieu... Travaillant sur des systèmes de sécurité embarqués sur du matériel ferroviaire, j'ai décidé de me mettre concrettement à la programmation (compréhension pour le job, codage pour l'épanouissement personnel)... Mais voilà, bien loin du basic GFA ou du Pascal des classes prépas, après une petite formation en ADA, je me rend compte que je ne sais pas par ou commencer. Un langage d'accord, après avoir lu quelques posts et balayé quelques tutoriels, ce sera sans doute du C++ ou de l'ADA, peut être du python, mais j'ai l'impression que pour réellement s'y mettre, ce n'est pas suffisant... Alors côté algorithme, côté génie logiciel (j'ai découvert en formation qu'il y avait des étapes après le compîlateur), comment démarrer, comment se situer, comment sortir le tête de l'eau?
    Merci d'avance pour vos lumières...

    Bigsebowsky

  2. #2
    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
    Je serais, personellement, purement utilitariste dans un premier temps. Qu'est-ce qu'ils utilisent à ton job? Eh bien voilà un langage/environnement qu'il est excellent à apprendre - en tous cas pour toi.

    Parceque tu auras une VRAIE motivation, et de VRAIS exemples UTILES sous les yeux. Un langage plus pédagogique(genre SCHEME, ou PASCAL), c'est bien gentil, mais si tu n'as rien à en faire, pas de projet qui te tienne à coeur, tu seras vite démotivé.
    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.

  3. #3
    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
    Effectivement, maîtriser un langage en soi ne saurait suffire. A cela il faut ajouter, en vrac :
    • Algorithmique : impérativement maîtriser (savoir utiliser) toutes les structures de contrôle de ton langage (if, switch, while, for, etc), la récursivité et comprendre la complexité algorithmique. Ce sont les bases.
    • Algorithmes : connaître et comprendre quelques algorithmes célèbres, au moins ceux que l'on utilise tous les jours (QuickSort, BubbleSort, Hoffman, etc). Plus en on connaîtra, plus on élargira sa palette et on est parfois surpris de pouvoir exploiter des connaissances d'un domaine dans un autre qui n'avait a priori pas grand chose à voir. Ne jamais hésiter à faire des recherches sur les problèmes qui semblent très complexes a priori : souvent les solutions sont plus simples qu'on ne l'imaginait. C'est plaisant, utile et valorisant.
    • Structures de données : élargir sa palette, des listes aux piles, en passant par les red-black trees, les binary space partitions, les hash-based dictionnaries, etc. La plupart des problèmes de perfs sont résolus par le choix d'une structure de données adaptée.
    • Conception : connaître ses principes de conceptions (SOLID, DRY, etc) et ses motifs de conception (design patterns). Comprendre les mots "mutable", "pur", etc.
    • Connaître ses outils : tout langage vient avec un certain bagage, soit en standard, soit via des biblios réputées et largement utilisées. Il faut bien les connaître et comprendre comment ils fonctionnent. Connaître son IDE et tous les softs utilisés.
    • Style : savoir rédiger efficacement un code, le rendre lisible, utiliser les commentaires de façon pertinente (moins de doc systématique, plus de doc sur les points flous, ambigus, complexes), etc. "Coder proprement" est un ouvrage de référence à cet égard. Veiller à nommer intelligemment membres et types. Savoir jouer entre guard clauses et branchements imbriqués.
    • Déboguage : savoir utiliser son débogueur, savoir quand lire les événements systèmes, savoir obtenir un plans de requête SQL, faire un usage judicieux des logs, savoir utiliser un profiler, etc.
    • Assurance qualité : comprendre les différents tests existants (unitaires, fonctionnels, etc), les métriques de code, utiliser des assertions en mode debug, ses éventuels outils de qualité de code.
    • Internationalisation : comprendre ce qu'est Unicode, savoir que dans certains langages deux glyphes concaténés sont remplacés par un seul nouveau glyphe, garder en tête que certains lisent de gauche à droite, que le formatage des nombres et des dates est culturel, que tous n'utilisent pas les mêmes unités, etc.
    • UI : chercher à faire une interface standard et qui fonctionne plutôt qu'un truc révolutionnaire et impossible à comprendre, ou kikoo mais pas fonctionnel. Penser "simple" et "standard". Ne pas hésiter à copier ce qui existe et fonctionne. Lire et respecter les guidelines de l'OS. Respecter les choix utilisateurs en matière de fontes, de tailles et de couleurs. Connaître les problématiques d'accessibilité (10% de handicapés avec le vieillissement de la population, de l’arthrite qui rend malaisé le double clic aux mal voyants, aveugles, sourds et tétraplégiques).
    • Connaître ses standards : XML, XSLT, XPath, JSON, SQL, etc.
    • Métal : comprendre le processeur et le code généré par ton langage. Comprendre HTTP, TCP/IP, les DNS, etc.
    • Parallélisme : comprendre la différence entre un processus et un thread, comprendre un thread, connaître ses primitive de synchronisation, les opérations atomiques, savoir si le double-checked lock est fiable sur la plateforme visée, avoir une ou deux structures de données lock-free sous la main, etc. Avoir une bonne biblio sous la main.


    Voilà, il y en a pour plus de dix ans de boulot, bon courage.
    Dernier conseil : s'impliquer dans un projet conduit par des développeurs doués, matures et accessibles. Lire le code et discuter avec eux sera instructif. Si ce n'est pas possible au boulot, il y a des projets open source qui peuvent t'intéresser.

Discussions similaires

  1. Meilleur livre pour apprendre à programmer en Python
    Par Guigui_ dans le forum Général Python
    Réponses: 56
    Dernier message: 13/02/2016, 00h31
  2. Les livres pour apprendre à programmer
    Par Laneudie dans le forum Débuter
    Réponses: 1
    Dernier message: 15/09/2012, 17h26
  3. Quel livre pour apprendre à programmer en Pascal ?
    Par newsoussou dans le forum Pascal
    Réponses: 3
    Dernier message: 30/01/2012, 19h39
  4. [Méthodologie] Comment s'organiser pour programmer?
    Par Donaldo dans le forum Méthodes
    Réponses: 5
    Dernier message: 04/05/2006, 00h38
  5. Comment créé une "interface" pour mes programmes??
    Par alcazar dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 09/02/2004, 13h02

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