程序员以为的全栈和公司以为的全栈,程序员

刘军连治疗白癜风怎么样 https://m.39.net/disease/a_9363018.html

程序员对于全栈的定义,早期其实很简单,就是前后端都能胜任,指的是网站前端和网站后端。而PC前端比较特殊,往往前后端区分并不是太清楚。到了移动互联网时代,全栈的定义又被扩大了,在原来需要掌握的技能基础上又增加了移动软件前端相关技能。但往往这是程序员一厢情愿的想法,真正到了工作时,公司似乎和程序员的想法产生了分歧!

很多程序员对于全栈的概念只限于代码,但是有一些公司认为的全栈往往有点“全能”的意思。而所谓的全能,其实就是公司会要求程序员有解决工作问题的能力,这个解决问题的能力不限于代码。所以,如果公司和程序员之间因为对全栈的理解存在分歧的话,程序员工作起来就很难顺心了!

也许简单地描述,很难说清楚两者的区别,可能我举个例子你就明白了!

我的上一家公司是一家以硬件为主软件为辅的公司,我是以后端高级软件工程师的身份被招聘进来的。但是当我进入公司以后才发现,原来公司要求全栈。

好在我的确能全栈,所以一开始也并未觉得公司要求有什么不合理的地方!但是当我在后来的工作当中频繁碰壁,我才意识到,公司对于全栈的理解和我对于全栈的理解是有区别的!

首先就是工作内容,我认为的全栈无非就是网站前端、移动前端以及后端代码都会写。但是,实际工作中,公司会要求我负责整个项目的所有流程!

也就是说,在项目初期的需求调研、产品设计、业务框架的文档需要我来完成,中后期的前后端架构和代码、项目的测试、产品说明书、运维实施也需要我来完成。如果在项目研发时或者在项目交付后客户有什么问题,也需要我来解答!

这我就有点力不从心了,因为我之前的工作并没有产品相关的经验。所以,要我负责代码和运维实施这部分,我是有能力完成的,但是让我做需求调研、产品设计我完成起来就比较吃力了!

可是,我把公司对我的要求还是看低了,直到后来,公司的研发总监拿着一个硬件设备到我面前,让我去了解下硬件设备的各项参数我才发现,公司竟然还要我去做跟硬件有关的工作!

如果说要我去做产品相关的工作我还勉强可以去找一些资料辅助完成的话,和硬件打交道那是需要一定的硬件知识的,临时去学的话不是一时半会儿能学会的!

碰到像我上家公司这样的,如果让我去学习硬件相关的知识,我愿意学并且公司愿意花时间和耐心等我学好并学以致用还好,如果公司因为我不懂硬件知识而觉得我不够“全栈”我觉得这就是一件匪夷所思的事情了!

因此,最终我和公司因为工作上的问题没有达成一致,分道扬镳!可见,有些公司对于全栈的理解还是和程序员对全栈的理解是有区别的。而对于程序员来说,选择就变得很重要了!

后来想想,其实我上家公司的要求并不是要求程序员所谓的“全栈”,而是要求“全能”。这种公司其实心里也清楚,没有人是全能的,但只要尽量全能就好!但是在实际工作当中,当你真的搞不定某一项工作时,公司是不会理解你的!

因此,我觉得要求全能的公司不能去,因为非编程内容的杂事过多,会分散掉一个程序员对于技术的专注度。另外因为经常会遇到自己比较陌生的工作内容,因为没有能力做到令人满意,可能你本来代码写得很优秀,但是因为其他事情做不好而遭到公司的责怪!

如果你作为一个程序员,想要往产品方面转或者想未来做和人打交道的事情,那些要求全能的公司可能会适合你。很多时候,一个全能的程序员最后往往都成为了项目经理。

如果你未来很长一段时间只想敲代码,并且还想往研发经理甚至是研发总监的位置上走,那么巩固好自己的技术水平才是最重要的!尤其是那些刚刚毕业几年的程序员,技术水平还很一般,此时过多的跟编程技术无关的工作就会导致程序员的技术提升速度变慢甚至是停滞,得不偿失!

结语

作为公司想要程序员全栈,首先就要搞清楚什么是全栈,要把全栈和全能区分开来,否则会影响员工工作热情,打击积极性。就像我上家公司,我觉得他们就是没有搞清楚这层关系,所以这家公司的人员流动特别大,很难留住人!

而作为程序员,在挑选公司的时候也得注意公司想要的到底是全能还是全栈。如果公司要求的是全能,那么你得好好想想你未来的发展路线会不会受到公司要求的影响!




转载请注明:http://www.aierlanlan.com/rzfs/9900.html