.Net程序员的未来
在一个互联网公司中,当以软件开发工程师的职能进入公司,那么大体上,他的职业发展中,可以有三种发展方式。首先我来大体规划一下:
初级开发工程师→中级开发工程师→高级开发工程师→项目主管→网站架构设计师→大项目经理→资深专家→首席技术官(CTO)
初级开发工程师→中级开发工程师→产品专员→产品策划→产品经理→产品总监→副总裁(副总经理)→总经理(总裁CEO)
初级开发工程师→中级开发工程师→网站运营专员→运营主管→运营经理→运营总监→副总裁(副总经理)→总经理(总裁CEO)
路线描述
路线1:
这是一条开发技术专精的路线。如果你对开发有兴趣,喜欢从无到有进行产品制造的工作,那么这条路线最适合不过了。
这条路线的优势就是在到达中层职位之前,基本上,不用考虑“乱七八糟”的事情,只要你肯努力,肯学习,而且不是特别不会做人,那么基本上,在初级职位时,只要肯下功夫,还是升职、加薪非常快的。
这条路线的劣势,就是进入中层后,会涉及到团队管理,和其他部门、用户要进行“工艺对接”,这个时候,“程序员”特有的木纳、交流方面的问题就会体现出来了,喜欢说“专业名词”的程序员,会让对方感觉一头雾水,让沟通很困难。同时对团队管理和对于在管理中,驾驭下属,清晰的对上级汇报,以及团队成员合理工作任务安排时,会出现弱项。
路线2:
当感觉技术不是很适合自己发展的时候,可以及时的转型。也就是在达到中级程序员时,就可以判断了,要么就是感觉编程的学习太累,而且感觉出瓶颈了(比如学习算法时非常困难),并且在产品开发时,发现自己对于产品的策划,更加感兴趣,感觉琢磨用户体验,更加好的设计一个产品是自己的追求,那么这个时候,就可以转型了。同时说明:不要在刚刚入行的时候就转型,因为你还是初级工程师的时候,可以说对于工程师这个职业,根本就没有任何感觉,如果马上转型,就完全浪费这次职能。
这条路线的优势就是:由于对于技术的了解,当走向产品策划的时候,对于产品的需求和风险定位可以更加贴切实际。
劣势也很明显,就是技术是定性的逻辑思维。而产品研发,更加注重于用户体验,根据用户体验和反馈,合理的对产品进行创造或改进。其中设计到了用户体验,数据分析等等的发散型思维方式,会让刚刚转型的程序员,停滞一段时间。
路线3:
当感觉技术不是很适合自己发展的时候,可以及时的转型。也就是在达到中级程序员时,就可以判断了,要么就是感觉编程的学习太累,而且感觉出瓶颈了(比如学习算法时非常困难),并且在产品开发时,发现对于数据分析更加敏感,总是能够从市场、产品那边收集来的数据,来判断出合适的运行方式,那么,恭喜你,转型做运营吧,网站运营才是你的光明前景。
这条路线的优势很明显:对于从技术转型的从业者,在运营中,对已经出现的问题,能够有更加贴切的解决方案,同时也对于可能出现的问题的预估更加准确。
劣势同样存在:运营中,更加注重于反馈数据收集,根据不同的反馈,对于运营策略进行改进,一味的埋头苦干在运营中是非常愚蠢的
所需技能
必须说明的是,其实到了中层管理中,再往高层管理进步时,技能的优势已经不明显了,需要更多的是人脉的设计,和人际相处,并且商业布局的眼光也很重要。
所以,我只列举一下各条路线到达中层所需要的技能,同时说明,有些技能看似没用,但是确实是进入高层所必须的,不到这个层次,是感觉不出来的,比如数据结构,在初、中级工程师作用不是很明显,但是到高级以后,就会明显的显示出来他的作用了:
路线1所需技能:
UML建模语言
认证授权(OAuth2):IdentityServer
异步消息RabbitMq等类似组件
Docker 容器+ Kubernetes
.NET CORE微服务
ASP.NET CORE
ASP.NET MVC 编程开发
SQL Server数据库应用
C#程序设计
常用Javascript框架
设计模式
Linq语言
JavaScript脚本基础
软件技术文档编写能力
Oracle数据库
XHTML网页设计技术
常用算法
路线2所需技能:
数据分析
预算管理
数据挖掘
界面交互式系统设计
Microsoft Office Visio
互联网产品需求文档写作
经济学原理
概率论
Office办公软件应用
信息架构
用户体验设计
用户心理体验
消费者行为学
高效能分析和解决问题能力
组织管理学
团队合作与沟通能力
路线3所需技能:
流程管理
数据挖掘
营销管理
用户体验设计
数据分析
公司战略管理
绩效量化考核量化管理
品牌传播
品牌管理
财务报表分析
项目管理系统方法
商业心理学
市场调研
统计学
预算管理
信息架构
成本费用控制与管理
高效能分析和解决问题能力
组织管理学
团队运营管理
消费者行为学