最近在研读关于“整体性学习”的一些东西,收获颇丰。
整体性学习强调的东西有三样:结构、模型、与高速通道。特别是关于结构的篇章:
理解是什么?理解就是结构高度发达完善的结果。
是不是有些学科你可以轻松“拿下”?你读起这些科目的书毫不费力、兴趣盎然,一切内容看起来那么浅显、通俗,原因何在?因为你的脑袋里已经有这些科目的发达知识结构,假如说结构就是脑袋里的城市的话,那么这些城市一定是道路四通八达、路面整洁而且交通井然有序,虽然车水马龙,却从不见交通堵塞。
相反,为什么有些学科理解起来那么困难呢?(如我读汇编语言就有读天书之感),这说明城市简陋,道路不畅,甚至乱建一气,违章建筑、豆腐渣工程比比皆是,有些道路甚至无所指向;或是修了半截;或是孤零零一条,在这样的城市中行走,迷路是必然的,知识结构就是你脑袋中的参考地图。
给一本C语言书籍给未接触过C语言的人看,他会觉得是天书,什么都看不懂。为什么呢?因为他的大脑里根本就没有接纳这些知识的结构,就算看了,也不知道将这些知识存到哪里。
相反的,给一个不懂Python的程序员看Python的书,说不定1,2天就能上手了,这又是为什么呢?因为他大脑里有计算机编程的结构,哪怕没学过Python,一样可以理解与接纳这些知识。现在,你知道知识结构的重要了吗?它是快速学习的关键。
所以这句话让我深刻:理解就是结构高度发达完善的结果。如果有兴趣,推荐去了解一下:《整体性学习》,目前还在研读加工中。
那么在Web开发中,如何建立我们大脑内的结构呢?从小工到专家,也就是我们建立自己知识结构的过程。
基础(书目)
- 《代码大全(第2版)》
- 《C程序设计语言(第2版新版)》
- 《UNIX编程艺术》
- 《重构:改善既有代码的设计》
- 《计算机程序的构造和解释(原书第2版)》
- 《UNIX环境高级编程(第2版)》
- 《算法导论(原书第2版)》
- 《敏捷软件开发(原则模式与实践)》
- 《深入理解MySQL核心技术》
- 《Head First设计模式(中文版)》
- 《php和mysql web开发(原书第4版)》
- the programic programmer
- linux kernel development
- ……
编程语言
- C
- PHP / Python / Ruby
- JavaScript / Node.js
- ……
个人认为,学习上面的编程语言足够应付大部分Web开发任务了。当然,服务器端你可以选择 .Net 或 Java,但我个人偏向快速开发的PHP或Python,Node.js也能胜任。
工具
- Web Server: Nginx / Apache
- Database: MySQL / Mongodb / Redis
- Version Control: Git / SVN
- Project Managment: Redmine
- Test: ab / siege / http_load
- Fulltext Search: Sphinx / Lucene / Xapian / Coreseek
- misc: gearman / jQuery ……
- ……
高级
- 《编译原理(第2版)》
- 《人月神话》
- 《重来:更为简单有效的商业思维》
- 《软件随想录:程序员部落酋长Joel谈软件》
- 《设计模式:可复用面向对象软件的基础》
- peopleware 2
- high performance mysql
- high performance web sites
- ……
原本想罗列一些Web开发需要掌握的技能与工具,以方便理清知识结构,写着写着发现,真罗列不完,更多的还是看书。看书是完善知识结构的重要方法,尽管网上也很多学习资料,比如博客园、CSDN上面,是有很多技术文章。但是你有没有这样的一种感觉:逛了一天技术论坛下来,发现自己真没学到什么东西,还不如静静地看几小时书。
零散的知识就像零食啊快餐什么的,虽然也能填报肚子,却没什么营养。要身体健康,还是得多吃正餐,多看书去建立完善的知识结构。