打印

分享:一个程序员对职业生涯的思考

[复制链接]
2243|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sunplusedu2012a|  楼主 | 2013-1-18 17:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  从刚毕业到目前所在公司,差不多6年了,想想这六年里面,自己的能力和刚毕业比有了很大的提升,但是现在在什么能力上,我不知道,毕竟没有去过别的公司。最近也在思考自己未来,算是比较迷茫阶段。趁最近比较闲,顺便整理一下自己的职业路程
  ● 刚毕业阶段—工作一年半
  刚毕业进入公司,公司的规模还算比较小的,那个时候觉得很开心,过的也比较充实,自己的任务就是写代码,读代码。在那个时候,自己的能力提升的非常快,毕竟在学校里面做的项目完全无法和公司的所在的项目类比。公司有一套自己的框架,在那个时候的我看来,写的非常不错。有很多比较好的编程规范:约定大于配置,强制树状依赖,多工程模型,但是也存在明显的问题,就是大量使用command 模式以及弱参数类型,导致接口上无法很直观定义入参和出参。那个时候第一次接触到正式项目流程,典型的瀑布式模型。这个阶段自己主要的精力就是学习公司的业务,阅读公司的框架的源代码,知道了很apache 开源项目,也是这个时候,能够熟练的使用一般的设计模式。那个时候公司的规模也比较小,经常也会写一下底层的工具类。架构也比较简单,没有所谓的分布式架构,基本上所有的业务逻辑在一个系统里面全部可以找到,排查问题也非常简单。
  个人觉得,在这个阶段,是最适合学习的,尤其是自己的编码技能,也是在这个时候最容易提升的。刚毕业出来的时候,人还有一种拼搏的精神,这个时候相对来说各方面压力比较少,心也沉的住。比较适合学习编码。这个时候公司比较少,你会接触各个方面的知识,包括项目管理,项目部署,项目构建,数据库开发,这个阶段时间是最有效率的,不会有那么多邮件,流程,规范。
  ● 工作一半年阶段–工作4年
  这个阶段就是慢慢的开始职业化的过程。从带项目开始,后来开始带人,带团队。这个时期主要偏重设计,所谓设计,就是根据产品整个业务流程,在目前业务框架和技术框架的限制下,给出具体的实现过程。这个阶段公司就开始越来越大了,系统越来越多,业务越来越复杂,慢慢的转变为分布式架构。目前想从一个系统了解到整个业务的流程,已经不太可能。随着拆分的系统越来越多,一个简单的业务流经的系统越来越多,团队配也就越来越重要。沟通和配合能力在这个阶段显的尤为重要。
  随着公司的越来越大,工作上的邮件越来越多,流程越来越繁琐,规范越来越完善和变态,沟通和配合越来越多,投入在纯技术层面时间也就越来越少。同时由于工作的高度细化,有DBA,发布团队,开发环境配置团队,工具开发团队,前端团队,测试团队等等。你会发现你很难掌握全局。一个人越来越封闭与自己所负责的圈子里面。基础技术团队已经把所有的组件都封装好了,你只需要实现产品需求就可以了。慢慢的,业务开始主导你的职业生涯,你从一个程序员,会变成一个业务分析师,你花在业务分析上的时间慢慢的会超过编码时间。而公司的组织架构也慢慢的向业务架构看齐,业务架构慢慢不在coder。从这个角度上看,新技术的研究已经毫无意义,你需要的技术都有底层技术团队来实现,你只需要关于业务。这个时候应该是大多数业务导向型公司发展的必经阶段。
  在这个阶段,是公司飞速发展的阶段。也是个人晋升最快的时期。记得 现在的yahoo总裁-玛丽萨·迈耶在Google的时候就问过佩奇:如何才能更快的晋升,佩奇回答:加入高速成长的公司。这个说法是相当有道理的,因为公司的业务发展需要更多的更高的职位,这个时候也是人生中最累的时候。但是只要你肯努力,你的机会会很大。可惜这个时候自己有点傻。也没有全力去拼。随着公司业务的发展,业务已经慢慢的趋于饱和了,已经不是打天下的时代,必然不会有太多的机会。而自己的两个朋友在公司发展的顶峰期离职,去了其他的公司,付出超出常人的努力,已经是技术二把手和产品总监了。所以晋升有两个关键因素:1 加入成长期的企业 2付出更多的努力。不过这个也是赌博,全靠眼光和运气。
  ● 工作四年到现在
  如果说第二个阶段还会写代码,这个阶段基本上没有写过代码。这个阶段做什么,管人,管团队,开会,管自己的业务,规划业务的发展。当公司越来越大的时候,政治,官僚气息就开始了。在这个阶段,自己也是做的最没有意思的时候,开会讨论需求,一个很简单的需求涉及的利益就很大,开会就在不断的pk和吵架中进行。毕竟业务架构都是虚的,互相不认同,不像代码,好与坏一般都能够分的清楚。这个时候,一个人的技术实力已经显的不太重要了,重要的是沟通,pk,忽悠能力。能把业务方,别的业务团队,开发忽悠住就可以了,忽悠这个能力,也许需要更高一个层次。这个阶段的开发同学就很苦逼,被这种流程,协作,规范逼着,有各种各样的质量、缺陷指标。
  这个时候抽象思维能力就比较重要,这也是忽悠的基础。这个往往在架构pk中起决定性作用。业务的规划需要更高的领域知识以及抽象思维能力,而去实现它,相对来说比较简单。所谓抽象,就是从众多的事物中抽取出共同的、本质性的特征,表现在编码方面,就是设计模式,表现在业务上,就是业务架构。由于业务架构和组织架构吻合,往往业务架构能力强一个组织所在话语权就会比另外一个组织强。


相关帖子

沙发
refee| | 2013-1-18 17:57 | 只看该作者
楼主牛叉 估计现在已是总监级别吧

使用特权

评论回复
板凳
brandnew| | 2013-1-18 22:32 | 只看该作者
忽悠住了,:D

使用特权

评论回复
地板
xiao| | 2013-1-20 11:12 | 只看该作者
我之前公司发展10年了软件也没有你说的第一阶段的东西,还是作坊类型,业务流程却有很大的官僚气有第二和第三的缺点,意见听不进去。

使用特权

评论回复
5
cooran| | 2013-1-23 13:36 | 只看该作者
学习了,每个阶段会有不同的感悟

使用特权

评论回复
6
swustlx86| | 2013-9-6 13:06 | 只看该作者
支持一把               

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:我很懒,什么也没有留下

49

主题

78

帖子

1

粉丝