Pourquoi les gens utilisent-ils des livres de programmation? [fermé]

94

Je trouve que lorsque quelqu'un demande quel est le meilleur moyen d'apprendre à programmer, on lui fournit généralement des références à une multitude de textes écrits par différents auteurs.

Cependant, je ne crois pas que beaucoup de gens apprennent à programmer à partir de livres. Je trouve qu'ils sont généralement confrontés à un défi et utilisent ensuite la programmation comme un outil pour le surmonter.

Par exemple, je me suis lancé dans la programmation parce que je voulais démarrer un serveur pour un jeu auquel je jouais. J'ai donc cherché sur Google et lu le support de ce serveur. Maintenant, je suis un ingénieur en logiciel employé, utilisant uniquement les compétences que j'ai développées ( et ensuite développé) en codant des scripts C # pour un paquet de serveur peu populaire.

Ma question est donc la suivante: les gens trouvent-ils généralement plus facile d'apprendre de ces livres? Je sais que j'en ai examiné quelques-unes et les ai trouvées beaucoup trop sèches pour m'encourager à la terminer.

Alex Hope O'Connor
la source
3
Les livres ne sont pas primaires ici, mais un grand avantage si vous lisez des livres, ce ne sont que des livres qui vous intéressent.
cnd
42
Parlez-vous d’apprendre à programmer depuis le début, ou de choses plus avancées? Il y a une énorme différence entre 'Learn C ++ in 24h' et un livre décent sur des sujets théoriques plus avancés - vous ne trouverez pas le travail de Knuth en ligne.
André Paramés
78
Il semble que vous n'ayez jamais rencontré un bon livre de programmation.
Jaywalker
46
C'est métaphorique à la question, "pourquoi aller à l'école?"
Jodrell
8
Je n'ai jamais trouvé que les livres étaient un outil d'apprentissage primaire, mais j'en ai une tonne et je les recommande tout le temps. Il est évident que vous n’apprenez que par la pratique. Cependant, les livres sont la source des idées et peuvent être utilisés comme référence facilement disponible. Nous ne lisons pas / ne recommandons pas les livres à apprendre. Nous lisons / recommandons les livres pour partager les idées qu’ils contiennent.
Joel Etherton

Réponses:

229

Voici comment j'apprends, d'une manière générale:

  • Achète un livre
  • Ne le lisez pas, mais sachez où tout se trouve.
  • Trouvez un projet d'animal de compagnie sur lequel travailler
  • Apprendre de l'expérience, mais utiliser le livre comme référence
  • Là où le livre échoue, il y a toujours Google

Remarque: le troisième point vient parfois en premier.

Edit : Pour répondre à la question "Pourquoi?"

Google est formidable pour savoir comment faire quelque chose, mais pas pour découvrir ce que vous ne savez pas. Pourquoi voudriez-vous jamais google "délégués C #", si vous ne saviez pas d'abord que C # a un concept appelé délégués et qu'il peut être utile de résoudre un problème sur lequel vous travaillez?

En outre, le rapport signal sur bruit peut parfois être un peu élevé. Si vous avez une idée approximative de la procédure à suivre, vous pouvez facilement vérifier si l'article que vous lisez est correct. Mais si vous n'avez aucune idée ... vous pouvez vous retrouver dans un plus grand désordre.

pdr
la source
19
Excellente réponse, particulièrement l'édition en réponse à "pourquoi". J'ai récemment commencé à apprendre ASP.NET en utilisant Google. J'avais utilisé C # pour .NET 2.0 pendant des années alors je pensais pouvoir m'en sortir. Chaque fois que je rencontrais un problème, j'essayais de trouver la réponse en cherchant sur Google, mais il est vite devenu évident que je ne touchais que la partie visible de l'iceberg et que je manquais complètement de grandes quantités de bibliothèques. Un livre offre un bien meilleur aperçu de la technologie et de tout ce qu’elle peut faire. Évitez les livres "apprendre x en 24 heures" et optez pour les livres "avancés x".
Gavin Coates
44
+1 pour "découvrir ce que tu ne sais pas".
Covar
2
Extension au 5ème point: lorsque le livre échoue, il y a toujours Google et d'autres livres sur le sujet, y compris ceux ciblant les non-débutants .
Richard
5
+1 pour "le rapport signal sur bruit peut parfois être un peu élevé. Si vous avez une idée approximative de la façon dont une chose est faite, vous pouvez facilement vérifier si l'article que vous lisez est correct. Mais si vous avez aucune idée ... vous pouvez vous retrouver dans un plus grand désordre. "
Tom Squires
9
"Là où le livre échoue, il y a toujours Google." Tu veux dire débordement de pile;)
Joren
42

Quelques raisons pour lesquelles les livres sont toujours pertinents:

  1. Je trouve qu'il est plus facile de lire beaucoup de texte sur papier que sur un écran LCD standard. Peut-être que les livres électroniques sur un afficheur à encre électronique changeront cela.
  2. Les livres ont tendance à décrire la situation dans son ensemble et quelques bonnes pratiques, ce qui est vraiment bien lorsque vous avez besoin d’un démarrage rapide ou d’une nouvelle vue.
  3. Google est vraiment utile lorsque vous avez besoin d'exemples sur un sujet spécifique, mais pas pour une vue d'ensemble.

Mais un livre ne vous mènera jamais jusqu'au bout, il vous poussera simplement dans la bonne direction.

Johan
la source
2
+1 pour la grande image. Après avoir programmé quelque temps dans un nouveau langage ou dans un nouvel environnement, je trouve que les livres sont vraiment utiles pour donner une vue d'ensemble des choses et des choses qui m'ont échappé lors de mes propres recherches.
Adam Morris
2
Le blog de Raymond Chen, ou la série Going Deep sur Channel 9, est extrêmement utile pour comprendre le pourquoi . Une fois que vous connaissez le " pourquoi ", quelque chose est comme cela, la façon de le faire devient un détail trivial qui peut être recherché dans Google. Habituellement, l'auteur d'un livre peut entrer dans l'arrière-plan pour comprendre la logique de ce qui se passe, plutôt que d'essayer de brouiller les chaînes de fragments de code que vous avez trouvés en ligne.
Ian Boyd
OMI, l'un des gros avantages des livres est la possibilité de placer vos doigts à plusieurs endroits à la fois, ce qui vous permet de basculer rapidement d'une section à l'autre. Je trouve cela inestimable lorsque j'essaie d'apprendre quelque chose de nouveau en parcourant un code, car j'ai souvent cherché quelque chose d'autre (parfois plusieurs choses) afin de comprendre ce que j'avais recherché en premier lieu. Naviguer sur un écran n'est tout simplement pas la même chose.
TMN
D'accord. En passant directement à Asp.Net MVC, par exemple, vous pouvez comprendre comment le faire. Mais il y a tellement de choses que vous pourriez vous tromper qui sont subtiles. Ensuite, il vous reste à vous gratter la tête pourquoi quelque chose ne fonctionne pas.
Andy
28

Quand j’ai appris la programmation dans les années 1980, les livres étaient à peu près la seule source d’information disponible pour apprendre complètement un langage de programmation dans son ensemble. En outre, vous pouviez acheter des magazines informatiques, mais leur contenu consistait en des articles choisis au hasard, intéressants et utiles.

De nos jours, vous pouvez trouver toutes les informations dont vous avez besoin sur Internet. Bien que je considère un tutoriel complet comme assez similaire à un livre.

La manière dont vous apprendrez peut dépendre de vos préférences personnelles ou de vos besoins réels.

L’avantage d’un "texte complet", qu’il s’agisse d’un livre ou d’un tutoriel en ligne, c’est qu’il couvre un matériel qui, bien que non nécessaire, vous aidera plus tard. C'est juste pour savoir que quelque chose est possible et pour savoir où le trouver. Surtout si vous étudiez un environnement complexe ou un langage très complexe comme C ++. Vous pouvez lire de nombreux petits blogs sur Ruby on Rails sans jamais entendre parler d’ Ajax ou de questions de sécurité. Tant que vous ne faites que jouer, cela ne pose aucun problème. Mais si, comme cela m’est arrivé, vous souhaitez vous lancer dans le développement professionnel de Ruby on Rails d’ici quelques semaines, travailler avec un texte qui couvre tous les points importants vous sera très utile.

D'autres livres traitent de détails sur le style de programmation, les meilleures pratiques, les modèles de conception ou certains groupes d'algorithmes. Vous pouvez travailler avec eux et peut-être que de tous les modèles de conception, vous n'appliquerez jamais qu'un très petit sous-ensemble. Néanmoins, il est utile de les connaître et de savoir où les trouver. Et c’est simplement un moyen d’entraîner votre pensée dans une direction où vous êtes plus intéressé par la "construction d’une solution" que par "le faire fonctionner d’une manière ou d’une autre".

Personnellement, j'aime lire, alors je n'ai pas l'impression que les livres sont secs. Bien qu'il soit important bien sûr que le livre se situe à votre niveau actuel de connaissance ou au-delà. Si vous avez déjà maîtrisé toutes les bases du langage C #, lire un livre pour débutants n'a pas beaucoup de sens.

thorsten müller
la source
7
+1 pour mentionner ce que j'aurais écrit: le type de livre "meilleure pratique / méthodologie" diffère grandement du type de livre "comment faire X en utilisant Y". Et les premiers sont vraiment précieux, car ils enseignent une expérience de résolution de problèmes générale durement acquise. Une fois que vous avez appris le test unitaire, le refactoring, l'estimation, etc., vous pouvez l'appliquer et l'adapter à une multitude de langages / domaines / projets.
Péter Török le
1
Apprécier certainement la mention sur les styles, les pratiques et les modèles. Ce sont les livres qui sont vraiment les bénéfiques. Vous pouvez apprendre à programmer simplement en ayant un problème à résoudre et en le résolvant. Vous apprenez à bien programmer en apprenant les styles, les pratiques et les modèles. Reste que les textes sont le meilleur endroit pour bien comprendre ces concepts.
Rig
+1 pour "cela couvre un matériel qui, même s’il n’est pas réellement nécessaire, vous aidera plus tard" - les bons programmeurs disposent de connaissances approfondies. Même si vous ne vous souvenez pas de tous les détails, mais que vous connaissez le fil sur lequel tirer et que vous l'apprendre quand vous en avez besoin, cela peut être très précieux!
Jared Updike
22

Un livre (ou une documentation Web structurée comme un livre) reste ma méthode préférée pour apprendre la plupart des langues.

Si vous vous contentez de plonger dans une langue et de trouver vous-même des choses, vous risquez de manquer des aspects importants qu'un bon livre vous aurait livrés au bon moment.

Par exemple, certains de mes collègues ont appris Java en faisant de la plongée sans livre. Ils programmaient en Java depuis quelques années, quand j'ai découvert qu'ils manipulaient régulièrement des tableaux d'octets [] en convertissant le tableau en String, en utilisant .substring (), puis en le reconvertissant en tableau. System.ArrayCopy () est introduit à la page 155 de Java en bref

J'espère que vous reconnaissez que l'apprentissage est plus facile avec un enseignant que seul. Un bon livre est un substitut peu coûteux à un bon enseignant. Il introduira les concepts dans un ordre soigneusement planifié afin que vous puissiez acquérir une compréhension approfondie - pas simplement suffisante pour vous débrouiller.

svelte
la source
2
+1 pour indiquer la différence entre apprendre à faire quelque chose et apprendre à bien le faire.
Idbrii
Un bon livre est un excellent moyen de couvrir rapidement la région. Quelqu'un a déjà fait la recherche pour vous. Trouver un bon livre peut être difficile. Il fut un temps où j'avais une chance sur 50 d'obtenir un bon livre sur un sujet qui m'intéressait (très bon acheteur). Maintenant, je trouve que la chance de trouver un bon livre dans la librairie est inférieure à 10%. Cependant, il existe de nombreux bons livres et ressources disponibles sur le net. Choisir la bonne ressource peut accélérer votre apprentissage.
BillThor
1
Je ne sais pas quand était cette heure. J'ai jeté un coup d'oeil à mes vieux livres CS récemment. La norme s'est considérablement améliorée. Par exemple, j'ai utilisé la «programmation fonctionnelle avec Miranda» il y a quelques années. J'ai utilisé 'Real World Haskell' récemment. L'ancien livre mystifie aujourd'hui, même s'il utilise fondamentalement les mêmes concepts et paradigmes que Haskell.
slim
21

Je pense que vous pourriez être sur quelque chose. Pour moi au moins, la plupart de mes compétences viennent du désir / besoin d’un programme qui fait "X".

Peut-être que les personnes qui apprennent de cette façon ne demandent pas d'aide; ils sont tout simplement trop occupés à le faire (mal, mais ils apprennent en cours de route). Les gens qui veulent être programmeurs (par rapport à ce premier groupe) posent beaucoup de questions sur la manière de devenir programmeur, ou comment programmer, même s'ils n'ont pas nécessairement de problème à résoudre, et ce n'est pas le cas. questions avec des réponses directes.

Et si nous punt aux livres. "Oh oui, prenez une copie de 'Plongez dans Python." "C'est comme ça que vous avez appris?" "Non ..." "Euh ..." "Je suis un peu occupé, mais j'aiderai si vous êtes coincé" "Euh ... OK, je suppose"

D’autre part, j’apprécie énormément la qualité de la lecture lorsque j’apprends, pour que je puisse voir comment le problème que j’essaie de résoudre est résolu par un auteur plus expérimenté, ou peut-être simplement pour en apprendre plus. techniques "débutant" que je n'aurais peut-être pas repris en cours de route.

TLDR : les livres sont bons, apprendre en faisant, c'est bien, apprendre en faisant des livres, c'est ???

TokenMacGuy
la source
1
+1: Je pense que vous l'avez cloué. Apprenez par la pratique, les livres les plus précieux que je possède étaient spécifiques à une application que j’écrivais à l’époque.
Justin Shield
41
Veillez à ne pas devenir un programmeur «autodidacte» qui pense tout savoir parce qu’il a résolu un problème simple et qu’il se sent «trop bon» pour lire des livres.
Joris Timmermans
2
Notez que je ne suis pas contre la lecture, je pense simplement que les médias numériques sont généralement beaucoup plus actuels et attrayants.
Alex Hope O'Connor
2
@Alex À propos des médias numériques. Cela dépend vraiment du sujet traité par les médias. Si les médias abordent des sujets tels que comment utiliser x dans la langue y ou la manière la plus efficace de coder en z, je suis d'accord avec votre affirmation. Cependant, d'autres sujets (généralement plus avancés, des sujets théoriques), tels que NP, P, l'analyse d'algorithme, etc., à mon humble avis, sont généralement mieux traités par un manuel. Prenez l' art de la programmation de Knuth . C'est un texte assez ancien, mais toujours considéré comme l'un des plus importants livres sur la programmation.
Cledoux
16
Je pense que c'est un cas de biais de confirmation. @ Alex semble être à la recherche d'une réponse. Je ne dis pas que cette réponse est mauvaise en soi, mais ce n'est certainement pas la meilleure réponse fournie par un effort d'imagination.
zzzzBov
15

J'adore lire des livres techniques. Pas tous les livres techniques, juste ceux sur un sujet particulier qui m'intéresse, dit Sharepoint. Je me souviens du premier livre que j'ai lu (plusieurs fois), s Programming Windows de Charles Petzold. À cause de cela et de nombreux autres, j'étais capable d'écrire une application Win32 à partir de la mémoire. J'avais à peine besoin de rechercher une API. J'ai donc pu me concentrer sur la partie commerciale.

Je pense que les livres fournissent une manière "autoritaire" de faire quelque chose, peut-être par quelqu'un qui sait comment faire mieux que moi. J'espère que ce que j'apprends, si j'ose le dire, est la meilleure façon de résoudre mon problème. C’est, bien sûr, si j’ai confiance en l’auteur (je dois aimer la zone de commentaires sur Amazon).

Bien que je me retrouve maintenant de plus en plus à "googler" et à copier-coller lorsque j'essaie de résoudre un problème, je passe beaucoup de temps à m'assurer que ce que je copie (ou inspirant :) est quelque chose de digne de confiance peut mettre dans mon code. Le fait que je trouve une solution sur le Web n’est pas forcément la meilleure.

Comme beaucoup d'autres programmeurs, je me contente de chercher les réponses sur Google, mais je me retrouve toujours à ramasser des livres d'auteurs connus. Je pense que le contenu est présenté par quelqu'un qui sait bien l'expliquer (il l'enseigne), et cela m'évite d'avoir à filtrer tous les fichiers indésirables de mes résultats Google.

Eddie Paz
la source
14

Je suppose que votre question ne visait pas à savoir "pourquoi utiliser une technologie ancienne comme un livre imprimé au lieu de pages HTML", mais "pourquoi lire des textes plus longs sur la programmation écrite par un ou plusieurs auteurs".

Vous pouvez considérer les livres comme une collection structurée d'informations sur un sujet donné. Cela a l'avantage que quelqu'un a fait l'effort de construire chaque chapitre l'un sur l'autre pour faciliter la compréhension du sujet. Habituellement, on vous dit également quelles sont les limites de l'information (ce qui est couvert et ce qu'il y a d'autre que vous devez rechercher ailleurs). Après avoir lu et travaillé avec, vous pouvez être sûr d'avoir atteint une certaine compétence. Si vous souhaitez apprendre en appuyant sur le bouton d'avance rapide, un livre peut vous forcer à travailler sur tous les aspects sans ignorer les parties ennuyeuses, du moins si vous faites confiance à la structure du livre. La collection nommée "livre" est aussi le plus souvent utile comme référence.

L'utilisation d'Internet, de blogs, de "bidouilles", etc. relève généralement du type d'informations non structurées. Vous obtenez des tas de morceaux de sagesse, mais vous devez faire plus de travail de recherche pour acquérir de nouvelles connaissances, car personne ne vous guidera pour dire "apprenez ceci en premier ou vous ne verrez pas le mérite de ces choses-là." ont googlé jusqu'à maintenant ". Certaines parties peuvent vous manquer car elles sont trop ennuyeuses ou personne ne vous a dit qu'elles étaient importantes. Vous pourriez apprendre des choses qui ne vont pas, car tout ce qui est écrit sur Internet n’est pas de première qualité. Vous pourriez passer beaucoup de temps à filtrer les résultats de recherche inutiles. Vous pourriez perdre des journées à essayer d’accomplir quelque chose par vous-même, simplement parce que vous ne connaissiez pas un certain modèle de conception ou une structure de programmation et que personne ne vous l’avait dit. Moins vous en savez,

Pour le dire un peu provocateur: je ne ferais jamais confiance à un architecte pour construire un pont que je devrais traverser chaque jour s’il me disait qu’il n’avait jamais lu un livre sur la construction de ponts ou l’analyse structurelle, mais qu’il venait de l’apprendre en bidouillant et en utilisant Google ...

Ray
la source
Pour être honnête, ma question pouvait être interprétée comme telle, mais celle-ci était mon consensus général.
Alex Hope O'Connor
10

Si vous êtes un programmeur C, comment comptez-vous apprendre Python sans livre ni enseignant?

Si vous apprenez seulement la syntaxe de base et que vous plongez au cœur, vous finirez par écrire du code C en Python , et parvenez à la fausse conclusion que Python est aussi verbeux et douloureux que C.

BlueRaja - Danny Pflughoeft
la source
C'est une exagération. Si vous avez commencé à programmer Python, vous pouvez chercher des réponses à vos problèmes dans Google et trouver des éléments tels que des recettes Python décrivant les solutions Pythonic à des problèmes spécifiques.
Idbrii
6
@pydave: S'il s'agissait d'une exagération, il n'y aurait pas autant de code C écrit en Python sur SO (exemple)
BlueRaja - Danny Pflughoeft Le
4
Je lis votre exemple de question, lisez votre réponse et je comprends ce que vous voulez dire: Apprendre la syntaxe de base n’est pas la même chose que l’apprentissage de la langue. (Je n'ai même pas envisagé de ne pas apprendre les constructions du langage.) Si vous apprenez juste assez de Python pour écrire du code C en Python, vous n'avez toujours pas appris à programmer en Python.
Idbrii
C’est un problème grave qui mérite plus d’attention. Tous les langages de programmation sont complets, ce qui signifie que vous pouvez résoudre tous les problèmes en écrivant du code Python de type C ou du code Ruby de type Java. Aucun obstacle ne vous obligera à vous conformer au zeitgeist du langage dans lequel vous programmez. Pire encore, vous ne ressentirez peut-être même pas la douleur de l’inefficacité de votre code car il sera à peu près aussi pénible que dans les langues C ou natives. Java, un niveau de douleur que vous avez fini par accepter comme d'habitude.
Wedge
Je ne peux pas être plus d'accord - je suis programmeur C en PHP quand j'écris des: - |
Warren
9

Google n’est généralement utile que pour rechercher de petits extraits de code ou des bibliothèques à code source libre. La documentation de certaines bibliothèques / programmes est au mieux peu fiable (si elle existe, elle ne vous montrera que des exemples simples ou courants).

Je n'ai pas beaucoup de livres de programmation, mais je peux vous dire maintenant que j'ai un livre sur OpenGL, et qu'il contient la majorité du code d'un moteur 3D, que vous pouvez simplement copier, mais vous pouvez lisez également la théorie - il vous suffit de tourner quelques pages et une explication du code se trouve juste là, vous attend pour être lue. De nos jours, vous pourriez probablement trouver des moteurs 3D à code source ouvert sur le réseau, mais si vous devez modifier considérablement le code, vous rencontrez probablement des problèmes. En général, il n’existe pas de forum d’aide et les utilisateurs de SO ne connaissent pas la répondez à votre question si c'est très spécialisé. Quand il s’agit de choses vraiment spécialisées, Seules quelques douzaines de personnes dans le monde entier seront en mesure de répondre à votre question sans perdre des heures afin de trouver suffisamment de réponses pour être en mesure de trouver une réponse. Si vous demandez comment implémenter une liste chaînée en C #, vous obtiendrez plus de 5 réponses à SO dans les 10 premières minutes, mais si vous vous demandez quelle est la meilleure façon de mettre en œuvre un algorithme d'ombrage complexe dans three.js , votre question va disparaître de la une comme un rocher.

En plus de cela, les livres sont écrits presque exclusivement du point de vue du lecteur sur la théorie en question, alors que Google ne produit que des extraits aléatoires de code indésirable, des discussions archivées sur le sujet dans lesquelles personne ne sait de quoi il parle. , etc. Les sources sur Internet se sont beaucoup améliorées: SO, Moz Dev Network, le site Web de Microsoft, les blogs, etc., mais historiquement, les livres étaient bien meilleurs, les sources Internet étant en train de rattraper leur retard.

Michael
la source
1
+1 pour indiquer le temps dont vous avez besoin pour régler une malbouffe aléatoire avec la méthode "d'apprentissage en googling"
Ray
1
+1 pour 'discussions archivées sur le sujet dans lesquelles personne ne sait de quoi elles parlent, etc.' - ROFL.
5arx
7

La qualité de l'écriture dans les meilleurs livres est telle que beaucoup de problèmes non évidents sont présentés avant même de commencer. Un auteur avec beaucoup d'expérience saura vous dire des choses telles que: effets secondaires inattendus, répercussions à long terme, caractéristiques non documentées, scénarios d'utilisation typiques ...

Fondamentalement, vous bénéficiez des avantages d’un écrivain ayant beaucoup d’expérience qui vous explique le problème et en souligne les aspects les plus intéressants.

Vous le trouverez parfois aussi dans les références en ligne, mais à cause du faible obstacle à l'entrée, beaucoup d'informations en ligne sont trop basiques, elles manquent de détails ou sont tout simplement fausses. Cela peut arriver aussi avec les livres, alors assurez-vous de ne croire que ces livres qui sont des classiques avec toujours de bonnes critiques. D’autres livres peuvent également être utiles, mais vous ne devez vous en servir que pour vérifier l’information en effectuant des renvois ou en essayant vous-même.

Joris Timmermans
la source
1
+1000 "tout à fait faux" Il existe une tonne d'exemples de code en ligne écrits par "les meilleurs programmeurs" qui ne compilent pas les utilisateurs ou ne savent pas de quoi ils parlent. De plus, un bon livre sera écrit avec un modèle pédagogique qui introduit puis renforce le contenu de manière cohérente et lisible.
Jqa
6

Les livres ont tendance à contenir de nombreuses informations dans un format structuré. Google a tendance à fournir une grande quantité d'informations qui ne sont pas toujours structurées et difficiles à organiser en termes de tâches à effectuer.

En réalité, je ne lis plus de livres papier physiques: il y a un lecteur électronique à côté de moi et j'ai un logiciel Kindle sur mon ordinateur portable qui me permet d'accéder aux informations que je recherche.

Si Google n’est pas utile, c’est si vous ne recherchez pas un aperçu structuré de la programmation, mais souhaitez obtenir des informations détaillées sur la programmation d’une tâche spécifique. Quelqu'un a presque toujours écrit du code pour cette tâche avant, ou du moins, quelque chose de similaire.

Je pense qu'il y a une différence entre apprendre à programmer et apprendre à programmer une tâche spécifique. Je m'interrogerais sur la qualité du code provenant de quelqu'un qui n'a jamais appris que des morceaux de tâches spécifiques à googler s'il n'avait jamais vraiment eu une vue d'ensemble décente sur la manière de programmer. Ce n'est pas spécifique à la langue, c'est plus conceptuel.

Temptar
la source
4

Les livres sont utiles si vous voulez approfondir un sujet. Bien sûr, j'ai appris le C # en faisant quelques tutoriels et en écrivant des projets (pour animaux de compagnie). Mais C # en profondeur est toujours utile pour voir ce qui se passe en dessous et apprendre quelques nouvelles choses.

De plus, je peux prendre un livre de programmation et le lire dans mon bain ou dehors au soleil. Je ne peux pas faire ça avec mon PC.

Carra
la source
4

Parce que c'est un moyen pratique d'apprendre des autres programmeurs.

Les livres sont un supplément. Vous ne pouvez aller aussi vite que vous-même. Qui ne préférerait pas être sur un projet avec un meilleur programmeur disposé à vous apprendre quelque chose que de simplement lire le livre?

J'ai tendance à les utiliser davantage comme référence plutôt que comme "tout ce que vous aurez besoin de savoir sur la programmation".

JeffO
la source
3

Les livres vous permettent d’absorber un ensemble d’informations de manière "passive". Vous n'avez pas à regarder ce qui est possible, vous obtenez présenté un sous-ensemble des possibilités. Lorsque j’apprenais le C #, le livre m'a vraiment montré les possibilités et demandé quels étaient les équivalents C ++. Bien sûr, le mastering a eu lieu lors de son utilisation dans un projet (taille réelle). Mais le livre a vraiment aidé à souligner les différences et les possibilités.

refro
la source
3

En bref, je pense que les livres ont tendance à être plus utiles à un niveau élevé. Ils peuvent vous donner des conseils en matière de conception et vous aider à prévenir les problèmes au lieu de les résoudre.


Les livres ont certainement leurs inconvénients. Ma copie de Programming Python couvre Python 2.0, mais le runtime que j'utilise est la 2.6.

Cependant, je pense que l’aspect important des livres est que vous pouvez trouver des choses que vous ne voudriez pas tomber sur vous-même. Google vous aide à résoudre des problèmes spécifiques, mais les livres vous aideront à concevoir. Et pas seulement des livres de design. Si vous lisez un bon livre qui vous aide à comprendre la conception d'une langue, vous comprendrez mieux comment utiliser cette langue.

D'autres livres sont utiles pour affiner vos connaissances. Je pense que le livre Effective C ++ de Scott Murphy est un bon exemple. Bien que ce livre ne soit pas vraiment très bon pour apprendre le C ++, il vous aide à déceler les problèmes de conception d'algorithme / d'interface / d'héritage que vous n'avez pas encore rencontrés ou que vous avez contournés. Il serait peut-être facile de trouver une solution simple (causant par la suite d’autres problèmes), mais en comprenant mieux le langage, vous pourrez concevoir votre logiciel de manière à éviter ces problèmes.

Bien sûr, ce n’est pas le fait que les livres imprimés sur du papier les valent. Le soin et les efforts nécessaires à leur création et le désir de dispenser une éducation rigoureuse sont ce qui donne de la valeur aux livres. Souvent, comme effet secondaire, vous obtenez des ressources en ligne utiles telles que Cite FAQ lite ou des ebooks comme Dive into Python . Il existe également des didacticiels en ligne qui constituent des outils d'apprentissage complets et utiles (comme la documentation de certaines plates-formes / langues / bibliothèques).

Les extraits sur le Web sont un bon moyen de répondre à votre question, mais ils vous disent rarement ce que vous devriez demander.

idbrii
la source
3

Je veux devenir programmeur, j'utilise donc des livres de programmation. Les livres me permettront de maîtriser professionnellement la programmation.

Peter Mortensen
la source
3

Je n'ai pas vraiment lu un livre de programmation depuis longtemps. J'avais l'habitude de les utiliser comme guides de référence, mais je pense maintenant qu'Internet est plus facile pour la plupart des langages et des frameworks.

Quoi qu'il en soit, je pense que la meilleure chose à apprendre de la programmation est le langage de base. Par exemple, ma première langue réelle était le C. Je l'ai appris en écrivant un système d'exploitation (je ne le recommande pas). En conséquence, ma connaissance de C était assez limitée, même après deux ou trois ans de programmation. Je n'ai jamais eu une bonne connaissance de base de la langue. Je ne savais pas que je pouvais transformer ces 15 lignes de code en désordre en deux lignes de code épurées. Donc, je pouvais résoudre des problèmes, mais je n'utilisais pas le C dans sa totalité.

Puis à un moment, j'ai décidé d'apprendre le C ++ ... (environ 2 ans après avoir commencé à apprendre le C). J'ai donc lu le seul livre C ++ que j'avais, un livre C ++ pour les nuls. J'ai lu environ les 3/4 de celui-ci directement, en faisant très peu de "travail" pendant ce temps .. et en conséquence, quand j'ai sauté dans mon premier projet au lieu d'être à l'aise avec ces 15 lignes de code en désordre, je savais qu'il y avait un moyen plus facile de le faire (même si j’ai peut-être eu à le regarder).

J'ai fait la même chose quand j'ai appris C # / ASP.NET. Je n'ai presque rien fait d'autre que lire jusqu'à ce que j'en aie terminé avec environ les 3/4 du livre. Et pour ce que je n'ai pas appris, j'ai consulté Stack Overflow pour des questions intéressantes en C #. Lorsque je suis entré dans mon premier projet, je disais que la plupart de mon code était relativement propre et qu'il n'a fallu que le refactoriser "énormément" une fois depuis.

Je dirais donc que les livres sont très utiles pour apprendre les capacités d’un framework ou d’un langage. Au-delà de cela, ils sont pour la plupart rendus inutiles par Internet, à l'exception bien sûr des ouvrages théoriques puissants et conçus spécifiquement pour être des ouvrages de référence.

Earlz
la source
2

C'est moins à propos de ce que vous lisez, mais de combien. J'aime avoir quelques livres de programmation en déplacement pendant que je travaille sur un projet. De temps en temps (plus souvent que vous ne le pensez), vous découvrirez une technique pouvant être appliquée à votre projet actuel.

Une fois que vous avez implémenté une solution dans le monde réel, les informations restent.

Fuzz doux
la source
2
Je trouve que c'est le cas lorsque je réponds à des questions sur des sites Web comme SE. Je trouve souvent que les commentaires me conduisent à des informations utiles pour résoudre un problème sur lequel je travaille ou sur laquelle je travaillerai bientôt.
Lea Hayes
2

Je préfère utiliser des livres, car j'estime qu'ils fournissent un aperçu de l'état de la technologie sur laquelle vous travaillez. L'auteur indiquera qu'avec la version XX de la langue / bibliothèque Y, voici comment résoudre le problème Z. Les didacticiels de site Web peuvent ne pas répertorier les versions qu'ils utilisent ou fournir l'exemple de code utilisé par les livres.

Les livres traitent souvent du "pourquoi" de cette solution qui résout le problème alors que les documents en ligne sont généralement copiés / collés.

Vous pouvez également souvent perdre des liens vers toutes vos références, elles peuvent être déplacées ou baissées. Je protège et m'occupe de mes livres comme un investissement (ce qu'ils sont).

Spacebob
la source
2

Vous pouvez résoudre des problèmes sans lire de livres, mais saurez-vous vraiment ce qui se passe derrière votre programme pour résoudre ce problème?

Vous devez savoir ce qui se passe et ce qui aurait pu être une meilleure alternative. Pour cela, vous avez besoin de bons livres de programmation. Bien sûr, il ne suffit pas de lire des livres, il faut en comprendre le contenu, parcourir d’autres livres, réfléchir à différentes approches de la résolution de problèmes, etc. L'apprentissage continue avec et sans livres.

Peter Mortensen
la source
1

Quand j’apprenais le C ++, j’ai trouvé la plupart des ouvrages assez inutiles jusqu’à ce que quelque chose me claque dans la tête. À ce jour, je ne sais pas trop ce que c'était, mais tout a commencé à avoir un sens. Les livres et les sites Web avaient alors beaucoup plus de sens. Il m'a fallu 2 livres pour apprendre à programmer en C ++, et il ne s'agissait pas non plus de vrais livres en C ++ (c'étaient des livres en Visual C ++ centrés principalement sur MFC).

Si vous obtenez le bon livre, cela peut être vraiment utile. Un de mes amis lisait des livres de Dietel à la fac et je les trouvais extrêmement bien écrits. Je n'ai jamais trouvé les livres "... pour les nuls" aussi utiles parce qu'ils n'expliquent pas les choses correctement. Le meilleur conseil est d'aller dans une librairie et d'essayer le livre afin de ne pas gaspiller des sommes considérables en livres qui coûtent très cher.

Pour certains sujets liés à la programmation, il est utile de lire plusieurs livres, d’effectuer des recherches via Google et d’expérimenter. Cela m'est souvent arrivé lorsque je travaillais sur des algorithmes d'intelligence artificielle, alors que je travaillais sur un jeu de dames avec J2ME. Je me suis aussi retrouvé à faire cela lorsque j'apprenais à créer un compilateur compilateur pour des syntaxes personnalisées. Il y a tellement de variations et de points de vue différents.

Parfois, avoir une compréhension de plusieurs vues vous permet d’établir des liens qui sont par ailleurs plus obscurs.

Lea Hayes
la source
1

J'ai tendance à apprendre (programmation) à partir de livres et de sources "juste à temps" comme le Web. Les deux peuvent être bons, mais globalement je préfère apprendre des livres, voici pourquoi:

Lorsque vous apprenez uniquement ce que vous devez savoir immédiatement pour terminer une partie d'un projet, vous manquez parfois d'une vue d'ensemble. Les meilleurs livres ne sont pas simplement des références, mais permettent en un sens de se rapprocher de l’apprentissage en fournissant un aperçu complet de la technologie et de nombreux conseils avisés sur les meilleures solutions aux problèmes courants.

L’apprentissage juste à temps peut très facilement souffrir du problème de la satisfaction. Lorsque vous identifiez un problème que vous souhaitez résoudre, vous passez à la première solution qui semble fonctionner, puis vous vous dirigez vers les sites Web pour savoir comment le mettre en œuvre. . Cependant, cela peut souvent vous causer des ennuis, si vous pouviez avoir une conversation avec un programmeur expérimenté à propos de votre problème, ils ne vous diraient pas "voici comment faire X", ils vous diraient plutôt "ne le faites pas X, fais Y à la place ". Et c'est le genre de connaissance que vous avez tendance à acquérir avec les meilleurs livres. En effet, certains livres traitent entièrement de ce genre de choses, comme Javascript: The Good Parts .

L’autre problème que l’apprentissage JIT peut présenter est une courbe d’apprentissage beaucoup plus lente. Avec JIT learning, vous n’avez tendance à apprendre que ce que vous devez savoir. Mais souvent, le simple fait d’avoir un noyau de connaissances de base peut accélérer l’apprentissage d’une nouvelle langue ou d’un nouveau cadre. Au lieu de trébucher sur les bases, vous commencez avec une base solide, puis vous construisez à partir de là. Une bonne partie de la matière que vous pourriez couvrir en lisant un livre peut ne pas vous être utile immédiatement, mais cette connaissance de base peut vous aider à orienter votre prise de décision et en particulier à comprendre le nouveau code auquel vous êtes exposé. Il y a un compromis bien sûr et il y a de mauvais livres qui ne font que résumer des faits inutiles dont vous ne vous souviendrez plus après les avoir lus, mais il y a aussi de bons livres qui vous donnent une bonne base sur les bases et sur quoi

Il existe également des livres à un niveau supérieur à un seul sujet technologique, ce qui, à mon avis, est essentiel pour mûrir en tant que développeur. Des livres comme Code Complete , Refactoring , Travailler efficacement avec Legacy Code , etc. Vous n'allez pas acquérir les connaissances de ces livres uniquement par le biais de l'apprentissage JIT.

2 tours
la source
1

Je pense que je vais pour lire des livres. Surtout télécharger des ebooks.Lire chaque partie du chapitre.Copiez leur code! coller dans votre éditeur de programmation et ensuite voir ce que la sortie est. Ensuite, essayez de changer la logique de celui-ci.J'ai mentionné ebooks téléchargeables parce que pour travailler plus vite.Les livres sont vraiment superbes.Je ne mens pas mais de novembre dernier à aujourd'hui.J'ai fini environ 20 livres.Il a besoin d’amour pour lire.Ce que font les débutants, c’est qu’ils résolvent un problème spécifique en prenant le formulaire d’aide Internet.Mais quand une tâche complexe leur est donnée, ils abandonnent.La raison, aucune connaissance de la tâche et sa solution.Par exemple, j’ai limité les contrôles avec des données, je ne sais pas quels jeux de données le font et j’ai été chargé de créer des relations entre les copies résidantes en mémoire des tables de base de données. Je ne peux pas le faire.

Adeel
la source
0

Il est très difficile pour les nouveaux programmeurs de comprendre en quoi consiste réellement la programmation.

N'importe qui peut écrire un programme pour dire à un ordinateur de le faire - enfin, à peu près tout avec peu d'apprentissage, ce n'est pas difficile! Ce qui est difficile, c’est de créer un programme qui soit supportable, compréhensible rapidement et profondément par les autres membres de l’équipe. Cette partie prend des années, des dizaines d’années.

En outre, apprendre à travailler comme une partie efficace d'une équipe est un peu une courbe.

Alors, comment les livres aident-ils à résoudre ces problèmes de programmation "réels" d'une manière qui ne recherche pas les références sur le Web?

Deux de mes livres préférés sont "Design Patterns" et "Refactoring".

Le refactoring est un excellent livre qui explique comment reconnaître un mauvais code. Si vous avez appris en consultant des références de codage, ce livre (un des nombreux recueils de refactoring) est essentiel.

Les modèles de conception n'offrent pas vraiment grand chose qu'un bon programmeur ne peut pas comprendre, mais ils ont donné des noms à un large éventail de modèles que tout le monde utilisait déjà dans le code. Cela a permis aux programmeurs de communiquer plus efficacement et d’aider certains programmeurs à trouver de nouveaux moyens d’attaquer les problèmes. Bien que vous puissiez trouver des modèles de conception sur le Web, il est beaucoup plus facile de rechercher le nom du modèle de conception que Google - ce que vous essayez de faire.

Lors d’interviews, on m’a demandé de décrire ces deux livres et ce qu’ils essayaient d’accomplir. Je pense que c’est une question d’interview très valable ... Je voudrais faire attention à un programmeur qui ne connaissait pas ces deux livres. livres sauf s’il postule à un poste extrêmement subalterne.

Bill K
la source
0

J'ai appris à programmer directement à partir de livres. Il y a environ 20 ans, avant que Google et le net ne deviennent populaires. Je pense que ce sont d'excellentes ressources. Cependant, la plupart des livres modernes citent des articles techniques des fabricants. Je suis donc d’accord pour dire qu’il vaut mieux apprendre en ligne. Avec un mot d'avertissement comme suit:

Même si je lisais beaucoup de livres et que j'avais accès à Internet presque parce que c'était financièrement réalisable. Je n'ai jamais été capable de mener à bien un projet d'envergure. Bien sûr, je pourrais réaliser nombre de projets d'envergure dans de grands livres avancés où il faut 20 chapitres pour l'expliquer, mais quand il s'agissait de mes propres projets du monde réel, je me suis toujours heurté à un mur de briques. Je dois vous dire que j'ai lu des livres lourds.

J'ai eu des problèmes toute ma vie à entrer à l'université, mais j'entre maintenant dans ma troisième année. Au cours de ma première année, j'ai rencontré des personnes en quatrième année et des maîtres, et j'ai pu tenir des conversations productives sur les théories de l'IA, de l'HCI, du développement d'assembleurs et de compilateurs. Mais pourtant, avec toutes ces connaissances, je ne pouvais pas créer un programme raisonnable. Qu'est-ce qui me manquait? La seule chose que vous ne pouvez obtenir dans aucun livre, ni en ligne.

Structure. En première année, je n’ai rien appris de technique (je connaissais déjà tout le monde et je l’ai parcourue sans étude, ni mathématiques, ni design, car ils étaient relativement nouveaux pour moi), mais j’ai appris la structure et le travail d’équipe. Lors de mes premières vacances d'été, je me suis rapproché plus que jamais de la réalisation de mon premier vrai travail.

Au cours de ma deuxième année, j'ai beaucoup appris sur les nouvelles technologies (toujours les bases du comparson de ce que je savais, mais je mettais la théorie que je connaissais dans la pratique). Cela a mis une nouvelle fois l’importance de la structure. Je n'ai pas terminé mon premier vrai projet. Je me considère maintenant comme un programmeur.

Je ne crois pas qu'il soit nécessaire de lire des livres pour apprendre la programmation. Mais c'est une aide. Cependant, j'estime sincèrement qu'aucun livre ou site Web n'enseigne ou ne peut enseigner ce que vous obtenez même après 2 ans d'université. Si vous avez réussi à terminer des projets sans jamais aller à l'université, faites preuve de fair-play, mais c'est une expérience que je recommande vivement, peu importe l'âge.

Les livres sont bons, Internet est meilleur, Google et vous êtes fabuleux, mais rien ne vaut le bon vieux collège fashoned de mon point de vue. Et je doute que n'importe quelle quantité de google et de youtubing le fasse jamais, et je sais de première main qu'aucune quantité de livres ne le fera jamais.

Jack Spratt
la source
Où il est dit ci-dessus "Je n'ai pas terminé mon premier vrai projet. Je me considère maintenant comme un programmeur". Il devrait se lire "J'ai maintenant terminé mon premier projet réel. Je me considère maintenant comme un programmeur". Désolé pour la faute d'orthographe.
Jack Spratt
0

Je n'ai aucune idée. Je suis contre les livres de programmation. Dans la plupart des cas, vous devez toujours rechercher sur Internet pour rechercher des informations supplémentaires.

Voulez-vous apprendre un langage de programmation? Google pour cela. Je détestais jQuery parce que ça avait l'air dur. Ensuite, je suis arrivé à Stack Overflow, et j'en connais beaucoup. Sans l'aide d'aucun livre.

  • Google pour cela
  • Cherchez une application open source professionnelle et complète
  • Parcourez ce code et ESSAYEZ pour obtenir ce qui se passe.
  • Essayez d’écrire une application rapide / simple à partir d’extraits d’un code existant.
  • Essayez de le réécrire pour vous-même.
  • Trouvez plus de tutoriels sur Internet
  • Prendre l'expérience
  • Prendre plus d'expérience
  • Vous venez d'apprendre une nouvelle langue! (Je n'ai pas dit que vous seriez un expert, mais les bases sont apprises en quelques heures ou quelques jours)
genèse
la source
Avoir un livre comme référence est très utile - vous profitez de l'expérience des autres. Le "livre" pourrait même être une documentation / tutoriels en ligne tels que django ou jquery . Mais l'essai et l'erreur + la seule source de lecture laisseront des lacunes importantes dans vos connaissances. Maintenant, si vous n'avez besoin que de quelques lignes de jQuery, votre méthode fonctionne mais vous n'avez pas appris la langue. Mais si vous voulez apprendre le C, je vous recommanderais d’avoir K & R comme référence. Bien sûr, la plupart des informations sont en ligne quelque part, mais dispersées dans de nombreux articles de blog.
dr jimbob
0

Je pense qu'il est vrai que la programmation ne peut être apprise que par des livres (comme le mentionnent la plupart des gens), vous devez pratiquer beaucoup et de nombreuses ressources sont disponibles sur Internet (articles, vidéos, exemples, etc.).

Mais un bon livre comble les lacunes de vos connaissances. Après avoir lu une couverture de livre à couvrir, vous avez la certitude que votre connaissance du sujet n’est pas troublée. Bien que le défi soit de trouver de bons livres sur le sujet.

Manoj
la source