技术开发 频道

给年轻软件研发工程师的话

【IT168 技术文章】

  一.我目前在国内一家大型软件公司里做软件开发总监,由于本文中涉及了我个人对一些公司和机构的评论,有好的方面,也有坏的方面,所以我不方便透露太多关于我个人的一些信息;另外由于本人写的比较仓促,加之工作忙碌,也就没有在文字上以及文章结构与逻辑等方面做一些整理,所以可能有些地方看起来有些乱。我想乱与不乱都是次要的,关键是,我希望我的这篇文章能够让大家将一些事情看透,从而防止自己在软件行业内走入误区,以便能够在软件行业取得更大的发展与进步。

  二.该怎样规划自己的技术发展方向以及人生发展的总体思路?

  1) 要永远相信“物以稀为贵”,我这些年的经历发现,现实中有很多软件工程师存在严重的“跟风”行为,也就是:只要市场上或者媒体上对某个领域或潮流进行“吵作”就无形中引导着这些工程师的学习方向与学习行为。如果我们纯粹以发展前景与“钱景”作为个人技术发展方向的衡量标准的话,则一个普遍的规律是:跟上最流行的技术并不一定拿到高薪;大家可以看到,同样是用C++编程语言开发软件,在Windows平台下的VC工程师,要比Unix平台下的C++工程师明显薪水低一档,为什么?原因就是一个公司可以在人才市场上很容易找到会VC的工程师,但找到有Unix平台下的C++软件系统开发经验的工程师相对要难找的多;

  2) 中国软件市场是典型的内需驱动型的市场,所以中国的软件公司需要不同领域的软件开发工程师,而且不同领域的软件开发工程师在薪水方面有很大的差别,在个人职业方展过程中应“随需应变”

  3) 不要局限于技术,一个人在自己事业上的成功或者说狭隘的说是个人财富的积累是一个人的“资源整合能力”的综合结果,而绝对不是一个人的技术能力单方面决定着的;在过去的经历中,我遇到了太多的“头脑聪明,技术高超”年轻工程师,他们在技术领域很聪明,但是缺乏在公司具体的人际关系环境下生存的“基本人际关系网络”管理能力,而变成了一个典型的“愤世嫉俗”的人。技术与个人智商高或者乃至上学时期的学习成绩好绝对不意味着一个人更容易通向财务自由与事业成功之路。年轻阶段有一定的技术积累是非常必要的,但如果彻底沉迷于技术,而不是着眼于个人5到10年以后你个人的事业成功所必须依赖的核心能力,行业背景和人际关系网络等因素,迟早有一天会陷入人生的被动局面里面去。

  4) 不要抱怨自己所处的公司环境的复杂性并抵触之,其实无论是到管理水平很高的跨国公司还是管理很混乱的一些民营企业,只要存在人的地方,而起这些人之间只要在工作内容与职责上存在相互以来的关系的话,就不可避免有各中形式的人事斗争,在这种公司环境中,有些人善于分析公司内部环境与权力动态,并知道如何恰当发展自己并保护自己的利益免受伤害,他们锻炼了一种在复杂环境下的“领导能力”,而有一些人却在这种复杂的环境下变得“愤世嫉俗”或“冷眼处之”

  5) 个人的职业历程的发展模式是:随着个人在职业生涯的年数的增加,你在职场里有效开展工作,并应得工作业绩和个人收益的核心能力就尽可能少的以来技术本省的东西,而是个人的管理与领导能力还有在行业内的关系网络以及这些因素所必须以来的一个人人际关系能力与人际交往素质

  6) 不要按常理“出牌”,大多数人平凡的生活着,就是因为大多数人的思维被模式华,所以他们做事情并没有真正用自己的大脑深入的钻研事实的真相并作出自己的选择与判断

  三.你应该如何开始自己的行动,并有一个很好的职业发展开端?

  1) 为了得到一份软件开发工作,是自学还是找一个培训机构?

  任何一个培训机构都不能一劳永逸得解决你职业发展得所有问题,所以有很多东西,你必须自己学习,但是从公司招聘软件开发工程师的流程与关注点的角度来看,基本上是两个大的因素,一个是个人的特定领域的知识结构和基本的开发技能,比如某个编程语言的使用能力,另一个至关重要也是可能通过某个自学途径不太可能得到的就是“特定软件开发领域工作经验”这个工作经验是必须通过实际的一些开发实践方能获得的,而这个工作经验是你在公司决定给予面试机会,以及公司决定录用当中相当重要的一个环节。 一方面你的简历中是否有你所应聘的公司所从事的软件开发业务相关的“工作经验描述”决定了你是否会得到面世机会(正是由于此点,造成目前绝大多数计算机相关专业的本科生,甚至研究生在就业方面面临着沉重的压力),用人单位最关心的不是你学过什么,而是你亲自做过什么,另一方面在你得到面试机会后,用人单位的面试框架基本上在技术方面就是两个方面:通过让你描述你曾经做过的软件开发项目来判断你到底有多没深入的开发经验以及是否与他们的要求想吻合,另一方面,在让你描述工作经验的过程中,或过程后对你的基本知识结构和基本的技术能力(比如编程技能)进行考核。

  我给你的结论就是:不是说你学过某个领域的技术知识,比如编程语言,比如数据库等,就意味着你能找道一个软件开发方面的工作,用人单位永远将“你真正动手做过的项目与公司业务的吻合度”做为第一重要的判断点,你可以通过自学,或者自学能力差的话,跟着某些培训机构去学习某个领域的专业知识,但是真正促使你找到一份薪水不错的工作的主要因素是:你能够通过某种方式做一个相对来说完整而复杂的软件开发项目。而这个项目工作经验只能说你在某个公司实践工作获得,或者从某个软件培训机构获得(前提是这个软件培训机构能够提供这种级别的软件项目工作经验,但我发现真正能作到的软件培训机构在市场中很少,)

  目前,市场上有很多软件培训机构都美其名曰,他们有项目开发实践,但想提醒大家的是,同样是项目开发实践,是否能够最终在个人求职方面用的上,主要决定于这个项目本身是否会给你足够的‘工作背景经验’以及这种工作背景经验在人才市场上的“稀缺性”有多大。

  在这里引用我一个在国内电信软件公司做项目开发总监的朋友的一句话:“我在招聘自己的开发工程师时,基本上很少关注这个人有没有证书, 我关心的问题基本上很简单的几个事情,一个是他有没有做过与我目前的项目从技术面相吻合的项目经验, 第二个问题是他本身的技术知识面和实际的动手技能如何, 第三个问题是这个人的学习能力和潜在的素质如何 第四个问题是,是否是一个易于合作的人,擅长沟通,技术人员都有那么一些”个人英雄”主义的情结,但一般只要是复杂的系统项目,更需要的是整个开发团队的通力合作”

  2) 北大青鸟或者NIIT培养出来的“低门槛进入”所谓的“软件蓝领”能适应中国目前的国情吗?

  这两年市场上非常火爆的所谓“软件蓝领”培训,比如北大青鸟,NIIT等,“软件蓝领”曾经是媒体非常热的一个词汇,但中国目前需要这种意义的“软件蓝领”吗? 或者说“软件蓝领”在中国真的能够就业吗?因为蓝领也好,白领也好,于想从事软件开发的人员来说,他们的目的很简单,找到在IT软件公司的工作。

  对于这个问题,先谈一下我的基本观点:传统意义的“软件蓝领”在目前中国的情形下是不适应的。

  首先,应该说软件蓝领实际上是软件产业发展到一定的历史阶段所必然的结果,所说的软件蓝领是在大规模软件工厂式生产模式下,专业从事软件代码与基本调试的一线人员,软件蓝领是产业发展的需要减低总开发成本并实现规模化,工厂化软件生产的必然要求的职位,在这方面印度的软件工厂模式已经取得了相当大的成功。他们拥有大量一线从事基础软件开发工作的软件蓝领,而且形成了金字塔式的人才结构。

  其次,我们谈论任何事情都不能脱离历史发展的现状来谈论,中国的软件生产方式从总体来说离着大规模软件工厂模式还有相当长的一段路程要走,从政府的意愿来说,政府希望中国的软件产业能够以尽快的速度完成产业结构的完善调整,企业的兼并与重组过程,从而能真正形成可以与国际竞争的大型软件企业;但至少在今后的几年内难以实现,软件人才结构的调整也需要再长的一段过程。传统意义的软件蓝领实际上是,这些从业人员无须关心它所开发的整个软件系统是怎样的一个系统结构,他应该做什么早已经被设定好,他只需按照“软件生产规范”实现就行了,一定不能忘记这个的前提是“大规模软件生产模式”,人数可能是1000人,到几千人同时进行软件开发,但我们再看一下中国的情形,中国的软件企业去年统计是4700家,其中55%是50人以下的公司,50-200人之间的占到42%,只有极少数的公司达到了1000人的规模;我们必须对一点非常清晰,如果我们培养了软件蓝领它是需要在中国的软件公司就业的,这将占到绝大多数,而且这绝大多数的人,绝大部分会到人数小于200人的软件公司工作,但实际上站在这个角度说,可能这些软件蓝领有相当大的一部分人员找不到工作,原因很简单,中国的绝大多数软件公司的软件从业人员的工作方式并没有按照软件工厂模式来运做,举例来说,很多公司是项目经理即做系统设计,又从事代码编写,同理,项目经理的开发团队的一线软件工程师也是即做代码,又参与系统的总体或者局部架构的设计,我不能说中国的所有软件企业都在这么进行着软件开发,但至少在中国目前情形下,这样的方式占了绝大多数。所以,我敢肯定一点,印度的软件工厂模式下的“软件蓝领”到中国来的话,他绝对做不了中国许多软件公司里的工作。

  所以,大家看到了,北大青鸟的软件工程师培训课程目前非常火爆,但是火爆并不意味着他的课程,以及他培养出来的软件工程师在中国软件人才市场有充分的竞争力的。

  再次,媒体炒做“软件蓝领”是一个事情,做为从事IT教育的教育机构如何做教育又是另一回事,政府肯定是希望我们早日走上软件工厂模式下的软件产业结构升级,但作为从业人员的最终就业场所是软件公司,那么这些中国的软件公司他首先要照顾的是自己目前的发展阶段,需要的是比软件蓝领更加有综合的素质,综合的知识结构和技能的从业人员来从事自己的开发,而不是遵从政府的意志,这是一个非常显而易见的事情。

  所以,超越特定的产业历史阶段来谈论软件产业里的软件从业人员的教育问题是不切实际的。

0
相关文章