chaojidan

导航

阅读寒冬前端大神文章有感

最近,在微博上面看到了寒冬大神的一篇文章,甚是认同,所以写下自己觉得有用的地方:

我认为,前端开发主要在两个方面,一部分是”能力”,一部分是”知识”。我个人的观点,能力占百分之八十,知识占百分之二十。

最新出来的Angular、React、ES2015,其实都在知识里面,知识又分成两部分,一部分我把它叫做标准,它是相对而言比较稳定的,很少会出现一个标准被推翻的事情。另一部分则是技术,像jQ、React这些框架,像是MVC、FLUX这些架构的东西,这些东西是由各个公司主导的,变化就非常快,你看Grunt发展了没多久,Gulp就来挑战他了,然后又有browserify、webpack这些东西。

而我认为占重点的能力,则是非常稳定的,我认为能力是三大块:编程能力、架构能力、工程能力。

编程能力,就是用代码解决问题的能力,你编程能力越强,就能解决越复杂的问题,细分又有调试、算法、数据结构、OS原理等这些的支撑,你才能解决各种麻烦的问题。

 

架构能力,则是解决代码规模的问题,当一个系统足够复杂,你会写每一块,能解决每一个问题,你能搞定整个系统,这就需要架构能力,架构能力包含了一些意识,比如解耦、接口隔离,也包含认识业务建立抽象模型,也有一些常见的模式,比如经典的MVC,还有设计层面,面向对象、设计模式等等。

 

最后工程能力,则是解决协作的问题,当系统规模更大,光靠一个人,是没办法完成的,如何保证几个高手互相能够配合好?如何保证项目里面水平最差的人不拖后腿?这个工程化建设,往往会跨越多个业务,以汇报关系上的团队为单位来做。包括前后端解耦,模块化,质量保证,代码风格,等等。

其实不难看出来,这三项,其实是有顺序的,低等级、小团队,编程能力一项就能应付,越资深的前端,越大的公司和团队,越是需要后面的技能。

 

下面我们来具体讲讲,关于知识的学习。

对知识,我一直有个观点,叫做宁缺毋滥,所以我对知识学习的目标,理解为两点,一:准确,二:全面。

学习的知识,如果你能做到这两点,那你将来在业务上做技术决策的时候,你面对面试官技术问题的时候,信心跟你只看过皮毛是完全不一样的。

如何做到全面:建立自己的知识体系。

第一步,寻找线索。

你要了解一个知识,比如我想学Web平台的API了,当然可以先找一本书,看看别人都写了什么,但是我不喜欢这么干。

我大学里,学前端,为了找个id和name的区别,曾经要借十几本书来,对比着看,那个时候,是真的没人告诉我,什么书比较好。所以我对别人总结好的知识,第一反应是质疑,不信。所以我比较推荐,找一些比较准确的。对Web平台的API,我就用反射:

浏览器里给出来的这个属性列表是不会骗人的,用这个东西作为线索,我就很有信心。

同样可能比较适合做资料,还有一些标准文档的附录,和源代码里的结构定义。

第二步,是建立联系。

比如说,看下面几个DOM属性:

 

这里,左边一列是操作Node的,右边一列是操作Element的,它就存在一定的对应关系。

第三步,是分类。

第四步,是追本溯源。

当我对一个知识体系的全貌,有了概念以后,需要确认它的准确性,很多知识,在社区,会有很多的争议,该相信谁呢,这是个问题。而我的答案,就是追本溯源,去找它最初的讨论和定义。

所以这个追溯的过程,能够帮我们真正搞清楚对错。

除了wiki-google学术搜索的组合,还有一些邮件列表和github提交历史,也是非常适合去查证一些概念和技术的历史的。

最后,我讲的这个建立知识体系的过程,是不断接受新知识,挑战、质疑原有的体系,推翻再重建,每一次循环,你的知识体系都变得更加坚固,更加强大。

下面分享的一部分,是关于能力培养。

能力培养其实重要性很高,但是其实说起来,内容却很少。只有两点:教材、训练。

 对知识学习,我是主张建立自己的体系,不要去相信书,但是对能力培养,我的观点就刚好相反,我觉得能力的体系,恰恰是难以自己建立的,需要教材去指导。这是由两者的复杂程度和变化速度决定的。

 想培养能力,就要找经典的教材来学习,像算法导论,The C++ Programming Language这些经典,几十年都没有过时。

 注意这里我用了教材,而不是书。

 教材和书最大的区别,就是有没有习题。

 在我看来,内容再难的书可以一星期读两本,但是教材一定不行,教材一定得花几个月的时间,一边读一边做习题。

于是谈到训练。

其实有个事实是,工作以后,只有极少数人仍然能够做到训练,比如我自己的编程能力,我自觉工作7、8年,几乎没有过进步。

训练应该是系统的(需要教材)、主动的,这两个特点不可或缺,有人会觉得,我真的工作很辛苦,每天都要加班,但是其实,任何被动的痛苦,都没法给人带来进步,你的痛苦倒是可能给老板带来更多收入。

如果面临困境,可以选择系统训练来提升自己,但是对大部分人来说,可能更乐于选择一个一个变通的办法: 养成习惯,让工作变得更有挑战。

这个事情其实有不少理论,比较有名的是Noel Tichy提出的心理舒适区、学习区和恐慌区。选择一份对自己来说具有挑战性的工作,正面解决问题。

技术圈里流行一个笑话,说的是一个人,工作了三年,却只有一年的经验,因为后面两年都在重复第一年的工作。

所以我们要做的事,就是永远不重复劳动,当你觉得现在的工作,越来越舒适,越来越缺少风险的时候,就应该引起警惕了。

而虽然训练是个很困难的事情,其实大家也不必过于担忧,虽然到处都是“一万小时训练”的言论,现在各大公司的招聘门槛,在我看来应该都卡在几百小时训练的程度。所以我想说,一万小时太久,只争朝夕。希望看到大家成为更好的前端,做更好的自己。

原地址:

http://mp.weixin.qq.com/s?__biz=MzIzMzEzODYwOA==&mid=416695997&idx=1&sn=f57f073bcb3a9559f0575d0a7584a246&scene=2&srcid=0322wNBBxRLm1j1TxpnSZmX2&location=35

 

 

讲的非常好,好好学习

posted on 2016-03-28 21:02  chaojidan  阅读(530)  评论(0编辑  收藏  举报