这是来自知乎的问题,是一个大二学生问的,说老师在讲课时说,从工资来看,后端开发要比前端高,并且说,掌握公司核心技术的都是后端。他问事实是否真的如此,然后问该如何规划自己的工作。
这里整理的是个匿名答案,答主应该是在网易工作过,后来去了阿里。答案很有参考意义,特此整理出来(原回答的大小写有部分错误,未一一修正)一起学习讨论。分两部分:
前端和后端的工资真像
前端的职业发展
1. 前端工资比后端低吗?
我可以负责任的告诉题主:据我所知,至少在杭的网易、阿里,前端跟后端是一个批发价。
关于以上,我说的是业务层的。假如你非得说开发Web 3D引擎的前端比一个普通的Java价格贵,或者玩hadoop的数据研发比一个普通前端高这就是属于杠精了。
我们指的前后端,一定是web开发的前后端,属于web业务开发。不然写中间件、大数据的后端,写web 3D引擎、前端框架设计的前端,都属于脱离传统web开发的范畴了。
我指的是同水平的情况下,因为个体的差异十分大,但是普遍一个P6/7的前端跟一个P6/p7的后端是一个价格。
题主因为还是在上学,我再多说几句。很多大学老师,其实离软件行业很远了。我们不排除一些大牛老师跟企业保持着密切的合作。比如我老师浙大翁恺,我之前在网易的时候还经常与我们有合作(现在不清楚了),网易云课堂上有大量他的课。
所以,老师对行业的一些看法并非可以全信,来知乎问问是好的;但是知乎上每个人的观点也不一样,现在就有人说后端价格更高这个观点,我再给你讲得详细一点。
1. 一定程度上上持后端薪资更高的观点也是对的。为什么?如果你算一下阿里前端的平均薪资和后端平均薪资,一定是后端高。
因为前端的地位提高,就这几年的事情。现在你去阿里p7前端跟后端(阿里后端就是java)是一个价格,可是之前一定是后端高,加之后端在阿里创建之初就有了,很多后端出身的人早进入管理层了。但是他们依然是挂着p9/p10的头衔的后端,前端不过是10年前后才发力的,p10以上的前端其实就那么一两个。
严格来讲到了p10这个级别已经没什么前后端这一说了;只不过是前端出身或者后端出身而已。如果是一路走技术路线上来的,前后端啥的都是通吃的。如果走的管理,其实已经不算技术了,那就是纯粹的管理。
所以,你现在根本不用担心这些问题,现在批发价是一样的,因为不管是平均数怎么样,到自己手里的才是王道。
2.个体差异很大,即使同一个级别拿的也有多有少。我其实在同级别的工程师里是属于最高薪那个级别的,虽然讨论薪资是高压线,但是每个员工都或多或少知道自己的情况。
当时去阿里时,我开的价格很高,一个原因是我当时并不想离开网易。如果不到一定价格我是不会走的,还有一个原因是,想探一下自己的价值到底有多高。
这就牵扯到一个程序员生存策略了:每年一定要拿出两个月出去面试——不管你要不要走。需要不断评估自己的价格,和发现自己身上的缺点及时弥补。
很多程序员不知道自己值多少钱,要么不敢要工资、要么狮子大开口。想知道自己值多少,去市场上试水是做好的办法。要记住一点:你的价格是市场决定的,而不是你的能力。你的能力,在稳定市场情况下可以跟价格成正比。但是市场永远不是稳定的。看看当年的安卓/ios多风光,再看看现在,人还是那批人,市场却要凉了。
3.不管是前端还是后端只是个敲门砖。很多年轻(其实我也挺年轻的)的小伙伴们都有一些执念,比如打算写一辈子Java成为Java大牛,走向人生巅峰,其实想法是好的,但是不可取。
我们从技术角度来说,因为写一辈子Java是当不了Java大牛的,你依然需要学习JVM系的Scala、Kotlin,更底层的c/c++,还有Go、Erlang这些拥有Java不同哲学的语言。最后,发现你Java只是你的敲门砖,真正让你成为Java大牛的是你懂的不同语言的哲学,懂得不同场景下发挥出Java的优势,规避Java的劣势,深知Java的优缺点。而不是抱着Java是最好的语言,写一辈子Java。
从职业生涯的角度来说,注意我在前文中用描述高P的工程师的词汇,『xx出身』。对于高P而言,没有前后端。前后端只是敲门砖,因为我们今天讨论的Web业务层面的开发,说实话都是处于计算机难度底端的玩意。之于一些答主说的鄙视链,其实就是中国队鄙视泰国队,菜鸡互啄。
在Web这条线上想走到高P,基本上都是走业务架构这条路,这考验的就是大局观了。你只会一个前端或者一个Java根本不够格。纯粹研究技术上P10的基本上属于蜀道难了——说的清楚点,对于传统的Web开发工程师(前后端)不通过管理走高P基本上只有往架构方向走,这个时候靠的是你全面的能力和良好的大局观,你当初的那些前端技术、后端技术就是个敲门砖。
p10以上还能纯玩技术的我指出几个方向,算法相关岗位(深度学习、计算机视觉等)、数据相关岗位、图形学相关岗位(比如网易开发游戏引擎的大牛等)、大规模系统的底层相关(阿里云)、安全相关。
普通的web开发,即使前端写出花、后端写得上天了,也无法靠纯技术走到高P。请时刻认知到自己处于计算机难度的最底层就行了,因为前后端技术本身没什么高深的,基本上都是工业界实践的结果。你看到很多xx公司从xx实验室、xx高校挖了个深度学习专家、数据科学家,你见过挖了个某教授来做web开发了?
总结:
1. 前后端目前在大厂至少是一个批发价。
2. 你作为一个个体能拿多少取决于市场,也取决你的个人能力和谈判能力,更平均薪资无关。
3. 不管是前端还是后端,只是你之后发展的敲门砖,传统web开发没有难度可言,想走高P懂前后端,是最最起码的要求。
2. 如何规划自己的职业?
最后,题主问到如何规划自己的事业。上文说的很清楚了:前端只是你的敲门砖。下面,谈谈几个靠前端敲门后的大方向:
1. web开发:前端、后端是web开发的两个端,其实同城web开发,在很多国外公司没前后端这个说法,都叫做『软件工程师』或者web developer。其实,要转换一个思想:前后端并不是对立的,而是纯粹的一家人。只是被国内外的一些市场强行分成了前后端,归根到底,是需要前后端都懂得,所以在你保持前端高水平的情况下,精进一些后端技术是必要的,但是要分清主次,前端为主。
2. 数据方向:以后数据就是互联网时代的石油嘛,这个方向也不错。在前端这边就是可视化相关的技术,在阿里这边有大量的数据可视化实践,因为阿里号称自己是数据公司(中石油?)。想做这一行建议搜知乎相关如何入门。提前说下,并不是用echarts渲染个图表就叫可视化了,这行水非常深。在高校有很多这个方向的研究人员,所以搜浙大陈为了解下,反正逼格比web开发高是一定的,以后再精进也还是离不开大数据相关的东西什么hive、hadoop之类的,可视化是整个数据链路最外层,最后走高P还是需要理解整个链路层的。
进一步说,web开发分web前端和web后端,是以web服务的角度来看待的,数据研发这个是在web开发的基础上用数据附能,懂可视化的一定是有前端能力的,懂hadoop的一定java玩的溜,属于web开发的拓展方向。
我目前是在职前端开发,如果你现在也想学习前端开发技术,在入门学习前端的过程当中有遇见任何关于学习方法,学习路线,学习效率等方面的问题,你都可以申请加入我的前端学习交流3000人裙:前面:851 中间:231 最后:348。里面聚集了一些正在自学前端的初学者裙文件里面也有我做前端技术这段时间整理的一些前端学习手册,前端面试题,前端开发工具,PDF文档书籍教程,需要的话都可以自行来获取下载。
3. 大前端方向:上文提到,移动端的ios/安卓早就式微了,但是并不代表死了。只是所有公司都意识到,没必要上原生开发了。知道养安卓/ios/web三个团队多浪费钱嘛,就那么点的用户量和难度,创业期直接all in小程序就行了;等做大了再上安卓/ios,而且也不用全上,30%的native+70%hybrid用户根本看不出差异,而且成本和效率不知道强了多少。一些大厂,比如阿里,在大量实践rn和weex;由于公司内部安卓/ios式微,一定程度上,前端把ios和安卓收编了,统称大前端(还有node)。比较出名的,是饿了么和美团,这种收编一定程度上也是政治的需要。像美团这种企业,一定是重后端的。距刘平川说收编完安卓/ios后加上node团队,大前端人数与后端持平。可以想象大前端的leader的话语权了:学一点ios/安卓没坏处。
4. 图形学方向:图形学的集大成者无疑是游戏行业,当然阿里也有自己的游戏业务,前端自然是与图形学有千丝万缕的联系,除了上面提到了可视化,还有相关3d引擎的开发工作。比如,玉伯的团队正在内部孵化antG(未开源),淘宝那边已经有前端3d引擎的开源项目,支付宝内部的蚂蚁森林,就是前端开发的。用的正是canvas/webgl相关的技术。做这一行要求也非常高了,图形学相关的算法,3d引擎的开发,这都需要图形学相关知识。要严格来讲,很难算传统意义上的前端了,更像是图形学在浏览器端的应用,之后发展肯定是需要借鉴传统图形学的方案,所以c/c++少不了,同时,3d/2d在浏览器端吃性能,需要webassembly加持,native语言是更少不了了。
总之,要么在广度上下功夫,要么在深度上下功夫,其目的就是在技术上高出其他人一个维度。
当然,还有从业务方面考虑的,业务 + 技术,可以更好的解决问题,创造价值。
网友评论