Disons que je cherche quand même quelque chose de simple à aborder pour commencer, donc d'après toi faudrait que je vois entre Java, C# et Python.
Je préfère pas prendre le risque de commencer avec quelque chose de complexe qui risque de me prendre la tête et de me "dégouter", quitte à approfondir plus tard.
Un copain s'était essayé au C, et du coup il a abandonné au bout de 2 mois. J'ai pas envie de faire la même erreur.
Le C est fondamentalement plus simple que le Python, précisément parce qu'il y a plus de trucs à gérer soi-même, et que le compilateur est plus verbeux et moins permissif. Merci d'arrêter de confondre "technique" et "complexe". ![]()
J'ai une question, c'est quoi la meilleure méthode pour apprendre en autodidacte ? Parce que j'ai remarqué qu'avec des cours, des devoirs, des projets, ça me boostait, mais sans tout ça, seul, chez moi, j'arrive pas à apprendre efficacement. Vous auriez des idées pour un peu plus progresser genre, en période de vacances, quand y'a pas de cours ? (Au cas où ça peut aider, je chercher à approfondir mon C ou à me lancer dans le PHP)
Merci !
calmacil, dans l'ensemble c'est difficile de progresser tout seul sans motivation. Le mieux je pense est de trouver un cours en ligne et de le suivre. De se donner des exercices tout seul.
En fonction de tes interets, tu peux trouver des exercice ailleurs aussi. Par exemple la methode NGCK de Lapintade (du forum creation de jeu) [1] fournit une liste d'exercice de toute les difficultes avec un rendu un peu plus graphique et un peu plus sympa. Ca ne passe pas d'exercice plus classique (et un peu barbant), mais ca fournit un cote plus ludique de temps en temps.
[1] http://perso.numericable.fr/ckckck/NGCK.htm
Justement, je cherche des exercices, mais je trouve rien de clairement expliqué, c'est loin d'être clair comme un cours "pro"...
La méthode NGCK me semble super pédagogique, seulement j'ai déjà dépassé ce niveau... :/
Si tu a passe le point ou tu sais ecrire un snake et unshoot them up,il n'y apas vraiment de coyrs qui peut t'aider. Que cherches tu a faire?
Arrête d'exagérer, l'exercice le plus "dur" n'inclut pas de pointeurs, inclut des algorithmes simples et itératifs etc. C'est une méthode pour débutants, avouons-le.
Je n'ai pas vraiment d'idée en ce moment, ce qui m'intéresserait serait la programmation réseau en C, mais ce que je trouve est ultra avancé, pas trop moyen d'assimiler... :/
Prends un logiciel open source qui t'intéresse et analyse un peu son code.
Ou alors fixe-toi un mini projet dans le domain que tu veux approfondir. Par exemple, pour m'habituer à la programmation réseau et threads, j'avais développé un client IRC. (Il existe encore en ligne d'ailleurs)
Calmacil. C'est vrai, ca n'inclut pas forcement de pointeur ou des algos complique. Les algos complique c'est pas un probleme de C en particulier. Et l'utilisation de pointeurs, c'est pas sensiblement different de l'utilisation de tableau.
Bref, si tu cherches dans le plus complique, il faut commencer a prendre de vrai probleme. Comme tu mentionnes des algorithmes plus compliques, as tu vu ce que c'est qu'une liste doublement chaine? En as tu ecrit une en C? En general, c'est un exo qui te fixe bien sur les pointeurs.
_skip : ça m'intéresse, où as-tu trouvé les ressources qui t'ont permises d'apprendre à faire un tel truc ? Tu as fouillé un peu partout ?
godrik : Oui j'ai vu les listes doublement chainées, les binary trees etc... A la limite la phase au dessus ça serait les graphes mais ça a l'air chaud ça :/
Si tu as implementer des listes chaines et des arbres binaire en C, tu sais tout ce qu'il y a a savoir sur les pointeurs. Et certainement tout ce qu'il y a a savoir en C.
Les graphes c'est pas plus difficile, c'est juste que tu ne sias pas comment les representer
Typiquement les graphes sont representes sous la forme de leur matrice d'adjacence compresse par ligne ou par colone (wikipedia sur la representation de matrice creuse [1]. Et si tu veux en savoir plus demande, ca fait quelques annees que je ne fais que des graphes et des matrices creuses
)
Si tu veux travailler les aspect systemes, regarde comment marche la communication de processus sous unix, comment creer un processus, comment faire un shell unix. Typiquement, c'est un projet qui blinde sur les aspects systemes. Les ensimag font ca en 2eme annee et ca les met bien en place.
Si les histoires de reseau t'interesse, le client IRC est un bon probleme a regler. Mais c'est plus un projet une fois que tu as les bases qu'un truc qui va te donner les bases. Essaye juste de faire des exercices simple comme. Je parles a un mec sur une addresse et port donnee. Puis j'ecoute sur une addresse et un port donnee. Tu peux commencer en utilisant netcat pour faire "l'autre cote de la connexion" pour tester. Tu trouvera un texte sur faire du reseau en C ici [2].
Si tu as d'autre interet parles en, les gens du forums ont des interets varies, je susi sur que tu trouvera quelqu'un qui fait un peu ce qui t'interesse.
[1] http://en.wikipedia.org/wiki/Sparse_matrix
[2] http://beej.us/guide/bgnet/output/html/singlepage/bgnet.html
Calmacil
Posté le 1er février 2013 à 17:39:49
_skip : ça m'intéresse, où as-tu trouvé les ressources qui t'ont permises d'apprendre à faire un tel truc ? Tu as fouillé un peu partout ?
Ben c'était de la farfouille pure et simple.
J'ai commencé par faire un truc super con, un programme en ligne de commande style une grosse méthode main toute mal faite.
Là dedans je faisais ça, sans gestion d'erreur ni rien :
1) Ouvrir un socket vers un serveur.
2) Lire une ligne dans le flux de sortie, ça se fait facilement. Puis imprimer dans la console.
3) A mon tour écrire un truc, flusher
4) Lire la réponse etc...
Ici j'avais commencé par faire un truc tout con : me logger, changer mon nom, demander la liste des utilisateurs etc...
J'utilisais en parrallèle mIrc, je faisais des choses comme changer mon pseudo et en même temps, j'espionnais ce que je recevais avec mon programme tout vilain (car le serveur te dit quand quelqu'un entre dans un chan, change son nom, etc...).
Finalement quand j'ai estimé que j'en savais assez, j'ai créé une UI, avec un gros champ texte et un bouton pour envoyer des messages. Et j'ai tissé à partir de là.
En fait il y a la RFC qui définit ce que tu peux faire comme commande :
http://tools.ietf.org/html/rfc1459
C'est assez imbuvable comme ça, mais t'as la description des commandes possibles.
Si tu le fais sans t'inspirer trop de codes existants, c'est marrant à faire, puis c'est ludique! C'est le premier programme à base de socket que j'ai écris de ma vie, ça m'a beaucoup appris.
Ok d'acc, merci beaucoup les gars, ça m'aide pas mal. Je vais comme dit godrik me renseigner sur les bases puis me lancer sur un petit projet, voire le même que le tiens, un Chat IRC ![]()
Vous auriez des bons tutos pour ncurses avec Code Blocks ?
ncurses est independent de l'ide que tu utilises pour programmer. n'importe quel texte parlant de ncurses fera l'affaire.
Hello,
http://pastebin.com/7xvHDPXm
J'ai utilisé les templates pour pas avoir à écrire pour chaque version de DirectDraw une classe dérivée, ça me permet de tout condenser en une seule classe.
Maintenant deux questions me viennent. Est-ce qu'il y à une meilleure façon de faire des alias que ceux que j'ai dans le namespace Test ?
Parce que là le compilateur il va me générer tout un tas de classe dont je n'ai pas besoin si ce n'est pour mes alias.
Est-ce que je peux exclure des fonctions d'une classe template, par exemple la fonction foo sera générée seulement si I vaut 1 ou 2 et pas 4 ou 7 ?
Je sais qu'on peut spécialiser la fonction, et je peux donc changer son comportement mais je sais pas si on peut tout simplement la supprimer si on en a pas besoin.
J'ai trouvé cette façon de faire, pas super agréable à lire mais au moins ça ne crée pas plusieurs classes lourdes : http://pastebin.com/YYn0SLnW
A première vue, je dirais qu'il s'agit du nombre de fois que le bouton central ait été appuyé.
Après si c'est un nombre paire il agit sur les machins calibrés sinon sur les machins non-calibrés. (Je dis xxx-calibré car je sais pas ce que c'est exactement mais je suppose que c'est des barres d'afficheur, les calibrés les rouges et les autres les noirs (par exemple)).
Personnellement, et à mon avis, je pense que les 2 machins tournent en concurrences, sinon en effet la variable global cb ne sert à rien.
Mais peut-être je me trompe, car peut-être le langage ne fonctionne pas comme ça ou alors c'est une spécificité du langage (qui peut-être existe seulement pour ce robot)
Salut tout le monde ! Je viens vous parler d'une découverte, pas assez importante pour en faire un topic je pense.
En fait je m'ennuyais un peu et j'avais envie de rejouer à un vieux jeu, Pirates des Caraïbes, sortit en 2003 sur PC.
A l'époque (c'est comme ça que j'ai connu la programmation en plus de rpg maker avec ruby) je modifiais les fichiers INI, et certains fichiers à l'allure que je trouvais étrange...
En fait, tout le jeu est à code source ouvert, et en C ! Pas C++, mais bien C.
Voici un exemple :
void CreateCharacters()
...
...
makeref(ch,Characters[0]); //Blaze Devlin
//ch.perks.list.InstantBoarding = true;
ch.name = "Nathaniel";
ch.lastname = "Hawk";
ch.id = "Blaze";
ch.nation = ENGLAND;
ch.model = "blaze";
ch.activity_begin = "0";
ch.activity_end = "24";
ch.sex = "man";
ch.luck = 4;
Voilà, petite info pour ceux qui possèdent le jeu !