Précédent   Forum du club des développeurs et IT Pro > Général Développement > Langages de programmation > Débuter
Débuter Forum d'entraide : Comment débuter en programmation ?
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 19/05/2012, 14h13   #1
Thomas404
Invité de passage
 
Inscription : novembre 2009
Messages : 11
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 11
Points : 0
Points : 0
Par défaut Quelques questions

D'abord je précise que j’apprends en autodidacte et non pas à l'école.

1)Bonjours tout le monde, alors voila, je me demandais quel est l’intérêt d'avoir un langage qui crée des programmes plus rapide à l’exécution ? (je parles du C par exemple) à part gagner quelques secondes? Je dis ça en rapport avec python et son temps d’exécution lent. 'Fin je vois pas bien en quoi c'est réellement un problème en fait.

2)J'ai les bases en python / AutoIT j'ai tenter un peu le C mais euh... je n'en suis pas fan sans savoir réellement pourquoi d'ailleurs. [pourtant j'aime bien le procédural, bon j'ai pas essayer les autres genre]Par contre j'ai du mal a comprendre en quoi peut bien être utile les pointeurs (je me sert du tuto de developpez.com "Initiation au langage C " qui explique très tôt les pointeurs)

Du coup je cherche un langage sympas à apprendre avec un vraie IDE sous ubuntu (oui ... ruby c'est bien beau mais la simple console de commande me décourage, même pour python j'utilise IDLE et non la console de commande)

Enfin mon but est de faire de la sécurité réseau et j'ai crus comprendre que les Python & C sont bien dans ces domaines

Et ensuite après avoir appris ce futur langage j'en apprendrais un qui s'utilise sur le web.

3) C'est vrais que les tuto de sdz sont mauvais ? si oui, pourquoi?
Thomas404 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2012, 21h58   #2
Médinoc
Expert Confirmé Sénior
 
Avatar de Médinoc
 
Homme
Développeur informatique
Inscription : septembre 2005
Messages : 22 490
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France

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

Informations forums :
Inscription : septembre 2005
Messages : 22 490
Points : 32 264
Points : 32 264
Envoyer un message via MSN à Médinoc
Bonjour,
J'ai quelques pistes pour le 1:
  • Pour une opération vraiment longue, c'est des minutes (ex: compilation d'un projet) voire des heures que l'on gagne. Ma boîte a plusieurs tâches pour lesquelles une amélioration a gagné une heure ou deux. Par contre, le projet en question a toujours été en C#, on ne l'a pas accéléré en changeant son langage.
  • Pour des graphiques, surtout des graphiques rapides, on a besoin d'accéder à des zones mémoire telles qu'elles sont: Pas en tant que tableaux associatifs, et sans vérification des bornes à chaque accès. En gros, dès que tu fais quelque chose qui a une contrainte de temps (un jeu dit "en temps réel", un lecteur vidéo), tu as besoin de vitesse.
  • En sachant ce qu'on fait, on peut aussi réduire l'empreinte mémoire de son programme, et augmenter la localité mémoire de ses propres accès. Le second améliore la vitesse du programme en question, mais le premier aide aussi tous les autres.
__________________
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.
Médinoc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2012, 10h50   #3
gangsoleil
Modérateur
 
Avatar de gangsoleil
 
R&D en systemes informatiques bas niveau Unix/Linux
Inscription : mai 2004
Messages : 7 297
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : R&D en systemes informatiques bas niveau Unix/Linux

Informations forums :
Inscription : mai 2004
Messages : 7 297
Points : 18 454
Points : 18 454
Citation:
Envoyé par Thomas404 Voir le message
1)Bonjours tout le monde, alors voila, je me demandais quel est l’intérêt d'avoir un langage qui crée des programmes plus rapide à l’exécution ? (je parles du C par exemple) à part gagner quelques secondes?
Lorsque ton programme affiche "Hello world", tu t'en fous. Lorsque ton programme gere, quotidiennement, des millons de donnees, un gain d'une milliseconde par donnees peut te faire gagner plusieurs heures de calcul. Et sachant que tu n'as que 24h par jour, gagner des heures de calcul, c'est vital. (il s'agit de donnees reelles de production).


Citation:
Envoyé par Thomas404 Voir le message
2)J'ai les bases en python / AutoIT j'ai tenter un peu le C mais j'ai du mal a comprendre en quoi peut bien être utile les pointeurs
Beaucoup d'interets. Le premier que je vois est de manipuler une variable directement, dans une sous-fonction par exemple :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
int ma_fonction (void)
{
int variable1;

// du code

mon_autre_fonction (&variable_1); // je passe a "mon_autre_fonction" un pointeur sur variable_1, pour que cette variable soit modifiee

printf ("Apres calcul, ma variable vaut : %d", variable_1);
return EXIT_SUCCESS;
}
Citation:
Envoyé par Thomas404 Voir le message
Du coup je cherche un langage sympas à apprendre avec un vraie IDE sous ubuntu (oui ... ruby c'est bien beau mais la simple console de commande me décourage, même pour python j'utilise IDLE et non la console de commande)
Un IDE est un environnement de developpement qui sert, en gros, a te faciliter la tache dans certains cas. C'est un peu incompatible avec l'idee du C, qui est que le developpeur a le droit de tout faire, y compris des grosses conneries (ce que ne permettent pas d'autres langages).

Citation:
Envoyé par Thomas404 Voir le message
Enfin mon but est de faire de la sécurité réseau et j'ai crus comprendre que les Python & C sont bien dans ces domaines

Et ensuite après avoir appris ce futur langage j'en apprendrais un qui s'utilise sur le web.
Oula, tu pars loin la
Securite reseau : est-ce que tu veux pouvoir securiser une machine du point de vue du reseau, securiser un reseau, ou faire des programmes qui offrent une securite maximale du point de vue du reseau ?
Dans le dernier cas, le C est effectivement pas mal. Pour les deux premiers, il vaut mieux te pencher sur les tutos Linux/OpenBSD/Securite reseau.

Citation:
Envoyé par Thomas404 Voir le message
3) C'est vrais que les tuto de sdz sont mauvais ? si oui, pourquoi?
Tous non. Certains oui. C'est le cas de tous les sites qui hebergent des tutos, avec plus ou moins d'erreurs dans les tutos.
Ou as-tu eu cette information ? Une rumeur lue sur un forum ?

Pourquoi ? Parce que relire un tuto prend du temps, que ca demande des gens competents dans le domaine, ce qui n'est pas toujours facile a trouver.

Tu n'as qu'a regarder le nombre de fautes d'orthographes ou de grammaire dans les livres pour te rendre compte que corriger toutes les erreurs, ca doit etre complique, car il y en a tout de meme beaucoup.
__________________
Modérateur "C", "Informatique Générale & Hardware" et "Unix"
Les règles du forum
gangsoleil est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/05/2012, 16h44   #4
el_slapper
Expert Confirmé Sénior
 
Inscription : décembre 2007
Messages : 2 578
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : décembre 2007
Messages : 2 578
Points : 6 304
Points : 6 304
==>Pour les tutos(sdz ou pas).

C'est gentil, mais ça t'apprend juste à coder(i.e. aligner des lignes de codes), pas à programmer(i.e. définir le comportement que doit avoir la machine, puis coder jusqu'à ce que la machine se comporte conformément à tes attentes), encore moins développer(partir d'une vague idée, genre trouver facilement des choses sur internet, découper l'idée en éléments unitaires, programmer chacun des modules en question, les articuler avec un architecture futée, refuser une offre de Yahoo!, et devenir Google).

Je ne dis pas qu'ils sont inutiles. Moi qui apprend java, là, maintenant, j'en ai toujours plusieurs d'ouverts en même temps, et je tape dedans pour retrouver la syntaxe dont j'ai besoin pour faire telle ou telle opération. Mais je ne les suis pas pas-à-pas. Ca peut être utile pour débuter(je n'en sais rien), mais ça ne suffira pas.

Pour réellement progresser, à mon sens, il faut définir ses propres objectifs, et développer le projet qui va autour. Evidemment, un débutant commençera petit(une petite page web sécurisée, un lemonade.....). Pour mon premier projet java, je m'attaque aux règles de Rolemaster, c'est plus gros, mais je suis un velu avec pas mal d'expérience dans d'autres langages. Et je pense apprendre bien plus qu'en suivant servilement tel ou tel tutorial. J'ai déjà jeté plusieurs classes, pour les refaire autrement, et c'est bon signe : je progresse.

==>pour la performance

Comme les autres. Je citerais un exemple dans une boite d'assurance ou nous avons refait la chaine d'édition des courriers. Nous sommes passés de 24 à 16 heures de traitement. Ca veut dire 8 heures de plus pour tout imprimer. Et, pour les gens travaillant à l'impression, 8 heures de plus sur environ 48 heures. Un confort énorme pour eux, qui leur permettait soudain de faire des vérifications avant de lancer l'impression de masse.

La performance est utile pour tous les traitements massifs ET non triviaux. Dans le temps, c'était massifs OU non triviaux, mais l'amélioration des machines a permis de gagner un peu. Mais du massif ET non trivial, dans bien des domaines, c'est le pain quotidien.
__________________
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.
el_slapper est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/05/2012, 19h33   #5
Thomas404
Invité de passage
 
Inscription : novembre 2009
Messages : 11
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 11
Points : 0
Points : 0
==> performances :

ah oui ... évidement vue comme ca, ça semble évident en fait, merci.

==> Tutos :

Ah bon ... De toutes façon, entre temps je me suis remis à Python avec le livre "Apprendre à programmer avec python 3" Gérard Swinnen, j'aime beaucoup, ça me change du tuto SDZ dont je me servais.

Merci

Et pour répondre a gangsoleil : je l'ai lus ici en fait (je lurke pas mal le forum en fait.) Bref lus sur Developpez.com et d'autre petits sites dont j'ai oublier le nom.

@el_slapper : en effet une lemonade c'est sympas, surtout l'été.

==> sécurité :

Oui je veux apprendre à sécuriser mon pc d'un point de vue réseau (le mien surtout). Donc linux Open/BSD, merci, m'enfin, plus tard

===> Pointeurs :

Merci pour les explications, je comprend mieux
Thomas404 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 07h53.


 
 
 
 
Partenaires

Hébergement Web