2017年已过,2018年也已经过去2个月了。从08年开始接触软件开发到现在,也快有10年时间了,期间经历过开发,管理,产品,售前等很多方面,想做一些整理也给一些和我一样在这条路上走的同仁一起感慨一下。
首先说一下程序员发展的方向,基本大家都知道,就说的简单一些。(不包含测试同学的方向)
NO.1架构师、CTO,可能是很多程序员都期待有天可以进阶的等级(有些大的公司把架构师区分成业务架构师和技术架构师)
NO.2 项目管理(PM)、PMO、CEO 这个也是一个选择最多的方向。
NO.3 产品经理(PM)、产品总监 最后也可以做到CEO
NO.4 售前,选择的人不多,但是也是一个方向。
NO.5 软件销售,这个估计比售前的人还少,但是做好了优势很明显。
有了方向和目标,我在谈一下各个方向需要哪些能力吧,都是个人见解,有不全面的地方希望指正。
1. 架构师的方向,毋庸置疑,你需要熟悉足够多的技术框架知识,不只是会使用那么简单,还需要有自己独特的见解和能够修改重构基础架构的能力。从前端到后端,从应用到数据库,从基础编程到高级资深编程。特别是互联网的发展,要求更多的海量数据的处理,高并发等。有兴趣的可以看看网上介绍的架构师之路需要的技术能力成长路线。
2. 项目管理方向,需要有管理能力,可以管人,管项目,管时间,管风险等。说白了,就是要有领导能力,处理事情的能力,善于沟通的能力。其次就是对项目的掌控能力,能够控制项目的进度,在规定时间内完成项目。
3. 产品经理方向,需要有专业的产品分析能力,市场分析能力,用户行为分析能力。和项目管理也有一些重合的部分,就是需要一定的管理能力,目前很多中小互联网公司就是拿产品经理当项目经理使用。
4. 售前的工作要求的能力是很全面的,需要在某个业务领域生根挖掘过,对公司的产品和项目深入的了解,能够剖析产品乃至行业的发展。沟通能力那是必须的,特别是语言表达能力,还有临场应变能力。
5. 软件销售,一般销售需要的能力都需要。了解客户,把握客户心里,能言会道,瞄准机会和把握机会。可以把职场心理学和销售能力学都看一遍了。
说了那么多,很多人都清楚了方向和能力。那么最难的来了,就是如何做选择,哪条路是最适合自己的。我也只能根据我的经历给各位一些建议吧。
30岁之前我们都会面临很多的选择,初高中入学的选择,大学报考志愿的选择,毕业工作的选择,毕业几年之后工作方向的选择等。有些我们自己可以做决定,有些做不了。在能做决定的时候,首先要做的就是分析自我。自己的性格是什么样子,擅长的是哪些,有哪些优势和劣势。这都是以后职业规划需要面临的不得不考虑的问题。
1. 工作的1-2年 初入这个行业,在适应和了解这个行业,这个无可厚非,这个时间段要做的事情就是能让自己在这个行业站稳脚跟,无论在技术和业务上都是你需要的营养成分。
2. 3年左右 这个时间点很重要。在一家公司工作3年的一般都是老员工了,这个时候你无论对公司的业务和技术上都有很充分的了解了。所以你就需要考虑自己的性格和优势、劣势,已经自己的兴趣是什么。是准备在技术的道路上披荆斩棘,还是觉得要向其他方面发展。考虑好之后就需要做选择,技术的道路需要你去专注深入的了解公司以及外部的各类技术架构和核心技术。走项目管理的道路,就需要充实自己的理论知识,并且在后续的实际工作中可以运用起来。
3. 5年期限 很多人在5年左右得时候感觉很迷茫,总不知道自己以后会要做什么。其实就是没有很好得分析自己导致,尤其是在一家公司待了5年左右得,公司发展不错的还能继续往上发展,如果公司业务没有特别大的发展,那么就是一个尴尬的局面。这个时候就一定要做好自我审视,到底是走那条道路,选择好了走出去还不算晚。
4. 5-8年 在这个时间段的程序员都知道什么是最适合自己的了,也都走出来自己的道路,如果还不知道做什么,还在浑浑噩噩的过日子,那可能就真的没有什么发展前途了。
5. 10年 都是在技术和业务或者管理方面有很错的经验,可以在大公司继续努力奋斗,或者在创业公司做个实际的践行者。有经验和资源的人都可以创业了。
再分享有些我的个人建议:
1. 一定要好好的分析自我,不管做什么工作,还是做人,认清自我,都是必要的。只有在这个基础上才能好好的谈需要补充哪些技能和知识。
2. 一定要在平时闲暇时间多补充自己。想做技术的同学多点研究,多点动手折腾,要从基础知识做起,不要总是好高骛远,记住,任何高手都是内功强大的。想做管理的,可以看看PMP,CMP等方面的理论知识,有时间的可以考个证书,虽然有的很多在实际工作中不是那么回事,但是现在很多公司都需要这样的证书。
3. 不要被现实的环境所困顿,舒适轻松的工作谁都想要,但那不现实。付出和收获都是成正比,在舒适的环境就需要保持自我清醒,时刻折腾自己,折腾人生。
4. 技术、管理不是对立的,但是不能两个都精通,人的精力都是有限的,与其在两个方面都很平平,不如独树一帜。当然也有两个方面都很突出的人才,我只能说大部分人都不是这样的。(我自己也不是)
5. 另外,想做产品的同学也可以早早的准备起来,从技术转产品的人很多,优势在于对技术的了解,能够更容易把控产品的开发和实现。从项目管理转产品,个人不是很建议,因为最终的产品的归路还是会到项目管理上乃至到公司的最高层。
6. 不要频繁的跳槽,都说IT行业跳槽是涨工资最快的,但是一个公司如果没有干满3年,你对这家公司的业务和技术都不能说算是熟悉,更何谈技术和业务的经验沉淀呢。初期的频繁跳槽是会带来工资的快速增长,但是在5年之后将很难有好的发展。因为没有一个技术或者业务是你所能驾驭的。
7. 在有些面试的时候会被问及个人的发展规划,1年的时候被问到,面试官是想知道你对这个行业的看法和自我立足的信心。3年左右的时候被问到,是想知道你是否能够认清自我,有明确的职业规划。5年或者以上被问到,那就是想知道你后续的职业规划是否适合公司后续对这个职位的规划,是否有冲突。