Why I don’t read books
http://dougmccune.com/blog/2007/03/23/why-i-dont-read-books/
I’ve never read a programming book. I realized this when I got sent a promo copy of the Flex 2 with Actionscript 3 book from Friends of ED. [Side note: start blogging and you get sent free shit.] I was flipping through the book and I realized, wow, I’ve never read one of these before. So it got me thinking about why that is. Clearly people learn programming stuff through books, there’s got to be a market or else they wouldn’t make the books. Am I the norm or the exception?
Timeliness
First I figured this was because this was a Flex book. I’ve been following Flex for a while now, and the newest information has always been online (like any emerging technology these days). So in a sense everything contained in this book has already been written one way or another. The newest information will never be in print, that’s just the nature of the web. If I want the newest info on Apollo I’m going to read the alpha release docs on Adobe Labs, or Mike Chambers’ blog posts, or watch the apollocoders mailing list. The Apollo books are coming, but they’ll always be a big step behind what’s available online.
But then I realized I’ve learned bunches of other stuff that wasn’t brand new. When I was first learning PHP and MySQL there were tons of great books available. But for some reason I never bought a book. Maybe I’m just too cheap (discussed below). Or maybe I’m just too lazy. My bookshelf doesn’t have any programming books (at home or at work). The only books I’ve ever partially read were for some CS classes at school, but that was more to make sure I got the info that was going to be on an exam.
The copy/paste factor and learning by doing
Whenever I’m learning anything computer-related I’m doing it as I’m learning it. That’s the only way I can learn, and I’d be surprised if you find anyone who’s all that different (when it comes to computer programming). You’re not going to learn how to program Actionscript or use Photoshop by reading a book without having one hand on the mouse the entire time. So that means you read at your computer, with the book next to you? Or you read a chapter, then go and try it out on a computer? As I was flipping through the Flex book, I saw lots of Actionscript code. There’s an entire example app that gets created in that book. Cool, but that’s pretty much useless to me without being able to run the code myself, and tweak it a bit and see the results. You’ve got to be able to copy and paste the code and run it yourself. Book publishers know this, so they include downloads or CDs with the code. But now I only need the book for the non-code pieces, which brings me to my next point.
Learning from code versus learning from written paragraphs
I’d be interested in getting other developers’ perspectives on this, but I was thinking about how I learn and whether I learn more from example code or from written text describing the code and the method of programming. If I were to rate learning through code or learning through text, each on a scale of 0-5, I’d give learning through code a 5 and learning through text a 1. If a tutorial doesn’t have code I don’t read it. I think Google code search is the best learning resource ever.
So if we look at the ratio of text to code in this book, I’d say it’s at least 50-50 text-to-code. I’d be interested in seeing the ratio of comments-to-code included in the Flex framework source files. In terms of learning Flex, the framework source is the single most valuable resource I’ve had. They commented the hell out of it, but the code is the focus. You want to learn how the ComboBox component animates the drop-down menu when it gets selected? Go and read the source of ComboBox.
On-demand learning
I don’t know what I want to learn tomorrow. I might play with some custom components I’m working on, or play with Flex mapping components, or explore how to deploy my apps as Apollo apps. Or I might not ever learn any of that stuff and I might go off on some other tangent instead. So am I going to get a book about any of that? No. Am I going to read tutorials and comprehensive guides before I start playing? No. I’m going to start a project, try to do what I want to do, and when I can’t figure it out I’m going to look up what I need to know. Which brings me to my next point.
Learning in tiny bits
Books are too long. There’s just too much information in them. I learn in tiny nuggets, and I only learn the stuff that gets me to the next step in a project. If I’m working on a project and I need to figure out how to pull in an RSS feed into a flex app then that’s exactly what I want to learn, and only that. Once I get stuck at another point then I’ll go and figure out what I need to get past that point. But I don’t want to read a book that tells me in generic terms how to use a technology. I might never use half the information in a book, so why would I waste my time learning it?
The web gives me tiny bits of info that I need. And if you’re searching for programming information on Google, you can pretty easily figure out how to search and get directly to the result you need. It’s rare that I try to look something up on Google that I can’t find the answer to (obviously it happens, at which point I post questions to mailing lists). And the number of tiny bits of information is amazing. Whether it was a question someone answered on a mailing list, or a blog post, or an example in official documentation, somewhere someone has shown you how to do almost everything you want to know. And often you can find an answer to a specific question without wading through irrelevant content. Google is like learning surgery as you’re cutting, books are like medical school.
I’m a cheapskate
And I don’t like paying for something I can get for free (wow, that statement applies to so many other things). Everything you need to learn ANY programming language is available for free online. That said, book publishers can feel free to send me free shit, I like getting stuff for free, even if I don’t really want it.
I guess it just boils down to how different people learn. I’m sure tons of people have had great experiences learning from books. I just don’t get it. I can’t figure out why I would want to buy a book and read it when I can learn everything I need to learn by going online. So I don’t know, am I the norm or the exception?
1. 书本跟不上技术发展。
2. 通过做来学更有效。
3. 从代码中学比从文字中学更有效。
4. 书本会强制持续的学习。
5. 学习网上的片段信息比学习书本更有针对性,更高效。
6. 节约钱。(作者说自己是吝啬鬼,我也是:-))
我觉得他说的蛮有道理的。对我这种喜欢喜欢从头到尾看书的人,应该很有启示的。所以,我决定暂时不读电子书了,包括他的那本哈哈。因为我自己已经看过官方文档和教程了,基本入门了,可以按照他说的,试试从网上和代码中学习。
Why I don’t read books的更多相关文章
- 7 Must Read Python Books
7 Must Read Python Books I started learning Python just two years ago. Coming from a C++ and Java ba ...
- TCP/IP BOOKS
TCP/IP Fundamentals for Microsoft Windows: Overview https://technet.microsoft.com/en-us/library/bb72 ...
- UVa 714 Copying Books(二分)
题目链接: 传送门 Copying Books Time Limit: 3000MS Memory Limit: 32768 KB Description Before the inventi ...
- LightOJ1283 Shelving Books(DP)
题目 Source http://www.lightoj.com/volume_showproblem.php?problem=1283 Description You are a librarian ...
- 抄书 Copying Books UVa 714
Copying Books 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=85904#problem/B 题目: Descri ...
- [LintCode] Copy Books 复印书籍
Given an array A of integer with size of n( means n books and number of pages of each book) and k pe ...
- JSTL标签出错:<c:forEach var="book" items="${requestScope.books}" varStatus="status">
今天在运行书里的JSTL标签代码的时候出错,总结一下: 问题1.The JSP specification requires that an attribute name is preceded by ...
- A Year Of Books - 2016 Javaer书单
A Year Of Books - 2016 Javaer书单 (PS:欢迎留言推荐,很多来自白衣大哥的推荐) 1. OS & Networking <编码 : 隐匿在计算机软硬件背后的 ...
- A Personal Selection of Books on E lectromagnetics and Computational E lectromagnetics---David B. Davidson
链接. General Books on Electromagnetics When our department recently reviewed our junior-level text, w ...
- 【NOIP提高组2015D2T1】uva 714 copying books【二分答案】——yhx
Before the invention of book-printing, it was very hard to make a copy of a book. All the contents h ...
随机推荐
- mybatis一对多关联查询——(九)
1.需求: 查询所有订单信息及订单下的订单明细信息. 订单信息与订单明细为一对多关系. 2. sql语句 确定主查询表:订单表 确定关联查询表:订单明细表 在一对一查询基础上添加订单明细表关 ...
- 洛谷 P3749: LOJ 2146: [SHOI2017]寿司餐厅
题目传送门:LOJ #2146. 题意简述: 有 \(n\) 种寿司,第 \(i\) 种寿司的类型为 \(a_i\). 如果你吃了第 \(i\) 种到第 \(j\) 种寿司,你会得到 \(d_{i,j ...
- Hadoop 上使用C 语言编程【转】
转自:https://www.linuxidc.com/Linux/2012-04/58991.htm 今天尝试用C语言在Hadoop上编写统计单词的程序,具体过程如下: 一.编写map和reduce ...
- Qt 数字和字符处理总结
1. 四舍五入保留小数几位 QString str="12.3456789"; double d1=str.toDouble(); qDebug()<<"d1 ...
- 设置文字小于12px
问题:有时候会需要设置一些小于12px的字或是icon: 方法:使用css3的transform的scale,来放大和缩小,但是相应的容器也会缩小 transform: scale(0.6);
- jenkins+jmeter结合使用
事件背景:想实现jmeter每30分钟执行一次,但是夜里不能人工操作,结果度娘,汇总结果如下 1.配置jmeter测试环境,注意修改Jmeter的bin目录下jmeter.properties文件的配 ...
- node.js开发web
1.安装express框架 使用npm install -g express安装express后,在命令行中执行express,提示没有此命令 原因是在新版的express中命令行需要单独安装 npm ...
- delete/truncate/drop table的区别以及锁在这里的角色
数据库删除语句 Drop/Delete/Truncate比较 Delete :删除数据表中的行(可以删除某一行,也可以在不删除数据表的情况下删除所有行). 删除某一行:Delete from 数据表名 ...
- 20165203 Mypwd的解读与实现
20165203 Mypwd的解读与实现 pwd 含义:在Linux层次结构中,想要知道当前所处的目录,可以用pwd命令,该命令显示整个路径名. 语法:pwd [option] 描述:pwd 命令将当 ...
- Java编程的逻辑 (1) - 数据和变量
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...