跳至主要内容

【转贴】"35岁"IT人的一道坎

作者:  来源:   发布日期:2008-08-14  

    机遇与挑战并存,知难而退还是坚守着不抛弃不放弃?2008年,那些三十而立的IT人,在前途与钱途之间如何抉择? 0和1的世界,并不单调,虽不能像电影中的IT英雄那样依靠机器拯救世界,但是每个人手中都掌握着自己的职场罗盘。

    据一份调查报告指出,目前国内软件开发人员中,年龄在20 ~30岁的人群占53.76%,30~45岁占34.71%.有人认为,开发先进的技术理念需要应聘者具备相应的工作经验,创新能力和研发能力,因此,一般在30~35岁的候选人是较合适的选择;还有人认为,程序员接受新知识的能力随着年龄的增长会有所下降,通常集中在35岁以后,因此,一个以技术为核心价值的企业当然会顾虑聘用35岁以上的员工。

 

   "前途or钱途" 35岁真是软件工程师的一道坎吗?

    ――访联想网络(深圳)有限公司 研发总监 彭兆华

 

    难道35岁真是软件工程师的一道坎吗?对于这个IT人经常思考的问题,彭兆华也许并不这样认为,他从一名普通的程序员做到研发部管理层的职位,他也经历过35岁这道坎,他的经历也许并不辉煌,但绝不平庸。

    彭兆华,联想网络(深圳)有限公司研发总监,99年硕士毕业于武汉华中理工大学(现华中科技大学),毕业后进入中兴通讯。当时电信行业不景气,最终在公司的安排下被派到南京研究所做程控交换机的维护。在中兴一年多后回到深圳,来到另一家香港东强公司做电子行业。当时彭兆华对网络非常感兴趣,2001年就来到了刚成立的一家网络公司做路由器、交换机等产品,03年该公司被联想集团收购。

    记者来到彭兆华的办公室,他正在面试一位软件开发人员,借此机会,我们采访了彭总(以下是访谈实录):

    记者:你参与公司招聘吗?你在招聘的时候会看应聘者哪方面的条件?

    彭兆华:是的,一般来说在社会上招聘和校园招聘是不一样的。社会招聘一般来说还是看他的经历,比如说在相关行业工作过,做过什么项目,跟我们的项目是否能衔接上等,这样来说上手会比较快。另外一个就是看他的个人能力,一般通过面谈了解他在做项目时的经历。

    记者:面试时会面向哪些问题呢?

    彭兆华:我们会有一个笔试,比如说C语言的代码改错等一些题目,还有一些相关行业的知识性的,比如说网络通讯等方面的一些简单的题目。面谈时,我们会听一些他在以往做的项目里面担当什么样的角色,看他管理的一个范畴。人力资源部主要是看他的一个沟通的能力,以及在企业文化方面的配合程度。如果是学校招聘的话就不一样了,因为毕业生的实践能力不强,主要还是看他的兴趣方向,因为在学校里如果对软件开发有兴趣的话,他会去钻研一些问题,还要看他的一个反应能力,因为搞研发的头脑要灵活。最终还要看他在学校的学习成绩和参与社会活动等。

    记者:你现在的职位是研发总监,手底下大概有多少人?

    彭兆华:我们研发部门人数占整个公司的一半,大概50人左右

    记者:也就是说研发部门在公司占很大一部分

    彭兆华:目前研发部门和销售部门是整个公司最重要的2个部门。

    记者:你们研发部门内部人员是怎样规划的?

    彭兆华:从行政职位上来说,分成4个部门,1个硬件部门,2个软件部门,1个测试部门。在做项目的时候,提取一些人出来,成立一个项目组,有项目经理承担此项目组的管理工作,

    记者:能给我们介绍一下各部门的职能是什么?部门之间是怎样协调工作的?

彭兆华:我们在开发过程中,从大的流程上说,一般来说是从硬件开始,然后到软件,软件又分底层和上层,用C语言开发,然后再到测试。在这个项目组中,有个项目经理,还有一个项目管理人员,这个项目管理人员就是对这个项目进度的跟进和项目存档以及项目会议的组织,这个职位是一个辅助的职位。但是项目经理是对这个产品的架构、系统、技术上面的把握,然后对这个项目组进行资源分配。在硬件和软件之间,有很多交叉的工作。

    记者:有没有产品经理的职位?它的职能是什么?

    彭兆华:有产品经理,他是结合市场,属于研发之外的,但要懂一些技术。一是对产品负责,前期收集市场方面的需求,确定产品的规格,跟研发部门沟通后确定产品上线的时间,

    记者:除了以上这些职位,还有其他的吗?

    彭兆华:下面还有技术主管。如果项目比较大的话,我们会分成很多小的项目组,技术主管主要是对技术上的把握

    记者:那么产品经理和研发总监之间是什么样的关系?

    彭兆华:其实,产品和研发是并行的,产品经理主要是贴近市场方面,但跟研发部门有密切关系,比如说产品经理要跟研发部门沟通后确定产品的上市时间和数量,开发后的市场及客户信息也要及时地反馈给研发部门。产品经理是介于市场和研发之间的一个桥梁,是对整个产品进行把握的。此外,产品经理也要协助做一些公司产品整体规划。

    记者:从职业规划这个角度来看,一个刚刚毕业的大学生,搞软件开发,从底层开发人员上升到管理层,需要经历怎样的步骤?

    彭兆华:刚毕业的人员,首先从技术上要学习很多,作为一个项目经理,在技术上要能够把握全部,比如说做我们的交换机产品,首先要对交换机涉及到的技术非常了解,要根据标准来写代码,像软件测试人员的话,对CCNA、CCNP所学的应用要非常了解;其次是对开发语言的能力要精通和规范,比如说C语言;然后对软件的架构要非常熟悉,这个最重要,你要很清楚每一块是干什么用的。我们有一整套的软件系统,所以你要在此基础上添砖加瓦,肯定要对每个架构都非常熟悉才行。在技术方面达到一定程度后,还要有一定的管理能力,这就是所谓的技术+管理能力,但对于项目经理的职位,技术能力第一,管理第二。

    记者:大概要奋斗几年才能上升到管理层?

    彭兆华:每个人根据自身能力不同是不一样的,有的人奋斗好几年也到不了项目经理的程度,有的人经过一、两年的时间就可以胜任。如果说刚毕业的人来到公司做软件开发写代码,经过一、二年的时间也有可能做到比较高的职位。

    记者:作为项目经理,是如何跟下面的开发人员沟通的?

    彭兆华:一般是分块,通过架构,分硬件、软件、测试。作为硬件来说,有做硬件设计的,CAD设计的。对于软件来说,一般比较大的项目,根据功能和协议来分,也有的根据层次来分,有的跟硬件有关,有的跟硬件无关。测试的话,也是根据测试的内容来分。

    记者:说一下你对软件人员的职业发展有什么看法

    彭兆华:从职业发展角度看,我认为最重要的还是要选择自己喜欢的、有兴趣的行业,另外就是要踏实的融入到这个行业里,在把握好技术方面之上再去拓展其它方向,比如说管理方面和公司发展方向等。

    记者:现在IT人普遍认为35岁是一个坎,很多人欲转行,你是怎么看待这个问题的?

    彭兆华:我认为在以前或许有这种想法,但现在不是了,因为以前的软件编程人员是非常稀缺的,到35岁以后,他的职业发展机会有很多,比如说转到技术管理层、架构管理等方面,而编程人员都在30岁以下。但实际上,现在越来越多的行业相关人员涌入社会,大部分软件人员至少不会是在这个年龄层去转变,目前还是有很多这个年龄层的软件人员在做基础编程这些工作。但从职业规划方向来看,还是可以向管理层转变的。还有一种是完全转行的人,这些人我也见过很多。

    记者:在职位上有什么划分么?

    彭兆华:在一些大公司,职位都是由2条线的,一个是行政职位,比如说小部门经理、大部门经理、总工、总监等。另一个是技术职位,一般通过职称来定,比如说助理工程师,高级工程师、资深工程师等。薪金待遇也是根据这2条线来定的,不一定行政职位高,待遇就高,技术人员的工资总体来说还是比较高的,

    记者:你做这行也有6~7年了吧

    彭兆华:对,我也从底层的一个普通开发人员做起来的,也做过一段时间的项目经理,逐渐升到软件高级经理,然后到现在的研发总监,管理整个研发部门。每个人都要经历这样的过程,技术不像是普通的管理层,很容易就能"空降",绝大部门技术人员都是一步一步走过来的。

    记者:你对未来有什么样的职业规划吗?

    彭兆华:这种规划不仅仅包括我自己本身在内,也包括公司的规划。目前公司还是一个小企业,刚刚起步不久,我目前处在公司的管理层,一是想着和研发部门一起把产品做好,另一个是和公司的管理团队一起把公司搞好。目前,技术管理层这条路还需要继续走下去,会走比较长的一段时间。我一直认为,对于技术人员来说,技术还是占到第一位的,这是根本。"技术+管理"这条理念是非常重要的。

    记者:目前中国软件业比较热衷于外包模式,你认为还有些什么更好的途径么?

    彭兆华:我觉得是这样的,其实分2块,对于通用化的软件来说,外包模式越来越多,目前这是中国软件业的一个发展方向,另外一块是我们自主研发的软件品牌。我认为中国软件业走外包这条路还是不错的选择,是提升自己品牌的一个很好的方式。我觉得中国目前特别缺乏高级软件人才,刚毕业的人员如果在行业里踏踏实实的磨炼,我相信会有很多机会的

    记者:三年内,中国软件业朝哪方面发展,软件人员应该朝哪方面发展?

    彭兆华:中国软件业目前需要先做"专",做"精",之后再朝"宽"的方向发展。针对软件开发人员来说,目前java语言一般应用在互联网方面;而嵌入式软件开发一般用C语言,因为它的效率比较高,代码少。

    记者:你认为中国目前的程序员都有哪些缺点或是不足需要改进的

    彭兆华:我觉得中国的软件开发人员一是比较随意,这是个很严重的问题,在写代码的时候一定要严谨、规范,思维要活跃,要按流程来操作。二是严密性不强,因为如果一行代码出错很容易导致整个产品出问题,所以在开发的过程中一定要考虑周全,全面严谨的处理各种事情。三是在语言方面需要,比如说英语能力要有所提高,因为很多技术相关的资料都是英文编写的,不管是外包产品还是自主研发的产品,都跟国外紧密结合,我现在也是在学习这方面的内容,如果能够坚持下来,我相信会有很好的职业前途。四是中国的软件人员太浮躁,总是想着一步登天,不能踏实下来,像那种基础编程工作的重复劳动,我觉得还是有必要的。
 
 

评论

此博客中的热门博文

【转】VxWorks中的地址映射

在运用嵌入式系统VxWorks和MPC860进行通信系统设计开发时,会遇到一个映射地址不能访问的问题。 缺省情况下,VxWorks系统已经进行了如下地址的映射:   memory地址、bcsr(Board Control and Status)地址、PC_BASE_ADRS(PCMCIA)地址、Internal Memory地址、rom(Flach memory)地址等,但是当你的硬件开发中要加上别的外设时,如(falsh、dsp、FPGA等),对这些外设的访问也是通过地址形式进行读写,如果你没有加相应的地址映射,那么是无法访问这些外设的。   和VxWorks缺省地址映射类似,你也可以进行相应的地址映射。   如下是地址映射原理及实现:   1、 地址映射结构 在Tornado\target\h\vmLib.h文件中 typedef struct phys_mem_desc { void *virtualAddr; void *physicalAddr; UINT len; UINT initialStateMask; /* mask parameter to vmStateSet */ UINT initialState; /* state parameter to vmStateSet */ } PHYS_MEM_DESC; virtualAddr:你要映射的虚拟地址 physicalAddr:硬件设计时定义的实际物理地址 len;要进行映射的地址长度 initialStateMask:可以初始化的地址状态: 有如下状态: #define VM_STATE_MASK_VALID 0x03 #define VM_STATE_MASK_WRITABLE 0x0c #define VM_STATE_MASK_CACHEABLE 0x30 #define VM_STATE_MASK_MEM_COHERENCY 0x40 #define VM_STATE_MASK_GUARDED 0x80 不同的CPU芯片类型还有其特殊状态 initialState:实际初始化的地址状态: 有如下状态: #define VM_STATE_VALID 0x01 #define VM_STATE_VALID_NOT 0x00 #define VM_STATE_WRITA

【转】cs8900网卡的移植至基于linux2.6内核的s3c2410平台

cs8900网卡的移植至基于linux2.6内核的s3c2410平台(转) 2008-03-11 20:58 硬件环境:SBC-2410X开发板(CPU:S3C2410X) 内核版本:2.6.11.1 运行环境:Debian2.6.8 交叉编译环境:gcc-3.3.4-glibc-2.3.3 第一部分 网卡CS8900A驱动程序的移植 一、从网上将Linux内核源代码下载到本机上,并将其解压: #tar jxf linux-2.6.11.1.tar.bz2 二、打开内核顶层目录中的Makefile文件,这个文件中需要修改的内容包括以下两个方面。 (1)指定目标平台。 移植前:         ARCH?= $(SUBARCH) 移植后: ARCH            :=arm (2)指定交叉编译器。 移植前: CROSS_COMPILE ?= 移植后: CROSS_COMPILE   :=/opt/crosstool/arm-s3c2410-linux-gnu/gcc-3.3.4-glibc-2.3.3/bin/arm-s3c2410-linux-gnu- 注:这里假设编译器就放在本机的那个目录下。 三、添加驱动程序源代码,这涉及到以下几个方面。(1)、从网上下载了cs8900.c和cs8900.h两个针对2.6.7的内核的驱动程序源代码,将其放在drivers/net/arm/目录下面。 #cp cs8900.c ./drivers/net/arm/ #cp cs8900.h ./drivers/net/arm/ 并在cs8900_probe()函数中,memset (&priv,0,sizeof (cs8900_t));函数之后添加如下两条语句: __raw_writel(0x2211d110,S3C2410_BWSCON); __raw_writel(0x1f7c,S3C2410_BANKCON3); 注:其原因在"第二部分"解释。 (2)、修改drivers/net/arm/目录下的Kconfig文件,在最后添加如下内容: Config ARM_CS8900    tristate "CS8900 support" depends on NET_ETHERNET && A

【转】多迷人Gtkmm啊

前边已经说过用glade设计界面然后动态装载,接下来再来看看怎么改变程序的皮肤(主题)     首先从 http://art.gnome.org/themes/gtk2 下载喜欢的主题,从压缩包里提取gtk-2.0文件夹让它和我们下边代码生成的可执行文件放在同一个目录下,这里我下载的的 http://art.gnome.org/download/themes/gtk2/1317/GTK2-CillopMidnite.tar.gz     然后用glade设计界面,命名为main.glade,一会让它和我们下边代码生成的可执行程序放在同一个目录下边     然后开始写代码如下: //main.cc #include <gtkmm.h> #include <libglademm/xml.h> int main(int argc, char *argv[]) {     Gtk::Main kit(argc,argv);         Gtk::Window *pWnd;        gtk_rc_parse("E:\\theme-viewer\\themes\\gtk-2.0\\gtkrc");       Glib::RefPtr<Gnome::Glade::Xml> refXml;     try     {         refXml = Gnome::Glade::Xml::create("main.glade");     }     catch(const Gnome::Glade::XmlError& ex)     {         Gtk::MessageDialog dialog("Load glade file failed!", false,       \                                   Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK);         dialog.run();               return 1;     }         refXml->get_widget("main", pWnd);     if(pW