Web应用开发实用编程指导(四)—学习比经验更重要

来源:互联网 发布:l-sql语句like约束 编辑:程序博客网 时间:2024/04/29 01:09

        重要的并不是经验本身,而是“努力地学习”,也就是要不断地挑战自身能力之外的东西 ——Jeff Atwood·《程序员的修炼——从优秀到卓越》

        这是一个一切都在高速发展的时代,我们周围的城市环境几乎每天都在变化。即使是在一座城市里长期生活的人,也会在不经意间发现:几个月没来过这边,仿佛已经有很多路都不认识了。这种日新月异的感受在IT领域应该更为明显,摩尔定律告诉我们:每一美元所能买到的电脑性能,将每隔18个月翻一倍以上。这样的知识更替在应用软件开发的领域更为明显,大量的框架和开发工具如潮水般涌入这个行当,在降低了行业门槛同时也促进了大量的劳动力涌入。为了赶上潮流,开发者们不得不选择晋升或者转行来保持自己的竞争优势。实际上,“软件开发者最擅长的就是学习。工作经验年数和编程技能之间没有必然的联系。在任何特定的技术领域工作6~12个月后,你要么是精通了,要么就这样一直混下去了。”,Atwood的话一针见血地指出了IT职业生涯的实质。

        技术发展的一个弊端就是让人越来越懒,人人都想当“伸手党”。技术人员如果有这样的习惯,带来的将是解决问题能力的日益低下。用户访问浏览器里面的某个链接,从用户输入网址按下回车后的那一刻开始,一直到响应的数据最终被展示在浏览器上,这其中到底是一个什么样的过程?恐怕压根没几个人能说清楚。用户输入在页面上的内容,如何就被框架转换成了各种不同的数据类型?我并不是说一定要去学习网络协议,要去看源代码(当然底层的东西能了解一下绝对是可以提高职业素养的)。但是你至少得知道,浏览器提交给服务器的数据本质上就是一串序列化的String,应用服务器把它解码后设置到了一个名为request的对象中,然后交给应用程序进行类型转换之类的操作……。对于业务日益复杂的系统,如果你能了解软件工作的原理,可以预先帮助你评估出问题可能出现的大致地方,因而大大减少逐行调试带来的时间成本。况且,即使你有逐行调试的耐心,也不一定就能找到问题的原因所在。代码,只是程序的一个方面。

        联合国教科文组织在上个世纪60年代就提出了“终身学习”的倡议,但是时代的发展却似乎刚好相反。“伸手党”往往不爱学习。你可以看到开发人员在网上搜索资料时,如果打开的是一篇英文网页(或者仅仅是英文词汇多一点的网页),然后便以飞快的速度将其关闭。这样的人显然就没有良好的学习态度,首先读书的时候学习态度就不好——不认真学英语,然后工作以后工作态度不好——对工作有帮助的资料为什么不学?实际上,许多在中文搜索引擎上找不到答案的问题都可以在一些英文网站上面找到答案,打开英汉词典,翻译几个关键的词,你会发现技术领域的英语其实都是很好懂的。《为学》有云:“为之,则难者亦易也。不为,则易者亦难也。",尝试一下超出自身范围外的事情,也许会失败,但成功的可能性也是大大的有的。软件技术的起源是在国外,看些翻译过来的大牛作品,你将受益匪浅。有些人觉得国外大牛们写的书只能看来玩玩,这些读者应该属于“勤勤恳恳的代码搬运工”之类,或者已经看过了太多世事的阴暗面而放弃了更高的追求。大牛阐述的是思想,是原理,这些东西胜过那些《XX天技术速成》之类的书籍很多倍。

        还有一类人,从来不看“长”的资料,不读”厚“的书,这是浮躁和不懂学习方法的表现。“长”和”厚“的文章书籍,刨去那些小说式的纯粹凑字数的,还有很多系统且全面的。看一篇这样的资料,可以解决一个技术面上的很多疑惑,甚至给一种新的思路给你,达到举一反三的效果。知道解决问题技巧固然精彩,但真正的成就都出于厚实的积淀。看书要先看目录,有时间就一页页看它的内容,没时间就根据目录去检索阅读。有些书看起来厚,但是其前后并没有非常紧密的联系,先看若干的章节,进一步通读全书也是一种学习的方法。

       我们大多数人都不是”富二代“、”官二代“和”星二代“,我们既没有有权有势的”干爹“,也没有像爱因斯坦那样聪明的大脑。我们既没有像明星那样漂亮的脸蛋,也没有能中500万的运气。但是还好,我们也多数没有身体和智力上的严重残疾,没有每天要拼了老命才能有口饭吃的窘境。那么,为什么不多去学点东西呢?


0 0