lcxfs1991/blog

要做软件工程师,而不是前端工程师

Opened this issue · 21 comments

原文链接

default

最近几个月一直有些事情没有想通,但可幸的是,有些问题的答案逐渐开始明朗起来了。好久没写文章,籍此献上一篇短文。

当初准备毕业的时候,其实并没有想过要当前端工程师,毕竟当时基本都是全栈(PHP + jQuery)。但由于并不是科班出身(大学读Business),自信心不足,以及机缘巧合,就成为了一名前端工程师。

选择这份职业,其实也领略到它所拥有的魅力,更快捷的开发方式,更紧贴时代的发展,跨端的兼容等等,可以算是享受了前端这几年飞速发展的红利。但工作三年之后,也逐渐发现只是围绕前端来发展,有很大的局限性。

大约是有那么两件事触动到我吧。

第一件事是, React Native, Weex, Node.js 这事技术的发展,仿佛是给前端铺平了进入客户端和后台的道路。但真正开发过的人才知道,在这些技术里玩得溜的,其实还是从安卓、IOS转过来的客户端开发或者从JAVA, C++转过来的后台工程师。

第二件事是,如果未来,需要你带技术团队,只懂前端技术足够吗?其实是不够的,精通前端技术,然后懂点后台、客户端皮毛呢?我觉得也是不够的。就这样,能与后台和客户端达到更良好的技术沟通与理解吗?能在他们给出非最佳方案的时候提出自己的见解吗?万一部门的前端人力富余了,有能力带团队做后台吗?做些客户端的东西呢?能做,但能做得优秀吗?如果没有技术储备,我觉得上述的问题完全解决不了。

image

所以,未来一两年,希望自己能朝着软件工程师方向发展,而不仅仅是将自己局限为前端工程师。不过,一个人的精力真的有限,未必能把各方面的技术都学得很透彻。但我对自己的要求是,精通一门端技术和一门后台技术应该是比较好的搭配,这样整个产品的技术开发都基本能 Hold 得住。不过,具体怎么搭配,可能还是跟自己的职业发展和兴趣爱好有关,同时掌握端两门端技术、后台 + AI 技术、等等,我觉得这些搭配也不差。

技术能力拓宽之后,你未必能马上能管理团队、更好地掌握一些跨端技术,尽管如此,你在前端领域的一些想法,可能会有更不一样的转变。

image

比如说,如果公司内的团队,每个人都至少掌握一门端技术和一门后台技术,好多时候人力都可以动态调配,联调的时候也能减少。某个需求,如果后台人力太紧,导致联调时间滞后,之前前端团队最喜欢的做法是,我们来写个数据Mock平台,自己在上面写一些假数据,调完之后,后台好了,再跟后台调。但如果我本身就会这门技术,我直接把接口写好就行了,在接口传假数据,虽然可能还要跟后台的数据对接,但总体来说,实质上还是少了些Mock的功夫。

image

由于动态调配带来的好处除了节省开发时间,其实是更有利于技术部门组建 feature team。国内许多大公司主要都是将技术分得很细很细,每个组的成员,几乎就只会一门技术。如果一个部门里缺少了某种技术的组,或者尽管有但人力不足,要孵化的新项目需要这项技术,估计就因找不到合适的人才而难产了。

看完我所说之后,结合自身的发展,不知道是否也有所感触呢?

如有谬误,恳请斧正。

作为一个即将入行前端的非科班学生,跟前辈有过类似的疑惑,现在也在主动接触后端,安卓和机器学习的知识,希望以后也能跟前辈一样做一个 软件工程师😁

醒悟到这一点非常不错,不要局限自己的视野,多维竞争力的相乘效应会远大于单维竞争上的一点点优势。

尽可能的精通一门,熟悉一门吧

@dengnan123 我觉得你说的还比较靠谱,另外一门能做到熟悉就已经很不错了

不要给自己设限

同感,现在也会花些时间去学习后端知识

这些思考值得借鉴,单纯做前端,大部分人的职业天花板太明显了,话语权也不足。

另外,估计就因找不到合适的人才而难产了 这个一般不会吧,大厂有钱,就砸钱,或者内部调资源。感觉大厂制约项目发展的一般不是技术啊。

非常认同,在做好本职前端工作的同时,我正在学习java!

越来越感觉到前端在技术团队中的话语权不是很高,而且前端几乎没出什么高 P。前端都愿意通过中间层把项目和业务中的一部分逻辑接过来,就是为了增加话语权、前端的重要性,不过毕竟还是不如后端玩得转,还需要很长的一段路要走...

是啊,前端太容易被忽视了。。。。

其实从不同角度看,Android iOS 也是前端,就算是纯客户端开发,比如说一个视频App,编解码是后端,软件壳子也是前端,游戏开发中客户端Coder也叫游戏前端。

多涉猎,学无止境的,就算是 传统的 Web前端,敢说精通也没几个,随便一个特效能信手捏来,徒手撸个 Editor 什么的,很多人是用 react vue ui 库搭个架子撸个网页就叫会前端了,太浮躁

其实前端并不简单

前端去写接口这里有一个阻碍。什么阻碍呢?那就是前端在写接口之前必须捋清整个后台业务和数据库表吧。而这个任务非是从项目创始开始就跟随的前端开发者才能胜任不可,要不然这成本太高了。你这个觉悟应该是自己对自己的要求吧?

@littlepoolshark 接口层和渲染层而已,其实不太需要做数据读写。Node应该也是足以胜任的。

大方向,是挺重要的。暂时也是迷茫

其实我们这代前端是站在巨人肩膀上的,前辈替我们踩过了兼容性、工程化、跨平台的坑。作为当局者,貌似觉得这个行业现在有点缺乏想象力。我所看到的现象是,集团内不少同学也是像没头苍蝇一样,扎堆讨论接下来能做的方向,有同学去做 IoT,有的同学去做 区块链,这是个人兴趣和视野的区别,我觉得比较重要的是站在全局的角度而非前端职能的角度来看待业务。其次,对于比较喜欢技术的同学,其实找到自己的技术圈子比较重要,在体制内要考虑团队目标、价值,往往能快速落地拿结果的都是比较成熟的技术方案和强大的推动执行能力,甚至免不了是给其他团队或者是历史技术债填坑。现实如此,所以无论是内网还是 github ,面面基交流一下新点子,都能有助于开拓视野,弥补下体制内不能落地的缺憾。

博主的思考和方向很认同,作为一个前端工程师到一定程度都有很大的瓶颈。我是前端工程师,去年前年带前端团队,更多的还是专注前端和技术。今年带业务团队,负责一个业务线,团队有后端前端和客户端,比带前端团队难太多。也准备逼迫自己多看看后端和客户端的技术,作为一个leader更多时间都专注于业务了。

yexk commented
  1. 从前端到后台。
    • 不懂业务需求。
    • 不懂数据和业务逻辑处理
  2. 从后台到前端
    • 不懂布局和审美。

个人是从后台到前端,但总感觉其实技术上没有想象的那么复杂,毕竟代码无非就是26个字母+符号够成。语法基本都大同小异。软件工程师也好,前端工程师也罢。更重要的是自己的**和创意。方向是个人道路的规划,**和创意则是前进的动力和源泉。

前辈说得极是

这样效率确实很高,个人在这方面深有体会,就拿我自己开发的项目:极客教程 功能方面和掘金差不多,但是完全自己一个人开发,差不多都可以顶上一个团队了。

@cllgeek 你网站教程和书都是你写的嘛? 布局用什么插件还是都是自己样式? 感觉工程量巨大啊 厉害了

@yueswing07 教程和书不全是我写的,布局用的antd-degsign啊