《论语·雍也》:“子曰:君子博学于文,约之于礼”简称为由博返约,主要是解决学习的广度和深度的矛盾或者说解决知识的广博与专一的矛盾 ,“知识要广,但必须有一个中心加以统帅”,博学以获得较多具体知识,返约在具体的事物分析基础上进行综合、归纳,形成基本的原理、原则、观点。博与约两者是辩证的统一,学生在掌握知识的时候就是要把复杂的知识系统化,把握住知识的核心。
技术在不断发展,有其独特的江湖,江湖中各门各派各有天地,但江湖中自有其江湖规矩:那就是别人在危难时帮一把手,做技术要谦虚谨慎不自傲。遇到别人在论坛里提问,有解决方法的尽量给个提示,助人为乐嘛。经验丰富的也不要轻视别人,术业有专攻,在技术这一行业,工作十几年的也有可能被刚毕业的学生轻易问倒。
妄想像张无忌一样得遇几个世外高人或门派掌门,短时间内传授你盖世武功,在技术界几乎不存在,技术里也不存在像九阴真经之类的独门秘笈,要想做技术,就需要沉下心来,吃得了苦,耐得了寂寞。
初中时杨老师给我们讲过一篇文章,里面有一句话:“由博返约,精修一门”记忆尤深,那时就思考博与约的关系,如果想进步,不应一开始就钻入一门,那样很容易钻到死胡同里,先博后约,由博返约才是首先要做的,即使你数学很好,但你语文和英语跟不上,同样很难考上好学校,所以在平衡中各门齐头并进,虽然一开始行军速度慢了一些,但不偏倚,多科也会暗中相互促进,使后面的进度加快。高中时,我常发现,凡是成绩靠前的学生,大多书籍比别人多,他们阅读量,接触面要比别人多,班里第一名学生坐在最后一排,平时我们在反复背那几个单词时,他在看运筹学、大学英语,这让我也深受启发,在高中时背完了大一的英语课程。
崔教授讲C++时有趣地说:“你们不仅要能沉下去,还需要浮上来,别沉下去就出不来了。”的确如此,学开发首先要能沉下去,系统地学习理论,然后要浮上来,站在更高一层去查看,把学到的东西用到实际项目中,再通过实践来巩固学到的内容。
全栈工程师FSD-Full Stack developer是博学的代表,他们需要有全局性思维,系统的知识,不局限于一门绝技。
现代项目的开发,需要掌握多种技术。互联网项目,需要用到后端开发、前端开发、界面设计、产品设计、数据库、各种移动客户端、三屏兼容、restFul API设计和OAuth等等,比较前卫的项目,还会用到Single Page Application、Web Socket、HTML5/CSS3这些技术以及像第三方开发像微信公众号微博应用等等。
Web前端也远远不是从前的切个图用个jQuery上个AJAX兼容各种浏览器那么简单了。现代的Web前端,你需要用到模块化开发、多屏兼容、MVC,各种复杂的交互与优化,甚至你需要用到Node.js来协助前端的开发。
所以说一个现代化的项目,是一个非常复杂的构成,我们需要一个人来掌控全局,他不需要是各种技术的资深专家,但他需要熟悉到各种技术。对于一个团队特别是互联网企业来说,有一个全局性思维的人非常非常重要。
沟通成本:项目越大,沟通成本越高,做过项目管理的都知道,项目中的人力是1+1<2的,人越多效率越低。因为沟通是需要成本的,不同技术的人各说各话,前端和后端是一定会掐架的。每个人都会为自己的利益而战,毫不为已的人是不存在的。
而全栈工程师的成本几乎为零,因为各种技术都懂,胸有成竹,自己就全做了。即使是在团队协作中,与不同技术人员的沟通也会容易得多,让一个后端和一个前端去沟通,那完全是鸡同鸭讲,更不用说设计师与后端了。但如果有一个人懂产品懂设计懂前端懂后端,那沟通的结果显然不一样,因为他们讲的,彼此都能听得懂。
创业公司:对于创业公司来说,全栈工程师的价值是非常大的,创业公司不可能像大公司一样,各方面的人才都有。所以需要一个多面手,各种活都能一肩挑,独挡多面的万金油。对于创业公司,不可能说DBA前端后端客户端各种人才全都备齐了,很多工作请人又不饱和,不请人又没法做,外包又不放心质量,所以全栈工程师是省钱的一妙招。虽然说全栈工程师工资会比一般的工程师会高很多,但综合下来,成本会低很多。
Facebook说他们只招全栈工程师!
但是全栈工程师也有自已的困境。
技术有两个发展方向,一种是纵向一种是横向的,横向的是瑞士军刀,纵向的是削铁如泥的干将莫邪。这两个方向都没有对与错,发展到一定程度都会相互溶合,就好比中国佛家禅修的南顿北渐,其实到了最后,渐悟与顿悟是一样的,顿由渐中来。
如果一个公司不太懂全栈工程师的价值,那么全栈工程师的地位将会很尴尬,说得不好听一点,全栈工程师就是什么都会,什么都不会。曾经有一次面试,对方问很基础的问题,他答不上来,但他能做出产品,也知道什么是怎么一回事,他也不会犯那些错误,可他就是答不上概念,要考倒他非常容易。所以在应聘面试的时候,有些时候会吃亏,他可能会不如哪些在某一方面钻得很深的人工资拿得高。
由于经常在各种技术穿梭,他会经常忘记代码的语法和一些API,所以他经常需要去查API甚至查语法,他觉得没有Google我几乎没法工作。这在某些人的眼里,是技术不够的表现。他记的只是一个Key,一个如何找寻答案的索引,而不是全部,人脑不是电脑,他不可能能记下所有的东西。
我深切地体会到这种困境,但我也清楚,这些困难只是暂时的,随着技术的积累,不懈地努力,一定会从全栈过渡到全栈而精通一个方向。而这个方向,我选择前端。
博观而约取,厚积而薄发-苏轼。
–工作七年多,一直做技术,2015年过去了,2016年新的开始,谨此文来鼓励自己。