1. 怎样为程序员做职业规划
选择合适的工具
java、C#、PHP、C++、VB……10多种热门的开发语言,哪一种最有发展潜力呢?其实开发语言只不过是一个工具,“与其分散进攻,不如全力一击”,无论是哪一种开发语言,只要您全力地去学习,到有了一定的熟悉程度的时候,要学习另一种的语言也是轻而易举的事情。开发语言主要分为三大类:
1. 网络开发
现在网络已经成为世界通讯的一座桥梁,好像Javascript、PHP、Ruby这几类开发语言大部分是用作网络开发方面
2. 企业软件开发
JAVA、C#、VB这几类开发语言都实现了面向对象开发的目标,更多时候用于企业系统的开发
3. 系统软件
C语言、C++、Object-C这些软件更多是用在系统软件开发,嵌入式开发的方面。
当然,这分类不是绝对,像JAVA、C#、VB很多时候也用于动态网站的开发。在很开发项目都会使用集成开发的方式,同一个项目里面使用多种开发语言,各展所长,同步开发。但所以在刚入门的时候,建议您先为自己选择一种合适的开发工具,“专注地投入学习,全力一击”。
明确发展方向
当您对某种开发语言已经有了一定的了解,开始觉得自己如同“行尸走肉”,成为一个开发工具的时候,那您就应该要明确一下自己的发展方向了。
平常在公司,您可以看到做UI层的开发人员大多数都有20多岁,他们充满干劲,而且没有家庭负担,在两年前ASP.NET MVC 、Silverlight等刚出现的时候,他们可以在晚上回家的时候买几本书或者直接上网看看,研究三五个星期以后,对需要用到技术就已经有一定的了解了。而年过30的人多数是已经成了家了,他们每天9:00点上班唯一的希望就是快些到6:00点,能回家吃饭。吃完饭只想陪孩子玩一下,看看孩子的功课,对新增的技术缺乏了学习的欲望。所以很多接近30岁的程序员都有着一种逼迫感(包括30岁时候的我自己),再过几年应该怎么办?这时候,您就更应该明确一下目标,努力向自己的发展方向前进了。归纳一下,可从下面几项里选择适合自己的一条道路:
1. 从技术向业务过渡
在国外,很多发达国家都很重视人才,一个高级的程序员与一个Project Manager收入相差一般不超过15%。(注:关于收入差距,请参见伯乐在线报导的这篇资讯《2011年美国IT从业人员的薪资调查》,有的甚至超过项目经理。)但中国是世界上人口最多的国家,国内人才众多,所以人才滥用的情况经常可以看到。一个小公司的开发部里面经常会见到新面孔,但PM却不会常换。因为做老板的对技术是一窍不通,依他们看来只到拉住PM的心,那技术方面方面就能搞得定,至于技术部要换人,他们根本不需要费力气去管。所以从一个技术员过渡到一个PM是一条向前发展的一个选择,但开发人员也需要知道,要成为一个PM不单单是使用技术,而更重要的是对管理方面认识。一个PM主要的工作是组织团队,控制成本,管理业务,控制项目进度,与客户进行沟通,协调工作,定期进行工作报告等。所以要成为一个成功的PM更要重视组织能力,PM必须能提高团队的积极性,发挥团队所长,在有限的开发资源前提下为公司得到最大程度上的利润。成为一个PM后,通常不需要直接接触技术开发,而着重管理的是业务发展,但PM对技术也需要有一定的了解(在下曾经为PM对技术了解的必要性写过一篇文章,得到很多支持但也惹来不少的争议)。在这里我还是要强调自己的观点:要成为一个成功PM最重视的是管理能力,但对技术也应该有足够的了解,因为这是与团队成员沟通的桥梁,只有这样才能与整个团队的成员有着紧密的结合,让团队成员感觉到他们自己存在的意义,从而调动团队的积极性,而不是漠视技术人员的存在。技术并非成为一个成功PM的充分条件但却是必要条件!
2. 从程序员向技术管理发展
其实一个Team Leader的职责与Project Manager相像,但Team Leader更着重于技术开发方面,通常一个大型项目都会有一两个开发团队由Team Leader带领,负责开发核心部分,而其它部分分派给不同开发小组或者分派给外包公司。在网上常看到几句话,贴切地形容了PM与TL的区别:“技术人员乐于被领导;但他们不喜欢被管理,不喜欢像牛一样被驱赶或指挥。管理者强迫人们服从他们的命令,而领导者则会带领他们一起工作。管理是客观的,没有个人感情因素,它假定被管理者没有思想和感受,被告知要做什么和该如何做。领导是引领、引导,它激励人们达成目标。领导力是带有强烈个人感情色彩的,它不是你能命令的,也不是你能测量评估和测试的。”
无论是PM与TL,对业务与技术都要有深入的了解,只是PM更侧重于业务的管理,盈利的多少,风险的大小等等,而TL则侧重于项目的成本,开发的难度,软件的架构等技术方面的问题。在某些人眼中,技术与管理就像鱼与熊掌,不可兼得,但依在下看来,两者却是秤不离砣,密不可分。只要及时提升自己对技术与管理的认识,不断地向深一层发展,要从程序员提升到技术管理人员只是时间的问题。打个比方,一个普通的.NET程序员,开始可能限制于ASP.NET的页面开发,但一旦他有了发展之心,他自然会对ASP.NET MVC、Silverlight、WinForm、WPF这些UI的开发手法感到兴趣,学习不需要多少时间,他可能就会认识这些UI开发只不过是一些工具,其实在开发原理上没什么区别。接着他就会向深一层的通讯模式进行了解,认识TCP/IP、Web Service、WCF、Remoting这些常用到的通讯方式,这时候他可能已经感觉到自己对开发技术有了进一步的了解。进而向工作流、设计模式、面向对象设计、领域驱动设计、面向服务开发等高层次进发,最后成为技术的领导者。上面只是一个比喻,但要注意的是,在学习的时期必须注意的是与同事之间沟通,很多的开发人员喜欢独来独往,开发的项目总想一个人搞定,不受外界的干扰。但要明白,就算你有天大的本事,一项大型的项目也不可能由你一个人全扛着。所以团队的合作性与同事间的沟通是必要的,这也是成功一个TL的必要条件。
3. 单方面向技术发展
能成功技术开发的尖端人才,这是在下最向往的工作,却也没本事登上这个位置。很多从事开发的人都会认为,业务总会带着“金钱的味道”,老板从来不管开发是否合符开发原则,有否经过必要测试,他们只会在客户面前无尽地吹嘘,项目到期能成功交货,只要不出什么大问题那这个项目就算成功了。其实我们也要明白:开发项目最终目标是为了赚钱,在开发过程中对项目成本的限制和效率的控制这也是必须,所以这才需要管理人员对项目进行管理。但开发人员也很想避开这 “金钱的尘嚣”,全情投入到技术的世界的当中。所以对技术有着浓厚兴趣的人,往往会深入地研究某一项技术,成为技术上的精英。但在这里说一句令人心淡的话:中国已经属于是世界上第二大经济体同盟国,但国民生产总值主要来源于第三方加工产业方面。中国可以说是人才济济,但却在高新产业上却比发达国家落后。这几年的确看到我们国家在高新科技上有着质的飞跃,但跟欧美发达国家还有着一段距离。所以想在中国成为尖端技术的人才,无可否定比在国外要难。依在下看来,要想成为尖端的开发者,必须对C、C++、汇编语言、嵌入式开发、Windows API、Linux API这些底层技术有着深入的了解。要知道解JAVA、.NET……等这些之所以称为高级开发语言,并不是指它们比C、C++、汇编语言更高级,而是指它们封装了C、C++等等的功能,更适合用于企业软件的开发,使开发变得简单。但如果要开发一些底层的软件,大型的系统的时候,就必须用到C、C++、汇编等开发语言,这是成功尖端人才的一个条件。
确定未来的目标
人是从历练中成长的,古人云:三十而立,形容的不是一个人的社会地位,经济来源,而是形容一个人对未来的目标,对人生的意向。要成为一个成功人,就应该早日为自己定下长期的发展目标,作为一个开发者也当如此。随着人的性格,取向各有不同,大家为自己所选择的路也有不同:
1.自立门户,勇敢创业
快30岁了,很多人会认为要想真正赚得了钱,就应该自立门户,为自己创业建立一个基础。像北京、上海、广州这些一级城市,要买房子,一手楼基本要在 2万~4万元/平方米左右,而在一家普通的IT公司当上一个项目经理,基本收入一般都在1.5万~3万之间(除非在大型的跨国企业内工作,那另当别论),要买一间100平方米左右的房子,就算不吃不喝也几乎要10年的年薪,所以选择自主创业,是很多IT开发人员的一个未来目标,想要达到这个目标,就应该更多地把业务作为重点。不可否认的一件事,在中国社会里很多时候讲的是“关系”,即使这30年的改革开放使中国的经济蓬勃地发展起来,但几千年来留下的歪风还是不能完全的磨灭。所以想要创业的人事建议你要多跟客户打好关系,与合作伙伴保持互利互动的模式,这将有利于日后事业的发展。
2. 急流勇退,退居二线
这也是不少人的选择。很多人在有了家庭以后,感觉到压力太大,人的一生并非只有事业,他们想把更多时间用于对亲人的照顾,对孩子的关心上。所以很多人会选择一份像系统分析、系统维护、高校教师、专业学院讲师这一类的工作。收入稳定,而且往往没有一线开发人员那么大的压力。
3. 不懈努力,更进一步
无论你是一个Project Manager或者是Team Leader,如果你想继续晋升一级,那还是会两极分化的。从一个PM到一间公司的管理层,那所面对的事件会有很多变化。一个公司的总经理,要管理的不再是一到两个项目的成本,而是整个部门的运作,整间公司的业务流程,所以要肩负的任务的会更重。在下曾经有一位上司彭博士,他是企业的最高领导人,年薪超过三百万,而且在报纸杂志上也曾经亮过相。平常只会在某些会议上轻轻地亮下相,说两句讲词,平常的公司运作与业务管理都不需要他直接执行。这并不是说一个作为管理层很清闲,因为他们要面对的是更多的社会关系,与公司合作企业的联系上。这跟一个PM的工作的很大的区别,所以要从一个PM晋升到管理层,那可是要负出更多的努力与汗水。
如果要从Team Leader上升为一个技术总监,那工作的方向也有所改变。像之前所说:一个TL可能更重视的是技术层面,讲求与团队之间的互动合作性,更注重的是开发的完善。而一个技术总监就无需要直接参加某个项目的开发,而注意的是开发的效率与成果,如何合理使用有限的开发资源,控制开发的风险和可能带来的效果。
2. 什么职业的人最不适合谈恋爱
非得要评价的话,那就是给殡葬师吧,最不适合谈恋爱了,因为实在是太可怕了。你要是去相亲,对方一问你是什么职业,然后你说是天天和死人接触的,那估计大多数人都会有阴影吧,谁还敢和你接近啊。还有一个也是有点可怕的职业,那就是法医。现在很多人对于电视里演的法医什么的感觉都还蛮有好感的,觉得他们很帅,但其实他们的职业是有点血腥的。
我们可以来看下设计师和程序员这样的职业,那加班是经常的,一个月能有几天不加班都是开心的,这样的工作时间,哪里还有空去陪女朋友,不要说陪她旅游逛街之类的了,可能连吃个饭的时间都没有。还有啊,像是设计师,最烦的应该就是改图了,而这种情绪会一直带在身上,可能回家之后还会将这种情绪带回家。这样的话就有可能会和女朋友吵架啊。
3. 程序员职业规划
程序员职业规划范文
导语:对于个人的职业,我们应该做好规划。下面是程序员职业规划范文,供各位阅读和参考。
前言
当今社会,IT行业发展速度突飞猛进,技术更新换代周期小,专业方向和领域更是林林总总、百家争鸣,若没有一个明确的目标而漫无目的的乱走一遭,岂不殆误时机,浪费年华?俗话说,欲行千里,先立其志。因此,要为自己拟定一份职业生涯规划,将自己的未来好好的设计一下。有了方向的指引,自然才会有乘风破浪之帆。
自我认知
“知己知彼,百战不殆”,进行职业规划首先要“知己”,即全面、深入、客观的分析和了解自己。
1)我的优点
热爱学习,对新鲜事物及不懂的知识有着浓厚兴趣,喜欢凡事问个为什么,有条件的话会不断钻研直至懂得原理为止;热爱工作,只要进入工作状态常常到达忘我境界,做事情考虑周全,以大局和未来为重,并且在懂得应用知识后会去了解知识背后的核心,从经验上升到理论。
2)我的缺点
过分自信,执着的有些过头;性格急躁,自控能力一般;自身专业知识水平、能力有待于进一步提高。
3)个人职业倾向
目前从事的是java服务端的软件开发工作,希望可以成为一名技术管理双能的工作者。
职业认知
程序员一般有两个大方向:技术与管理。
走技术路线的人,一定是对技术痴迷的人。但要走得长远,我们需要把技术做穿、做透。如何做穿、做透?计算机底层(C、汇编、逆向工程、驱动、内核)、计算机算法(网格计算、音视屏压缩、语音识别…)、架构(软件工程、跨平台、多语言等)都要有涉及。只有我们掌握了这些,才能做到”看问题看到本质”、”思想有穿透力”。这些才是最宝贵的,需要沉淀下来,仅仅靠做项目、写代码是无法达到的。
对于走管理路线的人,是具有“完成任务为第一要务”、“有计划、善于管理时间”、“善于与人打交道”性格特点的人,重要的是“综合素质”,而不是“专攻”。必须从思想上发生根本性转变:技术是解决问题,而管理则需要满足“多快好省”。
而本人对程序员职业的认知是:技术与管理并不是物理上的独立,而是相辅相成的。只做技术无法深刻理解全局思维,无法更好地为业务服务;而只做管理,则与程序员渐行渐远,最终成为一名行外的管理人员,无法在团队内部树立威望。因此,个人希望可以成为一名技术管理双能的工作者。
环境分析
程序员通常被认为是相当不错的工作,原因非常多。收入高,福利好(有可能非常好),工作富有挑战性(通常是正面积极的挑战),根据目前的就业形势和程序员的需求量,这种职业竞争压力很小。
但是,在国内的IT环境下,要成为一名合格的程序员并不是容易的事。在国外,五六十岁还坐在电脑前敲代码的程序员比比皆是;则在国内,程序员则靠吃“青春饭”,三十岁还需要靠敲代码的程序员甚至被称为loser。这主要因为IT技术的高速发展,程序员必须不断地更新专业知识,以适应社会的需求。而上了年纪的程序员由于思维和身体原因,无法与刚步入社会正值旺年的年轻一代的学习能力相提并论,只能苦苦挣扎在茫茫学海中,或被迫进入自己并不擅长的管理层面里。
当然,随着对程序员的认知越来越广泛,这种情况经已有所缓和,但是从教育角度上看来,国内形势还是十分严峻。现在各个大学、IT培训机构为了赚钱拼命扩招,所以不仅IT专业的学生人比较多,而且其他专业的学生人数也比较多,“僧多粥少”就通常意味着就业压力大。但是反过来看,现在很多IT企业都存在“人才荒”的问题,也就是很多企业都招不到合适的人才,一些从事IT人力资源方面工作的人都普遍反映现在企业里很难招到合适的人才。初看起来很奇怪“每年有很多IT专业大学生毕业,很多都找不到工作”,而“企业每年都缺人,招不到合适的人才”,造成这种奇怪的“人才断层”现象的根本原因就是现在毕业生的素质明显下降了,大学招的人多也意味着教学资源平均下来降低了,培训机构为了赚更多的钱以最快的`速度培训出一群“知其然不知其所以然”的学生,所以教育质量也降低了,这些就造成了“学生需要工作,企业需要人”的这种状况。
未来人生职业规划目标与行动方案
1)阶段目标
Phase Ⅰ:理论实践期
时间:1~3年
目标:将自己学到的理论知识融入实际应用之中
Phase Ⅱ:全面发展期
时间:7~10年
目标:技术与管理双管齐下,精通技术核心并能带领和指导团队工作
Phase Ⅲ:持续发展期
时间:10年
目标:从工程化思想解决出来,探索并吸收其它领域思想,引领并指导工程领域
2)行动方案
a) 加强体育锻炼,保持健康的体魄。俗话讲“身体是革命的本钱”,一个健康的身体是事业成功的前提和基础。在今后30年的工作历程和职业生涯中,要坚持体育锻炼,练就一个健康的体魄,为事业成功提供体力保障。具体说来就是要养成良好的锻炼、饮食、生活习惯,每天保证睡眠6~8小时,每周锻炼两次或以上。
b) 保持学习势头,活到老学到老。首先专业知识无需多说了,不管是技术还是管理都必须不断地学习,攻读在职研究生便是第一步。另外,学无止境,其它领域也必须接触,包括英语、厨艺、人力资源管理等等。下一步则是增强英语能力,最重要是口语能力。
c) 保持工作热情,提升工作效率。勇于承担单位的各项工作和领导交给的不同任务,接受来自各方面的挑战与压力,不断提高自己的思维能力、组织能力、策划能力以及研究能力,使自己成为一个综合素质高、业务能力强的复合型人才。
d) 参与社会公益活动。虽然本人目前并不是一位成功人士,但希望能尽自己一分微薄的力量,参加志愿者活动、无偿献血活动、奉献爱心等等。不仅心灵得到极大的满足,同时接触到更多有志之士,广交人脉,全方位提升自我修养和履行社会责任与义务。
调整与评估
计划固然好,但更重要的在于其具体实践并取得成效。任何目标,只说不做,到头来都会是一场空。然而,现实是未知多变的,定出的目标计划随时都可能遭遇问题,这就要求有清醒的头脑和良好的心态,做到万变不离其中即可。
成功标准
个人成功标准是专业上不断更新,做到满足同一时期各类相关公司或企业对应的要求;学习与工作、家庭与社会相互协调发展,并在最大限度实现个人价值;不违法、不犯罪,对社会有一定贡献之人。
;4. 程序员个人职业生涯规划
程序员个人职业生涯规划
“职业规划要趁早,人生设计在童年。”下面是程序员个人职业生涯规划,欢迎阅读。
前言
当今社会,IT行业发展速度突飞猛进,技术更新换代周期小,专业方向和领域更是林林总总、百家争鸣,若没有一个明确的目标而漫无目的的乱走一遭,岂不殆误时机,浪费年华?俗话说,欲行千里,先立其志。因此,要为自己拟定一份职业生涯规划,将自己的未来好好的设计一下。有了方向的指引,自然才会有乘风破浪之帆。
自我认知
“知己知彼,百战不殆”,进行职业规划首先要“知己”,即全面、深入、客观的分析和了解自己。
1.我的优点
热爱学习,对新鲜事物及不懂的知识有着浓厚兴趣,喜欢凡事问个为什么,有条件的话会不断钻研直至懂得原理为止;热爱工作,只要进入工作状态常常到达忘我境界,做事情考虑周全,以大局和未来为重,并且在懂得应用知识后会去了解知识背后的核心,从经验上升到理论。
2.我的缺点
过分自信,执着的有些过头;性格急躁,自控能力一般;自身专业知识水平、能力有待于进一步提高。
3.个人职业倾向
目前从事的是java服务端的软件开发工作,希望可以成为一名技术管理双能的工作者。
职业认知
程序员一般有两个大方向:技术与管理。
走技术路线的人,一定是对技术痴迷的人。但要走得长远,我们需要把技术做穿、做透。如何做穿、做透?计算机底层(C、汇编、逆向工程、驱动、内核)、计算机算法(网格计算、音视屏压缩、语音识别…)、架构(软件工程、跨平台、多语言等)都要有涉及。只有我们掌握了这些,才能做到”看问题看到本质”、”思想有穿透力”。这些才是最宝贵的,需要沉淀下来,仅仅靠做项目、写代码是无法达到的。
对于走管理路线的人,是具有“完成任务为第一要务”、“有计划、善于管理时间”、“善于与人打交道”性格特点的人,重要的是“综合素质”,而不是“专攻”。必须从思想上发生根本性转变:技术是解决问题,而管理则需要满足“多快好省”。
而本人对程序员职业的认知是:技术与管理并不是物理上的独立,而是相辅相成的'。只做技术无法深刻理解全局思维,无法更好地为业务服务;而只做管理,则与程序员渐行渐远,最终成为一名行外的管理人员,无法在团队内部树立威望。因此,个人希望可以成为一名技术管理双能的工作者。
环境分析
程序员通常被认为是相当不错的工作,原因非常多。收入高,福利好(有可能非常好),工作富有挑战性(通常是正面积极的挑战),根据目前的就业形势和程序员的需求量,这种职业竞争压力很小。
但是,在国内的IT环境下,要成为一名合格的程序员并不是容易的事。在国外,五六十岁还坐在电脑前敲代码的程序员比比皆是;则在国内,程序员则靠吃“青春饭”,三十岁还需要靠敲代码的程序员甚至被称为loser。这主要因为IT技术的高速发展,程序员必须不断地更新专业知识,以适应社会的需求。而上了年纪的程序员由于思维和身体原因,无法与刚步入社会正值旺年的年轻一代的学习能力相提并论,只能苦苦挣扎在茫茫学海中,或被迫进入自己并不擅长的管理层面里。
当然,随着对程序员的认知越来越广泛,这种情况经已有所缓和,但是从教育角度上看来,国内形势还是十分严峻。现在各个大学、IT培训机构为了赚钱拼命扩招,所以不仅IT专业的学生人比较多,而且其他专业的学生人数也比较多,“僧多粥少”就通常意味着就业压力大。但是反过来看,现在很多IT企业都存在“人才荒”的问题,也就是很多企业都招不到合适的人才,一些从事IT人力资源方面工作的人都普遍反映现在企业里很难招到合适的人才。初看起来很奇怪“每年有很多IT专业大学生毕业,很多都找不到工作”,而“企业每年都缺人,招不到合适的人才”,造成这种奇怪的“人才断层”现象的根本原因就是现在毕业生的素质明显下降了,大学招的人多也意味着教学资源平均下来降低了,培训机构为了赚更多的钱以最快的速度培训出一群“知其然不知其所以然”的学生,所以教育质量也降低了,这些就造成了“学生需要工作,企业需要人”的这种状况。
未来人生职业规划目标与行动方案
1.阶段目标
Phase Ⅰ:理论实践期
时间:1~3年
目标:将自己学到的理论知识融入实际应用之中
Phase Ⅱ:全面发展期
时间:7~10年
目标:技术与管理双管齐下,精通技术核心并能带领和指导团队工作
Phase Ⅲ:持续发展期
时间:10年
目标:从工程化思想解决出来,探索并吸收其它领域思想,引领并指导工程领域
2.行动方案
a) 加强体育锻炼,保持健康的体魄。俗话讲“身体是革命的本钱”,一个健康的身体是事业成功的前提和基础。在今后30年的工作历程和职业生涯中,要坚持体育锻炼,练就一个健康的体魄,为事业成功提供体力保障。具体说来就是要养成良好的锻炼、饮食、生活习惯,每天保证睡眠6~8小时,每周锻炼两次或以上。
b) 保持学习势头,活到老学到老。首先专业知识无需多说了,不管是技术还是管理都必须不断地学习,攻读在职研究生便是第一步。另外,学无止境,其它领域也必须接触,包括英语、厨艺、人力资源管理等等。下一步则是增强英语能力,最重要是口语能力。
c) 保持工作热情,提升工作效率。勇于承担单位的各项工作和领导交给的不同任务,接受来自各方面的挑战与压力,不断提高自己的思维能力、组织能力、策划能力以及研究能力,使自己成为一个综合素质高、业务能力强的复合型人才。
d) 参与社会公益活动。虽然本人目前并不是一位成功人士,但希望能尽自己一分微薄的力量,参加志愿者活动、无偿献血活动、奉献爱心等等。不仅心灵得到极大的满足,同时接触到更多有志之士,广交人脉,全方位提升自我修养和履行社会责任与义务。
调整与评估
计划固然好,但更重要的在于其具体实践并取得成效。任何目标,只说不做,到头来都会是一场空。然而,现实是未知多变的,定出的目标计划随时都可能遭遇问题,这就要求有清醒的头脑和良好的心态,做到万变不离其中即可。
成功标准
个人成功标准是专业上不断更新,做到满足同一时期各类相关公司或企业对应的要求;学习与工作、家庭与社会相互协调发展,并在最大限度实现个人价值;不违法、不犯罪,对社会有一定贡献之人。