工作7年的iOS程序员想转后端,以及技术与管理的抉择
我从2009年毕业后,基本一直都是在从事iOS开发,其中真正做开发的大概有5-6年,后面2年做技术管理,带iOS团队(6-10人的规模)。在我工作的前几年里,其实职业规划很简单,就是不断提高自己的技术水平,在iOS这个领域上深入下去,中间也有了解过其他语言,包括php,java,js等等,一些业余的项目用过这些技术。在之后的几年,也渐渐思考过要不要转行。 我在腾讯呆过,了解里面做iOS的其实不如做后端的好晋升,因为iOS往底层挖掘难度很大(苹果太过封闭),做安卓的可能还好一点,可以搞搞ROM,改改系统,做iOS的什么都不行,而后端动不动就来个几亿规模的并发,系统架构设计什么的都可以很好的吹一吹,从T3、T4的人数占比上就可以清楚的看到后端专家比前端专家的人数多多少。
另一个就是技术与管理的选择问题。在中国目前的环境下,好像做程序员做到30岁之后都会面临这个问题。如果单从上升的通道来看,两者其实都能做到比较高的层级,主要还是看个人的想法。我从腾讯出来以后,在一家中型的电商公司做了两年的iOS leader,主要就是管人和管项目。在管项目这个方面,主要就是定时的跟跟版本进度,评审需求,安排人员,讨论技术方案、Code Review以及提测和发布等,大概占了20-30%的时间吧。管人方面,就是定期找组员一对一沟通,然后向上汇报工作情况,做一些团队的日常管理和建设吧,大概10%-20%的时间。其余时间,我基本还是在关注技术的动向,以及一些线上问题的跟踪。 领导总是觉得我做管理做的不好,经常找我谈话(其实其他团队Leader也差不多),说我没有把团队氛围带起来,在管理技巧方面也掌握的不够,主要还是两方面的问题:一个是对待问题的心态,还是没有从程序员的心态转到经理的心态上来,比较注重事情本身,而没有关注到人上面,然后在项目管理上也是先想着如何把需求做好,少出bug,为组员提前考虑好有哪些问题, 而不是怎么去提高组员的能力,让他们自己去发现问题,解决问题(这点目前已经有很大的改善了)。另一个就是不愿意做恶人,这可能更多的跟个人性格有关,我在团队管理时,想尽量把每个人都照顾好,有些能力不行的也会尽量多给他一些机会去证明他自己,但是用我们领导的话来讲,这是对其他人的不公平,因为你照顾了这个就会忽视了那个,有可能能力差的人受到鼓励,会做的比以往好一些,但能力强的人没有动力去做的更好,这样从团队整体的产出上来说,是弊大于利的。其实我从心底里并不是完全认可我们领导的管理方式,也跟他就个人培养的问题争吵过,但是在实际操作层面上来说,如果你不按他的方式去做,又说服不了他的话,你是在给自己挖坑。所以我觉得我还是转行做技术会比较好,至少我个人的价值比较容易得到体现(管理的价值需要从整个团队的产出上面体现)。
我前段时间尝试过去求职,主要是找iOS Leader的岗位,发现很多创业公司并不需要这样一个岗位,他们需要的只是一个能够写代码的而已,而对于BAT这样的大公司,又更看重前后端的综合技术能力,也就是说,像我这样只懂iOS,没有其他端实际工作经验,又不愿意只写代码的人(主要是技术上面提升有限,除非做某一方面的专家,但是市场上这方面的需求并不多),是没有市场的,这就非常尴尬了。 我想转行其实一方面是为了提升自己全方位的能力,另一方面也是觉得在管理这块确实做的不好,也很难往上走(至少在现公司是这样)。就算是转行不成功,还可以再转回来做IOS,顶多就是换个公司罢了,更何况很多公司还需要全栈工程师。另外在技术栈的选择上,我觉得php或者nodejs 可能是最适合我的,因为这两门语言之前都接触过,而且学习起来也不是很难,当然精通不精通又是另外一回事了。不知道论坛里的朋友有没有这方面经验的,可以取点经,如何转或者该不该转,给我提一点宝贵的意见。