J'ai abandonné la programmation il y a un peu plus d'un an quand j'ai continué à frapper ce mur. Je revisite le sujet car je veux créer une application Android de base. Mais je pense que mes connaissances limitées ne suffiront pas.
Voici mon problème.
J'ai lu quelques livres et regardé des didacticiels vidéo sur C # / Java, suivi des exemples, puis terminé le livre. En fin de compte, ils semblent toujours me laisser perplexe quant à ce que je dois faire ensuite.
Quel moyen, ils vous enseignent à partir de votre application de base "bonjour le monde" jusqu'aux ifs et aux tableaux, puis s'attendent apparemment à ce que vous sachiez comment sortir dans le monde du codage et créer quoi que ce soit.
Est-ce que j'ai râté quelque chose? Je sais que ce sont les éléments constitutifs de tous les programmes, mais les livres que je lis ne me montrent jamais vraiment quoi faire ensuite.
La réponse facile, je suppose, serait de «commencer à coder», mais où? J'ai lu "Head First Java" par exemple; jusqu'à la partie où ils vous disent de prendre tout ce que vous avez appris et de créer un jeu de course de chiens ....
"essayez de ne pas tricher et de regarder le code source fourni, vous devriez être en mesure de le faire maintenant" _ ce n'est pas une citation exacte mais en gros c'est ce qu'on m'a dit .......
Il y a une demi-heure, ils expliquaient juste comment faire des tableaux, puis sans aucune théorie, je suis censé créer un jeu de travail?
La raison pour laquelle je pose cette question est parce que je crains que ce soit tout ce que je suis censé savoir pour au moins commencer à coder, mais j'ai l'impression d'avoir reçu une petite boîte à outils et qu'on m'a dit de construire un gratte-ciel.
Merci pour tout conseil
la source
Réponses:
En fait non. Ils ne le sont pas. Les éléments constitutifs de tous les programmes sont l'abstraction et la réutilisation. Beaucoup de langages de programmation n'ont même pas de tableaux ou de
if
s ou de boucles.Il existe d'excellents livres qui vous apprennent à programmer par opposition au fonctionnement d'un langage de programmation particulier, qui semble être les livres que vous avez lus.
Comment concevoir des programmes aka HtDP est un tel livre. Il vous apprend bien à concevoir des programmes. Et il le fait en vous donnant des recettes à suivre pour analyser les problèmes, les résoudre, les transformer en algorithmes et plus loin en programmes de travail.
Notez que "recette" est fondamentalement un autre mot pour "programme", donc en d'autres termes, le livre vous apprend des programmes pour les humains à exécuter dans leur tête afin de générer des programmes à exécuter par des ordinateurs. À quel point cela est cool? :-)
Les auteurs travaillent actuellement sur un projet de deuxième édition de HtDP , que vous voudrez peut-être lire à la place de la première édition. Le matériel sur la programmation impérative a été supprimé et va être couvert dans le deuxième volume non encore écrit How to Design Components , mais vous pouvez lire ces chapitres manquants de la première édition.
Notez que HtDP ne suppose aucune connaissance en programmation et s'adresse aux élèves du secondaire. Mais ne vous laissez pas arrêter: cela signifie simplement que vous serez probablement en mesure de terminer certains des premiers chapitres plus rapidement, mais je ne pense pas que vous vous ennuierez.
Les abstractions concrètes sont également une bonne lecture le long de veines similaires. Comme HtDP, il ne suppose aucune connaissance en programmation.
Un autre livre que vous pourriez entendre mentionné est Structure et interprétation des programmes informatiques aka SICP. C'est l'un des meilleurs livres de programmation jamais écrit, et encore une fois, il ne suppose aucune connaissance en programmation.
Il est cependant conçu pour compléter les débutants qui étudient au MIT . Ainsi, alors qu'il ne suppose aucune connaissance de programmation, il ne suppose pas mal de domaine des connaissances, par exemple dans les domaines du génie électrique, la physique et les mathématiques. Remarque: ceux-ci n'ont rien à voir avec les concepts enseignés, ils sont juste nécessaires pour comprendre les exercices et les exemples . Il serait donc préférable de lire d'abord HtDP ou Concrete Abstractions, puis de lire SICP.
la source
if
déclaration ou une sorte deloop
: Il ne serait pas complet sans eux.loop
instructions et ils sont Turing complets.Eh bien, vous n'êtes pas dans une situation unique. La plupart des livres les livres pour débutants en langage de programmation ont tendance à se concentrer davantage sur les blocs de construction de base du langage et c'est une bonne chose. Cependant, comme cela vous est arrivé, à la fin, nous nous retrouvons dans une situation où nous avons appris toutes les constructions que la langue a à offrir mais ne pouvons pas les appliquer pour résoudre certains problèmes pratiques. En bref, l'écart entre les exemples textuels et les programmes pratiques ne peut être comblé que lorsque vous essayez de jouer avec le code (comme Telastyn) l'a dit. Voici ce que je fais généralement en apprenant de nouvelles choses:
En fin de compte, il s'agit de pratique et de recherche qui vous aideront à améliorer vos compétences en programmation et, en fin de compte, à faire de vous un architecte de nombreux gratte-ciel.
la source
Voir ceci pour C #. C'est très complet: http://www.programmersheaven.com/ebooks/csharp_ebook.pdf Je l'ai utilisé moi-même, il y a à peine six mois. J'utilise le compilateur #Develop avec lui pour les exemples. Je ne peux pas vous aider beaucoup avec Java car je ne l'ai presque jamais utilisé.
Quand vient le temps de programmer, beaucoup de gens ne réalisent pas que vous utilisez généralement un SDK ou un framework supplémentaire pour ce que vous concevez. Ne vous attendez donc pas à passer immédiatement de Java ou C # à la programmation téléphonique, car vous aurez probablement besoin d'un bon cadre intermédiaire, et les courbes d'apprentissage pour celles-ci peuvent être tout aussi ennuyeuses que les courbes d'apprentissage pour les langages de programmation eux-mêmes. Bien que le didacticiel C # que j'ai publié ne couvre que C #, de nombreux concepts qu'il couvre sont vus dans d'autres langages orientés objet, comme Java.
Edit: Le scénario que vous décrivez est, malheureusement, l'itinéraire suivi par de nombreux didacticiels. Vous n'avez pas à suivre un tel tutoriel, et si cela fonctionne contre la façon dont vous apprenez, il est probablement préférable d'essayer d'en choisir un autre (je n'en connais pas, mais Google le fait probablement). Mais juste pour être sûr, vérifiez si l'auteur de ce livre que vous décrivez a expliqué le code ligne par ligne. Ne vous inquiétez pas de votre intelligence, seul un prodige peut passer directement d'un livre à un jeu de travail. N'oubliez pas que les didacticiels ne sont en aucun cas la mesure standard de la capacité, alors optez pour ce qui vous apprend le mieux et ne vous découragez pas!
la source
Oui, cela devrait être suffisant pour créer des programmes super basiques. À ce stade, vous essayez de créer un programme légèrement plus complexe que ce que les livres vous ont fait. Lorsque vous avez besoin de faire quelque chose de spécifique et que vous ne savez pas comment, même avec un peu de travail, vous recherchez sur Internet ou demandez à un enseignant / mentor. Cela conduira à des fonctionnalités plus avancées (et assez souvent à une impasse puisque vous avez choisi sans le savoir quelque chose de bien plus complexe que ce que vous pouvez faire).
Aucun livre ne vous apprendra comment résoudre des problèmes.
Aucun livre ne va expliquer comment concevoir des programmes - cela vient avec la pratique. Aucun livre ne vous apprendra à faire une application non triviale - il y a juste trop de nuances; vous apprendrez à construire cette implémentation et non des choses comme ça.
La meilleure façon d'apprendre à ce stade est de barboter. Pour jouer avec le code pour créer quelque chose. Tout comme les artistes commencent souvent à gribouiller de petits morceaux qui deviennent progressivement plus sophistiqués et plus beaux, les programmeurs ont besoin de cette progression exploratoire.
la source
Je ne me souviens pas vraiment si j'ai utilisé un livre pour entrer dans la programmation, mais je suppose qu'à cette époque, il s'agissait davantage d'un manuel de référence de syntaxe que d'un livre de didacticiel. Il m'a appris ce que le langage de programmation pouvait faire, mais pas comment construire une vraie application avec lui.
Heureusement, il y avait quelques exemples dans le livre que j'avais l'habitude de taper (oui, aucun exemple de code source téléchargeable à ce moment-là), puis j'ai essayé de comprendre comment cela fonctionnait. Ce n'est pas la façon optimale d'apprendre la programmation, mais pour moi c'était amusant à l'époque.
Ce que je recommanderais, c'est que vous vous fixiez un objectif comme " Je veux construire une application Javascript qui dessine un cercle rebondissant ", puis utilisez vos connaissances déjà acquises pour démarrer et rechercher tout le reste dans la langue SDK / documentation et / ou ici sur SO.
C'est l'approche que j'utilise lorsque j'essaie de sauter dans une nouvelle langue et d'apprendre mes premiers pas. La plupart des livres que j'ai lus ces derniers jours n'étaient pas satisfaits car j'avais le même sentiment de manquer quelque chose d'important . Mais heureusement, nous avons les internets maintenant, donc quelle que soit la langue que vous souhaitez apprendre, vous pouvez trouver un exemple de code source sur Internet et l'utiliser pour continuer votre apprentissage.
edit Bien sûr, quelques livres plus généraux vous apprenant comment concevoir une application ou quel processus (SCRUM, XP, V-Modell) suivre est un bon ajout à la connaissance pure du langage.
la source
Je suis d'accord avec Jörg que vous devriez également lire quelques livres généraux sur les concepts de programmation plutôt que d'apprendre trop de détails sur une langue particulière à ce stade. En ce qui concerne le livre Comment concevoir des programmes , il est utilisé comme référence dans ce cours , ce qui pourrait vous intéresser.
Sinon, un autre outil que d'autres n'ont pas mentionné est de parler beaucoup avec d'autres développeurs . Je me souviens que pour moi, l'un des moyens les plus efficaces d'apprendre à programmer était de passer de nombreuses heures à discuter avec des collègues ou d'autres programmeurs des aspects de la programmation, des langages de programmation, des techniques ou des problèmes concrets auxquels j'étais confronté à ce moment particulier. La transmission orale des connaissances peut encore être l'un des moyens les plus efficaces pour acquérir de nouvelles compétences.
la source
Je suggérerais de trouver des projets open source et de les transformer en bacs à sable personnels. Modifiez les comportements existants, ajoutez de nouveaux comportements et supprimez-en également. Jouez, mettez en œuvre vos propres idées et "et si j'essayais cela".
Je ne vous conseille pas de convertir quelqu'un d'autre projet open source et de le revendiquer.
Je dis regarder d'autres projets de travail comme un moyen de vous apprendre à passer aux prochaines étapes. Il existe de nombreux sites disponibles avec du code opensource à télécharger. Voici quelques-uns qui me viennent à l'esprit: CodePlex CodeProject
la source
C'est la vie des codeurs. Vous ne connaissez pas une technologie, mais vous développez un «monde bonjour» et vous devenez un expert. Dans les entreprises (la vraie vie), c'est comme ça que ça marche. Bonne chance
la source