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

 C Discussion :

Comment acquérir des bases solides de façon plus ou moins autodidactes


Sujet :

C

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 115
    Points : 104
    Points
    104
    Par défaut Comment acquérir des bases solides de façon plus ou moins autodidactes
    Bonjour,

    Je parcours souvent le site et les tutoriels, un peu moins le forum. L'ensemble est très instructif mais j'aimerai être aiguillé sur d'autres solutions pour mieux développer des compétences en programmation C (plutôt bas niveau) et Linux.


    Pour tout dire, j'étais un étudiant en électronique (surtout en électronique numérique donc FPGA). Pour mon stage de fin d'études, j'ai trouvé ce qui m'intéressait : un portage de Linux sur un Virtex 4. Expérience très intéressante mais qui a un peu cassé mes compétences en électronique. Cela ne me gênait guère pensant enchaîner sur des missions de ce type.


    Malheureusement, je suis tombé sur une mission Linux embarqué mais trop haut niveau pour moi, encore un cran au dessus de la programmation système Linux. Je ne me sens pas à l'aise dans ce registre. Même si je programme depuis que je suis assez jeune, la méthode et la forme ne sont pas forcément présentes. Je connais les règles habituelles, code aéré, commenté, vérifier les retours des fonctions et compagnie mais entre la théorie et la pratique...


    Je cherche la solution miracle sachant qu'elle n'existe pas. J'entends par là, j'ai plutôt une bonne bibliothèque sur la programmation et tout ce qui concerne le kernel et les drivers mais en rentrant du travail (qui ne me plaît pas au passage) dur de trouver de la motivation pour les 3h de soirée qu'il me reste. J'ai également une carte de dév ARM + FPGA mais elle peu souvent sous tension malheureusement.


    Donc pour en arriver au fait : quelle serait la meilleure méthode pour acquérir des bases solides en programmation C dans un premier temps puis Linux. L'expérience, je sais, je pensais la trouver au travail mais ce n'est pas le cas (Equipe jeune, peu expérimentée sous Linux...). Il manque vraiment une revue de code par une personne expérimentée.

    J'aimerai savoir vers quel code je pourrai me tourner, connu et reconnu pour être propre et une référence de ce qu'il faut faire ?

    J'avais bien pensé participer à un projet open source mais je ne sais pas lequel et je doute d'avoir suffisamment de temps ainsi que le niveau nécessaire.


    Par avance merci

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Salut !


    Si tu as l'expérience nécessaire en C (si tu le connais bien et maîtrise assez bien le standard j'entend par là) tu peux te pencher sur le livre de Christophe Blaess: Programmation système en C sous Linux
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 115
    Points : 104
    Points
    104
    Par défaut
    Merci pour la réponse mais j'ai déjà ce livre, un incontournable.

    En fait je chercherai plutôt quelque chose d'assez conçis recensant les erreurs classiques en C ou programmation Linux.

    Ou un lieu où l'on puisse simplement laisser son code pour que des personnes donnent leur avis dessus de manière constructive. Dans le monde de l'informatique, je trouve que beaucoup de personnes ont tendance à rapidement dire ce code est moche pourtant quand on voit leur code on peut se dire la même chose.

    Il est certain que les gens ont différentes approches vis-à-vis de la programmation que ce soit le code pur et dur ou la conception mais j'aimerai trouver des documents reconnus par une majorité comme fournissant un code propre. Effectivement le livre de Blaess va dans ce sens mais c'est tout de même un bon pavé et sans avoir l'occasion de pratiquer au travail (toutes les fonctions systèmes sont remplacées par une lib car beaucoup ne connaissent pas Linux) dur de mémoriser tout ça.

    J'avais trouvé un livre allant un peu dans ce sens bien qu'assez gros lui aussi. Je crois que c'était Linux System Programming chez O'Reilly où justement on insistait sur les erreurs classiques que l'on retrouvait dans de nombreux morceaux de code. J'aimerai bien trouvé un ouvrage centré sur ça, type erreur fréquente sur un write, erreur fréquente sur pthread_create, etc.

    EDIT : petit exemple, je viens de tomber sur la page des défis en C/C++, j'apprécie bien le premier défi où sont exposés les problèmes (ou simples améliorations possibles) avec le code du candidat.

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 064
    Points
    219 064
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Ce que je fais pour en apprendre plus sur des points que je savais pas qui me manquait quelques connaissances, c'est depuis quelques temps je prend une heure pour parcourir les sujets intéressants du forum. ( Utilisation des abonnements ).
    Ainsi à chaque fois qu'il y a un sujet qui m'intéresse, un problème que je connais pas trop, ou un point évoqué intéressant, hop, je lis, et j'en apprend plus que ce que j'aurai pu croire.
    ( Avant de venir de commencer à faire cela j'avais fais un IUT info ... du C du C++ du système, un peu de noyau ... et je savais que les tutos sur le net me réapprendrais ce que je connaissais ... pas beaucoup plus. )

    Le principe aussi pour faire de l'autodidacte, c'est de savoir lire une page de man ... ça aide énormément

    Après, l'expérience est un gros plus, si pendant tes trois heures t'es pas trop motivé ... bah perd une heure sur le forum , je suis sur que tu en apprendra, et sinon donne toi des petits défis... comme tu est pointu en électronique, tu peux te lancer par une petite tache de programmation de microcontroleur... et puis pourquoi pas, un contrôle d'afficheur LCD par le PC ... enfin je sais pas, tu trouvera surement des sujets approprié , mais pour commencer, ne cherche pas trop poussé, juste des petites choses sympas ( genre faire clignoter des LEDs c'est fun :p )

    Bon code

    EDIT: Et puis si tu as un doute sur la propreté ... ou tout autre point du passe écrire un nouveau sujet, je suis sur qu'il y aura toujours quelqu'un pour y répondre.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 115
    Points : 104
    Points
    104
    Par défaut
    J'en étais arrivé aussi à cette conclusion : traîner un peu plus sur les forums ou dans les mailing lists.

    Pour ce qui est des man tout à fait d'accord, on y apprend beaucoup de choses, encore faut-il bien comprendre et savoir interpréter certaines astuces.

  6. #6
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 372
    Points : 23 628
    Points
    23 628
    Par défaut
    Citation Envoyé par Odulo Voir le message
    J'en étais arrivé aussi à cette conclusion : traîner un peu plus sur les forums ou dans les mailing lists.
    J'ajoute que si tu peux participer a des meetings où tu rencontreras de visu des amateurs et des gens du métier, tu apprendras plus en une heure que seul en un mois.

    Je soutiens l'auto-formation, spécialement en informatique, mais le gros point noir est que, évidemment, quand tu te trompes, personne n'est derrière toi pour te le faire remarquer et te remettre dans le droit chemin.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 115
    Points : 104
    Points
    104
    Par défaut
    Qu'entends-tu par meeting ? J'ai déjà eu l'occasion d'assister à des évènements de ce type, par exemple sur la puce CELL et ce qu'elle impliquait niveau programmation mais cela, bien qu'intéressant, restait assez généraliste.

    Un site référence ce genre de meeting ?

Discussions similaires

  1. Réponses: 0
    Dernier message: 30/11/2014, 13h35
  2. Comment gérer des bases de données multimédia ?
    Par pidlas dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 31/05/2013, 11h25
  3. Réponses: 4
    Dernier message: 30/12/2008, 11h30
  4. avoir des bases solides
    Par morpheus87 dans le forum Débuter
    Réponses: 7
    Dernier message: 30/09/2008, 20h20

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