Mon père m'a donc acheté 5 livres sur la programmation (C++, Java, PHP, Javascript, Android) il y a environ un mois. C'est un architecte et il ne connaît RIEN en programmation. Il me les a achetés parce que je lui ai dit que la programmation était amusante et que je voulais l'apprendre.
Comme vous le savez peut-être, être un enfant (j'ai 14 ans) et se faire dire d'apprendre la programmation à partir de livres ennuyeux n'est pas la chose la plus facile. Je suis toujours distrait .. Je lui ai dit auparavant que je n'avais pas besoin d'acheter de livres et que je pouvais simplement regarder des tutoriels en ligne .. mais non, il est tellement démodé. Il me laisse seulement utiliser les livres.
Récemment, il a commencé à me demander ce que j'en ai fait, et je lui ai montré un programme C++ que j'ai créé qui prend ce que vous tapez, puis attribue des valeurs à chaque lettre (A est la première lettre de l'alphabet pour qu'il obtienne la valeur de 1) .. et ainsi de suite. Il additionne ensuite toutes les valeurs et vous le dit. Le mot "ajouter" aurait donc une valeur de 9.
^^ Ce n'était pas très impressionnant pour lui. Il m'a crié dessus et m'a dit que tout ce que je faisais était de me défoncer. Ce n'est pas vrai. Il est extrêmement traditionnel et têtu et n'écoute rien de ce que j'avais à dire. Que dois-je lui dire?
PS: Si vous avez des conseils sur le zonage d'un livre, faites-le moi savoir
EDIT: Merci beaucoup à tous, vous n'avez aucune idée de ce que cela signifie de savoir qu'il y a des gens qui comprennent ma situation. J'ai lu chacun et je considérerai l'opinion de chacun. ¡Gracias!
Je lui ai montré un programme C++ que j'ai créé qui prend ce que vous saisissez, puis attribue des valeurs à chaque lettre (A est la première lettre de l'alphabet pour obtenir la valeur 1) .. et ainsi de suite. Il additionne ensuite toutes les valeurs et vous le dit. Le mot "ajouter" aurait donc une valeur de 9.
Je ne sais pas ce que tu dois faire avec ton père. Mais:
Si vous avez tout fait par vous-même, en partant de zéro, en apprenant des livres, en un mois, c'est sacrément impressionnant. Et vous l'avez fait en C++, qui est l'un des langages de programmation les plus effrayants qui existent.
Il y a pas mal de gens qui prennent des entrevues, qui essaient sérieusement de trouver des emplois en programmation, qui auraient du mal à le faire. Voir cette histoire.
Je ne peux que suggérer: continuez à faire ce que vous aimez. Ignorez votre père dans ce contexte; il ne sait pas de quoi il parle. Vous avez du talent en programmation et la volonté d'apprendre - les principaux ingrédients pour devenir un grand programmeur.
Montrez-lui ce message par Peter Norvig. Norvig est chef de la R&D chez Google et enseigne à Stanford, en particulier l'intelligence artificielle, il a écrit le livre d'introduction standard sur l'IA. Depuis combien de temps y travaillez-vous? Je ne m'attendais à rien de plus que cela après un mois de travail par un novice sans instruction supplémentaire, en particulier avec quelque chose d'aussi épineux que C++. Tout ce qui vaut la peine d'être appris vaut la peine d'être bien appris.
N'oubliez pas que votre père pense probablement que vous êtes l'enfant le plus intelligent du monde et qu'il essaie de vous aider à en apprendre davantage sur quelque chose que vous avez dit aimer.
Sachez que même si votre père a incontestablement tort (cinq sujets complètement différents, c'est beaucoup à jeter sur un enfant à la fois), il a aussi un peu raison. Beaucoup de gens essaient de reprendre la programmation en imitant les "tutoriels" qu'ils trouvent sur le Web. Ce n'est pas toujours une mauvaise chose, mais l'OMI ne mène généralement pas à une solide compréhension. Le bon livre vous apprendra d'abord les principes de base. Cela pourrait ne pas être aussi amusant que de suivre des tutoriels qui font quelque chose de flashy, mais vos chances de succès à long terme augmenteront considérablement, et le nombre de questions que vous devrez poser sur stackoverflow.com diminuera considérablement.
Oubliez tous les livres sauf un, du moins pour l'instant. Il semble que vous ayez déjà commencé avec C++, alors allez-y si vous l'aimez.
Vous allez vous sentir découragé de temps en temps. Parfois, on a l'impression que la moitié de la programmation se coince et que l'autre moitié se décolle. Se décoller est une compétence précieuse, et plus vous la pratiquerez, mieux vous serez. (Éviter de rester coincé en premier lieu est également une compétence précieuse, alors exercez-vous aussi.)
L'apprentissage de votre premier langage informatique est au développement logiciel ce que l'apprentissage du dessin est à la conception d'un bâtiment. Ce n'est peut-être pas la partie la plus intéressante, mais c'est une compétence requise.
Si vous pouvez le faire écouter, essayez de décomposer tout ce que vous avez dû apprendre pour écrire votre petit programme. Cela prend du temps juste pour apprendre à utiliser les outils, et il ne comprend sûrement pas comment tout cela fonctionne.
Maintenant que vous êtes arrivé au point d'avoir un simple programme en cours d'exécution et que vous avez apparemment appris un peu de C++, quels petits programmes intéressants pouvez-vous écrire? Que diriez-vous d'une calculatrice de prêt qui accepte un taux d'intérêt, un montant de prêt et une durée de prêt et imprime un calendrier de paiement? Ou une calculatrice qui lit une formule moléculaire comme "H2SO4" ou "C6H12O6" et imprime le poids de la molécule? Ce n'est pas beaucoup plus compliqué que le programme que vous avez déjà écrit.
Il me les a achetés parce que je lui ai dit que la programmation était amusante et je voulais l'apprendre. ... Que dois-je lui dire?
"Papa, ton approche consiste à apprendre à programmer absolument pas amusant. Arrête."
En tant qu'architecte, il doit sûrement vous tirer la jambe ou être impoli.
Demandez-lui quand il a commencé: demandez-lui s'il a dessiné des gratte-ciel avec des plans de plomberie détaillés, calculé les forces et le stress sur les matériaux et fait des évaluations des risques de catastrophe (comme être heurté par un avion avec des serpents) après un mois passé avec livres quand il était aussi jeune que vous. Peut-être que ça va le calmer.
D'accord, ce n'est peut-être pas le meilleur conseil que je puisse vous donner pour parler de vos parents. Je peux comprendre qu'avoir un père, qui pénalise le progrès au lieu d'encourager, est un peu éprouvant pour un enfant, mais prenez-le plutôt comme un encouragement à faire mieux. Il peut avoir un problème d'attitude, mais cela ne signifie pas une mauvaise intention.
Je serais curieux de savoir quels livres vous utilisez. Tous ne sont pas vraiment bons. De plus, tous les livres ne conviennent pas à tout le monde.
Vous n'avez pas précisé votre âge, donc je suppose que vous avez bien moins de 18 ans. J'ai commencé à apprendre quand j'avais environ 8 ans.
Quand j'étais enfant, j'ai profité de beaucoup de ressources pour apprendre à programmer. J'avais les manuels fournis avec ma TI 99/4A, qui contenaient beaucoup de programmes amusants pour dessiner des images et animer des figures. Internet n'était pas disponible pour moi, mais il y avait même des magazines informatiques qui ciblaient les enfants, avec des programmes sur lesquels je pouvais taper et obtenir des commentaires immédiats, et des articles sur la façon de résoudre d'autres types de défis. J'aimais beaucoup une série de romans d'espionnage qui me permettait de taper et de déboguer des programmes qui faisaient partie de l'histoire. Malheureusement, je ne pense pas que ce type de ressource existe toujours, mais il existe quelques livres de programmation qui ciblent les plus jeunes, comme le livre Hello World sur Python et Land of LISP (bien que ce soit amusant pour les adultes aussi).
Je ne sais pas pour vous, mais il y a eu un moment où j'ai eu un coup de pied dans l'écriture de programmes qui font des choses très similaires à ce que vous venez de décrire. Finalement, je suis passé à des choses plus avancées. J'ai écrit quelques jeux médiocres, quelques démos qui jouaient divers sons et animations en réaction aux frappes, et quelques aides à l'étude. Quand j'avais environ 10 ou 11 ans, j'ai écrit un programme qui m'a aidé à mémoriser le tableau périodique des éléments en me questionnant à plusieurs reprises. (À l'époque, mes compétences en mémorisation étaient meilleures qu'elles ne le sont maintenant, alors j'ai presque autant tiré de la saisie des données la première fois que j'ai joué au quiz, mais le but était de progresser).
Votre père ne le sait peut-être pas, mais les livres ne sont qu'une partie du processus lorsque vous apprenez à programmer. Trouver un petit problème et essayer de le résoudre est l'autre moitié de l'équation. Trouver un livre qui vous apprend un peu à la fois et vous permet de faire quelque chose d'amusant sur la machine est l'autre moitié. Dans mon cas, ce sont les livres qui mettent l'accent sur le graphisme et l'animation qui m'ont séduit.
Enfant, mes yeux brillaient lorsque je lisais des livres sur les algorithmes de tri et les structures de données complexes, jusqu'à ce que j'aie suffisamment appris pour voir comment ils s'appliquaient aux problèmes auxquels je me souciais réellement. Tous les mots des livres que vous lirez ne seront pas tous fascinants. C'est bon. Vous y arriverez quand vous en aurez besoin; un problème que vous voudrez résoudre vous rappellera cette technique que vous ne pensiez pas intéressante il y a trois semaines, trois mois ou trois ans et vous y reviendrez, l'examinerez et la découvrirez.
Un mois n'est pas très long pour apprendre la programmation. J'écris du code sous une forme ou une autre depuis environ 30 ans, y compris pendant l'enfance, et j'apprends toujours quelque chose de nouveau chaque jour. Je suis à peu près sûr que le premier mois, j'ai eu mon premier ordinateur, j'ai passé beaucoup de temps à jouer à Munch Man et un nombre beaucoup plus restreint d'heures à essayer de comprendre les exemples de programmes dans mon livre de référence. Apprenez au rythme qui vous convient. Il n'y a pas de pression en ce moment, et c'est super.
"Visser" est ce que vous êtes censé faire lorsque vous apprenez à programmer. Les pirates (du genre Paul Graham) fouinent, essayant de comprendre comment leur système fonctionne, comment fonctionne leur langage de programmation, comment leurs outils fonctionnent. Vous essayez quelque chose, vous échouez, vous raisonnez à travers le problème auquel vous êtes confronté, et vous essayez autre chose, jusqu'à ce que quelque chose fonctionne. Ne vous en faites pas trop.
À moins que votre père ne travaille sur les mêmes livres, il ne comprend probablement pas ce que vous avez appris jusqu'à présent. Je ne m'attendrais pas à pouvoir concevoir une maison ou un gratte-ciel après avoir lu un livre sur l'architecture pendant un mois, surtout à l'adolescence.
Pour mettre les choses en perspective, au cours des quatre dernières semaines environ, j'ai travaillé dans certains coins ésotériques de la fonction Moteurs du framework Ruby on Rails framework). aujourd'hui, j'ai enfin quelque chose à montrer du point de vue de l'utilisateur. J'ai appris une tonne à cette époque et développé beaucoup de code fondamental critique qui fonctionne plutôt bien, mais c'est mon équivalent professionnel de permettre aux utilisateurs de taper certains trucs et obtenir quelque chose d'autre: pas impressionnant à première vue pour un utilisateur occasionnel, mais beaucoup de travail y a été consacré. Si quelqu'un me disait que je me trompais depuis quatre semaines, je serais assez déçu, mais je saurais aussi qu'ils n'ont que la moindre compréhension de ce qui a rendu les choses si "simples".
On dirait que dans cette situation, ton père n'est pas quelqu'un qui te donne un renforcement positif et du soutien dans ce que tu fais. Solution simple: ne l'utilisez pas pour ça.
Faites vos propres projets et faites-les parce qu'ils sont amusants, pas parce qu'il (ou quelqu'un d'autre) veut que vous les fassiez. Choisissez quelque chose qui est amusant pour vous. Vous n'avez pas besoin d'apprendre une langue ou une technologie complète à partir d'un livre. Au lieu de cela, commencez simplement à bricoler avec les choses. Au fur et à mesure que les choses deviennent faciles, vous rechercherez de nouveaux concepts/défis. Et vous vous retrouverez à vouloir lire les livres que vous trouvez aujourd'hui ennuyeux (ou du moins certaines sections).
Si vous êtes coincé et avez besoin d'aide pour coder quoi que ce soit, stackexchange est une excellente ressource comme vous l'avez déjà découvert.
Il me semble que votre père a un penchant pour les attentes irréalistes, ou peut-être avez-vous des antécédents de démarrage et de non-exécution, ou les deux. La chose importante à réaliser est que rien de tout cela importe ici, tout ce qui compte, c'est que vous appréciez ce que vous faites et que vous vous améliorez à le faire.
J'ai des moments très difficiles avec des livres qui ne m'amusent pas, je l'ai toujours fait. J'apprends mieux en regardant les autres faire des choses, en posant des questions lorsque je ne comprends pas le but de quelque chose, puis en luttant jusqu'à ce que je le comprenne. La lutte nous rend plus forts et nous donne la propriété de nos réalisations éventuelles, c'est peut-être pourquoi il est si difficile de sortir d'un utérus.
Cela étant dit, l'un des outils les plus pointus de votre boîte à outils sera la capacité de rester ouvert, de travailler de manière productive au milieu des critiques et de ne pas exclure les conseils basés sur la source. Les bons livres de programmation ont tendance à vous saisir, à vous inspirer et à vous attendre à y revenir lorsque vous frappez un mur. Sans eux, vous ferez beaucoup de choses incroyables sans d'abord comprendre précisément ce que vous faites. La programmation est un art très délibéré, je vous encourage donc à rechercher des livres écrits d'une manière facile à digérer.
Je programme professionnellement depuis un certain temps maintenant et je peux vous dire que ma satisfaction est vraiment la mienne. Mon patron ne comprend pas vraiment pourquoi les choses que j'ai écrites sont si impressionnantes, ma femme s'endort quand je lui parle de ma journée et mes amis se mettent en quatre pour éviter de me poser des questions sur mon travail. Je savoure mes victoires et l'occasion occasionnelle de les partager avec mes pairs. Votre père, dans ce cas, n'est pas l'un de vos pairs.
Continuez et continuez à vous améliorer. Habituez-vous au fait que les non-programmeurs doivent voir quelque chose de visuellement impressionnant avant d'être impressionnés. Pourquoi ne pas tenter votre chance en écrivant quelque chose comme un générateur de Mandelbrot/Julia ? Cela pourrait lui montrer le genre de progrès qu'il recherche, le faisant sortir de votre cas pendant un certain temps. Dans dix ans, vous ferez quelque chose de très similaire pour obtenir un gestionnaire non technique de votre dos afin que vous puissiez faire un vrai travail.
N'oubliez pas que vous le faites parce que vous l'appréciez.
Il ne semble pas que quelqu'un l'ait encore suggéré:
Récemment, il a commencé à me demander ce que j'en ai fait, et je lui ai montré un programme C++ que j'ai créé qui prend ce que vous tapez, puis attribue des valeurs à chaque lettre (A est la première lettre de l'alphabet pour qu'il obtienne la valeur de 1) .. et ainsi de suite. Il additionne ensuite toutes les valeurs et vous le dit. Le mot "ajouter" aurait donc une valeur de 9.
^^ Ce n'était pas très impressionnant pour lui. Il m'a crié dessus et m'a dit que tout ce que je faisais était de me défoncer. Ce n'est pas vrai. Il est extrêmement traditionnel et têtu et n'écoute rien de ce que j'avais à dire. Que dois-je lui dire?
Si vous y réfléchissez, ce programme n'est pas très impressionnant pour quelqu'un qui utilise des ordinateurs et ne sait rien de la programmation.
Montrez à votre père comment vous l'avez fait. Parcourez-le à travers le code source. Il ne le comprendra probablement pas (certainement), mais cela vous dira combien de travail vous y avez mis et combien vous comprendre, et peut-être qu'il en ressortira avec une impression plus positive de ce que vous avez réellement accompli.
Il est difficile de dire si cette question est la meilleure pour le forum Parenting ou le forum de programmation. Je crains que mes conseils ne soient pas sur la bonne voie, car je sens que l'enchevêtrement dans cette question est potentiellement un grand nombre de "problèmes" de relation père-fils.
Cela étant dit, ce sur quoi je me concentrerais, c'est la grande opportunité qui existe pour vous et votre père de vous connecter sur un sujet pour lequel vous pourriez partager une passion d'une manière ou d'une autre. Étant moi-même père et connaissant mon propre père, je sais à quel point nous voulons désespérément que nos enfants nous écoutent, suivent nos instructions et apprennent de nous. Nos enfants sont souvent poussés à faire le contraire. Donc, le fait que vous partagiez cet intérêt commun est merveilleux.
Les pères peuvent être têtus à coup sûr, mais je pense toujours que vous avez la possibilité de modifier votre propre individualité et votre choix grâce à cet exercice. Pas par défi, mais par votre propre volonté et votre ambition de bien connaître le sujet de la programmation. Personnellement, il semble que votre père vous ait plongé dans le grand bain en ce qui concerne la programmation. Certes, ce n'est peut-être pas MIPS Assembly Language ou LISP, mais quand même C++? Java? Oui. J'adore la programmation, mais les lire au début m'a peut-être découragé tous ensemble. Blague. :)
Donc ce que je demanderais c'est: qu'est-ce qui vous inspire ? Quel genre de choses voulez-vous construire? Répondez à cela, puis cherchez vos propres livres et tutoriels sur ce sujet. Venez ici et posez des questions. Construisez quelque chose. Montrez ensuite à votre père ce que vous avez construit. Dites-lui ce que vous avez appris. Remerciez-le d'être si engagé avec vous et dites-lui que vous l'appréciez. Je dis cela parce qu'en fin de compte, c'est de cela qu'il s'agit. Il veut partager quelque chose avec vous parce qu'il vous aime. Parfois, les pères ont du mal à exprimer cela de manière traditionnelle, alors nous cherchons ces façons indirectes de dire la même chose. Parfois, on craint de faire même ça. Mais n'oubliez pas que dans tout cela, il y a un désir d'être plus proche de vous.
Faites ce que vous voulez
C'est ta vie. Tu peux faire ce que tu veux. Ne laissez personne (même votre père) contrôler votre vie.
Je suppose que vous aimez plus ou moins la programmation et que vous voulez devenir un spécialiste à succès (et votre père veut, tout le monde veut). Mais la chose est, vous ne réussirez jamais à moins de savoir ce que vous faites et à moins que vous l'aimiez.
Maîtriser n'importe quel domaine est difficile. Vous ne pouvez pas faire cela uniquement sous l'influence de quelqu'un. Et personne ne sait ce que vous devriez faire mieux que vous. Vous voulez vous reposer aujourd'hui et avoir envie de jouer à des jeux toute la journée? C'est votre décision et vous en êtes responsable. Vous devez apprendre à être responsable de vos décisions et de votre vie. Être responsable de vos décisions est obligatoire pour tout spécialiste qui réussit.
Alors, que faites-vous dans cette situation? Restez ferme, n'écoutez personne et faites tout ce qui vous semble utile.
Vous avez demandé des livres. Honnêtement, vous ferez mieux de résoudre les problèmes que de lire des livres. Trouvez un puzzle ou un problème qui vous passionne. Project Euler est une excellente source, et CodeGolf peut parfois proposer des questions intéressantes. Mon premier projet de programmation était une application C++ qui a trouvé des nombres premiers. Le manuel que j'utilisais à l'époque offrait une implémentation simple comme celle-ci:
bool isPrime(int x){
int c = 1;
while(c < x){
if(x%c == 0){
return False;
}
c=c+1
/*c+=1 if compiler is set to '98 or more recent*/
}
return True;
}
ce qui est massivement inefficace. J'ai trouvé environ les 500 premiers nombres premiers avec cette fonction avant d'abandonner de dégoût devant sa lenteur. Papa et moi avons passé un excellent moment à essayer d'optimiser ci-dessus, et même s'il s'agissait d'une simple application qui n'a même pas écrit sa sortie dans un fichier, je me suis amusé et le produit résultant était cool.
Allez-vous apprendre en lisant des livres? oui, mais je ne peux pas souligner la valeur de simplement fouiner avec un langage de programmation et d'apprendre par essais et erreurs.
Si vous apprenez la programmation pour votre père, arrêtez-vous et trouvez votre propre raison de le faire. Le mien me poursuit toujours pour lui construire un système de trading automatisé à haut volume. Je suis mortellement sérieux quand je dis que vous devez trouver quelque chose vous voulez travailler parce que sinon vous abandonnerez probablement complètement la programmation parce que vous en viendrez à la voir comme une corvée et non un passe-temps ou un sport.
Essayez de lire le livre de Linus Torvalds "Just For Fun" dans lequel il raconte les origines du système d'exploitation Linux. Le titre dit tout.
Sérieusement. Allez pirater un problème. Une fois coincé, impliquez le vieil homme.
Si ton père n'apprécie pas ton travail, ce n'est pas parce qu'il est déçu. C'est un architecte, il ne sait pas à quel point certaines choses sont complexes. Essayez de lui expliquer votre code, ne serait-ce que la logique et faites-lui comprendre ce que vous avez appris en écrivant.
TL; DR
Essayez de trouver un livre qui est spécifiquement une introduction à la programmation pour les novices. Peut-être quelque chose comme Bonjour tout le monde! Programmation informatique pour enfants et autres débutants par Warren Sande.
Vous devriez également voir ce que possède votre bibliothèque. La plupart des bibliothèques devraient avoir quelques livres pour débutants.
Dans mon esprit, vous avez deux problèmes:
A MON HUMBLE AVIS:
Pour votre premier problème, vous allez simplement sur des sites comme celui-ci et posez des questions comme vous l'avez fait. Trouvez des ressources comme celles-ci https://softwareengineering.stackexchange.com/questions/62224/how-to-become-a-professional-programmer/62263#6226 . Pensez à quelque chose que vous voulez créer (un jeu, une liste de tâches, un système de gestion de collection de films, la prochaine meilleure plate-forme sociale) et commencez simplement à coder. Ou commencez par résoudre des puzzles Où puis-je trouver des puzzles et des défis de programmation?
Votre deuxième problème est plus difficile, vous devez éduquer votre père (alors qu'il ne semble pas très disposé) Pendant que vous apprenez, vous pourrez mieux lui expliquer ce qui est difficile à programmer. Vous pouvez essayer d'utiliser des métaphores comme l'explique son Qu'est-ce qu'une bonne métaphore de programmation? . Une autre astuce est que les non-programmeurs en général n'obtiennent pas la complexité d'un excellent algorithme mais sont facilement imprégnés par les interfaces à la recherche de Nice. Selon la plate-forme que vous choisissez, vous pouvez générer assez facilement de jolies interfaces pour impressionner votre père. Utilisez par exemple:
J'espère que cela t'aides.
Je voudrais juste ajouter que j'étais dans une position très similaire à un moment de ma vie, mon père ne comprenait pas vraiment ce que le renforcement positif signifiait. Mais voyant que j'étais persistant et résilient envers sa désapprobation parfois dure, j'ai réussi à y rester. Une vingtaine d'années plus tard, la relation avec mon père avait beaucoup changé, elle s'était améliorée mais les subtiles nuances de l'époque étaient toujours là.
C'est juste une période difficile de votre vie et l'important ici est que vous vous amusez à faire cela plus que toute autre chose.
En ce qui concerne le langage de programmation, je conviens que vous devriez vous concentrer sur un seul.
En fait, je recommande celui que vous n'avez pas encore: Python. Python est un langage assez facile à apprendre, mais aussi assez puissant. C++, Java, PHP et Javascript sont tous beaucoup plus complexes.
Il y a plusieurs livres de Manning qui enseignent la programmation en utilisant Python. Je considérerais fortement "Hello, World!", Même s'il s'adresse à un groupe démographique légèrement plus jeune.
Si vous voulez continuer avec C++, alors je recommande ce livre:
Bien que ce soit plus une "référence" et moins un "tutoriel". Je ne suis pas au courant d'un bon tutoriel C++ - il y a une tonne de livres "apprenez-vous rapidement en C++", mais je ne pense pas qu'ils soient très utiles. (C++ est un langage assez difficile à apprendre en premier; la plupart des programmeurs C++ ont commencé avec un langage plus facile).
À propos de C++, Java, PHP, JavaScript et Android (afin que vous puissiez choisir entre eux, car essayer de tout maîtriser à la fois est susceptible d'échouer):
Dans tous les cas, ce qui est vraiment important, c'est que vous trouviez cela agréable. Que vous créez des choses, vous pensez que c'est cool. Cela résout certains de vos besoins ou est amusant à jouer. La programmation s'adresse à ceux qui l'apprécient. Vous avez besoin d'un ensemble d'outils qui vous permet de créer des applications avec quelques lignes de code. JavaScript/CoffeeScript peut être un bon point de départ.
Personnellement, je voudrais vous montrer Ruby. Cela m'a beaucoup appris sur la programmation et je regrette de ne pas l'avoir connue lorsque j'ai commencé à programmer. Fondamentalement, il existe deux livres formidables (tous deux disponibles gratuitement):
Parallèlement à cela, je vous suggère de vérifier chaussures . C'est un excellent outil avec une aide intégrée impressionnante, y compris des références, des tutoriels et des démos. Vous aurez vos premières fonctionnalités en quelques jours.
Et, probablement pour plus tard, je voudrais vous signaler haXe . Je pense que c'est une excellente langue (ma langue de choix), et il y a une toute nouvelle guide du débutant , qui vient d'être publiée récemment. Cependant haXe ne dispose pas d'outils disponibles, ce qui rend la création d'applications aussi simple qu'avec JavaScript et Ruby. Par conséquent, vous pourriez trouver fastidieux, voire frustrant au départ, ce qui va à l'encontre du but recherché.
Une chose non mentionnée dans les autres réponses:
Comme vous le savez peut-être, être un enfant (j'ai 14 ans) et se faire dire d'apprendre la programmation à partir de livres ennuyeux n'est pas la chose la plus facile. Je suis toujours distrait .. Je lui ai dit auparavant que je n'avais pas besoin d'acheter de livres et que je pouvais simplement regarder des tutoriels en ligne .. mais non, il est tellement démodé. Il me laisse seulement utiliser les livres.
Vous devez certainement travailler sur cette partie. Internet est l'outil crucial de tout programmeur et vous devez travailler avec lui.
Premièrement, la programmation concerne la résolution de problèmes. Lorsque vous ne savez pas comment faire X dans la langue XYZ, vous le recherchez sur Google et recherchez des solutions. * Trouver rapidement des solutions i * s aussi important pour un programmeur que d'utiliser un clavier.
Deuxièmement, une autre compétence cruciale est d'utiliser la documentation . Les livres sont généralement comme des tutoriels - ils offrent des conseils, mais ils ne vous offrent pas une connaissance complète - et c'est là que la documentation est utile. Par exemple: vous programmez en C++, vous avez un mois d'expérience. Tôt ou tard (je dirais très bientôt), vous devrez utiliser la bibliothèque standard ... ou peut-être l'avez-vous déjà utilisée? Si c'est le cas, c'est bon signe, votre livre n'est probablement pas mauvais dans ce cas. Quoi qu'il en soit, il sera utile de savoir ce qui est déjà présent dans les bibliothèques standard C++ et ce qui ne l'est pas. Pour cela, il est utile de garder une référence comme http://cplusplus.com/ ouverte tout le temps pendant la programmation.
Internet est crucial pour le codage, et encore plus crucial pour apprendre à coder. Si votre père ne le comprend pas et attend de vous que vous appreniez la programmation en utilisant les livres uniquement, alors son approche est contre-productive et vous fait progresser plus lentement (et peut-être avoir de mauvaises habitudes).
L'apport de votre père n'est pas propice à votre processus d'apprentissage. Oui, il existe un certain nombre de façons de passer par la programmation d'apprentissage comme d'autres l'ont mentionné. Cependant, vous avez montré des progrès phénoménaux en C++ à mon avis. Votre programme d'ajout aurait été quelque chose que je pouvais à peine gérer après mon premier semestre en programmation Java.
Vous devez vous attaquer à deux choses si vous voulez continuer:
1) Gérez votre père.
Regardez, chaque père a des rêves extravagants pour ses enfants. Cependant, leurs attentes peuvent être très élevées et finiront par conduire à quelque chose qui n'est même pas possible dans certains contes de fées. Je recommanderais de faire venir quelqu'un d'extérieur dans la situation pour mieux évaluer vos progrès et ramener votre père sur terre. Vous pouvez essayer de parler à votre famille/amis que vous connaissez avec une expérience en programmation ou même des gens de cette communauté peuvent lui envoyer un courriel au nom de nos propres expériences et connaissances. C'est l'étape la plus importante de toutes, car si votre père ne se refroidit pas, vous perdrez tout intérêt ensemble.
2) Trouvez un foyer.
Il n'est pas propice à tout apprendre à la fois. Choisissez une langue et respectez-la. Lorsque vous lisez un livre sur une langue spécifique. Suivre les exemples du livre textuellement n'est pas la voie à suivre exactement. La régurgitation est un processus d'apprentissage pour certains, mais pas pour tous (surtout pour moi). Il est important de l'attaquer sous autant d'angles que vous le pouvez et ce sont des angles qui vous intéressent. votre propre désir de programmation (créer des jeux? concevoir des applications? tester? ect, ect). Vous pouvez également vous lancer dans une aventure personnelle en créant un programme. Déterminez ce que vous voulez faire, peu importe ce que vous savez en ce moment, puis effectuez des recherches lors de la programmation. Au fil du temps, vous voudrez éventuellement essayer d'autres langages de programmation liés ou non. Vous pouvez également réaliser que vous ne voulez pas faire de programmation tous ensemble.
Surtout, souvenez-vous que ce n'est pas le résultat final qui compte, c'est le voyage. N'oubliez pas de vous amuser!
Je pense que vous devriez mettre de côté les choses plus formelles pour l'instant, et jeter un oeil à Scratch - http://scratch.mit.edu/ - il vous permet de traiter la plupart des constructions de programmation de manière plus facile façon tout en vous apprenant les trucs dont vous avez besoin comme des boucles, etc.
Il permet également un multithreading sans faille qui est peut-être la partie la plus difficile à faire à la main, et qui est nécessaire pour donner des résultats intéressants dans le monde d'aujourd'hui.
Ne le sous-estimez pas car il utilise des couleurs et une approche lego brick pour la programmation. Vous pouvez en faire beaucoup, sans vous perdre dans les détails techniques.
Demandez à votre père s'il pourrait concevoir un immeuble de grande hauteur à votre âge. Voilà ce qu'est la programmation. Il faut du temps pour apprendre, car il y a tellement de choses à apprendre. C'est comme faire du vélo, seulement vous avez mille pédales, engrenages, poignées, boutons, et vous ne pouvez pas choisir et choisir lequel utiliser à un moment donné. Il faut de la pratique.
Je ne doute pas de toi. Vous avez essayé le C++ très tôt dans votre objectif de devenir programmeur. C'est impressionnant de moi.
Accrochez-vous et bonne chance dans votre carrière de programmeur!
Vous avez reçu de bons commentaires et conseils sur les aspects de programmation de votre situation. Mais je veux ajouter quelque chose d'un point de vue différent ...
J'ai l'impression que vous ressentez des pensées négatives à propos de votre père - il a mis la pression sur vous et a fait des commentaires qui vous ont causé du chagrin et de l'inquiétude - et qui ont retiré le plaisir de la programmation. C'est dommage et je pense que la plupart des gens ici conviendraient que la programmation est amusante - je programme depuis plus de trente ans et je la trouve toujours amusante.
Mais je pense que ton père est vraiment de ton côté. Il a fait ce qu'il pensait être juste, il essayait d'aider, il vous a acheté les livres pour vous donner un bon départ. Mais il s'est trompé (et je parle en tant que papa, nous nous trompons parfois!). Pour lui, les livres sont probablement là où il a commencé dans sa carrière d'architecte (je suppose que cela a commencé avant qu'Internet et le www soient couramment disponibles, voire pas du tout). Donc, pour lui, les livres sont votre point de départ.
Donc, en supposant que votre père est de votre côté (et je suis certain qu'il l'est), le problème est qu'il ne comprend tout simplement pas à quel point cela peut être difficile lorsque vous commencez à programmer - alors montrez-lui toutes les réponses qu'il a été affiché ici - je suis sûr que ton père est un bon gars et il comprendra et il vous soutiendra.
Et bonne chance avec votre programmation - on dirait que vous prenez un bon départ.
Je sais qu'il y a déjà beaucoup de réponses. Mais je n'ai pas vu ce conseil: essayez de demander à votre père de vous aider. Essayez de choisir quelque chose de poilu dans le livre C++, que vous pouvez comprendre et demandez-lui de vous aider.
Donnez-lui le livre et laissez-le ramper en C++. Je suis sûr que cela lui fera comprendre à quel point il est difficile de coder.
Essayez de transformer cette situation pour votre propre bien. Acceptez simplement que ce que vous avez accompli jusqu'à présent ne suffit pas et essayez de faire mieux ... .
Si seulement je travaillais deux fois plus dur quand j'avais ton âge ...
C'est pas mal à attendre dans un mois. Vous devriez plutôt essayer de vous concentrer sur l'apprentissage d'une langue ou d'un paradigme à la fois, sinon cela pourrait devenir écrasant. Trop se faire bousculer en même temps est aussi un bon moyen de le désactiver. Vous pouvez mieux apprendre en travaillant sur un programme spécifique qui vous intéresse. Si Android téléphones est l'endroit où vous vous intéressez, vous êtes probablement mieux d'aller avec Java plutôt que C++. Il peut s'attendre à quelque chose d'interface utilisateur whiz-bang) comme un client typique le ferait donc ne vous découragez pas par sa déception :)
Certains livres Head First peuvent aider à rendre l'apprentissage un peu moins sec si vous êtes contraint de vous en tenir aux livres.
Il n'a aucune idée du processus de pencher pour programmer. Vous pouvez lire tous ces livres et ne pas pouvoir écrire quoi que ce soit de décent, car ce qui prend le plus de temps, c'est la véritable compréhension de ce que vous pouvez faire et comment l'aborder.
Vous avez dit à votre père que vous aimez la programmation - ne le laissez pas le gâcher pour vous. Et certainement n'essayez pas d'apprendre 5 langages de programmation, du moins pas maintenant. Stick avec un relativement simple comme Java, qui peut être transféré aux autres une fois que vous l'avez maîtrisé.
En ce qui concerne les livres, au fait, c'est la bonne façon de le faire, parce que vous apprenez la langue de la bonne manière. Suivre des tutoriels conduit souvent à prendre de mauvaises habitudes, etc.
Bonne chance; et faites-lui savoir que vous le faites correctement, les progrès sont lents, mais vous apprenez tellement de choses pendant que vous le faites.
Je pense que beaucoup de programmeurs âgés de 25 à 35 ans ont grandi en jouant à Nintendo et à Sega. Une bonne partie d'entre eux/nous avons fait la transition mentale de la raison pour laquelle jouer à un jeu quand vous pouvez créer le vôtre. C'est une motivation très égoïste qui peut vous conduire à être un meilleur programmeur. C'est un début. Plus tard dans la vie, vous pourriez passer de l'écriture de jeux vidéo (problèmes virtuels) à des jeux avec des enjeux plus élevés (problèmes du monde réel). Comme cette prescription pour ce patient ne va pas interagir négativement avec un autre médicament prescrit, ces camions peuvent-ils effectuer le plus de livraisons avec le moins de gaz afin de réduire la pollution, ou comment puis-je m'assurer que l'achat de ce stock achètera au prix que je veux quand il y a des milliers d'autres l'achetant en même temps. Je pense que votre père serait impressionné par votre résolution de ces problèmes du monde réel, mais il doit comprendre que vous devez faire de petits pas pour y arriver.
L'architecture est enracinée dans le monde physique, que vous apprenez depuis votre naissance. Pour un étudiant en architecture, jouer avec des legos serait une perte de temps. Votre père suppose que puisque vous connaissez les mathématiques, vous connaissez les principes fondamentaux et que vous devriez pouvoir commencer à produire des choses. Eh bien, ce n'est pas vrai. Il ne connaît pas la première chose de la programmation, car il ne se rend même pas compte que ce n'est pas une branche des mathématiques .
La programmation est un nouveau monde. La meilleure façon de devenir un expert est de l'apprendre comme vous avez appris le monde physique: immergez-vous et expérimentez. Dans un mot, jouer. Il est temps de lego.
À titre de comparaison, considérons les astronautes. Eux aussi ont un nouveau monde pour lequel ils ne sont absolument pas préparés. Ils doivent commencer par les notions de base comme comment se déplacer dans la pièce.
Dans une prochaine étape, je suggère de créer un jeu où l'ordinateur choisit un nombre aléatoire, et vous essayez de le deviner, et il vous indique si vous devinez trop élevé ou trop bas.
Essayez également de nombreuses langues différentes! Pas tous à la fois, mais peut-être pendant une semaine à la fois.
Lorsque vous avez acquis de l'expérience, créer un jeu vidéo à part entière est l'un des plus grands défis que vous puissiez relever en tant que programmeur compagnon. Les jeux vidéo touchent presque tous les coins de notre discipline, et en créer un est un excellent moyen de développer vos compétences. C'est également un endroit idéal pour expérimenter et apprendre à des niveaux de compétence de plus en plus élevés.
Prenez votre temps pour apprendre les langages de programmation, plus vous vous entraînez, plus vous vous lancerez dans la programmation, cette fois, vous avez créé un programme très simple qui est assez mignon pour un débutant, mais au fur et à mesure de votre progression, assurez-vous de créer un bon programme qui pourrait être utilisé par ton père, eh bien, si tu me demandes c'est comme ça que j'ai aidé mon père dans son travail.
Ayez juste un mot avec votre père et expliquez-lui les choses et je suis sûr qu'il comprendra vraiment et je suis sûr qu'un jour vous serez un excellent développeur.
J'étudie en tant qu'ingénieur logiciel et le progrès de l'apprentissage de la programmation dans mon éducation a été plus que la simple lecture d'un livre.
Tout d'abord, je vous recommanderais d'apprendre le C, car il s'agit d'un langage simple et de nombreux autres langages (tels que C++, objective-c) sont construits sur C.La façon dont nous l'avons fait était que nous devions acheter une micropuce ( dans notre cas, un Atmel Mega16 avec un kit STK 500, qui est juste une carte avec des LED et des boutons), puis nous avons juste joué avec, programmé des programmes pour le rendre bip et bop. C'est plus amusant que de simplement lire et écrire les programmes Bonjour du monde IMO.
Lorsque C devient une promenade dans le parc pour vous, passez à C++ et à la programmation orientée objet (POO). OOP est le concept clé dans de nombreux langages et façons de penser la programmation et est donc un must si vous êtes sérieux avec votre programmation. Assurez-vous de comprendre la théorie derrière OOP avant de plonger dedans - sinon ce pourrait être un processus difficile :-)
Enfin, je vous recommanderai d'étudier différents types de données, tels que les piles, les files d'attente, les tas, etc., qui sont très utiles à comprendre lorsque vous programmez et lisez des informations sur de nouveaux langages.
Bonne chance mon ami!
Ne vous plaignez pas, si vous le faites, vous deviendrez trop confiant et perdrez votre temps. J'ai un père qui ne croit pas en son fils, j'étais en colère contre lui avant mais pas maintenant. Si ce n'est pas à cause de ses attentes élevées, je serai probablement mendiant aujourd'hui. Si vous aimez vraiment apprendre la programmation (qui ne l'aime pas), continuez à apprendre, ne vous forcez pas. Le premier langage de programmation est vraiment la partie la plus difficile pour un programmeur, une fois que vous l'aurez appris, d'autres langages de programmation seront faciles à apprendre.
Il n'y a aucun problème et allez d'abord lire C++. Parce que quand vous lisez celui-ci, vous trouvez un intérêt à développer votre esprit pour un nouveau.
vous dites que vous avez 5 livres non, ils sont différents les uns des autres.
C++ et Java est un livre de base, donc lisez-le d'abord.
livre php pour le développement web et Android livre pour le développement d'applications mobiles pour Android mobile (il a besoin de la bonne connaissance de C++ et Java si vous avez besoin de lire ces livres).
Merci
C++ comme première langue? Sérieux? Impressionnant ... Et votre programme est un joli problème ... Et le vissage fait partie du travail - vous grattez un programme de base (visant juste le problème à résoudre) et après cela nous commençons à le perfectionner (gestion des exceptions, refactoring) , etc).
Même lorsque vous avez un système plus gros, vous avez parfois besoin d'un petit projet pour vous assurer que la solution est la bonne et appliquer l'algorithme pour être un système plus gros.
Il y a quelques cours d'informatique enregistrés de quelques universités qui valent la peine d'être regardés. Ils vous aident à apprendre l'informatique , pas la programmation, mais ils valent quand même le détour. MIT, princeton, stanford pour n'en nommer que quelques-uns.
J'en ai vu un de stanford et un de MIT qui étaient tous les deux vraiment bons.
http://see.stanford.edu/see/lecturelist.aspx?coll=2d712634-2bf1-4b55-9a3a-ca9d470755ee http://ocw.mit.edu/courses/electrical-engineering- et-informatique-6-002-circuits-et-electronique-printemps-2007 /
Puisque vous débutez, vous pouvez plutôt essayer le cours d'introduction. http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/
Je vous conseillerais de vous concentrer sur une seule langue, comme l'a dit une affiche précédente, mais je choisirais Javascript.
Il est relativement facile de créer une page Web avec des graphiques, puis d'utiliser des trucs jQuery pour déplacer des choses, les faire fondre/transiter, etc. Commencez avec les exemples de la documentation JQuery et voyez si vous pouvez ajouter des bits ou les combiner ensemble.
Voir aussi "JavaScript - Les bonnes pièces" de Douglas Crockford.
Vous pouvez exécuter les résultats sur n'importe quel navigateur Web ou utiliser PhoneGap pour les transformer en application mobile pour Android, iPhone, Windows Mobile, etc.
Si vous souhaitez vous lancer dans la programmation de serveur noyau dur, node.js vous permet de le faire également en Javascript, mais les compétences seront principalement transférables dans d'autres langues.
Voulez-vous vraiment vous amuser développer/programmer?
Voici quelques réflexions que je donnerais à mon propre fils:
et après avoir commencé et vous appréciez vraiment ce que vous voulez, eh bien, à ce moment-là, vous savez exactement ce que vous pouvez faire et chaque rêve peut être vrai :)
Je vous suggère de regarder ces vidéos sur youtube. Ce sont des conférences du professeur Mehran Sahami pour la classe 106a d'informatique de Stanford - "Méthodologie de programmation". Je pense que si vous êtes à un point où vous avez compris comment créer votre propre programme, et au fait, c'est impressionnant, peu importe ce que dit votre père, vous pourrez suivre ces vidéos.
Pour moi, je programme pour m'impressionner plus que les autres. Je prête plus d'attention à la conception du code qu'à l'application elle-même, ce qui signifie que lorsque j'essaie de montrer aux autres ce que j'ai fait, ils ne semblent jamais très impressionnés. Je programme depuis 3 ans, et c'est toujours la même chose.
Par exemple, un de mes programmes, à l'extérieur, ressemble à quelque chose qui compte de 0 à 100, peut-être en sautant quelques chiffres et en répétant quelques-uns. Mais c'est bien plus que ça. Le code est ce qui est si beau. Fondamentalement, c'est ce que j'aime appeler un runloop, mais il y a quelques autres termes pour cela. Vous planifiez une fonction pour s'exécuter, disons, 10 secondes, et après 10 secondes, cette fonction s'exécute. Et vous pouvez également exécuter une fonction toutes les 10 secondes. Ce qui m'a amené à une idée: je pourrais créer une classe qui, lorsque vous lui attribuez une valeur, se transforme en douceur vers cette valeur. L'animation, en gros. Automatiquement. Aucune intervention du programmeur. Et c'était ça le programme. Le nombre de lignes dans ma fonction main () était peut-être de 6 lignes environ. Tous les autres codes avaient tellement d'autres utilisations, je pouvais à peine l'appeler une partie de ce seul programme. Et c'était ce qui était beau pour moi. Je l'ai montré à l'ami de mon père, qui fait de l'AQ, et il ne semblait pas très excité à ce sujet.
Fondamentalement, ce que je dis, c'est que vous ne devriez pas laisser les opinions des autres vous déprécier. Ils pourraient tout simplement ne pas voir la puissance et la beauté de tout cela. Programmez pour votre propre plaisir, et vous serez heureux, et vous voudrez en savoir plus, et en retour, le prochain programme que vous faites pourrait impressionner beaucoup de gens.
EDIT: Félicitations pour devenir programmeur. Pour beaucoup de gens, il est très difficile de faire la transition entre l'utilisation des applications et leur création. Il semble que vous ayez réussi cette transition, et vous devriez être fier de vous. Ses gens avec l'état d'esprit de votre père qui ne sera jamais capable de programmer. La programmation est bien plus que de dire à un ordinateur de faire ceci et cela.
Si vous voulez vraiment apprendre à penser en Java ou C++, alors téléchargez les versions gratuites de Penser en Java et Penser en C++ livres (2 volumes) de Bruce Eckel. Non seulement ils vous apprennent une langue, mais ils sont parfaits pour "avoir" l'idée de l'orientation d'objet. Eckel a un excellent moyen d'expliquer les choses et donne de nombreux exemples de code. Bruce's les livres vous apprennent vraiment à penser, ils ne vous apprennent pas seulement les détails de la langue que vous oublierez en une semaine.
Pour être honnête, je pense que vous pourriez vous amuser beaucoup plus avec Ruby et Why's Poignant Guide et Shoes et les autres trucs) que @ back2dos a recommandé ci-dessus. Ruby est beaucoup plus facile à apprendre et, en même temps, c'est un langage très pratique.
J'aimerais avoir dix minutes avec ton père pour lui dire qu'il devrait être fier d'avoir un enfant avec suffisamment d'initiative pour vouloir apprendre tout de tout ça! Je le regarderais droit dans les yeux et lui dirais de vous donner un sérieux crédit supplémentaire!