Mon jeune frère cherche à commencer la programmation. Il a 14 ans et est techniquement enclin, mais n'a pas vraiment d'expérience en programmation. Il me demande des conseils et je ne pense pas que mon expérience soit suffisante, alors j'ai pensé que je demanderais ici.
Il s'intéresse davantage à la programmation Web, mais s'intéresse également aux applications de bureau / mobile / serveur.
Quel serait pour lui un bon parcours d'apprentissage? Je vais lui acheter un tas de livres pour Noël pour le démarrer; la question est, que doit-il apprendre et dans quel ordre?
Selon moi, il a besoin d'apprendre la théorie et le code. Je voudrais le démarrer avec Python ou Ruby ou PHP. S'il veut accéder au Web, il devra également apprendre le HTML, le CSS, le Javascript, etc.
Parmi ces trois domaines (langues, théorie, balisage / etc.), quel est le meilleur ordre selon vous pour apprendre? De plus, est-ce que je manque quelque chose?
Merci!
Réponses:
Enregistrez-lui un compte pour StackOverflow.com et Programmers.StackExchange.com
et lui faire prendre l'habitude de parcourir différentes questions quand il s'ennuie . Commencez par les questions chaudes / les plus populaires.
Aussi
L'aider à trouver un objectif de quelque chose qu'il veut créer qui est légèrement hors de sa portée, un jeu simple, une application qui peut envoyer un tweet? Ce doit être quelque chose d' excitant . Cela aidera à guider les sujets auxquels il s'expose et à lui donner de la motivation à travers le résultat tangible qu'il crée.
Et
Dans la mesure du possible , n'achetez pas de livres sous forme physique s'il fonctionne bien avec l'impression numérique , je suis sûr que l'un d'entre vous a un Android ou un iPhone ou un BlackBerry ou un iPod Touch? Obtenez l'application ibooks ou Kindle et achetez des versions numériques .
Le fait d'avoir à gérer un livre physique ralentit le processus d'acquisition des connaissances; les outils intégrés aux lecteurs numériques offrent de nombreux avantages à la lecture technique.
Remarque: comme mentionné dans les commentaires, il y a des inconvénients aux livres numériques par rapport aux livres imprimés, alors prenez ce point avec un grain de sel
la source
J'aime vraiment la façon dont je suis entrée dans la programmation; la seule chose que je peux imaginer changer est mon accès aux livres. Ma famille n'avait pas l'argent pour tous les livres que je pouvais dévorer, et notre petite bibliothèque rurale n'avait pas exactement de manuels techniques. Dans le grand schéma des choses, c'est une petite piqûre.
Je suis entièrement en désaccord avec ceux qui disent que vous ne pouvez pas apprendre la théorie à 14 ans. Plus tôt vous apprenez la théorie, mieux c'est. J'ai lu The Art of Computer Programming à 14 ans, même si je codais déjà depuis un moment.
La meilleure chose que vous puissiez faire pour votre frère est de lui donner les outils nécessaires pour poursuivre ses intérêts et de l'inclure dans la communauté des hackers / codeurs autant que possible, afin qu'il puisse apprendre l' état d' esprit d'un grand codeur.
Éloignez-le des outils propriétaires dans la mesure du possible. Il y a tellement plus à sa disposition dans le monde open source. Je suis devenu aussi bon que je le suis en grande partie grâce aux conseils que j'ai reçus de personnes plus expérimentées dans la communauté open source.
Si vous pouvez vous le permettre, créez-lui un compte Safari ou aidez-le à acheter des livres en cas de besoin. Même prêter ce que vous possédez déjà peut vous aider.
Assurez-vous qu'il a accès à un ordinateur de bureau ou à un ordinateur portable décent et à un serveur ou VPS pour expérimenter. Si les applications mobiles sont son truc, assurez-vous qu'il a un téléphone ou un appareil de démonstration sur lequel travailler.
Montrez-lui comment trouver les canaux IRC, les listes de diffusion, etc. pour les choses qui l'intéressent à travailler avec / sur.
Assurez-vous qu'il sait comment poser des questions intelligentes et, inversement, les détails d'une sangsue de support afin qu'il sache quoi ne pas faire.
Son premier langage de programmation n'est pas le facteur le plus important. La totalité des langages de programmation qu'il apprend est extrêmement importante. Les codeurs unilingues ne passent jamais un certain niveau (relativement bas) de codage-foo.
la source
J'irais avec des trucs d'apprentissage pour l'arène de la téléphonie mobile, c'est l'immobilier de choix là-bas. Installez-le avec un IDE doté d'un émulateur de téléphone et procurez-lui un téléphone vers lequel il peut pousser les applications .
Configurez-le pour une utilisation et un piratage dans le monde réel, complété par une théorie de vos livres pour le guider. Assurez-vous qu'ils ont de bons échantillons.
la source
J'irais à l'école, si l'âge de l'université. Je le prendrais au lycée, si l'âge du lycée.
J'aurais une mission et ajusterais le programme en conséquence à 14 ans.
beaucoup de gens me décevront pour cela, mais Visual Basic .NET semble être plus facile pour certains, en disant simplement des gens. Cela semble être le cas pour beaucoup de personnes qui ne sont pas des initiés.
la source
Commencer avec le développement Web est une bonne idée. Vous pouvez obtenir des résultats même si vous êtes un vrai débutant, et si vous vous trompez, cela n'aura pas beaucoup d'importance.
Je dirais Html / CSS + Php. Comme Jeff l'a déclaré dans son commentaire, avoir son site hébergé importera, et les hébergeurs Php ne sont pas chers, souvent même gratuits.
Quant à la théorie, je l'oublierais simplement pour le moment. D'après ce que je comprends, il veut surtout s'amuser, et avouons-le, la théorie n'est pas très amusante. De plus, s'il aime la programmation, il en aura beaucoup à l'école.
De toute évidence, nous nous soucions tous du bon code, mais s'il veut juste jouer, qu'importe si son code est en désordre?
la source
programmation web / bureau / mobile / serveur? Il me semble qu'il s'intéresse à tout. Le problème est cependant qu'il doit commencer par quelque chose.
Beaucoup seront en désaccord, car bien sûr il n'y a pas de "bonne" réponse à cela, mais je lui achèterais un livre sur Python ( Apprendre Python est assez épais et approfondi pour le tenir occupé pendant longtemps), et c'est certainement un langue qui lui donnera un bon rapport entre ce que j'ai appris et les bonbons pour les yeux (c'est-à-dire ce qui peut être réalisé avec). C'est également un bon point de départ pour bon nombre de ces éléments.
Après cela, voyez ce qu'il préfère le plus de ce qui précède et dirigez-le plus loin avec des conseils dans cette direction.
la source
Son lycée propose-t-il des cours d'informatique? Aux États-Unis, par exemple, le programme Advanced Placement a un cours d'informatique qui passe en revue une grande partie des concepts de base de l'informatique (flux de contrôle, pratiques de développement orientées objet de base, boucles, etc.).
J'ai pu fréquenter une école secondaire qui offrait des cours d'informatique pendant pratiquement toutes les 4 années (d'un cours d'introduction aux bases de LIPS, MIPS et Open GL). J'ai fini par tester les bases au collège, puis réapprendre beaucoup d'autres langues et sujets dans des cours de niveau supérieur. Je peux vous dire qu'un cerveau âgé de 14 à 17 ans a eu beaucoup plus de difficulté à contourner la théorie qu'un cerveau âgé de 18 à 22 ans. Des sujets comme la récursivité, l'arithmétique des pointeurs, la programmation de bas niveau, la topographie du réseau et la programmation fonctionnelle m'ont pris beaucoup de temps pour entrer au lycée, mais la deuxième fois au collège, je les ai trouvés un jeu d'enfant, peut-être parce que je ''
Même si c'était difficile, réfléchir à CS à partir de 14 ans est extrêmement utile. Le faire sans enseignants semble avoir été compliqué. J'aurais passé du temps à développer des pages Web pour le plaisir parce que c'est ce que j'aimais faire à l'époque (et maintenant), mais je ne me serais jamais enseigné les pointeurs, la récursivité et le LISP pour le plaisir à l'époque.
la source
Personnellement, je ne commencerais pas avec la théorie hardcore. Je commencerais par une programmation pratique mêlée à certains éléments de la théorie. Cela pourrait garder beaucoup plus motivé et ne pas l'effrayer.
C'est par exemple le cas des écoles de musique. Une grande partie des étudiants ont démissionné parce qu'ils s'ennuient avec la théorie et finissent par perdre tout intérêt.
De plus, la théorie n'est pas très bonne lorsqu'elle est apprise avant d'avoir mis la main à la pâte avec la pratique. Vous ne saurez pas quand et comment l'appliquer.
Mais si vous aviez des connaissances théoriques, vous vous entraîniez beaucoup, après quoi un cours sérieux en informatique vous pousserait à un niveau différent. Sinon, les années passées dans une université sont simplement perdues pour une année sourde.
Dans cet ordre:
Quelques notions de base sur le matériel, l'architecture informatique et la programmation de ce matériel. Juste basique.
Développez ensuite des choses pratiques. Applications de base pour garder l'intérêt. D'abord local, puis quelque chose avec des graphismes. Pas encore de pages Web car vous voudriez démontrer la programmation côté serveur et elle est souvent inutile sans bases de données.
Déposez-lui quelques cultures de connaissances de base de données
Interfacez votre application locale avec la base de données. Essayez ensuite le développement Web.
Ajustez le cours au fur et à mesure.
la source
Ma préférence logique basée sur ce que je sais maintenant:
Déterminer comment les choses fonctionnent maintenant - Bien que vous déclariez qu'il est techniquement enclin, comment comprend-il bien le fonctionnement d'un ordinateur à ce stade? Par exemple, comprend-il les différences entre le balisage et les scripts? Qu'en est-il de l'écriture de petits scripts pour faire ceci ou cela? Ce serait ma suggestion pour un point de départ car démystifier ce que nous avons autour de nous est un bon point de départ étant donné toutes les choses qui pourraient être explorées assez librement.
Choisissez une langue, un IDE et un contrôle de source. Maintenant, alors que cela peut sembler assez lourd à quelqu'un, ce sont les outils plutôt basiques qui, avec un peu de pratique, pourraient bien passer à de plus grandes choses. Comprendre comment faire un "Hello World!" Une page Web qui a le message intégré dans JavaScript n'est pas un mauvais point de départ si l'on veut quelque chose d'un peu plus concret ici.
Maintenant, commencez à ajouter certaines des choses les plus difficiles. Comment faire des boucles ou des conditions? Ce n'est pas encore si sophistiqué, mais nous en sommes encore à comprendre l'étape de construction ici. Présentez enfin l'idée des cours et quelles sont les idées derrière ce concept.
Ce serait par là que je commencerais si quelqu'un voulait obtenir quelques notions de base sur mes compétences.
la source
Je n'ai jamais pensé que je dirais cela, mais procurez-lui Alice 3.0 .
Je déteste Alice avec la fureur brûlante de mille soleils, mais elle fait certainement un bon travail d'enseigner les principes fondamentaux de la programmation (boucles, instructions, fonctions, etc.) lorsqu'elle est associée à un tutoriel décent.
Une fois qu'il est solide sur les bases, passez à un langage textuel plus pratique.
la source
Cela semble raisonnable. Donnez-lui quelques compétences de base et aidez-le à développer une idée pour un projet stimulant qui lui restera intéressant.
Ses premières expériences n'ont pas besoin d'être parfaites, en fait, cela l'aidera s'il fait une tonne d'erreurs tôt. Vous voulez simplement vous assurer qu'il reste intéressé à élargir ses connaissances. Quand il atteindra ses limites, il implorera de l'aide et vous pouvez le diriger dans la bonne direction s'il ne s'est pas encore diversifié vers des documents de référence.
la source
Obtenez-lui un livre sur le développement piloté par les tests. Il lui fera des tests unitaires solides une seconde nature. J'aimerais avoir appris que les tests étaient au cœur de ma programmation depuis la case départ.
la source
Je voudrais commencer avec un langage basé sur C. J'ai constaté qu'il existe des ressources plus utiles pour eux. Vous pouvez également chercher à obtenir un livre sur la façon de concevoir et de formater votre code afin qu'il commence par utiliser de bons principes de codage. J'y ai consacré un cours et nous avons utilisé un livre intitulé «Clean Code» et un autre intitulé «Software Development: Design Principles» si je me souviens bien. Je souhaite également que j'aurais été présenté à ce site plus tôt haha.
Ce qui m'a le plus aidé, c'est d'obtenir un stage au début de ma carrière universitaire. Je suis allé aux salons de l'emploi comme étudiant de première année et j'ai reçu un stage ma deuxième année. J'essaie aussi d'avoir un projet sur lequel je travaille en tout temps et j'aime faire quelque chose que je n'ai jamais fait auparavant pour continuer à apprendre. En ce moment, je travaille sur l'utilisation d'une tarte aux framboises et sur l'implémentation du Siri d'Apple pour un système domotique.
Fondamentalement, faites tout ce qu'il faut pour que cela reste amusant. Ne soyez pas frustré. Prendre des pauses. Ne soyez pas trop pris dans les livres. Parfois, la meilleure façon d'apprendre est de simplement y aller et d'utiliser des essais et des erreurs.
Oh ... et apprenez à Google :)
la source
les niveaux sont suivis
n'oubliez pas de modulariser les choses lorsque vous enseignez, sachez qu'il ne comprendra pas javascript jusqu'à ce qu'il sache c / c ++ ou python, etc.
Ajouté le 04/07/2013
à l'âge de 14 ans, lorsque vous voulez d'abord essayer votre programmation pratique, vous devez comprendre de quelles ressources j'avais besoin pour terminer la tâche ou le projet ou les directives de base, ainsi que j'ai mensionné dans mon post pour apprendre d'abord la programmation de base, cela vous aidera pour comprendre comment les programmes ou les logiciels fonctionnent avec le bouclage et la condition, la prochaine fois que vous penserez que je comprends tout mais que je ne sais pas comment accéder à la souris ou faire quelque chose quand je clique quelque part, vous allez essayer quelques bibliothèques comme les graphiques et la souris, donc vous comprenez comment cela fonctionne, la prochaine question viendra à l'esprit comment placer mes boutons et ajouter des événements afin qu'ils puissent interagir avec mon code, donc vous aimerez apprendre la programmation des événements puis lorsque vous aurez terminé cette étape, la prochaine question se posera je fais très grand code et je ne sais pas comment appeler la fonction son peu compliqué,alors vous allez essayer la modularisation, les objets et les classes pour l'application,
après cela, vous penserez que je sais comment créer une application de base mais je veux faire une application pour la base de données, alors la base de données vient à l'esprit, vous aimez apprendre, mais le problème est que vous vous sentez difficile de vous connecter avec du code, donc vous travaillerez sur la base de données l'invite de commande, c'est
une approche programmatique, je fais et j'apprends de la même manière et mes bases sont très claires pour que je puisse comprendre comment les routines ou le programme fonctionnent,
une fois que vous comprenez et que vous êtes confiant, vous pouvez faire une application pour le bureau essayer les mêmes compétences pour HTML
lorsque vous essayez pour html, vous vous sentirez beaucoup plus facile que ce que vous apprenez précédemment, simplement parce que vous avez passé beaucoup de temps sur les bases.
en html, comprendre la structure et le fonctionnement du code, une fois que vous savez ces choses, vous aimez donner la validation et la connectivité de la base de données pour l'application, essayez et vous obtenez le succès en une journée, vous pouvez facilement créer des boutons de placement de formulaire et valider avec le halp de javascript, alors vous vous poserez une question, j'ai tout fait, mais qu'en est-il de ne pas correspondre à ce que je vois sur Internet, alors essayez dur avec css, je suis très sûr si vous essayez attentivement pour css avec le meilleur IDE ou dreamweaver vous le ferez être amoureux avec hTML / css.
il vous suffit de faire une application simple ou web avec HTML,
à un certain point vous vous poserez une autre question comment le rendre dynamique quand vous savez que les hyperliens fonctionnent bien, alors qu'est-ce qui fait dynamique, pensons à la base de données, que vous apprenez avant tout ,
oui c'est mon point, afficher les enregistrements, insérer un enregistrement, supprimer un enregistrement et jouer avec la base de données localement avec javascript et programmation côté serveur, alors un autre concept vous viendra automatiquement à l'esprit, pour créer l'utilisateur, la validation, la session, l'historique de l'utilisateur, l'internationalisation, etc.
et vous ira de l'avant sans conseils, car votre base est claire et vous savez quoi faire et quelles ressources vous avez besoin pour terminer la tâche
c'est toutes les étapes. les bases sont également des étapes très importantes. une fois que vous connaissez les bases, vous pouvez facilement apprendre une autre langue ou migrer d'une langue à une autre
grâce à la lecture
Ajouté le 04/07/2013
progarme n'est rien d'autre qu'un ensemble d'instructions et de routines, par exemple notre routine quotidienne, nous nous réveillons, prenons un bain, un déjeuner, un travail, un dîner, allons dormir.
mais si nous nous trompons dans l'une des tâches, nous nous sentons mal à l'aise, c'est que si le jour est dimanche quand vous n'avez pas de travail ou en vacances, la condition est en train de changer et les routines quotidiennes aussi, de sorte que vous obtenez une correspondance avec d'autres choses, c'est comme une approche de programmation, apprenez de la pratique pas de ce que les livres vous disent, les livres sont bons pour référence mais comprenez de manière naturelle comment nous réagissons, travaillez à l'aide de la déclaration if-else, par exemple: supposons que nous avons deux travaux et les deux sont très importants, mais nous ne pouvons le faire que un à la fois, vous choisissez le premier et vous terminez ensuite, vous pouvez rentrer à la maison, si vous choisissez le deuxième, vous devez travailler les 5 heures suivantes, sinon si vous terminez les deux, vous obtenez un jour de congé, c'est une approche de programmation
la source