这是知乎上的提问。这是一个二年级学生问的。他说,老师在讲座中说,在薪资方面,后端开发比前端开发高,掌握公司核心技术的都是后端。他问是不是这样,然后问他应该如何规划他的工作。这是一个匿名的答案。答主应该是在网易工作,后来去了阿里。答案信息量很大,所以在这里整理一下(原答案大小写有一些错误,没有一一更正)一起学习讨论。分为两部分:前端和后端的薪水真的很像前端的职业发展1、前端的薪水比后端低吗?可以负责任的告诉题主:据我所知,至少在杭州的网易和阿里,前端和后端都是批发价。关于上面,我说的是业务层。如果非要说开发一个Web3D引擎的前端比一个普通的Java贵,或者说Hadoop的数据开发比一个普通的前端贵,这都是细线。我们所说的前后端一定是web开发的前后端,属于web业务开发。否则,写中间件和大数据的后端,写web3D引擎前端,前端框架设计,都属于脱离传统web开发的范畴。我说的是同级别,因为个体差异很大,但是一般一个P6/7前端和一个P6/p7后端是一个价格。既然题目还在学校,我就多说几句。很多大学老师其实都离软件行业很远。不排除部分大牛老师与企业保持密切合作。比如我浙江大学的翁凯老师,我在网易的时候经常和我们合作(现在不知道了),网易云课堂里面有很多他的课。所以,老师对行业的一些看法,不能完全相信。来知乎问问就好;但是每个人对知乎的看法都不一样。现在有人说后端价格更高。让我给你另一个意见。详细告诉我。我本人是一个从事多年开发的老web前端程序员。目前正在辞职做自己的web前端私人定制课程。今年年初,我花了一个月的时间整理了一个最适合2019年学习的web前端学习干货,各种框架整理出来送给每一位前端小伙伴。想要获取的可以关注我的头条号,后台私信我:前端,即可免费获取。1、在一定程度上,持有后端工资更高的观点也是正确的。为什么?如果算阿里前端的平均工资和后端的平均工资的话,后端肯定更高。因为前端的地位提高了,这也只是近几年的事。现在你去阿里p7前端后端(阿里后端是java的)是一样的价钱,但是在这之前,后端肯定是高的,加上后端从阿里成立就存在了,而且很多后台人员早早就进入了管理团队。但是他们还是后端,顶着p9/p10的称号,前端10年左右才开始做,p10以上的前端其实只有一两个。严格来说,p10级别,没有前端后端之分;它只是一个前端或后端背景。技术路线一路往上走的话,前后端都可以拿下。如果拿管理来说,那就不是技术了,是纯粹的管理。所以,你现在完全不用担心这些问题,现在批发价都是一样的,因为不管平均多少,你得到的才是王道。2、个体差异很大,即使是同一个级别,也可能或多或少。其实我在同级别的工程师中属于薪酬最高的级别。虽然谈薪酬是高压线,但每个员工或多或少都知道自己的情况。我去阿里的时候付出了高昂的代价。一个原因是不想离开网易。如果价格低于某个价格,我不会离开。另一个原因是我想知道我的价值有多高。这就涉及到一个程序员的生存策略:每年必须花两个月的时间出去面试——不管你想走还是不走。你需要不断地评估自己的价格,及时发现自己的不足来弥补。很多程序员不知道自己值多少钱,不是不敢要工资,就是狮子张口。如果你想知道自己身价多少,去市场试水是最好的方法。记住一件事:你的价格是由市场决定的,而不是你的能力。在稳定的市场条件下,您的能力可以与价格成正比。但市场永远不会稳定。看看当年的Android/ios多美好,现在,人还是那批人,只是市场要凉了。3.无论是前端还是后端,都只是敲门砖。很多年轻的(其实我也挺年轻的)朋友都有一些执念,比如打算一辈子写Java,成为Java高手,走上人生巅峰。其实这个想法是好的,但不可取。从技术角度来说,因为写了一辈子Java不可能成为Java高手,所以还是要学习JVM系的Scala和Kotlin,更底层的c/c++,还有Go和Erlang,这有不同的Java哲学。最后,我发现你的Java只是你的敲门砖。真正让你成为Java高手的是你对不同语言哲学的理解,了解Java在不同场景下的优势,规避Java的劣势,知道Java的优缺点。与其认为Java是一门好语言,不如一辈子写Java。从career的角度来看,注意我在上一篇文章中使用了形容high-P工程师的词汇,“xx出身”。对于高P,没有前后端之分。前后端只是敲门砖,因为我们今天讨论的Web业务层面的开发,老实说是计算机难度的底线。至于有受访者提到的鄙视链,其实是中国队鄙视泰国队,互相啄食。想要在Web线上达到高P,基本上走的是业务架构这条路,很考验大局。你只有一个前端,或者一个Java根本不合格。纯研究技术的话,P10基本上是一条艰难的川路——说白了,对于传统的web开发工程师(前后端)在没有管理的情况下加P,基本上只能往架构方向走。这个时候就看你的综合能力和良好的大局观了,你原来的前端技术和后端技术是敲门砖。对于p10以上可以纯玩技术的,我指出了几个方向,比如算法相关的岗位(深度学习,计算机视觉等),数据相关的岗位,图形相关的岗位(比如网易的游戏引擎开发人员等)和大型系统。底层相关(阿里云),安全相关。普通的web开发,就算前端写的好,后端写的好,光靠纯技术也达不到高P。请始终意识到自己处于计算机难度的底部,因为前后端技术本身并不先进,基本上是工业实践的结果。你看到很多xx公司都聘请了xx实验室和xx大??学的深度学习专家和数据科学家。你见过某个教授被聘来做网络开发吗?总结:1.前后端目前至少一个大厂批发价。2、个人能赚多少,取决于市场,还有个人能力和谈判能力,与平均工资无关。3.不管是前端还是后端,都只是你以后发展的敲门砖。传统的web开发一点都不难。想往高处走,懂前后端,是起码的要求。2、如何规划自己的职业生涯?最后,题主问如何规划自己的职业生涯。上面说的很清楚了:前端只是你的敲门砖。接下来说一下前端敲完后的几个大方向:1、Web开发:前端和后端是Web开发的两端。软件工程师”或网络开发人员。其实需要换一个思路:前后端不是对立的,而是纯一家人。只是把国内外一些市场强行分为前端和后端。归根结底,既要懂前端,又要懂前端。所以,当你把前端保持在高水平的时候,提升一些后端技术是很有必要的,但是一定要分清主次。前端为主。2、数据方向:未来数据是互联网时代的石油,这个方向也不错。前端这边是可视化相关的技术,阿里这边有很多数据可视化的实践,因为阿里自称是数据公司(中石油?)。提前告诉大家,用echarts渲染图表不叫可视化。这条线水很深。高校这方面的研究人员很多,于是找了浙江大学的陈薇一探究竟。反正比web开发好是肯定的。以后再先进,还是离不开大数据相关的东西,比如hive,hadoop。可视化是整个数据链路的最外层,最终还是需要了解整个链路层才能提高P。再者,web开发分为web前端和web后端,是从web服务的角度来看的。数据研发以web开发为基础,用数据附加能量。懂可视化的肯定有前端能力,懂hadoop的肯定会玩java,属于web开发的拓展方向。3、大前端的方向:上文提到,移动端的ios/Android早已没落,但并不代表它已经死了。只是所有公司都意识到没有必要进行原生开发。我知道养Android/ios/web这三个团队是浪费钱。这么小的用户量和难度,可以在启动期间直接allin小程序;做大了就可以用安卓/ios了,不用全部用。30%native+70%hybrid用户根本看不出区别,成本和效率都好很多。一些大公司,比如阿里,正在大量实践rn和weex;由于公司内部Android/ios没落,前端在一定程度上已经包括了ios和Android,统称为大前端(和node)。比较有名的是饿了么和美团。这种包容在一定程度上也是一种政治需要。像美团这样的公司,一定要把重心放在后端。刘平川表示,Android/ios编译后加上node组,前后端数量相等。可想而知,大前端的领头羊很有话语权:学一点ios/Android也没什么坏处。4.图形方向:图形的高手无疑是游戏行业。当然,阿里也有自己的游戏业务。前端自然与图形有着千丝万缕的联系。除了上面提到的可视化,还有相关的3D引擎。开发工作。比如Yubo的团队内部正在孵化antG(非开源)。淘宝已经有前端3D引擎的开源项目。支付宝内部的蚂蚁森林是前端开发的。使用的是canvas/webgl相关的技术。这一行的要求也很高。图形相关的算法和3D引擎开发都需要图形相关的知识。严格来说,很难算作传统意义上的前端。它更像是图形在浏览器端的应用。以后的发展肯定要借鉴传统的图形解决方案,所以c/c++是少不了的。同时,3d/2d在浏览器端的表现需要webassembly的加持,原生语言功不可没。总之,要么在广度上下功夫,要么在深度上下功夫,目的就是在技术上比别人高一个维度。当然也有业务的考虑,业务+技术,可以更好的解决问题,创造价值。
