博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
 《程序员成长路线图:从入门到优秀》成熟篇(节选)

程序员的上升空间在哪里

我见证过许多的程序员的成长,他们很多人在进入成熟期之后,技术上相对较高,一般项目开发起来比较自信,没有什么太大的困难,有的职位上也有所提升,成了项目经理、设计师,有的甚至是到了管理者的位置。又经过很长时间,这些程序员却在也没有什么变化和发展,工作稳定、情绪稳定,好像一切都在按部就班地进行着。有的程序员满足于现在的收入和职位,安于现状;有的程序员却在安于现状的同时,苦苦思索,却找不到自己的上升空间。

我想说的是,满足于现状的程序员并不能成为优秀的程序员,永远也不会实现程序员最初那个梦想。而对于那些思索于未来的程序员来说,探索自己的上升空间是一个非常重要的事,有上进心的人始终是这个社会追捧的对象。那么这个阶段程序员的上升空间在哪里呢?这个问题是仁者见仁,智者见智的问题,同时也是和程序员个体情况相关的问题。因此,我们可以用尝试的心态,提出自己的看法和建议:

1、 技术上的反思和提高

无论程序员个体之间差异有多大,我认为程序员上升空间在于技术上的反思和提高。程序员到了成熟阶段,往往有一种狂奔到终点后的那种感觉,身体疲乏无力,特别需要休整再战。要知道程序员在“奔跑”的时候,一般是在使用自己的体力,很少用到跑步的技术和技巧。尤其是到最后,更是依靠体力来支撑。从技术提高的曲线来看,新手的技术提高速度最快,无论从时间还是急迫性两个方面对新手的压力挺大的。而到了成熟阶段,其编程时间也大大缩短了和学习技术的迫切性也降低了,所以技术提高速度就慢下来许多。在现实中,我们真的看到有些年轻的程序员还看不起那些程序员的技术水平呢,就是这个道理。

因此,成熟的程序员在安顿之后,一定要坐下来反思自己,看看自己的技术发展之路,哪些走的比较踏实,哪些走的比较急促;哪些是自己的技术特长,哪些是自己的技术薄弱环节。反思后一定要抽出时间抓紧学习,把自己的技术上明显不足的地方给补上,这样程序员的技术水平加上丰富经验和工作能力会使得自己更加具有实力,可以应付各种挑战,为今后的发展铺平道路。

而那些顺其自然的思想,使得程序员缺少技术提高的主动性,程序员有明显的技术上的问题,也不主动去解决,而是拖之再拖,从而使得程序员的成熟度大打了折扣。

2、 走向软件设计师

其实很多程序员走到这个阶段已经在做软件设计师工作了。这是绝大多数程序员发展的必经之路。因为,程序员在编程序的时候,一方面会实现设计的功能,另一方面也在对设计有一个理解、认识、熟知的过程。进而慢慢地从学习别人设计,转向到自己参与或独立设计。如果这个程序员真的非常非常喜欢程序员这个职业,则可以转向软件设计师。这个转变很大程度是程序员意识的转变,就是说要把编程的时间,逐步分摊到软件设计上,要把重点从编程实现转变到项目的功能设计上。我这里强调的是“逐步”的一个过程,程序员要逐步减少编程的时间,增加设计的时间,要克服编程的强大吸引力,要主动地攀上设计这个台阶。很难有一个设计师是完全不编程的,而且我认为,会编程的设计师才是真正的设计师。一般这种转变需要花上一到两年时间。

3、 走向项目经理

 也有一些程序员工作机遇比较好,不但负责了项目的设计工作,而且负责了项目管理工作。对项目经理这个工作有了一定的尝试。因此,这类程序员可以审视一下自己,是否合适这项工作。如果自己对这种工作比较满意,而且具备项目经理的要求,则可以向项目经理这个方向发展。项目经理承担着项目管理的职责,对项目负主要责任。它和程序员的作用也不相同,项目经理的重点已经从编程转移到对人、对技术、对进度、对项目的管理。由于软件的项目经理与软件项目的相关性太大,因此,他必须要了解软件开发的各个环节、了解开发的各种技术和运用、了解开发队伍人员的水平和特点。所以他依旧和程序员脱不了干系。从程序员到项目经理可以使得项目经理更好地理解程序员在项目中的地位和作用,了解软件开发的各种规律性的东西。从而保证项目的正常完成。而且,项目经理的收入在公司中的地位也是比较高的。因此,我认为走向项目经理是程序员的另一个发展空间。我想提醒一下,程序员在担任项目经理之前最好要把软件设计工作做好,这样在做项目经理的时候,就会有很好的基础。

4、 走向管理者

很多程序员希望自己能成为公司中的主管、经理、老总、老板,这样无论是收入和在公司的地位都相对比较高一些。另外,一方面程序员可能厌倦了年复一年的编程工作,对工作产生了抵触情绪,希望能摆脱这种步步紧逼的工作状态。走向管理者其实要求程序员要比一般人做更多的准备,要做更多的转型工作,并不是想当管理者就能成为管理者的。但是,如果程序员有这个志向和爱好,有积累了这方面的工作经验,自己也感觉在这个方面能够发展,更重要的是有这样的机会,走向管理者也是可能的。由于软件公司的管理者毕竟不同于一般公司的管理者,专业能力越强,管理起来就越得心应手的,没有专业能力的管理,遇到的问题很多,也很难解决。因此,我的建议程序员最好要把编程、项目设计、项目管理等基础打打好。这样转型到管理者成功率就会高一些。

5、 走向软件营销

 我一直说,程序员最大的缺点之一,就是眼光只盯在技术上。程序员在入门阶段和成长阶段,这种情况还是属于正常的。但是,到了成熟阶段这种缺点将严重影响了程序员的发展。程序员在工作中不免会接触到用户,不免会了解到用户的需求。从而了解到软件实际发挥的作用,进而了解了自身的工作价值所在。有的程序员则固步自封,不愿意和外界打交道,从内心里坚守技术底线。有的程序员则喜欢和外人交流,喜欢把自己的软件推荐给用户,而且用户也乐意接受这种专业的介绍,用户的接受是程序员价值的直接实现,程序员因此获得了工作成就感。这类的程序员可以将自己的专业知识和产品营销结合在一起,推动软件的销售和服务,转向软件营销职业。这个职业将是一个比程序员更有发展的职业,它可以直接反应程序员的工作能力和工作成果,程序员的收入和销售会直接挂钩。因此,可以让有才华的程序员获得更高的收入,接触到更大的软件市场,看到更广的个人发展空间。

6、 原地发展

当然也有一些程序员惰性比较大,满足于现状,享受着眼前的胜利果实,也无可非议。对待这些程序员,我们不要强求他们改变自己的想法,我建议是原地发展,把本职工作做得更好,把自己的技术水平往上再提高一步。在这个过程中他们的能力和自信心都会得到提高,他们的想法不会一直一成不变的。磨刀不误砍柴功,刀快了自然会去砍柴的。

7、 跳槽走人

还有一种情况,程序员工作很努力,技术水平也有很大的提高,工作成绩也很突出,但是,公司的工作环境让他感觉不好,例如,收入和付出差距很大,而且短期内看不到加薪的可能;自己的技术水平已经超出公司开发所需,英雄无用武之地;公司的经营状况比较差、看不到公司未来;公司的人际关系紧张,小人当道,自己得不到重用等。他可以选择跳槽走人。要说明的是,这个时候跳槽走人你是有本钱的,这个本钱就是你积累的工作业绩、技术水平和工作能力。

程序员在成熟期面临着上升空间的选择,是上还是不上往往决定了程序员今后的发展。水往低处流,人往高处走,只要程序员有向上的意识,不满足于现状,根据自身的特点和资源选择发展方向,我想程序员一定会有很好的发展前途。

意外惊喜:从博客园写博客到出书