Aller au contenu

Les jeunes ne sont plus intéressés par l'outil-ordi


ernest

Messages recommandés

Invité jabial
Il me semble au contraire que les interfaces deviennent enfin ce qu'elles auraient du être et qu'ainsi l'ordinateur devient enfin un outil productif.

Quand je lis l'heure sur ma montre, je ne cherche pas à savoir comment elle fonctionne, je m'en fiche, tout ce que je veux, c'est l'heure.

Tu as tout à fait raison. Pour les utilisateurs finaux, oui, ça doit être comme ça.

Mais si on donne ce type d'interface aux programmeurs, ils ne seront jamais de vrais programmeurs.

Je suis pour que tout l'enseignement en écoles d'informatique commence par de l'assembleur intensif ET du scheme, en même temps, because ce sont les deux réalités fondamentales de l'informatique : la réalité technique, et la réalité théorique. Ceux qui survivent à ça seront des programmeurs label rouge.

Lien vers le commentaire
Je suis pour que tout l'enseignement en écoles d'informatique commence par de l'assembleur intensif ET du scheme, en même temps, because ce sont les deux réalités fondamentales de l'informatique : la réalité technique, et la réalité théorique. Ceux qui survivent à ça seront des programmeurs label rouge.

Caml, c'est déjà pas mal, non ?

Lien vers le commentaire
Invité jabial
Caml, c'est déjà pas mal, non ?

Non. C'est un outil productif pour celui qui sait ce qu'il fait, mais ça n'oblige pas à coder fonctionnel. Pour apprendre, c'est scheme, pas common lisp ni ML.

Lien vers le commentaire
Savoir travailler en équipe avec des gens compétents est indispensable ; savoir travailler avec des nuls, non, à moins de vouloir obtenir une équipe [nom de SSII autocensuré]. Les nuls ça se vire nom d'un chien. Si on ne peut vraiment pas, qu'on leur fasse faire les docs :icon_up:

Je veux bien des noms en MP. :doigt:

Lien vers le commentaire
Invité jabial
Caml ? Je croyais justement qu'il n'avait été conçu que dans un but pédagogique ?

Je ne sais pas pourquoi il a été conçu mais je sais qu'il est très performant (regarde les comparatifs) et désormais utilisé dans les équipes de R&D de grandes entreprises de logiciels, notamment Microsoft.

Lien vers le commentaire
Tu as tout à fait raison. Pour les utilisateurs finaux, oui, ça doit être comme ça.

Mais si on donne ce type d'interface aux programmeurs, ils ne seront jamais de vrais programmeurs.

Je suis pour que tout l'enseignement en écoles d'informatique commence par de l'assembleur intensif ET du scheme, en même temps, because ce sont les deux réalités fondamentales de l'informatique : la réalité technique, et la réalité théorique. Ceux qui survivent à ça seront des programmeurs label rouge.

Je suis globalement d'accord, mais les entreprises ont besoin de deux types de "programmeurs" :

- le standard qui fait de l'assemblage de briques, le pisse-code moyen, pas cher. Typique : java.

- celui que tu décris, capable si ce n'est de coder directement un driver de carte réseau, au moins d'en comprendre les tenants et les aboutissants. Cher, rare.

C'est d'ailleurs ce vers quoi on tend, maintenant…

Lien vers le commentaire

Et si demain je voulais apprendre tout seul à programmer, je suppose que c'est possible surtout avec le web, vous me conseillerez quoi pour que je ne me décourage pas après une heures ? je suppose qu'il y a des langages plus digest que d'autre. Je suppose aussi qu'il y a des site hyper bien fait pour apprendre, de préférence en Anglais, mais je ne sais pas comment chercher efficacement un tel site.

J'ai un pote qui m'a dit "commence par le HTML ça s'apprend en 2 heures, c'est presque aussi facile que les balises dans les messages que tu poste sur les forum".

je ne sais pas pourquoi mais je ne l'ai pas cru et je me suis dit que c'était un mauvais conseil.

Lien vers le commentaire
Et si demain je voulais apprendre tout seul à programmer, je suppose que c'est possible surtout avec le web, vous me conseillerez quoi pour que je ne me décourage pas après une heures ? je suppose qu'il y a des langages plus digest que d'autre. Je suppose aussi qu'il y a des site hyper bien fait pour apprendre, de préférence en Anglais, mais je ne sais pas comment chercher efficacement un tel site.

J'ai un pote qui m'a dit "commence par le HTML ça s'apprend en 2 heures, c'est presque aussi facile que les balises dans les messages que tu poste sur les forum".

je ne sais pas pourquoi mais je ne l'ai pas cru et je me suis dit que c'était un mauvais conseil.

Arf, j'imagine que ça dépend de ta façon d'apprendre.

Y a deux façons de faire les choses :

- ou bien l'approche "bricole" : tu commences par coder du HTML effectivement, puis tu attaques des vrais langages de plus en plus plus compliqué

- ou bien l'approche "scientifique" : tu apprends d'abord les fondamentaux, puis tu passes plus tard à des langages plus appliqués

Évidemment, j'ai une préférence pour la deuxième (aller chercher les bonnes bibliothèques me fait royalement chier, ce que j'aime c'est faire des beaux algorithmes), et si tu veux devenir un bon programmeur, c'est indispensable d'en passer par là. Mais ça dépend de ton but aussi.

Pour la deuxième solution, j'imagine qu'il serait pertinent de commencer par là :

Cours d'info du MIT

Lien vers le commentaire
Arf, j'imagine que ça dépend de ta façon d'apprendre.

Y a deux façons de faire les choses :

- ou bien l'approche "bricole" : tu commences par coder du HTML effectivement, puis tu attaques des vrais langages de plus en plus plus compliqué

- ou bien l'approche "scientifique" : tu apprends d'abord les fondamentaux, puis tu passes plus tard à des langages plus appliqués

Évidemment, j'ai une préférence pour la deuxième (aller chercher les bonnes bibliothèques me fait royalement chier, ce que j'aime c'est faire des beaux algorithmes), et si tu veux devenir un bon programmeur, c'est indispensable d'en passer par là. Mais ça dépend de ton but aussi.

Pour la deuxième solution, j'imagine qu'il serait pertinent de commencer par là :

Cours d'info du MIT

Excellent ça. Mon but, c'est d'apprendre un truc passionnant.

Pendant un entretiens d'embauche (je suis certifié CCNA, mais je n'ai que mon bac et je n'ai jamais appris à configurer un serveur, c'est un parcours atypique, voir aberrant) je me suis vu reprocher de ne pas apprendre tout seul avec tout ce qu'on peut trouver sur le web.

Mais enfin voilà, moi je peux viser du helpdesk, apprendre Windows Server, active directory, … ou redhat ou que sais je encore. Mais ce serait uniquement pour trouver un job, ça ne me passionne pas le moins du monde, c'est juste que ce n'est pas assez chiant pour me faire fuir.

Par contre, je me souviens que le peu d'approche que j'ai eu de la programmation m'avait beaucoup plus, je n'ai jamais rencontré quelqu'un passionné par Windows Server, alors que j'en ai rencontré plein passionné par la programmation. Et puis la lecture de ce fil m'a fait réfléchir, je cherche encore ce que je vais faire de ma vie.

Donc je me dis que je devrais m'y intéresser, que ça me plairait probablement et que je serais assez vite fixé après avoir commencé, qu'au pire si ça ne me passionne pas, ça ne coute rien d'essayer.

Et puis si j'aime bien, que j'apprend mais que ça ne m'apporte jamais rien professionnellement, ça ne restera un hobby.

Lien vers le commentaire
Et puis si j'aime bien, que j'apprend mais que ça ne m'apporte jamais rien professionnellement, ça ne restera un hobby.

Coder en bas niveau est un hobby élégant. Pour une époque plus … civilisée.

Si ça te plaît, il ne te restera qu'à acheter ces volumes indispensables dans la bibliothèque d'un gentilhomme :

Lien vers le commentaire

Pour un langage d'introduction, a la place du logo, je ne peux que recommander l'environnement Kojo.

C'est plutot orienté première découverte de la programmation pour les gamins, mais il y en a sous le capot :doigt:

Kojo Learning Environnement

Pour ce qui est de Java, le fait est qu'il y a une masse considérable de branquignoles qui font du java (je n'irait pas jusqu'a dire qu'ils savent en faire… mais ils en font), mais si le langage est faible, la plateforme, elle, est extrêmement riche et puissante, il serait bon tout de même de rappeler que la majorité des problèmes en informatique sont des problèmes d'intégration, de mise en œuvre, d'urbanisme applicatif, de gestion de l'existant, d'archéologie, de définition du besoin, de méthodologie de gestion de projet… et certainement pas d'algorithmique.

Alors oui, je préférerai avoir des équipes rompues a la programmation fonctionnelle, des types qui savent comment fonctionne le système de haut en bas.

Mais franchement, je préfère un pisseur de mauvais code java qui a une idée du business, qui connais ses limites, et qui est capable d'apprendre sur le tas, qu'un nerd rompu a l'architecture des processeurs et a la programmation fonctionnelle mais qui va passer ses journées a des guerres de religion et a la recherche de la 'pureté', et qui de toute façon, ne sera pas forcement plus efficace confronté a des problèmes opérationnels…

Tl;Dr: dire du mal d'une techno en particulier sans parler du domaine d'application, c'est déjà pas un très bon signe (même si je n'ai toujours pas trouvé de domaine d'application du C++ :icon_up: )

Lien vers le commentaire
J'ai un pote qui m'a dit "commence par le HTML ça s'apprend en 2 heures, c'est presque aussi facile que les balises dans les messages que tu poste sur les forum".

je ne sais pas pourquoi mais je ne l'ai pas cru et je me suis dit que c'était un mauvais conseil.

Effectivement HTML n'est pas un langage de programmation, mais juste un ensemble de balises de formattage. Donc impossible de faire un algorithme en HTML, très mauvais choix pour s'initier à la programmation.

Moi je te conseillerais Python, avec en parrallèle un cours d'algorithmique, ou alors avec un livre qui combine les deux, genre "Apprendre à programmer avec Python".

Sinon sur l'interweb, c'est facile de trouver les deux gratuitement en cherchant un peu :

http://www.pise.info/algo/codage.htm

http://wikipython.flibuste.net/

http://guigui.developpez.com/Tutoriel/Python/PythonWindows/

Python c'est pas mal parceque le concepteur l'a conçu comme un Logo 2, un langage pour apprendre à programmer. En plus y'a pas besoin de grand chose pour commencer, et c'est interactif : une ligne de commande et un éditeur de texte suffisent.

Sinon, si ce qui t'interresse c'est la création de pages web, parceque c'est plus "visuel", alors je te conseillerais PHP, mais ton apprentissage risque d'être parasité par des notions annexes qui n'ont rien à voir avec la programmation à proprement parler (comme justement le HTML).

Mais le plus important pour ne pas craquer au bout de 2h c'est de se fixer un objectif pratique, réaliste et captivant.

Lien vers le commentaire
Tl;Dr: dire du mal d'une techno en particulier sans parler du domaine d'application, c'est déjà pas un très bon signe (même si je n'ai toujours pas trouvé de domaine d'application du C++ :icon_up: )

Non, ça veut dire qu’on aime pas ses domaines d’application, c’est tout :doigt:

Je préfère encore me taper la maintenance de vieux programmes COBOL que de faire de l’urbanisme…

Lien vers le commentaire
Je ne sais pas pourquoi il a été conçu mais je sais qu'il est très performant (regarde les comparatifs) et désormais utilisé dans les équipes de R&D de grandes entreprises de logiciels, notamment Microsoft.

J'ai réfléchi et j'ai compris : tu parles d'Objective Caml.

Le Caml qui est utilisé en prépa est 100% fonctionnel.

Lien vers le commentaire
Pour un langage d'introduction, a la place du logo, je ne peux que recommander l'environnement Kojo.

Kojo Learning Environnement

Je ne connaissais pas, ça a l'air vraiment bien.

Alors oui, je préférerai avoir des équipes rompues a la programmation fonctionnelle, des types qui savent comment fonctionne le système de haut en bas.

Mais franchement, je préfère un pisseur de mauvais code java qui a une idée du business, qui connais ses limites, et qui est capable d'apprendre sur le tas,

En théorie je suis d'accord, sauf qu'en pratique mon expérience me dit le contraire : le type qui fait du mauvais code parcequ'il ne comprend pas bien ce qu'il fait, il ne comprend pas non plus le business, et il n'apprend rien sur le tas (la plupart du temps par manque de travail personnel).

Les types que j'ai vu qui maîtrisaient mal la programmation sont aussi ceux qui ne comprenaient pas les spécifications par manque de maîtrise du français et de l'anglais. En France on a aussi des cas : des développeurs Bac+5 qui ne maîtrisent pas l'anglais, j'en ai vu :icon_up: Finalement recruter des bons développeurs c'est aussi une garantie d'avoir des gens autonomes.

Le problème de recruter des bons c'est qu'on risque de tomber sur un nerd, et qu'il y a de fortes chances de tomber sur un autiste incapable de travailler en équipe, qui se fout complètement du fonctionel et qui programme pour la beauté de la chose. Mais à la limite 1 ou 2 par équipe, ça se gère.

Lien vers le commentaire
Invité jabial
Et si demain je voulais apprendre tout seul à programmer, je suppose que c'est possible surtout avec le web, vous me conseillerez quoi pour que je ne me décourage pas après une heures ? je suppose qu'il y a des langages plus digest que d'autre. Je suppose aussi qu'il y a des site hyper bien fait pour apprendre, de préférence en Anglais, mais je ne sais pas comment chercher efficacement un tel site.

J'ai un pote qui m'a dit "commence par le HTML ça s'apprend en 2 heures, c'est presque aussi facile que les balises dans les messages que tu poste sur les forum".

je ne sais pas pourquoi mais je ne l'ai pas cru et je me suis dit que c'était un mauvais conseil.

HTML n'est pas un langage de programmation, c'est un langage de description de document. La seule chose à laquelle ça t'habitue, c'est à utiliser une syntaxe bizarre. Non, faut commencer par un langage de haut niveau du type python ou ruby, en suivant le tutoriel inclus pas à pas. Et puis tu essaies de te coder des petits trucs : un jeu de puissance 4, une calculatrice scientifique, etc, jusqu'à coder instinctivement.

Ensuite une fois que tu comprends grosso modo comment on code impératif, tu as deux voies que je conseille de suivre parallèlement plutôt que successivement : le fonctionnel et l'assembleur. Le fonctionnel c'est scheme notamment. Ça permet de bien voir qu'un programme c'est un calcul en fait, mais ça ne permet pas de coder facilement des petits joujoux comme python donc c'est décourageant. L'assembleur… en fait d'assembleur c'est le C qu'il faut voir. Tu fais ton alloc mémoire à la main, tes structures de données (à ce stade si tu y es encore je te donne des refs de bouquins). Et seulement une fois que tu maîtrises C tu apprends l'assembleur de ton proc préféré. Avec ça tu peux coder un OS, wouhou ! Un exercice sympa c'est de coder un petit micro-noyau pour une calculette avec proc 68k, ça demande un peu de C et un peu de vrai assembleur (langage du microprocesseur directement).

Lien vers le commentaire
Je suis globalement d'accord, mais les entreprises ont besoin de deux types de "programmeurs" :

- le standard qui fait de l'assemblage de briques, le pisse-code moyen, pas cher. Typique : java.

- celui que tu décris, capable si ce n'est de coder directement un driver de carte réseau, au moins d'en comprendre les tenants et les aboutissants. Cher, rare.

C'est d'ailleurs ce vers quoi on tend, maintenant…

D'ailleurs, dans les métiers de l'informatique, depuis 20 ans, on voit apparaître une véritable division du travail qui n'est pas sans rappeler celle qui existe dans le BTP: urbaniste, architecte, développeur, expert sécurité, ergonome, etc…

il y a 20 ans, il y avait dans l'info, le développeur, le chef de projet (si je truc était gros), et éventuellement le graphiste (si il s'agissait de jeu).

Lien vers le commentaire
HTML n'est pas un langage de programmation, c'est un langage de description de document. La seule chose à laquelle ça t'habitue, c'est à utiliser une syntaxe bizarre. Non, faut commencer par un langage de haut niveau du type python ou ruby, en suivant le tutoriel inclus pas à pas. Et puis tu essaies de te coder des petits trucs : un jeu de puissance 4, une calculatrice scientifique, etc, jusqu'à coder instinctivement.

Ensuite une fois que tu comprends grosso modo comment on code impératif, tu as deux voies que je conseille de suivre parallèlement plutôt que successivement : le fonctionnel et l'assembleur. Le fonctionnel c'est scheme notamment. Ça permet de bien voir qu'un programme c'est un calcul en fait, mais ça ne permet pas de coder facilement des petits joujoux comme python donc c'est décourageant. L'assembleur… en fait d'assembleur c'est le C qu'il faut voir. Tu fais ton alloc mémoire à la main, tes structures de données (à ce stade si tu y es encore je te donne des refs de bouquins). Et seulement une fois que tu maîtrises C tu apprends l'assembleur de ton proc préféré. Avec ça tu peux coder un OS, wouhou ! Un exercice sympa c'est de coder un petit micro-noyau pour une calculette avec proc 68k, ça demande un peu de C et un peu de vrai assembleur (langage du microprocesseur directement).

+1, mais j'aurais conseillé PHP plutôt que les langages que tu recommandes, mais c'est du chipotage.

L'assembleur, ça a apprend à être malin, voici une anecdote : quand j'étais petit, j'ai fait un programme en GFA basic qui affichait un cube en 3D (arêtes cachées et ombrage de Gouraud s'il vous plaît), et je me suis mis en tête de le coder en assembleur. Un problème s'est vite posé à moi, le 68000 ne connait que +, -, /, et *, et pas du tout les cosinus et sinus.

Du coup, j'ai eu l'idée de me créer une table de cosinus et de sinus avec un pas de 0,1°. Il a bien entendu fallu multiplier tous les nombres par 1000 car le 68000 ne connaissait pas les nombres à virgule, et ensuite diviser par 1000 à la toute fin du calcul. L'idée du siècle, je l'ai eue en me rendant compte que le résultat était très lent, car la division consommait 50 fois plus de cycles que les autres opérations. Du coup, j'ai multiplier par 1024 et c'était plus simple, puisque diviser par 1024 se faisait en décalant le nombre binaire de 10 digits sur la droite.

C'était Chitah qui raconte sa life.

Lien vers le commentaire
Aaaaaargh, c'est là qu'on peut dire : dommage que tu n'ai pas connu les développement limités à l'époque.

Euh, les développements limités quand t'as 13 ou 14 ans, c'est quand même un peu chaud, je sais que je suis un crack en maths mais quand même…. :icon_up: Déjà, pour les multiplications de matrice j'ai vraiment galéré pour comprendre!

Et d'ailleurs, ma méthode est meilleure car qui dit développement limité dit division de toute façon, ou calcul de factoriels, donc consommateur de cycle.

Lien vers le commentaire
Et d'ailleurs, ma méthode est meilleure car qui dit développement limité dit division de toute façon, ou calcul de factoriels, donc consommateur de cycle.

Pas meilleure en mémoire ni en précision.

Et en vitesse seulement si l'accès à la mémoire est suffisamment rapide.

Lien vers le commentaire
Pas meilleure en mémoire ni en précision.

Et en vitesse seulement si l'accès à la mémoire est suffisamment rapide.

Une table de cosinus, c'est 1800 valeurs tenant sur 16 bits, soit 3600 octets sur une mémoire de 512ko, ça allait franchement.

La véritable difficulté fut la partie de l'algorithme qui permettait de tracer un trait entre un point A et un point B de l'écran : ça a été la galère absolue, et j'ai dû m'aider d'un bouquin.

Lien vers le commentaire
Invité jabial

C'est marrant, moi je l'ai fait sans bouquin, le trait, alors que par contre ta table de cosinus j'aurais été découragé par le travail de tout rentrer.

Lien vers le commentaire

En ce qui me concerne je trouve que l'article est un peu sur le mode "c'était mieux avant" blabla, et je partage l'opinion selon laquelle c'est surtout l'explosion du nombre d'utilisateurs qui donne une mauvaise mise en perspective ; mais il ne faut pas rêver non plus 87% ou autre pourcentage approchant n'a pas envie de créer et/ou bidouiller en permanence (moi y compris d'ailleurs). Tout ce que je veux quand j'allume mon ordi c'est qu'il marche et pas qu'il me demande de recompiler le noyau avec des options étranges toutes les 28 secondes.

Cependant, je pense qu'il y a ces derniers temps (je suis MdC en Info depuis bientôt dix ans et j'ai commencé mes études en info en même temps que le premier navigateur et où le nombre de pages web sur terre devait être inférieur à la dizaine de milliers) une évolution marquée du fait de la simplicité de l'utilisation des ordis. Pour faire simple : presque tout est devenu graphique (en gros on a tout à porté de clique de souris), alors qu'avant il fallait se taper des lignes de commandes (en unix ou autre). Fondamentalement on est passé d'une utilisation où il fallait avoir une représentation abstraite interne de la machine et utiliser un langage (un shell ou n'importe quoi) à une utilisation graphique et où on ne parle plus qu'en pointant du doigt. C'est un peu régressif (comme un gamin qui montre du doigt et ne sait pas parler). Ca va très bien (voire mieux) pour les choses simples. Mais je trouve effectivement que les étudiants sont un peu comme analphabètes (ils n'ont pas vraiment de représentation mentale de comment fonctionne un système info). Dans l'utilisation quotidienne ça roule, mais dès que survient un problème ou un truc inattendu je les vois vraiment perdus car ils n'ont pas les moyens de "penser" d'où peut venir l'erreur (tiens d'ailleurs ça rejoint la discussion sur : peut on penser sans langage).

Pour apprendre à programmer correctement il faut assimiler certaines abstractions qu'on ne peut pas dessiner (récurrence, invariants de boucles, notions de portées des variables, structuration des données etc.) et qui ne sont pas accessibles par "clic de souris". J'irais un peu contre les avis jusque là : pour moi HTML peut être un bon départ car ça apprend déjà qu'il y a différents niveaux (le codage et le résultat), la structuration d'un document et ça casse l'approche purement graphique. Mais stricto censu ce n'est pas de la programmation.

Autre chose, je pense que savoir programmer peut aider même les gens qui ne programmeront jamais et resteront des utilisateurs. Comme je le disais quand il y a un problème ça fait toute la différence entre rester les bras ballants et essayer de faire quelque chose. Ca pourrait faire partie de l'éducation de base au même titre que les maths (car dans la vie courante personne ou presque ne fait d'intégrales ou n'a à résoudre des équas diff).

Lien vers le commentaire
Euh, les développements limités quand t'as 13 ou 14 ans, c'est quand même un peu chaud, je sais que je suis un crack en maths mais quand même…. :icon_up: Déjà, pour les multiplications de matrice j'ai vraiment galéré pour comprendre!

Et d'ailleurs, ma méthode est meilleure car qui dit développement limité dit division de toute façon, ou calcul de factoriels, donc consommateur de cycle.

Des calculs de factoriels ? Pas du tout, coder en "dur" les factorielles jusqu'à 6 ou 7 suffit ; tu transformes l'ensemble de ton barda en un schéma de Horner, et surtout tu ramènes tout calcul trigo à, par exemple, un calcul de sinus entre 0 et 90° (si tu fais ça en degrés). Et puis les DL, à 13-14 ans, c'est juste une formule. On peut admettre que "on a trouvé que sin(X) était bien approché, pour des valeurs de X limitées, par X - X^3/6 + X^5/120 - X^7/5040".

(car dans la vie courante personne ou presque ne fait d'intégrales ou n'a à résoudre des équas diff).

De toute façon, si les choses continuent sur leur lancée, personne ne fera plus d'équas diff avant le bac d'ici 10 ans.

Lien vers le commentaire

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...