Je me suis porté volontaire pour parler de la vie et du travail d'un développeur avec un étudiant en expérience de travail de 15 ans la semaine prochaine.
Les prises sont que
- J'ai juste une demi-heure et
- Je ne serai qu’une des personnes qui lui parleront - d’autres personnes occupant différents rôles dans l’entreprise traiteront également des éléments de leur travail avec elle tout au long de la journée.
Que dois-je couvrir et que puis-je espérer lui apprendre en une demi-heure?
Je suppose qu'elle n'a probablement aucune expérience en développement ou en programmation.
teaching
profession
Dexter
la source
la source
Réponses:
J'interagis beaucoup avec les lycéens, alors je réponds souvent à cette question. Gardez à l'esprit que les jeunes de 15 ans sont beaucoup plus faciles à expliquer la programmation que ceux de 50 ans - vous n'avez donc pas besoin de choses stupides ou d'utiliser des analogies farfelues.
Je commence généralement par des exemples de programmes:
Après cela, j'explique généralement que nous codons les programmes dans un langage formel que l'ordinateur peut reconnaître, en les tapant souvent dans quelque chose d'aussi simple que Notepad. Les langues ressemblent à un croisement entre les mathématiques et l'anglais, décrivant des concepts et donnant des formules et des instructions à suivre par l'ordinateur.
Ensuite, ils me demandent généralement si je suis tout le temps sur l'ordinateur, si c'est pourquoi je suis toujours sur Facebook et pourquoi mes yeux ne sont pas encore allés de travers. Les gars me demandent si je sais comment "pirater les gens", et les filles demandent si c'est bon pour l'argent ou combien il y a de filles dans les cours d'informatique.
Après cela, s'ils sont toujours intéressés, ils commencent généralement à poser des questions spécifiques qu'il est beaucoup plus facile de répondre (ou du moins à un wiki): des choses comme comment créer un jeu, comment fonctionne Windows Messenger, etc.
Si vous avez un ordinateur, vous pouvez afficher et indiquer du code - quelque chose qui aurait des effets tangibles, comme un gestionnaire de clic sur un bouton dans la boîte de dialogue des paramètres de Firefox, la boucle principale ou le code physique dans un moteur de jeu. Source JavaScript à partir d'un site Web, etc.
la source
Je l'ai expliqué à mon enfant de cinq ans avec ce qui suit:
Moi: "Vous savez comment, dans les histoires, les gens disent des mots magiques et changent les choses dans le monde?"
Elle: "Yeaaa?"
Moi: "C'est ce que la programmation informatique est."
Elle (doucement): "Wow."
15-30 minutes ne suffisent pas pour expliquer quoi que ce soit de réel, et expliquer la complexité sous-jacente est un moyen sûr de les faire courir en hurlant. Tu y travailles tous les jours, tu oublies à quel point c'est cool. Aucun autre métier au monde ne crée des objets fonctionnels à partir de mots… À un moment donné, tous les autres doivent se lancer dans le monde de la viande et commencer à frapper à coups de marteau. C'est la seule façon pour eux de transformer leur idée en une chose qui fonctionne.
Pas nous.
la source
Une personne de 15 ans peut comprendre n'importe quel concept. J'ai moi-même commencé à programmer à 14 ans (à l'école, il y a de nombreuses années)
30 minutes suffisent pour une démo. Montrez-lui la magie de la programmation avec quelque chose d'aussi répandu qu'un navigateur.
la source
Pas
À presque 15 ans, je peux vous dire avec confiance que vous devriez avoir un début spectaculaire .
Explique comment tu le fais.
10101010
toute la journée. Dites-leur que vous ne savez même pas comment faire cela. ( Lie. Vous ne savez ce que10101010
signifie, droit,?)) Dites - leur que c'était il y a quelques années.Montrez-leur un échantillon de pseudocode. Rendez-le facile à comprendre:
Parcourez cette étape par étape. Dites-leur que ce n'est pas exactement à quoi ressemble le code. Le code ressemble
English + Math
. Mais il n’est pas difficile d’apprendre le "langage" (lire: syntaxe) dans lequel vous parlez.Montrez-leur un exemple avec un peu plus de "maths", cette fois.
Expliquez que ce code ajoute deux nombres, comme une calculatrice. Montrez-leur le "vrai" code pour cela. (Assurez-vous de mettre la plus grande partie de l'interface utilisateur et d' autres choses dans un fichier séparé, et de garder le fichier que vous leur montrer court et simple.) Le changement à un programme de soustraction (en changeant le signe de
+
la-
) juste devant leurs yeux.Expliquez ce qu'ils doivent savoir pour faire de la programmation. (Sur différents niveaux.)
x + 1 = 2
, alorsx = 1
.Termes que vous pouvez utiliser
Nous en savons plus que vous ne le pensez.
Termes à expliquer
Oui, nous avons encore besoin de quelques explications.
10101010
.Termes que vous ne pouvez pas utiliser
Certains d'entre nous connaissent ce genre de choses, mais s'il vous plaît, ne le dites pas de toute façon.
la source
Si vous commencez à parler de choses telles que le processus, les modèles, les exigences, etc., elle fermera immédiatement. Les enfants d'aujourd'hui sont graphiques et visuellement motivés. Je voudrais donc apporter quelque chose pour aider à promouvoir ce type de stimulus. Montrez-lui quelque chose d'élégant sur le Web, puis décrivez-lui en détail ce qui fait que CELA se produit. Je suggérerais même de prendre votre ordinateur portable de développement et de faire quelque chose de "cool" à l'écran - changez le code devant elle puis regardez-le changer à l'écran. À cet âge, ils sont TRÈS intelligents et tout ce qui est visuel aidera à susciter l'intérêt.
la source
Alice
?Je me base sur deux grandes analogies pour expliquer le travail des programmeurs. L'un est une recette; cette métaphore est utile pour expliquer à petite échelle ce que fait chaque ligne de code. Le travail d'un programmeur écrit la recette et l'ordinateur est le cuisinier.
L'autre analogie est qu'un grand programme est comme une grande entreprise. Il y a toute une série de départements différents qui se concentrent sur différents domaines et envoient des messages, et le tout finit par atteindre les objectifs de l'entreprise. Le travail d'un programmeur consiste à concevoir la configuration de l'organisation, et l'ordinateur regroupe tous les employés de l'entreprise.
la source
Je dirais garder le général. La programmation et de nombreux autres métiers se résument à la résolution de problèmes. Montrez-lui comment vous résolvez les problèmes quotidiennement. Vous pourriez lui parler d'un projet sur lequel vous avez travaillé et comment il va aider vos clients. Indiquez également un peu pourquoi vous aimez (vraisemblablement) votre travail.
Dans mon cas, j'ai développé un site Web de didacticiel vidéo pédagogique où d'autres membres du personnel postent des didacticiels. J'expliquerais la motivation du projet (enseigner aux autres à distance sans devoir attacher de personnes), les problèmes que j'ai rencontrés (je n'ai pas nécessairement à les considérer comme des problèmes difficiles) et la façon dont je les ai résolus. Je voudrais aussi expliquer pourquoi j'aime la programmation: j'aime créer des choses et la contribution de la programmation au monde moderne.
la source
Donnez-lui des exemples de logiciels sur lesquels vous avez travaillé. Avez-vous un client qui utilise publiquement votre logiciel? Développez-vous une application dans la maison que vous pourriez lui montrer? Montrez-lui le résultat final de votre travail, ce que l'utilisateur final voit et utilise.
Ensuite, expliquez que vous avez aidé à l'écrire. Passez en revue les parties que vous avez écrites. Montrez du code si vous le pouvez. Décrivez comment ces lignes de code font fonctionner une partie de l'application.
Parlez du plaisir que vous obtenez de voir votre code utilisé par des personnes.
C'est comme ça que je l'ai expliqué à mon cousin de 14 ans de toute façon. Il a été très impressionné et a décidé de suivre un cours de programmation le prochain trimestre.
la source
Connaissez-vous le jeu de société Robo Rally?
J'ai trouvé que c'est l'analogie amusante du préfet pour la programmation. En gros, vous programmez votre robot à l’aide de commandes simples (principalement des flèches) pour atteindre un certain endroit du plateau de jeu avant les autres.
Homme je voudrais avoir encore mon BigTrak ...
la source
Montrer quelque chose de simple, mais utile. Je pense qu'un bon exemple serait le suivant:
Les raisons pour lesquelles j'aime cette approche sont:
Vous pourrez peut-être penser à de meilleurs exemples, mais je pense que le style est utile pour une "première introduction".
la source
La plupart des jeunes de 15 ans "de nos jours" ont beaucoup d'expérience avec les ordinateurs. J'irais pour une approche plus pratique. Je lui montrerais un peu de code (n'essayez pas de l'expliquer en détail, mais couvrez peut-être les bases extrêmes du "flux") et montrez-lui le résultat. Même le HTML fonctionnera pour ce genre d’exemple. Ensuite, dites "Tous les jours, je ne fais que ça ... sauf avec des dizaines de milliers de lignes de code et un programme très volumineux et complexe".
Expliquez ensuite le type de problèmes que vous résolvez en programmant et pourquoi vous aimez le faire. Par exemple, je dirais que j'aime la programmation parce que "j'aime voir mon code prendre vie dans l'ordinateur en tant qu'application"
la source
Premièrement, vous devez faire face à la concurrence.
Les films, la culture populaire et même les gens du domaine ( et cette question d'ailleurs ) tentent de décrire la programmation (et l'essentiel du domaine de l'informatique) comme une sorte de magie. Ce n'est pas magique.
La programmation consiste simplement à décrire des tâches, puis à les combiner pour résoudre un problème. Si vous essayez de trouver un parallèle, utilisez les mathématiques. Un ordinateur est comme un professeur de mathématiques qui exige que vous montriez tout votre travail .
D'un point de vue physique, les ordinateurs ne sont pas intelligents - ils ne savent que ce que nous leur disons. Ainsi, lorsqu'un informaticien veut créer un programme qui, par exemple, diffuse de la musique sur un CD, il lui suffit simplement de dire à l'ordinateur comment lire les données stockées sur le CD, puis comment convertir ces données en ondes sonores et enfin. , comment sortir les ondes sonores de vos haut-parleurs.
En prenant cette idée au niveau supérieur, vous pouvez continuer sur la façon dont la programmation construit des tâches les unes sur les autres. Tout comme il / elle a dû apprendre l'arithmétique avant de pouvoir apprendre l'algèbre en mathématiques, il faut également expliquer aux ordinateurs comment "faire les bases" avant de pouvoir leur dire comment effectuer des tâches plus complexes. Au fil des ans, les informaticiens et les programmeurs ont pu «enseigner» suffisamment d’informatique aux ordinateurs de base, au point où nous pouvons commencer à leur «parler» beaucoup plus près de la façon dont nous nous parlons.
De retour dans la vie réelle, votre professeur de mathématiques peut vous demander de résoudre "15 au pouvoir de 3", mais vous savez seulement comment le faire, car on vous avait appris auparavant que "X au pouvoir de Y" se décompose en tâches de "Multiplie X par X , et fais-le Y fois" [techniquement Y -1 fois, mais hein.]
Tout comme vos cours de mathématiques, les programmeurs ont établi une base de tâches «connues». Nous n’avons donc pas besoin de nous concentrer sur les détails des petites choses et pouvons consacrer notre temps à la résolution des problèmes actuels et moins à la manière de réaliser les tâches sous-jacentes. tâches-- nous pouvons maintenant supposer qu'un ordinateur comprend comment faire les choses de base.
la source
Je faisais ce qui me rendait accro quand j'avais environ 9 ans. Prenez le C64 hors du loft et faites:
10 PRINT "YOU SMELL"
20 GOTO 10
(Merçi papa).
Puis, quand le plaisir est fini. Je lui montrerais le jeu de devinettes numériques. Oui, tout en BASIC. Il n’ya aucun besoin urgent d’une langue moderne pour montrer à un ordinateur la prise d’instructions.
la source
Il peut être utile de commencer par quelque chose qu'elle fait régulièrement, comme Facebook, et de lui expliquer en quoi un simple aspect, comme se connecter, peut être très compliqué.
À partir de là, vous pouvez passer aux bases de données, à la conception d’applications, puis à certains aspects de la sécurité, ce qu’elle peut retirer d’utile.
Vous pouvez même lui demander quelque chose comme: "S'il y avait une chose à propos de Facebook que tu pouvais changer, ce serait quoi?" Puis expliquez-lui comment vous pourriez faire le changement et combien de personnes seraient impliquées.
J'ai d'abord appris à programmer Pascal et j'ai été très impressionné par le fait que mon programme a accepté mon entrée, l'a gaché et imprimé quelque chose de différent. Je suis devenu accro à partir de là. Certaines personnes verrouillent facilement.
la source
J'espère avoir fait un stage dans un endroit qui développe vraisemblablement un logiciel qui l'intéresse quelque peu?
Il n'y a pas de réponse prédéfinie, je la questionnerais pendant 5 à 10 minutes sur ce qu'elle sait, puis essayez de vous en servir au mieux.
la source
Commencez à haut niveau. Expliquez peut-être que la programmation informatique concerne la résolution de problèmes: résoudre un problème et concevoir une solution rédigée sous la forme d’un ensemble d’instructions qu’une machine peut utiliser et comprendre.
Le plus difficile serait peut-être de trouver des exemples qu'une fille de 15 ans pourrait trouver intéressants et pertinents . N'ayant jamais été dans cette situation et ne la connaissant pas, je ne sais pas trop quoi recommander à cet égard ... Évitez les échantillons de code jusqu'à la fin, à l'exception de cas très simples ou intéressants, tels qu'un programme "Hello world" ou quelque chose de simple et graphique (dessiner des formes dans une fenêtre, suivre une souris, etc ...).
la source
Voici mon point de vue après quelques tentatives infructueuses et quelques très bonnes tentatives:
La programmation est la résolution de problèmes.
Commencez avec des éléments concrets programmés qu’ils utilisent tous les jours: navigateur Internet (Facebook), téléphone portable, caisse enregistreuse, etc. Demandez-leur de vous donner beaucoup d’exemples. Établissez que toutes ces choses ont une sorte d'ordinateur en elles. Le coeur d'un ordinateur est le processeur.
Le processeur est comme un travailleur très rapide, mais très stupide. Si vous lui donnez des instructions, il les fera exactement comme vous le dites. Cela ne fera rien de plus et ne vous dira pas si quelque chose que vous lui avez dit de faire était mal. Ce processeur fait tout, cependant - si vous lui dites exactement comment le faire, il peut passer un appel téléphonique ou mettre une photo dans un courrier électronique.
Demandez-lui comment elle dirait à un travailleur très rapide mais très débile d'acheter une canette de soda dans une machine à soda. Alors qu'elle commence à décrire les étapes ("Mettez de l'argent dans la machine et appuyez sur le bouton."), Commencez à la disséquer comme un programme ("Qu'est-ce que l'argent? Comment le mettre dans la machine? Quand je mets de l'argent dans la machine et appuie sur le bouton en même temps, rien ne se passe. "). Si vous avez un tableau blanc, commencez à gauche avec sa première série d'instructions. Lorsqu'elle les révise, placez la nouvelle liste plus grande sur le côté droit. Quand vous avez un bon jeu d’instructions, commencez à généraliser les morceaux ("Enlevez l’argent de votre poche et enlevez le soda du plateau son similaire - quelles sont les parties identiques / différentes?") Prenez les généralisations et placez-les au milieu et rayer les morceaux qu'ils englobent maintenant. Essayez d’attacher les pièces pour qu’elles correspondent à ses instructions originales, un peu comme des appels de fonction. Autres bons exercices: postez une lettre, passez une porte, dessinez un cercle / carré / triangle.
Donc, programmer, c'est résoudre des problèmes: diviser les problèmes en parties, identifier les pièces communes et les regrouper pour les résoudre. Bientôt, vous découvrez que certaines parties sont communes à de nombreux problèmes, puis vous commencez à les assembler pour résoudre des problèmes que vous ne saviez même pas que vous aviez.
D'accord, à ce stade, elle comprendra peut-être, mais elle s'ennuie probablement. Suivez-le avec un ensemble d’exemples de programmation intéressants. Il est facile de faire la démonstration des Shaders et du code visuel associé. Vous pouvez afficher une image et commencer à la modifier en modifiant très peu le code. Si elle a exprimé son intérêt pour Facebook, montrez-lui que vous pouvez parler à Facebook par le biais de REST pour voir des données d'amis de ses amis (à 6 degrés). Si elle aime les jeux vidéo, montrez quelques démos de jeux open source ainsi que quelques extraits de leur code et expliquez comment ils aident le jeu à fonctionner. Terminez-le en montrant quelques outils et ressources gratuits sur lesquels elle pourrait enquêter à la maison. (Python, C #, etc.)
Mes tentatives infructueuses: essayer d'expliquer le calcul du pi (ils demandaient), le jeu de plateau C-Jump http://c-jump.com/ (ils ne l'ont pas compris et les instructions étaient boguées), et coder en direct un 2d jeu (je ne pouvais tout simplement pas retenir mon intérêt, peu importe le nombre de pas que je faisais entre les démos).
Bonne chance!
la source
Faites un programme simple. Non, pas "Hello World!"
Ce que je ferais, c'est de dire qu'il existe de nombreux types de langages de programmation - ceux qui créent des jeux, ceux qui contrôlent les robots -, mais vous allez travailler avec le HTML.
Créez une page Web sans rien dessus, puis ajoutez un formulaire qui enverra un courrier électronique à son adresse électronique. Elle a vraisemblablement un téléphone portable capable d'avertir le propriétaire de la réception d'un nouvel e-mail. Vous pouvez donc lui dire que c'est un excellent moyen pour la famille et les amis de la contacter. Si elle obtient ultérieurement son propre site Web, vous pouvez lui indiquer qu'elle peut mettre le formulaire sur son site Web, permettant ainsi à ses clients et à ses partenaires commerciaux de la contacter.
Alternativement, si elle est un peu espiègle, je vais vous dire ce qui m'a intéressé à la programmation: le piratage informatique. De retour dans la journée, j'ai créé le meilleur programme jamais conçu pour déconner avec AOL (en dehors d'un programme qui surpasse le mien dans seulement une douzaine de choses que le mien a faites) - à l'âge de 14-15 ans. Du côté du chapeau blanc, j'ai également créé l'un des premiers programmes de suppression du spam (en 1995). J'ai pu rendre mon expérience en ligne beaucoup plus agréable, et nous en resterons là. Tout ce que je voulais faire sur un ordinateur était une aventure ou un casse-tête que je devais comprendre, et les choses que je voulais faire sur un ordinateur étaient infinies. Bien sûr, le faire fonctionner était parfois un casse-tête, mais écrire un programme qui permettait d'accomplir des choses mieux et plus rapidement que tout être humain, ou faire des choses qui étaient simplement impossibles au grand public, c'était comme construire une belle machine dont on pouvait être fier. Maintenant, vous voulez probablement éviter tout problème sérieux, mais il serait extrêmement facile de créer quelque chose en Visual Basic pouvant être lancé au démarrage (assis sur le côté de l'écran ou dans la barre d'état système), et à partir de là. vous pouvez lui faire lancer ses sites Web préférés, ses programmes préférés, etc. Vous pouvez lui présenter les commandes nécessaires pour lancer un exe et un site Web, puis lui demander simplement de créer des boutons, puis d'ajouter le code à ces boutons. , mettant en place ses sites Web préférés (facebook, twitter, etc.) et ses programmes (iTunes, traitement de texte, etc.) Si son ordinateur est dans sa chambre, vous pouvez également lancer un réveil pour plus de fonctionnalités. Bien sûr, 30 minutes, c'est trop court pour la traverser, alors vous devriez déjà l'avoir fait. À la fin, vous lui enverriez un petit manuel d’utilisation de 2 à 3 pages, le code et le fichier .exe, puis lui laisseriez un petit argument de vente: ce n’est pas facile au début, mais une fois que vous avez reçu le Ce n’est pas si grave, cela sera extrêmement utile dans la vie et aidera à développer sa pensée analytique.
la source
J'avais l'habitude d'enseigner à des étudiants de 18 ans et je suppose que les 15 ans sont à peu près les mêmes. Ne vous attendez pas à un succès sans pratique. Il m'a fallu quelques semaines dans mon premier cours pour me faire "casser".
La chose la plus importante que je devais apprendre était que ce que je pensais être si simple et si évident que j'avais peur de ne pas pouvoir remplir le temps imparti n'était pas du tout comme cela pour les étudiants. J'ai appris qu'il faut y aller à petits pas - sinon c'est juste de la magie.
Je ne sais pas trop comment vous vous en sortez, mais la première chose que j'ai faite a été de leur montrer un petit ordinateur fait maison que j'avais construit et qui était programmé pour jouer un petit morceau en cliquant sur un haut-parleur. J'ai expliqué qu'il pouvait jouer une note en décrémentant un compteur, pour agir comme un délai, entre les clics. Je viens d’écrire le pseudo-code au tableau, comme une recette. Ensuite, il y avait un petit condensateur que je pouvais accrocher sous un fil qui ferait tourner le tout environ 1000 fois plus lentement. Ensuite, ils pouvaient entendre un clic, attendre, cliquer, attendre ... Puis, quand j'ai décroché le condensateur, il a explosé avec le petit air.
Le but de ceci était de faire comprendre que les ordinateurs ne font que des choses simples et les font un à la fois. Ils ne commencent pas chaque étape avant la fin de l'étape précédente. (Ouais, ouais, je sais - pipelining et tout ça, mais nous parlons aux débutants .) C'est seulement la vitesse électronique qui les fait sembler de tout faire en même temps, ce que les débutants ont tendance à assumer (avec la lecture de l'esprit) . C'est l'un des concepts de base sans lequel vous ne pouvez pas commencer à comprendre la programmation et les ordinateurs. Pour nous, cela est tellement complexe que nous ne réalisons même pas que nous le savons, mais les débutants ne le savent pas.
la source
Je sais que ce n'est pas un langage de programmation, mais je pense que le HTML est un bon point de départ. Parce que vous obtenez des résultats immédiats .... commencez par
Bonjour le monde
Alors fais:
Bonjour <b> Monde </ b>
Etc.
la source
Si c'était moi, je lui dirais que la programmation consiste à diviser une tâche en petites tâches de manière à vous aider à les résoudre. et ensuite exprimer ces petites tâches dans une langue qui ne peut pas être mal comprise par un ordinateur idiot. Mais vous devez également le faire de manière à ce que les autres programmeurs puissent le comprendre facilement - et ce n'est pas la même chose.
C'est, en plus de ce que tout le monde a dit ...
la source
C’est davantage une de mes expériences personnelles qu’une simple «réponse».
Pourquoi suis-je intéressé? Mes parents ont acheté un IBM PC XT en 1984 (je suis né en 1984). Il dispose de 640kb de RAM, de 20 Mo de disque dur et d’un FDD de 5 ". Il fonctionnait sous MS-DOS v3.2. Je n’ai pas été autorisé à le toucher avant d’être au 5ème standard. Quand j’ai enfin été autorisé à l’utiliser, j’ai versé toutes mes années. de la curiosité accumulée en elle.
Par contre, ma sœur était autorisée à utiliser le même PC et un mackintosh Quadra 610 quand elle le voulait et elle a prêté autant d’attention qu’elle a payé à la table sur laquelle elle était placée.
Enseigner à ma soeur ... J'ai essayé d'enseigner à ma soeur la programmation informatique en BASIC. Je l'ai faite à tout dès le démarrage de l'ordinateur pour taper dans le programme et l'exécuter. C'était comme programme en ligne.
Cela a pris une demi-heure. Quand elle finit par l'exécuter, elle imprima le mot 'CAT' et elle était furieuse. Elle s'était attendue à la photo d'un chat. Elle est sortie de la salle et c'était la fin de la programmation pour toujours!
Morale: Le rendement devrait être proportionnel au temps et aux efforts qu’ils déploient.
Enseigner aux lycéens Labview et Lego NXT Pendant un an, j'ai été le mentor de FIRST Robotics et je devais guider les enfants dans la programmation du robot dans NI Labview. Franchement, les compétences en programmation requises étaient bien au-dessus du niveau d'un lycéen. Mais le concours visait à susciter l'enthousiasme des enfants pour l'ingénierie et à élever leur capacité à relever les défis. Tant que les programmes avaient juste une déclaration if et une boucle, tout allait bien. Les gens ont quitté la section de programmation du robot lorsqu'ils ont vu le diagramme de code que j'avais créé pour le robot que nous avions construit l'année précédente.
Bien que les gens affirment que les jeunes de 15 ans peuvent faire des choses complexes et peuvent avoir une attention de plusieurs heures, j'ai trouvé un étrange manque de motivation en eux pour le faire. Ils voulaient faire des choses faciles qui ne taxaient pas leur cerveau. Ils préféraient de loin créer des programmes de CAO et de fraisage sur la machine à tour
la source
Qu'est-ce que CS?
Je pense qu’avant d’entrer dans les démos, il est utile de donner brièvement votre point de vue sur la place de CS dans le monde. J'ai aimé la description de CS relative aux mathématiques faite par Hal Abelson: si les mathématiques vous aident à décrire le monde en termes de lois, CS vous aide à décrire comment faire les choses. Son exemple était la fonction racine carrée: les maths vont la définir, mais ne vous aideront pas à la trouver pour une entrée donnée. CS le fera. À un niveau inférieur, l’ingénierie électrique et la physique ont jeté les bases du matériel permettant l’internet, mais ont laissé ouverte la question de savoir comment amener les gens à l’utiliser.
Qu'est-ce que ça fait d'être programmeur?
Ensuite, il y a la question de savoir ce que c'est que d'être un programmeur. Ce qui m’a amené à penser que c’est que le processus d’essai, d’essai, de réparation, est plus rapide que tout autre domaine technique. La résolution de problème est sans interruption, alors que dans d'autres domaines, le délai d'exécution d'une boucle peut être de plusieurs mois. Il est également utile dans presque tous les autres domaines techniques, ce qui est plus que ne peut être dit pour ... la plupart des autres domaines techniques. Donc, si vous ne savez pas encore ce que vous voulez faire (probablement), il est bon d’être bon au début. Au collège, peu de choses vous rendront plus utile à plus de professeurs que de pouvoir coder leurs expériences.
Eye Candy, lié au code
Alors bien sûr, n'oubliez pas les démos. Il peut être intéressant d’obtenir une copie de quake (open-source), d’effectuer un changement sur une ligne (par exemple, de modifier l’intensité de la gravité) et de recompiler, par exemple. Demandez-lui également de regarder le code. Rassurez-la en lui disant qu'elle ne s'attendrait pas à beaucoup comprendre, cela peut sembler un charabia maintenant, mais encore une fois, il en va de même pour les journaux en langues étrangères qu'elle n'a pas encore appris. Vous pouvez dire que néanmoins elle peut voir que des choses sont assignées à des choses, que des objets sont dits à faire, et c'est ici que nous fixons la gravité, etc.
la source
J'ai commencé à programmer à 14 ans. Alors que la plupart (47 des 50 étudiants inscrits) ont abandonné leurs études en milieu d'année ou ont tout simplement décidé de ne pas poursuivre le cours de niveau avancé l'année dernière, je me suis accroché et j'ai appris quelque chose de très important:
La programmation vous donne la possibilité de créer quelque chose à partir de rien. Vous avez le pouvoir de transformer les mots en un outil utile qui répond à un besoin, une activité amusante pour vous et vos amis, ou tout simplement quelque chose que vous pouvez montrer à vos amis et dire: "Regardez ce que j'ai fait."
Au début, on nous avait appris «Hello World», mais je n'avais aucun intérêt jusqu'à ce que je puisse faire interagir mon code avec l'utilisateur . Dès que nous avons appris à lire les entrées avec "cin", je me suis mis à créer un programme Mad-Lib que nous pourrions jouer en classe. Mon premier obstacle consistait à lire une entrée contenant des espaces, suivie du formatage de la sortie. Plus tard, je voulais pouvoir sauvegarder ces histoires dans un fichier et je devais donc apprendre le fichier IO. Faire face aux obstacles pour atteindre mes propres objectifs était ce qui me maintenait engagé.
Plus tard dans l’année, nous avons découvert que les administrateurs réseau notaient notre utilisation de «Net send» et du client Novell SendMessage que nous utilisions pour communiquer pendant le cours d’informatique. Ils l’ont désactivé après que les étudiants l’aient utilisé pour tricher lors d’un test. J'ai donc écrit un forum de discussion pour remplacer celui des administrateurs désactivés. Ce fut la première chose vraiment utile que j'ai créée. Je l'ai modelée d'après le système de discussion de Battle.Net, avec enregistrement de l'utilisateur, modérateurs et même un système de cryptage de base et de fichiers fictifs pour empêcher les utilisateurs de falsifier (tous les fichiers devaient résider sur un lecteur réseau partagé pour que les étudiants puissent accéder et utiliser le programme). Ce n'étaient pas des concepts que je connaissais déjà, mais des solutions que j'avais moi-même proposées pour résoudre un problème. Pour moi, c'était la joie de la programmation.
Donc, pour répondre correctement à la question, au-delà de la discussion sur ce que signifie développer un logiciel, une démonstration interactive est probablement une excellente idée. De préférence, quelque chose qui résout son problème, comme redimensionner automatiquement toutes les images géantes de son appareil photo. Même si elle est un peu plus compliquée, elle pourrait s’amuser avec une simple page Web de type «laisser un message» qu’elle peut partager avec ses amis. Vous pouvez le faire envoyer un e-mail à chaque fois qu'un nouveau message est posté et lui demander de modifier le code pour l'envoyer à son adresse e-mail au lieu du vôtre. En outre, demandez à la page d'indiquer le dernier nombre X de commentaires et demandez-lui d'ajuster également ce nombre afin de voir les résultats.
la source
Là où je travaillais, il y avait parfois des enfants avec une expérience professionnelle. Certains s'intéressaient aux ordinateurs, d'autres non. Nous les avions l'habitude de les faire asseoir devant un ordinateur et de leur faire écrire un jeu de devinettes. (L'ordinateur sélectionne un nombre au hasard, les utilisateurs recevant un retour si leur estimation était trop haute / trop basse.) C'est simple à faire et c'est vraiment un résultat amusant. Rien n'est plus puissant que de leur montrer concrètement ce qu'ils peuvent créer.
la source
Lorsque vous voulez attirer l'attention de quelqu'un, et le garder, alors DEMANDEZ, NE DITES PAS. Demandez-leur comment ils effectueraient une tâche simple, comme prendre un verre d'eau. Puis montrez-leur comment, en suivant les instructions fournies (par exemple, "Allez dans le couloir"), ne résolvez pas les problèmes de moment où il faut tourner à gauche, tourner à droite, arrêter, etc. Comprendre et gérer ces conditions aux limites, voilà le problème de la programmation! Vous pouvez ensuite montrer comment une boucle de type "do-Until" peut gérer le type de situation "marcher jusqu'à ce que vous arriviez au mur", pour créer des méta-tâches à partir de la tâche un pied devant l'autre. de marcher.
la source
Je ne sais pas s'il s'agit d'une légende ou d'une histoire vraie, mais je lisais pourquoi le chanceux était un jour. Une partie de l’histoire a été la façon dont il a montré la programmation à un enfant (ou même à des enfants) qu’il a rencontré dans un train.
Comme certains d'entre vous le savent peut-être, pourquoi était un Ruby (et Ruby est très amical avec les humains ordinaires). Il travaillait sur un jeu en Ruby, alors qu'un gamin s'approchait de lui pour voir ce qu'il faisait. Il leur a montré le résultat en premier - le jeu de travail. Ensuite, il a montré à l'enfant comment il pouvait modifier les choses dans le code pour changer le résultat. Ensuite, il a laissé l'enfant jouer avec le code et voir le résultat modifié.
Je pense que cela devrait être votre flux de travail général - résultat, modifier, jouer. Vous devriez trouver un projet (le jeu serait le meilleur choix) dans une langue conviviale et le montrer à l'enfant.
Comme je suis triste, je ne sais pas si cette histoire est vraie ou non. C'est toujours très cool.
En outre, une dernière chose. Je me souviens de ma première expérience de programmation -
MessageBox
à Delphi. C'était cool, car je pouvais faire en sorte que l'ordinateur fasse ce que je veux et voir immédiatement le résultat.Ensuite, les microcontrôleurs sont apparus. Ils étaient encore meilleurs, parce que mon code pouvait changer le monde réel. Je veux dire, assigner une valeur à une variable a cessé d’être si abstraite, car cela a provoqué l’apparition d’une tension sur le port de sortie, ce qui a ensuite fait bouger mon moteur. C'était cool. Vous voudrez peut-être choisir cette méthode - montrez à l'enfant quelque chose comme Arduino.
Vous voyez, je pense que tout est question de changement et de voir le résultat.
la source
Montrez-lui le résultat final de certaines des choses que vous avez faites. Parlez en général de votre rôle dans les projets. Peut-être même l'aider à faire un monde bonjour si elle semble intéressée.
la source
Mon analogie préférée pour la programmation est la magie (style Harry Potter), comme Satanicpuppy. J'utilise ceci pour les pairs non techniques ainsi que les enfants, il semble fonctionner assez bien et transmet sans aucun doute le pouvoir que nous donnent les ordinateurs.
Les ordinateurs sont nos baguettes magiques. Ils nous permettent d’exercer de la magie à condition de toucher le poignet et d’incanter. En tant que programmeurs, nous avons accès à des livres orthographiques (bibliothèques) travaillés et affinés par nos prédécesseurs. Nous pouvons créer de nouveaux sorts et incantations ou travailler avec ceux existants. Certaines sont faciles, certaines demandent plus de pratique pour être réellement efficaces, il existe souvent des compromis et de nombreuses façons différentes de résoudre le même problème (devrais-je utiliser une bonne potion ou une incantation?).
Cette métaphore étendue peut vraiment être bien étirée et me permet souvent de transmettre ma passion pour la programmation de manière accessible aux personnes extérieures au domaine.
la source
La meilleure façon de comprendre les enfants est d’être un enfant d’abord ..! Enfant, je détestais faire des devoirs, des impositions, etc.! il y a donc des points d’entrée où vous pouvez attirer leur attention. En 30 minutes, nous ne pouvons pas tout expliquer, mais nous pouvons essayer de leur donner une sorte d'exposition où les enfants intéressés le trouveront comme source d'inspiration. Commencez par les sujets connexes tels que les devoirs, etc., et dites-leur comment un ordinateur peut écrire une imposition en quelques secondes, etc.
Je vous souhaite le meilleur.. ! bon travail
la source