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