专注还是全栈?

Posted 左直拳

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了专注还是全栈?相关的知识,希望对你有一定的参考价值。

前一篇博客说道,前后端分离成2个工种,前端开发人员和后端开发人员。我认为,这只是一种角色,一个程序员可以同时兼任这2种角色。

这样就引出一个问题:全栈工程师好还是专注某一块好。

前几周阮一峰的个人博客里也谈到这个问题。按照他的说法,专注好。

从现实情况看,这个结论大致是不错的,但要说清楚,是什么样的专注。

首先,专注是指领域级的,而不是某个工具级的

比如说你专注前端,就不是只搞vue或react。那只是目前流行的2个前端框架,说不定什么时候就被其他新的开发框架所替代。起码应该包含浏览器原理,http协议,javascript + html + css,websocket,可能还有别的框架,比如经典的jquery,各种地图前端开发框架,等等。凡跟前端有关的东西都要有所了解。

其次,专注不代表对其他领域一无所知。计算机领域的知识都是相通的,并没有截然分开,界线分明的领地。就算是软件硬件,网络,表面上不同范畴,但汇编语言,网络协议,都是结合点,更遑论软件开发里的坛坛罐罐了。很难想象,不管是后端前端,对数据库一无所知,在各自领地里拼命钻牛角尖,就能钻研得有多深入。专注,是在广博的基础上进行才有意义,是一个金字塔形。就算是领域专家,广泛涉猎,了解行业动态,最新行业进展,也并不矛盾,并且是很有必要。

人们对全栈工程师的诟病是全面但不精通。果真如此吗?为什么技术全面,就等于没有一样精通呢?普遍的理由是人的精力有限,天赋有限,不可能样样都会。这个道理没有错,问题是,计算机知识可以分为技和能2种,具体的细节,可称为“技”,技术原理,用途可称为能。比如说,微服务框架的优劣,适用场景,我们要清楚;但具体某一个微服务框架,或者如何部署一个具体的微服务框架,这里面细节很多,却不一定人人都要掌握。细节要消耗不少时间,如果只是一般性了解,其实花费时间不多。而且,计算机知识相对而言,是比较简单的,是个人,稍为了解一下,就能开干,职业门槛非常低。计算机里面的一些策略,比如并发压力大,就采用集群,负载均衡,分布式;传输提速,可以采用CDN啥的,这些想法都非常的朴实,完全没有什么高深的地方,很好理解。虽然计算机行业各种新名词,新框架层出不穷,让人眼花缭乱,但真正质变的东西频率没有那么高。这就相当于愚公移山,虽然我有很多东西不懂,只要我愿意学,学东西的速度比新知识出来的速度快(山不加增,而子子孙孙,无穷匮也),总有一天,我可以掌握大部分的知识。

阮一峰也说了,作为技术决策者(系统分析师),全栈比专注要优胜。你要那种工具,首先你要知道有那种工具。没吃过猪肉,也要看过猪跑。我想努力做一个全栈工程师。

参考文章:
科技爱好者周刊(第 174 期):全能程序员 vs 特长程序员
科技爱好者周刊(第 175 期):知识广度 vs 知识深度

以上是关于专注还是全栈?的主要内容,如果未能解决你的问题,请参考以下文章

前端技术应该走大前端(全栈)还是专注前端

程序员是做全栈工程师好?还是专注一个领域好?

Python培训是运维还是全栈,有什么区别吗?

前端培训哪家好

JSer全栈化技术栈推荐——原生移动端是天堂还是泥潭

程序员应该专注技术,还是优雅转管理?