职业规划:架构师向左,项目经理向右??
似水流年-johnhuo的博客 发表于:12年08月21日 00:52 [转载] DOIT.com.cn
个人从事了软件业也7-8年了,说实在的,cmm3 的软件过程基本了解,做全职的项目经理,可能是欠缺一些。技术上,这些年的积累,凭心而论,也还可以。所以就产生了疑问,我该怎么走呢,真的是出在了抉择的时候,该做什么呢,还是什么也不做,直接转行。
最近开始了新一轮的换工作历程,投简历也集中在了架构师和项目经理这两个角色中,当然,架构师很多时候跟项目经理,team leader,高级软件工程师是重合的,当然,我指的是国内了,所谓的架构师就是更高级点的软件工程师罢了。尤其是小点的公司,注,没有看不起小公司的意思,毕竟要成本的。
个人从事了软件业也7-8年了,说实在的,cmm3 的软件过程基本了解,做全职的项目经理,可能是欠缺一些。技术上,这些年的积累,凭心而论,也还可以。所以就产生了疑问,我该怎么走呢,真的是出在了抉择的时候,该做什么呢,还是什么也不做,直接转行。
首先,个人的心里,是希望做一名合格的架构师,优秀的,实在不敢说,牛人多了,咱只能向人家学习,争取早点成为真正的牛人。咱们首先看一篇架构师的招聘资料:
岗位职责:
带领团队进行平台的设计、开发和维护;
参与需求分析、系统分析、业务建模;
架构设计、概要设计;
软件工程实施和管理:开发计划制定、人员分配安排、进度跟踪及风险控制、测试管理等;
关键技术研究和开发、对外技术交流及沟通。
任职要求:
计算机或相关专业本科以上学历;
熟悉软件工程,5年以上大型网站项目、Web应用系统开发及管理经验;
对互联网业务及相关技术有高度的敏感性,对新技术和概念具备良好的学习和应用能力;
熟悉大型网站的开发、制作流程,具备较高大型网站项目开发管理、系统分析及架构设计的能力;
熟悉WINDOW、 LINUX等服务器操作系统,对WEB平台服务有深入理解
精通.NET开发平台,了解java、asp、PHP、C++等其他开发语言;
精通WEBSERVICE、REST、XML、AJAX、SQL、HTTP、TCP、WCF等技术;
有较高的数据库设计能力,精通SQLSERVER、ORACLE、MYSQL等主流数据库系统;
熟悉Memcached分布式缓存系统、MSMQ、JMS(Active MQ)、Hibernate等;
具备大型网站开发所需的海量数据存储及处理、高性能并发处理、分布式处理等方面的技术经验;
熟练使用各种常用软件开发辅助工具,如:MSPROJECT、ROSE、PowerDesigner、VISIO等;
具备SNS、LBS、GIS、搜索引擎、网络通信、移动开发、呼叫中心等相关行业技术背景者优先;
具备良好的语言表达及沟通能力,具备良好的文档能力;
年龄28-35岁,成熟稳重,具备良好的职业素养和团队精神,具备较强的承受能力和解决问题的能力。
像类似的这种很多,其实说白了,就是要求你管理经验和开发经验都是可以的,可能想对来说要求你的开发能力,尤其是处理关键问题的能力一定要强,比如这条:
具备大型网站开发所需的海量数据存储及处理、高性能并发处理、分布式处理等方面的技术经验
我想,如果咱们只是平时做企业的mis 开发,那你可能一辈子也胜任不了这个职位了。因为很多企业的mis也就那么点访问量,并发都考虑的很少了。我都在想,要是胜任这个职位的,都可以把铁路部的购票系统做好了,真的。
个人感觉,要想做一名架构师,最重要的是应该保持对技术的热情,关注新技术,花大量时间在关键的技术,比如高并发,多线程,web service等.要弄清除它的原理,这样才能在关键时刻给出民智的决策.另,技术的广度也是要的,不然,怎么,能保证,当前的项目或产品用的技术是最合适的呢。
说到这里,一些小的软件工具,比如说跟踪soap包,多线程序的.还有研究数据库方面的都是值得学习的。
总之,坚持,保持热情,我感觉够了。
再看看项目经理,开发经理之类的了:
职位描述及要求:
岗位职责:
担任项目执行过程中需求阶段工作(具体工作参考《需求工作总结说明》),出具符合公司规范的需求规格说明书(格式参考《需求规格说明书模板》文件夹中模板说明)。
担任项目执行过程中详细设计工作或设计审核工作(相关工作规范或指责要求参考《高级开发工程师岗位职责及要求》中相关说明)。
担任项目执行过程中编码工作或编码审核工作(相关工作规范或指责要求参考《开发工程师岗位职责及要求》中相关说明)。
确保能在合同规定交付日期范围内(无明确合同交付日期的,以合同审批单内部交付日期为准),按照合同规定工作量(以合同审批单中签字确认工作量为准)完成项目的交付及收款(首付款与售后尾款外其他款项)工作。
严格监控项目执行过程中各个环节对外文件的客户的签字确认情况。
制定项目计划,合理分配项目任务,监控项目进度。
对项目团队成员的工作进行安排、监督、指导。
定期向直属领导汇报项目相关情况(项目进度,项目投入,可能产生的风险等)。
项目验收通过3个月,经直属领导允许后,向售后部门相关人员移交项目(相关文件及要求见《项目交接单.xls》,需填写其中与合同条款内容相关的所有内容)。
岗位要求:
掌握软件项目的开发流程;
掌握VS系列的.Net平台开发工具,例如VS2003、VS2005、VS2008;
精通C#、JavaScript等编程语言,熟悉VB等开发语言;
精通SQL SERVER和ORACLE数据库,具备一定的数据库开发技术;
具备一定的界面美化能力;
具体详细设计的能力;
具有快速学习能力和适应能力;
具有良好的沟通能力及团队合作精神;
对工作有责任心,能承受工作压力;
我找了几个,感觉这个写得很好,项目经理的职责一目了然,承担的工作压力也相当的大,但是注意到么。
担任项目执行过程中编码工作或编码审核工作,说到底,你编码能力还是要求很强,关键的时刻你得亲自上,什么项目经理,这时候,你就是程序员,有点,将军当步兵用的感觉。
但终归来说,它更多的是要求你对项目的整体把握,非技术因素很多了,比如
完成项目的交付及收款(首付款与售后尾款外其他款项)工作。
所以,个人通过分析感觉,一名开发人员转那个方向都是可以理解的,如果做项目经理,我个人感觉,你会更多的关注非技术的因素,而架构师,则更多的关注技术方面,但也要求你的项目管理能力。
其实很多时候,我都在想,这些所谓的技能从那里来,管理,架构,其实我们都是可以学到的,只要自己上心了,比如管理经验,即使你不是项目经理,你也可以换位思考,如果你在这个位置上该怎么做,他是怎么做的,记住了,还怕没机会么。
架构的经验,可能就麻烦些了,如果没有大型的项目,有些高并发之类的,你是不可能学到的,但也绝对不是问题,现在的资料已经很多了,前面我记得有专门的高并发的专题,关于铁路部售票网站的,自己多看看,实践机会也肯定会有的,在不然,你可以自己模拟些场景,比如,制造些大数据,用模拟的并发测试软件,都是可以的。
说了这么多,也是希望大家发表下看法,共勉之.....