自学前端真的没有前途吗?

现在全职从事前端工作,到20年年底整6年,在做前端之前,我是那种跟在销售后面,他投标,我负责把他吹的牛逼变出来的板儿砖型程序员,什么语言和技术栈,根本不是借口,deadline放在那里,让你今天学一个技术栈,下周项目上线的事情,时有发生。我工作4年以来,对服务端,移动端,桌面端,和一些行业专有领域,都有过或多或少的涉猎,所以我对前端在整个技术图景中的位置和形态,一直有观察和评估。

在这期间我见到过各种各样的前端项目,既有大型企业级项目,也有精致的单一功能产品。到目前为止,我自己见识过得,认为可以某种程度上代表前端上限的产品有——

单一功能产品,国外的有:gmail,office online,mapbox,niagara(一种智慧建筑管理系统),react,vs code等。国内的有:石墨文档,厦门hightopo的webscada,QQ空间,淘宝双11大屏,echart,白鹭引擎等。

我认为以上产品,在单一功能复杂程度,以及实现水平方面,分别在国际和国内代表了当前最高水平。

企业级的大项目,不好衡量,但是从业务复杂程度和可见部分的架构水平而言,一线互联网公司(比如facebook/google/阿里)的支撑系统,以及业界领先的企业应用产品(比如saleforce/aws/微软),应该是目前最棒的。

我认为这些产品,从工程管理和前端架构方面,代表了业界最高水平。

如果以以上产品为标杆,我们可以大致这样说:

第一,在单点技术深度方面,前端的上限,不会超过桌面时代的native应用。

第二,在整体架构和项目管理方面,前端的上限,不会超过当前主流的大型后端项目。

所以如果有人标榜什么前端技术,那是忽悠人。前端在深度和广度上,和其他领域比,都谈不上什么超前和优势。

我目前是在职前端开发,如果你现在也想学习前端开发技术,在入门学习前端的过程当中有遇见任何关于学习方法,学习路线,学习效率等方面的问题,你都可以申请加入我的前端学习交流3000人裙:前面:851 中间:231 最后:348。里面聚集了一些正在自学前端的初学者裙文件里面也有我做前端技术这段时间整理的一些前端学习手册,前端面试题,前端开发工具,PDF文档书籍教程,需要的话都可以自行来获取下载。

那是不是说前端在技术上就可以什么可取之处呢?我认为也不是。

首先,前端是一个比较综合的领域,即有抽象的架构,又有具体的界面,对于综合能力的要求和培养程度比较高。在前端,埋头做一个小局部不关注整体,是很难跟上发展的。比如很多人因为技术栈老旧跳槽的时候不受欢迎,然后就有外人觉得这是因为前端浅薄,技术积淀不稳定。其实这不是主要原因,主要原因是新技术意味着新问题,你对新技术无感,意味着你已经很久没有解决过,甚至意识到新问题了。

第二,前端领域的业务问题往往更加难解,确切的说是更加难以定义。所以对开发人员的业务理解和抽象思维,有更大的考验。前端面临的问题,常常不是没有解决方案,而是连要解决什么问题都定义不清楚。好不容易划出一个子集定义清楚了,又发现涉及的相关方太多,从产品到设计到技术,很多时候前端表面的任务是设计一个方案或者完成一个功能,背后的逻辑却是要去引导一大群人的行为。

第三,我不知道这么说是否确切,只是我个人的观感——我觉得在技术水平从低到高的序列中,前端程序员能比后端程序员更早接触到“技术”或者“架构”的部分。

比如单点技术,表面看完全不一样的产品,后端模型可能是非常相似的。这就导致后端开发面临的问题其实也是高度相似的。而对于前端,当你度过了初级阶段,开始技术分化的时候,表面上看起来不一样的产品,那技术上也就完全不一样。你做数据可视化,你就要懂图形编程,你做编辑器,你就要懂编辑器领域的数据结构和经典实现方式。

而架构,或者说设计的部分,在后端微服务和云当道的时代,作一个普通的业务后端实在是太幸福了,或者说太容易了,躲在gateway后面写增删改查,某些时候往mq里面丢几个消息,就完事儿了。什么分布式之类的事情,可能一个大团队里面,只有一两个人需要关心。但是前端不行,刨除那些有枣没枣打一杆子的小作坊项目,任何一个稍具复杂性的项目中,一线开发的前端要是不关注架构,代码马上就会爆炸。这某种程度上意味着前端技术体系的孱弱,但是从历史的角度看,界面开发的繁杂程度之高,细节之多,理论模型之无力,确实是很多年来一以贯之的现象。

总体而言,前端与其说是一门技术,倒更像是一门手艺——不是说你掌握了一个什么技能,就一定能解决一个什么问题。很多时候,它更需要你心灵手巧。

回到问题,前端现在好不好?我觉得还行,至少不算是夕阳产业。虽然在话语权和成为中层/高管的路径上有劣势,但是对于大部分人而言,成长空间还是比较大的。有没有发展前途呢?我觉得还是有的,至少门槛不会越来越低,上限也不会越来越低。迄今为止,不管是前端内部的新技术,还是整个计算机领域的新技术,其实都没有在降低前端开发难度方面获得很大的进展,人的因素,在可见的未来还是占主导地位。

本文章由javascript技术分享原创和收集

发表评论 (审核通过后显示评论):