职业经理人门户网站,打造专业的商务信息分享平台 手机版
erweima.png
如有投稿需求,请把文章发送到邮箱
jingliren_tougao@163.com

职业生涯规划程序员职业规划心得分享 程序员职业规划:让自己变得重要

关键词:职业生涯规划
发布时间: 2020-01-17 13:27

程序员职业规划心得分享   

首先你要明确入行的目的,你是深深的热爱着编程还是只是因为程序员是个高薪的职业呢?如果是后者,那么不好意思,你需要慎重的选择。

在中国,程序员并不是一个很好地称呼。程序员似乎象征着邋遢,宅,甚至是IT民工。记得有一期非诚勿扰上面,上去一个男嘉宾,开场说他是搞JAVA的,台上女嘉宾的灯全灭了。是不是很可笑,很可悲?而且只有你真正的进入这个行业你才清楚,这个看上去还不错的薪水,你却付出了超过薪水价值的代价。创业型与游戏型公司里面的项目小组一般是5~10个人,因为他们需要快速的开发以应对多变的市场波动,所以程序猿的每天工作时长都在12小时以上,身体和精神收到摧残不说。作为程序猿的你很少有时间去陪陪自己的家人、自己的女友。

如果作为前者,你是因为深深的热爱着编程,那么恭喜你,你有着一颗hacker的心,属于那些愿意做一些有挑战性的事情的人。就如WhyTheLuckyStiff所说:“当你不创造东西时,你只会根据自己的感觉而不是能力去看待问题。”

当你开始编程,开始创造的时候,开始享受的时候,一切外界的评论,都挡不住你对技术对创造的热爱。但是,我不得已要泼你一盆冷水,来提醒你一下。你是否准备好了忍受寂寞,也许你面对的是十年寒窗无人问,若你没有熬住,也许就等不到一朝成名天下知的时刻。技术是永无止境的,好的程序员必须保持对于新的技术敏感度,保持学习的热情。Stay hungry ,Stay Foolish。  明确了目的,那么你应该规划下自己的职业生涯。

宏观的讲,个人认为我们需要经历三个阶段:深度、广度、高度。

高度:这个层面往往体现在规划能力,能够看到未来业务的发展,设计出相对合理的架构满足未来业务的快速扩展。这个阶段应该是少参与到具体的编码中去,应该是一个公司的CTO或者首席架构师角色。这个方面的能力比较虚,相对来说也是最难炼成的。 

广度:就是知识领域的广度。反映在IT技能上,就是所掌握的领域,比如.net,java,数据库,web,前端等等。不一定每个领域都能够精通,但是至少都能了解,能够在面对问题的时候能够拿出一个切实可行的解决方案。对于跨领域方面,可能是你的沟通能力,管理能力等。

深度:在某一领域有很深入的了解,旺旺是一门具体的技术。比如js代码写的很精通,数据库知识非常丰富,精通linux操作系统底层。

深度->广度->高度,越往上,要求的抽象能力越高,越往下,要求细节知识越具体。一个人往往具备了以上三样,就是一个成功的大牛。

微观的讲,.已经工作两年以上的程序员可以有几种基本的职业规划:技术专家、软件架构师、实施顾问或销售。对大多数人来说,首先是要专,在技术上做的比较深入,然后进行工作调整,把自己转变为某个领域的专家,第三步,根据自己的情况,来选择技术还是管理。 有了自己的规划,最重要的是执行。我认为很多漂亮的计划都会因为执行力不够而夭折。一个一流的计划经过二流的执行,甚至不如三流。而一个三流的计划,经过一流的执行,也许就能达到二流。所以从计划本身来说,执行往往更重要些。

如果你要走技术路线,那么就深入某一领域,培养程序员以下几个基本素质。  1.团队精神和协作能力; 2.良好的文档习惯; 3.规范化、标准化的代码编写习惯; 4.需求理解能力; 5.复用性、模块化的思维能力; 6.测试习惯; 7.学习和总结能力。 如果你要走管理路线,那么你首先需要向一个PM的目标前进,然后成为总监乃至CTO。我这里讲讲要成为一个PM需要哪些能力。 先看看下面的招聘启事吧,这只不过是一家几十人公司的一个招聘广告:

招聘职位1:软件项目经理

职位描述: 1、带领实施团队完成某软件项目; 2、制定项目计划和实施部署;项目进度、质量及范围管理与控制。 3、负责软件实施过程中与各方的沟通、关系协调与维护;以及实施人员的安排与管理 4、负责了解客户对软件的业务需求及意见,及时反馈、跟踪开发人员解决问题。 5、及时、有效协调资料解决项目实施过程中出现的疑难问题;

职位要求: 1、具备优秀的团队协作精神,良好的沟通能力,有较强的口头/书面表达能力; 2、熟悉企业信息化业务,百万企业信息化项目经验; 3、精通数据库系统和项目管理工具,; 4、熟悉XYZ行业相关业务知识;有财务背景知识,快速理解和学习能力; 5、良好的客户服务意识,负责、敬业、细心。 6、有软件大项目管理经验或N年以上项目管理经历优先; —————————————

那么,让我们看一下这个招聘启事对软件项目经理能力的描述吧: 团队协作精神 ——高 沟通能力 ——高 口头表达能力 ——高 书面表达能力 ——高 IT技术 ——高 XYZ行业知识 ——高 理解和学习能力 ——高 服务意识 ——高 项目经验 ——高 ————————————— 我们概括一下,是不是差不多就5类:沟通(口头表达能力,书面表达能力,沟通能力,服务意识)、管理(团队协作精神)、技术(IT技术)、成本控制、行业(XYZ行业知识)。理解和学习能力是很综合的,无论是在学习过程还是生活中都能体现。最后一点,项目经验,这东西是学不来的,只有踏踏实实跟着团队做几个项目才能积累起来的。

如果你想成为一个项目经理,那么首先就要把自己定位成一个项目经理,拿项目经理的水准来严格要求自己。比如沟通,平时应该多锻炼和他的的沟通能力,不一定非要在项目中和客户沟通。还有如果没有技术,那么谁都不会信服你的。 从技术和非技术的角度来向项目经理看齐。 技术 1.有着一定的技术广度。首先你需要对现在有的技术有一定的了解。我认为,好的PM不一定是团队中技术最强的,但是一定能知道这些技术能拿来干什么。如果你不懂JAVA,你一定不知道你手下有没有偷懒,明明一个礼拜就可以完成的事情,他两个礼拜都没有搞定,导致你的计划全乱掉了。

其次你需要对新兴的技术有所了解 。IT行业每时每刻都会涌现出很多新兴的技术,谁也不知道某一项技术的出现会不会能改变IT发展的趋势。就如java语言刚出现的时候,谁也不会知道它会那么流行。

2.有着一定的技术深度。深入了解一门技术。这门技术是你的敲门砖,是你打开PM大门必须的钥匙。在网上那些当上项目经理,在IT行业走的很远的人都会对我们说,作为一个PM,技术不是最重要的,重要的是那些非技术的东西。可作为一个科班出生的程序员,我真的无法透过那层雾来看他们描述的PM的世界。直到后来,我和一个当过项目经理的老师谈话才明白。技术,其实是个敲门砖,当敲开这扇们之前,他还是挺重要的。可是当敲开后,那些非技术的东西才是PM的精髓。

3.了解技术发展的历史。个人认为技术发展有一种趋势,当我们能通过过去和现在之间的联系,推算未来技术发展的潮流。 非技术 作为一个PM,你的最终目的是:替老板赚钱。别说我庸俗,也许以后你成为首席技术总监以后你有资格谈技术本身,不然老板是你的衣食父母,你必须替他想。围绕着这个目的我们通过技术知道,达到技术设计最优化;通过管理团队,达到团队产出最大化;通过成本控制,达到经济效益最大化;通过和用户沟通交流,达到用户满意最大化。这一切一切概括的说就是你领导一个团队,使用一些掌握的技术,作出一个项目,使得客户满意,然后老板开心。老板一开心,也许你就升职加薪,那么你就开心了。 所以,PM要学习的非技术的东西很多,大致分为以下几个方面: 1.产品市场 2.产品设计 3.团队管理 其中里面又有很多相关的内容,比如拥有好的人脉也是很重要的。比如学习如何培养自己的创新思维等等。你需要学习营销和推广,需要了解消费心理学、行为心理学等等。

我无法告诉你具体该怎么学习,因为我自己也没有达到那个高度。以上这些内容也是借鉴一些行业的前辈的指导,以及自己的一些独特体会,所以难免见解有些狭隘。但是如果文中的某一点能给你一些启发,那么也不枉我写了那么多了。

职业生涯规划

1.调研。如果你是一家公司的CEO,你会不会因为一个产品有趣,或可能有买家,就轻易投资?显然不会。同理,我们时间精力有限,怎么也不该去学习屠龙术。成天钻研些i+++++i实在浪费时间。一个企业家在投资前,会花费大量时间精力调研投资可行星。以此类比,我们程序员也应该仔细思考,自己到底应该学习什么东西。作者提出了一些通用的指南,比如学习还处在上升阶段的技术,不要花太多时间在过于大众化的技术,除非你在那方面出类拔萃,等等。

  2.投资。对普通程序员来说,我们的资本就是时间。投资重在持之以恒,放长线吊大鱼。我们应该每周都安排出一定的时间来学习。当然,时间也不要太长。过重的负担只会让人半途而废。学习的要点之一是勤练。普通的程序员只在工作中练手,显然不够,就好像一个优秀的音乐家不会在面对听众时才练习一样。台上10分钟,台下10年功,是为至理。Pragmatic Programmer的作者Andy在他的网站上推出一系列的Code Kata,给不知道怎么练习的程序员提供练习的素材。另外,单纯的编程已经不够了。了解业务逻辑,了解管理流程,能把自己的技术和商务结合起来,解决实际的问题,才大有作为。作者建议我们有空读行业杂志,和做业务的同事多交流。   3.营销。没人知道的功夫不算功夫。让同事,让老板,让同行知道你的技术费常重要。争取在工作中应用新的技术。向人们展示应用你学到的东西后的功效。参加各种业内会议,结识同行。在新闻组上回答额为那提。写文章,写书。这些都是利人利己,也增加自己影响力的途径。   4.执行。学以致用。尽量把自己所学用到工作中去。工作态度也很重要。没有那项工作所有任务都有趣。但如果我们致力于完美地完成任务,单调的事也可以变得有趣。