现在普遍情况是前端和后端相对分开,公司也分别有专业的前端和后端团队。公司需要前后端都懂,能写HTML,CSS,也会Ruby和MongoDB的人吗?前后端“都懂”肯定不会像专攻前端和后端的人那么专业。

回复内容:

以同事为立场,希望和这样的同事工作。两点原因:

1.合作需要,开发时如果两人都懂另一角色的技术,易于沟通。出了小问题也可以立即解决减少沟通成本;
2.从学习的角度讲。通常一门技术掌握皮毛只需要20%的时间,80%的时间用于学习剩下的20%到精通。实在没有理由不肯抽出20%的时间而让这门技术'不懂'下去。 先不考虑公司是否需要,我觉得做为一个工程师而言,终极的目标是"build a product from scratch"。那对于做web app的工程师来说,就是前后端通吃,还有一定的运维能力。当然,对各部分能力的要求是不一样的,假如你是个优秀的后端工程师:
  • 即使你不会从头到脚写一个responsible framework,起码你应该会使用bootstrap做个过得去的前端展现
  • 即使你写不出来复杂的javascript widget,起码能处理像知乎这样的消息通知前端
  • 即使你不能对mysql进行性能调优,将performance最大化,起码你能在自己的产品crash时能够恢复数据,恢复系统的运行
  • ...
当你具备了这些能力时,你就能更好地站在其他角色的立场上看待后端开发,你的后端开发能力也会随之提升。这也是某种程度上的synergistic effect吧。

这样的人,无论到哪里,都会受欢迎。Rails 的作者 DHH 就是 Ruby&Javascript 双修的大牛
国外这样的人很多,不要给自己贴标签 需要,原因是这样的人通常具备更好的技术统筹能力,在技术团队里比较有希望做综合管理职位,尤其在下面几类角色上:

项目管理,前后台积累如果过于肤浅会形成判断障碍,如对于某个功能的难度的判断,对于整合功能测试流程的把握,质量控制,很难想象一个对前端性能没有认知的项目管理人员能够给整合测试提出什么标准来;

团队管理,如果在前后台的认知都过于肤浅,就比较难以赢得专业技术人员的尊重,团队管理角色本身的积累是团队稳定性的重要因素;

架构人员,没有全面的技术认知和经验,在这类角色上会很颠簸;

IT公司技术团队里面最贵最重要的往往就是这些角色,贵是有理由的。 精通某一端,了解另一端,就很不错很不错了。 从成本考虑,还是分开为好,懂的越多,其自身定位和要求也就越高,这不是一般公司能负担的起的,即便只是懂的多而不是精深。

其实不用刻意招,只要内部多交流,合作的多了,多多少少都会懂的,这样更好一些。 一定要有:前后台都懂或去努力知晓其利弊的意识,前后台都精通可能很难,多少都要知道,可以轻重不同。不管是大公司,还是小公司,因为最终都将分到某个项目团队中,为此必须要有......一条线的理解非常关键,做事情能考虑更周全,能规避很多风险..... 我是前后端的开发都做,在经济能力有限的小团队,有这种能力是很必要的。在一些分前后端部门的团队中,前后端被分离必定是有客观原因的。不好判断是否有必要分离前后端。

但作为前端、后端的开发者、设计师,学会关联的知识是很有必要的。

前端或后端精通其一应该是最好,但两者都会提高竞争力没有问题。 我认为,优秀的前端工程师是需要一定的后端开发能力和知识……但一般的只是会关注前端方向,包括交互、体验等 不一定需要所有人前后端都懂。
但我一般会在一个team里安排一个前后端都有涉猎的人,做协调工作,或者是救火队员。
09-09 03:25