.net 开发人员的瓶颈和职业发展
现在社会比前几年浮躁了,越来越多的人抱怨薪水低,高薪工作不好找;
诚然这有CPI的压力,可是也有很多人没有认清自己的职业发展.
很多.net程序员个各种纠结,想拿高薪又拿不到,想提高又不知道怎么能提高.
我也经历过这样的阶段.......各种纠结和迷茫,各种悲剧......不知道路在何方,在此我把我的经验和看法分享给大家,希望能给大家一点帮助.
(本文只代表我的个人观点)
关于职业/薪水瓶颈的问题:
(在本文中,我们假设薪水就是能力的真实体现,不考虑运气等因素,并且薪水以上海为标准,其他城市乘以相对比例)
瓶颈一: 入门 (薪水<0)
在这个阶段没有老师就是各种悲剧,各种概念的混合,各种纠结,各种蒙....基本上这个阶段的薪水<0 (贴钱人家也不要你)
如何突破瓶颈:没啥好说的,看书自学吧, 或者找人培训
瓶颈二:初级开发人员(年薪<5万)
在这个阶段,开发人员会拖控件,会处理一般小公司常见的业务需求,懂得搜索一些关键字来完成自己的需求, BOSS交代的任务大部分能完成..不过仅仅限于自己的知识范围内
代表产品: 各种什么小企业站点,几千块那种,偶尔有点稍微难一点的就很难实现,或者用非常挫的方式来实现,代码中各种神奇...
代表人群:北大青鸟等地方出来的.....大学不好好念书 混出来的
(很多朋友说我对北大青鸟有成见, 我对这培训公司没啥成见, 只是起点不一样而已, 我的起点水平还不如北大青鸟的呢,以后能达到的高度和你现在在的位置关系不大,主要还是看你的成长速度, 很多大学生出来比培训出来还不靠谱. 此外 就平均水平来说 我个人认为培训机构出来的 能干活,便宜 [这也是某些公司看中的方面] )
关键点是: 加深对.net的理解,了解.net周边的相关技术,要调整好心态,有专研精神
如何突破瓶颈:多找高级人员,看看人家是怎么工作,怎么思考 怎么解决问题的; 听到别人说到某些东西 最好都留心一下,google下看看是什么东西 和你的工作能不能配合起来
书已经可以开始看了,最好是问资深人员你需要看什么书,一般这种问题人家还是愿意回答的, 要注意不要被某些垃圾书误导了
瓶颈三:中级开发人员(年薪<12万)
这个级别的程序员不仅仅经验够了,知识面也相对好一点, BOSS交代下来的任务可以很顺利的完成, 擅长于已知关键字的情况下搜索解决方案
基本上.net附近的知识都懂一些,例如javascript html sqlserver ext componentart 等等
.net内的大部分东西都听过或者用过, 例如linq lambda wcf socket
代表产品:各大中型公司的最底层开发人员,开发点不重要的应用,写的代码在高手看来....好歹还能跑...BUG不是很多....在不重要的应用中就无所谓啦, 稍微重要点的系统或者代码就不敢让这些人做了,
各中小学公司的中层开发人员,有可能一个人做一个项目,或者带两三个虾米做项目;做的项目修修补补还是能用的,最常见的就是做点增删改查.
代表人群:工作3年内的.net开发人员,经常有重复劳动,最喜欢的就是什么代码生成器,以为牛逼的不得了. 很多人都会卡在这个瓶颈,主要问题是不知道要下一步怎么走
关键点:这个阶段的开发人员由于公司和项目的需要,经常很忙,或者从事重复性的工作, 职业视野不够开阔,不知道路在何方
如何突破瓶颈:看看你的领导或者其他比你高级的人员是怎么工作的,参加各种技术论坛和讲座;看书,视频
例如 mix11 chanel9, 可以看看CLR via c#之类的东西, 要考虑长久的 最好一口气突破下一个
瓶颈四:高级开发人员 (年薪<25万)
在这个阶段的技术人员,狭义上的技术基本上达到一个很大的瓶颈(狭义的技术主要是说具体怎么实现,什么asp.net生命周期,控件开发,多线程 lock等等)
大部分.net配套的技术和产品都已经会使用或者能在很短时间内学会,例如DNN,Nhibernate之类的
有一自己的一套想法或者一套解决问题的办法,有自己最熟悉的一套工作方式和工具
由于长期从事某个一个行业或者领域的开发,会某个方面的技术特别的熟悉, 例如长期做ajax应用 对于HTTP HTML CSS javascript都比较了解,
甚至在某个方面的技术达到精通的地步,会在公司方面作为特别的技术牛人出现 可以解决很多其他team member的技术问题
有很强的学习能力,没涉及过的技术和体系 可以很快的自学, 有准备的情况下, 狭义的技术面试题难不住他们
但是对广义的技术还是比较欠缺,对于.net体系之外的东西知道的还不够, 对于核心的CLR IIS和windows 平台有些了解 不过还不够深入
代表人群: 小公司里面的技术牛人, 大中公司里面的team leader 一流公司的底层
关键点:这群人现在有较多的职业发展的选择,不过每条路都不是很容易, 而且职业发展前几年的黄金时间过去,接下来的发展速度会降低
如何突破瓶颈: 在这里 你会发现你的朋友圈会对你的职业生涯有很重要影响, 大部分这个级别以上的工作不会在招聘网站上见到, 主要还是靠朋友介绍
要考虑看广义技术上的书籍,而不是单纯.net的书籍, 如果要单纯的继续在.net上提高,已经很难有书可以帮到你,大部分时候要靠PPT 零碎的资料,朋友的聊天才能有所突破
瓶颈四之后 突破瓶颈四以后的路就很宽广了.....
这个阶段的职业发展 我认为有以下几条路线:
1.领域专家 例如长期从事电信项目的开发,那么这个时候你的价值就会成为 电信业务知识+技术知识 (其实选行业比选语言赚钱多了) 要走这条路 要提前几年准备, 而且别选错行业...
2.管理层(开发经理,项目经理) 中国大部分人准备走这条路线, 不过说实话 这条路比技术路线要难走;主要是要转变技术人员的思维.还有就是实践机会
3.纯技术路线 这条路在中国的中小企业很难走, 大企业也不是很容易, 最好的办法就是去外企 (所以你需要提前准备你的英文和人际关系)
4.创业 这条路线我不熟悉
5.架构师 这条路可遇不可求......最难的是经验.....例如电子商务方面的,最好找个类似的公司混进去看看人家怎么玩的.
6.换个行业
一些在我职业生涯中的关键点
1.要保持良好的心态 不要因为暂时没法达到你的目标而气馁
2.什么都会不如精通一个,了解多个
3.要时时刻刻保证对自己的投资, 例如学习,看书,扩展社交网络等
4.要做一件事情就做好,要么就不做
5.如果很长一段时间感觉没进步,你可能需要反思一下了
6.能力上去了 一切都不是问题
7.最好每年都做一个计划 然后再有一个中期的 例如5年的职业规划
8.你现在的公司和职位对你的职业发展非常重要, 毕竟你一天至少8个小时在做公司的事情(偷懒那是另外一个话题) 能不能在工作中学习成长 很大程度上决定了你的发展水平
如何获得你喜欢的职位:
1.不同的职位出现在不同的地方, 一般所有瓶颈4和以下的职位都会出现51job之类的招聘网站, 而这个级别和之上的职位一般出现在 a.一流公司自己的网站 b.猎头 c.朋友圈
2.即使你能力不够 也可以考虑去面试, 面试是一次非常好的学习机会; 在面试中你可以发现你自己的弱点 (you don't know what you don't know) 而且这也是一个好机会让你知道你的市场价
3.如果很想获得一个职位, 提前准备, 例如目标公司的职位描述,公司文化,侧重点
4.走内部推荐一般更靠谱
5.越往上走 越难, 要提前很多做准备, 例如你可能现在觉得硕士学位没用, 可是当你要用的时候再读就来不及了 (工程硕士也好)
最最重要的当然还是能力啦
在不同人生阶段对我影响比较深的书籍和资料
1.英文学习资料, 最新的技术文档都是英文的, 最牛的技术人员一般也都说英文 (这个是事实, 中国技术比欧美还烂很多)
2.CLR via C# 经典书籍;
3.Code Complete 1/2; 算法导论(这个东西随便看看就好,难度比较大)
4.技术网站 MSDN stackoverflow iis.net asp.net github channel9 mix11
还有其他很多资料一时想不起来了,请大家帮忙补充下 呵呵
这些都是我的个人看法 希望对大家能有所帮助
如果觉得没啥用,请忽略,谢谢
本文主要描述的是开发的发展方向, 其他的例如管理,设计,销售,等等基本上不怎么涉及
也许大家对于收入这块有一些疑问,事实上,在中国的大城市纯技术职位的薪水还是很不错的,就看你有没有能力拿到了
我举几个例子: 以下是一些特例哦,不要往自己身上套, 不过之前一直都在招人,有能力就能拿到
1.在某个行业排名国内第一的私营企业 30w-60w
2.某英文培训公司 资深软件工程师 40w
3.在某个行业排名世界第一的企业 team leader 接近50w
4.某软件外包公司 team leader 25w
5.某世界一流软件公司 普通开发人员 30-40w