软件工程师,你的价值在哪里?[1]。

职业规划怎么写,相信很多朋友们对这个问题很感兴趣,下面给大家介绍一下。第一部分,前言即总论;第二部分,自我分析,包括业余爱好、性格、价值观、专业技能等;

前阵子好奇的问了一下几个职场上的朋友,想知道他们对于日后职场生涯的计划,他们的答案颇让我玩味,虽然心里早有了些底。大部分的软件工程师一开始或许是对软件还颇有兴趣,加上也还称的上得心应手,因此便踏入了这一行。

然而信息软件产业在恶劣的环境中,其实一开始的兴趣与热情很容易就会在难搞的客户、只懂得出一张嘴的主管、一天到晚跟你作对的业务、不断延期的项目时程以及饿不死却也吃不饱的报酬中渐渐觉得看不到未来。

然而这是一个吊诡的问题,其实不论身在任何产业里,最重要的其实还是热情,对工作的热情是一切的基础。当你的热情消逝,其实就已经预告了你往后人生的景象。或许大部分已经步入职场多年的老鸟们会对我的说法嗤之以鼻。然而,拥有热情与否,最后终究会反应在你的成就里。

身为软件工程师的我们该如何寻求自身的价值?在相信各位朋友们都还有热情的前提下,提供几个观点供大家参考。

一、 你很特殊吗?请不断的深化你的专业吧。

你可以被取代吗?我最常使用这个问题来衡量的工作价值。

世界上有些工作的确是怎么样也无法被他人取代的,这些人有独一无二的特殊性,例如电影明星,运动明星,政治明星(这个选项其实有待考验)以及艺术家等。即便如此,这些人还是会因为外在环境而走入历史,那么,一般的知识工作者如我们,又该该何看待今日瞬息万变的职场。

不断的深化你的专业,这是我的建议。

千万别走马看花,也别这个有趣沾一点,那个新鲜碰一下,如果你是没有方向的在涉猎知识与技能,在职场的前几年或许还能够混口饭吃,但五年过去,你就会面临什么都懂也什么都不懂的窘境。三十岁之后要拥有职场历练之后的深度,不论是专业上或是经验上。

因此,前两三年或许可以因为兴趣诸多涉猎,但是要逐渐收敛这个范围,要开始有目标的将你的专长有深度的培养。

zc530.cOm编辑推荐

从程序员到软件工程师[1]


看了程序员系列文章,颇多同感。做为一个从业13年,一直做软件开发的人,我想给那些已经、将要和有志于走上这条路的朋友一点点忠告。

首先,说说程序员和软件工程师。虽说都是编程的干活,但是还是有一点高下区别。

主要说来区别是程序员programmer是将程序(已经有流程,伪代码或设计模板)写成代码;需要熟练掌握至少一门编程语言。而软件工程师则要将目的描述成程序语言并实现的能力。例如将数学算法、自然语言、思维模式描述成程序算法,程序流程/类或/和人工智能,并写成代码的能力。

对初入行的人,当然重在语言,要做一个合格的程序员,首先要熟练掌握语言。包括语言特性和实现的能力。例如使用尽量中文说的面试题,就要求面试对象掌握C++中的类的封装;构造函数的重载和运算符重载。

做过一两年后,要想继续吃这碗饭就必须提高自己,首先当然是深入了解语言,特别是语言的思维方式,编译器的工作方式和常用设计模板。就拿C++的多态性来说,很多公司面试就会问什么是虚函数/纯虚函数(思维方式)?用C如何实现函数重载(函数指针和了解编译过程)?接口类/工具类/工厂类和 Sigleton类的实现(常用设计模板)。另外还有一大块就是内存管理了。

如果能做到深入了解语言本身,那么恭喜你,你现在Title至少是高级程序员了。

在对自己的语言有信心后,下一步就想一想自己要想哪方面发展。是管理方面(项目经理)还是技术方面(软件工程师)。既然这里讨论编程,我们就先不考虑项目经理。想发展为一个软件工程师其实也有两条路。一条是走系统软件工程师或者叫架构工程师的路;另一条就是算法工程师。

在国内的朋友我建议走架构工程师的路。要求就是知识面广,对整个系统熟悉,能很快了解和分析客户/设计需求,很快估计工作量、风险和所需要的资源(承担相当部分项目经理的任务),能根据现有技术人员储备提供一个解决方案。当然还需要一定的表达能力和文档写作能力。例如我当年走访某省农行,和对方聊了银行卡和医院医疗卡的联网,当天晚上就和市场部的人合作,搞了一个通宵,写出了60页的技术方案和外加40页的基于此方案的标书。

一般来讲,要做到对整体系统的深入了解,没有两三年的时间是做不到的。所以给国内程序员的建议是不要频繁跳槽,尤其是不要频繁跨行业跳槽。踏踏实实地将本行业的软件吃透,最好每个部门或模块都工作过。如果有这个想法,一般情况下你可以和项目经理沟通,通常他们会鼓励你这样到各个部门/模块工作。

我出国后,发现情况有点变化,由于语言和文化的区别,对自己走系统工程师的路没有很大的信心。只好转向走算法工程师的路了。

确定了这条路后,突然发现自己的数学能力太差了。不得不重新恶补线性代数,概率和数理统计等高等数学。同时将《数据结构与算法:C++版》好好从头到尾读了一遍。然后终于蒙混到了一个职位。

当时第一个任务就是在一个嵌入系统中写一段程序将bmp压缩为jpg。各位可能会问了,这个在网上满大街都是源代码,为啥还要自己写呢?其实这就是我不太建议国内工程师走算法这条路的原因。除非你是数学大牛,有自己原创的算法。否则在国内实在没有算法工程师很大的生存空间。但是在国外有很大的不同,稍正式的公司基本上都禁止使用open source。因为open source也是有版权的,有的是不能商用,更有的copy left是那些公司碰都不敢碰的。因为copy left要求你使用了他的代码,你也必须公开你的代码。

当然,我们可以看那些open source,然后自己重写。不过相信我,通常情况下如果你不是想简单做些变量替换就交差的话,看原代码不如看这个算法文档本身。

软件工程师的职业规划


职业规划怎么写,相信很多朋友们对这个问题很感兴趣,下面给大家介绍一下。第一部分,前言即总论;第二部分,自我分析,包括业余爱好、性格、价值观、专业技能等;

不少人都曾经这样问过自己:人生之路到底该如何去走?记得一位哲人这样说过:走好每一步,这就是你的人生。是啊,人生之路说长也长,因为这是你一生意义的诠释;人生之路说短也短,因为你度过的每一天都是你的人生。每个人都在计划自己的人生,都在实现自己的梦想:梦想是一个百花园,我只是百花园里一根小草,可小草也有一个大理想,于是我在这里畅想一下自己的。


未来社会发展的最终趋势将是集体一体化,这就注定软件的开发编程是必不可少,而且具有计算机网络的公司、银行、证券公司、海关、企事业单位及公、检、法等部门,都需要一定的编程人员,所以我可以从事计算机信息安全管理,或信息安全产品销售与服务等工作,从事计算机信息化管理,计算机辅助设计,ERP等相关软件的维护、销售、项目开发等工作。而作为一名计算机应用专业的学生,不可能对所有技术都涉猎到,因此我便选择软件技术作为跳板。


一、相关分析


1. 外部环境分析


(1)社会环境分析:当前国民经济信息化进入新的发展阶段,电子政务及互联网蓬勃发展,带动了计算机相关产业的发展,以软件业为例,中国正以年均超过25%的速度在增长。IT人才供不应求是世界范围的现象,许多国家都有20%至30%的缺口,我国也不例外。计算机专业毕业生找工作难却也是不争的事实,这就关系到毕业生素质问题了。


(2)分析目标地域:目前计算机行业的竞争相当的激烈,知识的更新淘汰速度相当的快,工作时间长节奏快,人们戏称搞计算机的人为IT民工有起一定道理。


2.目标职业分析


(1)目标职业名称:软件工程师


(2)工作内容:完成软件项目的详细设计,手册及测试文档的编制,参与软件产品的平审,负责完成代码的编写工作,负责完成集成,测试及确认工,负责实施用户培训工作。


(3)任职资格:


A.精通C/C++、汇编语言、数据结构、计算机基础原理;


B.需有自已比较优秀的作品(开发工具为C/C++);


C.熟悉Linux平台下编程者


D.沟通能力强,语言表达清晰,逻辑性强;


3. 就业和发展前景:


中国的软件人才缺口确实庞大,但是想要进入这一行业的人要特别注意,近几年内想要从事软件开发行业,单单具备一些简单的技术操作能力是不够的,还需要具备系统架构的策划能力。主做NIIT软件工程师培训的北京现代商务培训中心的闫玲老师说,现在的用人单位对高素质的软件工程师的需求可以用如饥似渴来形容,上海的NIIT公司培训毕业的学员的就业率达100%,用人单位中多是银行的IT部门和跨国IT企业。而从事软件开发的北京畅然信息技术有限公司的魏贵阳说,对于具有实际操作能力的软件人才是用人单位最为需要的。而且越是上规模的公司,工作的拆分层次越清晰,对于软件人才的需要越大。


二.职业生涯规划设计


1.确定职业目标和路径


① 近期职业目标:在校期间


A.在校期间完成基本的学业,掌握好基础课,为考研作准备。通过英语四级考试,利用课余时间深入的学习软件编程技术(C++,Java),Linux系统,数据库语言,汇编语言、数据结构、计算机基础原理,提升自己的专业素质。


B.积极的参加各项活动,提高自己沟通能力,语言表达能力,交际能力,团队合作能力。


C.利用假期时间找一些小型的公司工作实践,在实践中发现问提,提高自己,了解最新的行业发展动态,学习最新的技术。


2. 中期职业目标:毕业后


利用四年工作实践的时间熟练的掌握软件编程,积累大量的软件编程经验,学习企业管理知识,关注最新的行业发展动态新技术的应用,成为一个出色的软件工程师,自己接一些小项目,积累一些资金。


3. 长期职业目标:


尝试和一些志同道合的专业人员朋友合作创业,以自己的成熟技术和良好的信誉为核心竞争力,在同行中拥有自己的优势,一点点的积累经验,扩大自己的客户群,使公司一点点的发展壮大。


三.结束语


职业规划目标就如空中楼阁般美好却遥不可及,到头来只是一个安慰自己的美丽谎言。然而,现实是未知多变的,定出的目标计划随时都可能遭遇问题,要求有清醒的头脑,巨大的勇气,克服困难,取得成功。也许最终我们的目标也不能达成,但至少我们努力过,奋斗过,拼搏过,人生也便无悔。


每个人心中都有一座山峰,雕刻着理想、信念、追求、抱负;每个人心中都有一片森林,承载着收获、芬芳、失意、磨砺。一个人,若要获得成功,必须拿出勇气,付出努力、拼搏、奋斗。成功,不相信眼泪;成功,不相信颓废;成功不相信幻影,未来,要靠自己去打拼!

软件工程师的务实职业规划


根据个人的理想决策安排,好好规划自己的路,不要跟着感觉走!即使你拥有一身才华,但是没有做好规划,到最后你的职业生涯也会发展得不顺利,甚至会迷失了方向。本文提供软件工程师的务实职业规划,仅供参考。

绝大部分人并不指望成为什么院士或教授,而是希望活得滋润一些,爽一些。那么,就需要慎重安排自己的轨迹。从哪个行业入手,逐渐对该行业深入了解,不要频繁跳槽,特别是不要为了一点工资而转移阵地,从长远看,这点钱根本不算什么,当你对一个行业有那么几年的体会,以后钱根本不是问题。频繁地动荡不是上策,最后你对哪个行业都没有摸透,永远是新手!

可以做技术,切不可沉湎于技术。千万不可一门心思钻研技术!给自己很大压力,如果你的心思全部放在这上面,那么注定你将成为孔乙己一类的人物!适可而止为之,因为技术只不过是你今后前途的支柱之一,而且还不是最大的支柱,除非你只愿意到老还是个技术工程师!

不要去做技术高手,只去做综合素质高手!在企业里混,我们时常瞧不起某人,说他“什么都不懂,凭啥拿那么多钱,凭啥升官!”这是普遍的典型的工程师的迂腐之言。8051很牛吗?人家能上去必然有他的本事,而且是你没有的本事。你想想,老板搞经营那么多年,难道见识不如你这个新兵?人家或许善于管理,善于领会老板意图,善于部门协调等等。因此务必培养自己多方面的能力,包括管理,亲和力,察言观色能力,攻关能力等,要成为综合素质的高手,则前途无量,否则只能躲在角落看示波器!技术以外的技能才是更重要的本事!!从古到今,美国日本,一律如此!

多交社会三教九流的朋友!不要只和工程师交往,认为有共同语言,其实更重要的是和其他类人物交往,如果你希望有朝一日当老板或高层管理,那么你整日面对的就是这些人。了解他们的经历,思维习惯、爱好、学习他们处理问题的模式,了解社会各个角落的现象和问题,这是以后发展的巨大的本钱,没有这些以后就会笨手笨脚,跌跌撞撞,遇到重重困难,交不少学费,成功的概率大大降低!

知识涉猎不一定专,但一定要广!多看看其他方面的书,金融,财会,进出口,税务,法律等等,为以后做一些积累,以后的用处会更大!会少交许多学费! 给自己做一份自我鉴定,对自己的肯定。

抓住时机向技术管理或市场销售方面的转变!要想有前途就不能一直搞开发,适当时候要转变为管理或销售,前途会更大,以前搞技术也没有白搞,以后还用得着。搞管理可以培养自己的领导能力,搞销售可以培养自己的市场概念和思维,同时为自己以后发展积累庞大的人脉!应该说这才是前途的真正支柱!

逐渐克服自己的心里弱点和性格缺陷!多疑、敏感、天真(贬义,并不可爱),犹豫不决、胆怯、多虑、教条式思维。这些工程师普遍存在的性格弱点必须改变!很难吗?只在床上想一想当然不可能,去帮朋友守一个月地摊,包准有效果,去实践,而不要只想!不克服这些缺点,一切不可能,甚至连项目经理都当不好——尽管你可能技术不错!

工作的同时要为以后做准备!建立自己的工作环境!及早为自己配置一个工作环境,装备电脑,示波器(可以买个二手的),仿真器,编程器等,业余可以接点活,一方面接触市场,培养市场感觉,同时也积累资金,更重要的是准备自己的产品,咱搞技术的没有钱,只有技术,技术的代表不是学历和证书,而是产品,拿出 象样的产品,就可技术转让或与人合作搞企业!先把东西准备好,等待机会,否则,有了机会也抓不住!

要学会善于推销自己!不仅要能干,还要能说,能写,善于利用一切机会推销自己,树立自己的品牌形象,很必要!要创造条件让别人了解自己,不然老板怎么知道你能干?外面的投资人怎么相信你?提早把自己推销出去,机会自然会来找你!搞个个人主页是个好注意!特别是培养自己在行业的名气,有了名气,高薪机会自不在话下,更重要的是有合作的机会...

该出手时便出手!永远不可能有100%把握!条件差不多就要大胆去干,去闯出自己的事业,不要犹豫,不要彷徨,干了不一定成功,但至少为下一次冲击积累了经验,不干永远没出息,而且要干成必然要经历失败。不经历风雨,怎么见彩虹,没有人能随随便便成功! 是吧!

软件工程师的职业规划参考


职业规划是对职业生涯乃至人生计划的过程,职业生涯规划的好坏可能将影响整个生命历程。感谢您阅读《软件工程师的职业规划参考》内容,职场资讯网小编向您推荐一些职业规划知识,欢迎参考,希望能帮到你。

根据不同企业规模大小,每个企业都需要拥有不同的规划。每个人也一样,在软件工程师这一行更需要职业规划,很多人都认为IT行业是吃青春饭,那么职业规划就更重要了,所以大家都应该拥有一份属于自己的职业规划。

一、软件工程师的职业优势


1、最具增值潜力的职业,掌握企业核心数据、软件技术,具有不可替代的竞争优势。


2、新型软件人才缺口大,27%的行业增长速度导致软件人才年缺口达30万,高薪高福利成为必然。


3、可实现专业零基础入行,6-18个月的强化训练和职业化引导,就可成为企业急需的技能型软件人才。


4、就业面广,一专多能,实践经验适用于各个领域。


5、增值潜力大,职业价值随着自身经验的丰富以及项目运作的成熟,升值空间一路看涨。


6、职业发展前景广阔、软件工程师到项目经理仅一步之遥,从容晋升Manager。


二、软件工程师解读


何谓软件工程师,软件工程师是通过学习和训练,掌握软件技术的理论知识和操作技能的软件技术人员。软件工程师能够从事计算机软件、网站的设计、开发、维护和测试工作。


具体来说,我们可以从企业技术部的岗位体系中作一些了解。企业(或政府)信息化过程中需要以下四种人:


1、企业信息化管理:负责信息化建设中的目标与方案决策,信息化建设、升级、更新;


2、工程技术人员:负责软件系统的分析、设计、开发、数据库、使用、维护和升级;


3、运行维护岗位:负责软件开发代码的编写以及基本的开发和测试;


4、操作应用人员操作应用人员:主要应用软件进行日常的管理工作。


一般来说,IT企业的IT技术职位根据职能可以分为管理岗位:企业信息主管CIO、总监、IT经理、项目经理等;


工程技术岗位:规划设计师、网络工程师、系统工程师、软件工程师和数据库工程师等;


运行维护岗位:数据库管理员、系统管理员、程序员等;


操作岗位:办公文员、CAD设计员、网页制作员、多媒体制作员等。


根据企业规模大小,规模较小的企业,一个岗位可能涵盖几个岗位的内容,系统管理员既要负责系统管理,又要承担网络管理;大企业则会分的比较专业,有软件设计师、系统集成工程师、网络工程师、程序员和系统测试工程师等。


软件工程师的三个进阶:


阶段 职称 岗位 前景和待遇


程序员 初级 程序员 专业软件工程师必经阶段


网页制作 工程师


中级 普通的软件设计人员 软件公司/企事业单位/数据中心

普通的系统分析人员 软件公司/大公司/外包公司

软件系统分析师 工资过万


软件系统设计师 需求量60万,缺口极大,当前最极缺

软件工程师职业规划过程主要有以下几步:


两年以上的小型企业四年左右的中型企业大型企业或跨国集团公司


第一步,小企业的软件开发设计编程人员;


第二步,进入大中型企业,同样的软件开发设计编程工作,工资就可能完全不同了,一般都在3000元以上。做了部门经理时,还可以高达5000元或以上;


第三步,学习更全面的知识成为普通的软件工程师工资就高达3500元以上;第四步,学习更全面的知识成为专业的软件工程师,如软件设计工程师,系统分析工程师的工资就可以达8000元以上,做大型企业或专业软件公司IT经理的工资就更高了,基本在万元以上。


Ⅰ、程序员


■工作职责描述:


编写计算机程序,开发软件包,调试并执行计算机应用程序,负责计算机程序的维护工作,为用户提供计算机维修服务。


■职位要求:熟练的代码编写能力熟悉一些常用数据库软件


能独立承担企业网站或门户网站系统开发


具有良好的沟通、协调及组织能力,有钻研精神,有工作责任心和良好的团队合作精神及表达能力。


具有良好的撰写需求分析、解决方案、PPT、系统软硬件配置等方案的能力


■就业前景:


国内每年所需的IT人才在100万以上,每年还在以20%的速度增长;随着大学和职业的扩招和培养,弥补了一定的缺口,而目前国内缺口还是极大。随着IT信息产业的日益普及,此类人才在未来几年中的需求将持续攀升,专业的软件开发和管理人才的工资标准可能还要远高于硬件开发人员。


Ⅱ、软件工程师


■工作职责描述:


(1)参与项目研发的技术,估算成本、制定预算,评估项目的可行性;


(2)参与新品开发和建设公司产品库;


(3)开发公司系统集成项目中的软件系统以及公司开发产品中的软件等;


(4)软件外包项目的开发、测试等工作;


(5)负责产品的设计、开发、测试和维护工作,并进行相关文档的编写。


■工作要求:


有多年的软件设计和开发经验


熟悉多种编程语言,对各种主流的技术有较好的理论基础和实践经验;精通熟悉各种常用设计模式;


。对技术有强烈的兴趣,喜欢钻研,具有良好的学习能力;。良好的沟通技能,团队合作能力。


■就业前景:当前最急缺的人才,工资增长幅度大


Ⅲ、专家


■职称:高级


工作在大的软件公司、或研究所主要是技术主管、项目经理、技术专家

软件工程师的职业生涯规划


一. 高级系统工程师的职业定义:

高级软件工程师是IT行业中的重要岗位. 根据开发进度和任务分配, 完成相应模块软件的设计、开发、编程任务; 进行程序单元、功能的测试, 查出软件存在的缺陷并保证其质量; 进行编制项目文档和质量记录的工作; 维护软件使之保持可用性和稳定性. 软件开发是一个系统的过程, 需要经过市场需求分析、软件代码编写、软件测试、软件维护等程序. 软件开发工程师在整个过程中扮演着非常重要的角色, 主要从事根据需求开发项目软件工作.

二. 行业背景和发展前途:

软件和信息服务外包产业已成为各个国家经济发展的重点. 从增加值角度来看, 同样金额的出口, 服务外包对中国经济的贡献是来料加工的20倍以上; 从能源消耗上看, 服务外包单位GDP能耗仅为制造业的20%. 这在中国政府大力倡导可持续发展战略以及大力发展高技术第三产业的主旋律下是适应中国经济发展, 也是符合中国社会客观需求的. 可以看到的是, 未来中国软件和信息服务外包产业发展空间巨大, 其原因有三: 首先是具有成本优势, 中国低成本的竞争优势是全世界公认的.

第二, 具有人力资源优势, 中国是世界上人力资源极为丰富的国家, 软件和信息服务外包服务业是劳动密集型产业, 中国未来在软件和信息服务外包业内将成为全球最具竞争力的转移承接地. 第三, 中国有非常庞大的国内市场, 这是中国吸引跨国公司进入很重要的一个原因.但与发展潜力不对称的是, 现今中国软件和信息产业人才相当缺乏,据调查研究显示, 当前中国软件和信息服务外包产业人才流动率较高, 而且缺口很大. 企业成立时间比较短, 规模大多比较小, 企业人才平均流动率达18.28%, 这和缺乏培训、业务来源不稳定、报酬机制不够合理等因素有关. 同时由于产业发展迅速, 人才供不应求, 尤其是本地化人才和中高级管理人才.

市场需求的巨大和专业人才的缺乏令人吃惊,但这正是商机和盈利的重要突破口. 可以预见,中国软件和信息服务外包产业将在不久的将来成为引领中国第三产业转型和发展的龙头产业, 相关职业包含高级软件工程师的人才需求将会非常巨大.

三.职业所需基本技术及素质:

1.编程开发工具.

至少熟练掌握两到三种开发工具的使用, 这是程序员的立身之本. C/C++以其高效率和高度的灵活性成为开发工具中的利器, 很多系统级的软件还是用C/C++编写. 而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在. 其次, 如果能掌握一种简便的可视化开发工具, 如VB,PowerBuilder,Delphi,C++ Builder,则更好, 这些开发工具减小了开发难度, 并能够在无形中强化对象模型的概念.另外, 需要掌握基本的脚本语言, 如shell,perl等.

2.数据库.

高级软件工程师的职业规划书


职业规划就是对职业生涯乃至人生进行持续的系统的计划的过程。一个完整的职业规划由职业定位、目标设定和通道设计三个要素构成。

在我上初中的时候,我接触到了一种名叫BASIC的程序汇编语言。当我第一眼看到它时,我就梦想着能有一天成为控制计算机的主人。而在我进入了大学后更是学会了理性地看待我的目标,在对自身作出了比较全面而客观的分析和比较后,我选择了高级软件工程师作为我大学四年甚至整个人生的奋斗目标。。。

一。高级系统工程师的职业定义:

高级软件工程师是IT行业中的重要岗位。根据开发进度和任务分配,完成相应模块软件的设计、开发、编程任务;进行程序单元、功能的测试,查出软件存在的缺陷并保证其质量;进行编制项目文档和质量记录的工作;维护软件使之保持可用性和稳定性。软件开发是一个系统的过程,需要经过市场需求分析、软件代码编写、软件测试、软件维护等程序。软件开发工程师在整个过程中扮演着非常重要的角色,主要从事根据需求开发项目软件工作。

二。行业背景和发展前途:

软件和信息服务外包产业已成为各个国家经济发展的重点。从增加值角度来看,同样金额的出口,服务外包对中国经济的贡献是来料加工的20倍以上;从能源消耗上看,服务外包单位GDP能耗仅为制造业的20%。这在中国政府大力倡导可持续发展战略以及大力发展高技术第三产业的主旋律下是适应中国经济发展,也是符合中国社会客观需求的。可以看到的是,未来中国软件和信息服务外包产业发展空间巨大,其原因有三:首先是具有成本优势,中国低成本的竞争优势是全世界公认的。第二,具有人力资源优势,中国是世界上人力资源极为丰富的国家,软件和信息服务外包服务业是劳动密集型产业,中国未来在软件和信息服务外包业内将成为全球最具竞争力的转移承接地。第三,中国有非常庞大的国内市场,这是中国吸引跨国公司进入很重要的一个原因。

但与发展潜力不对称的是,现今中国软件和信息产业人才相当缺乏,据调查研究显示,当前中国软件和信息服务外包产业人才流动率较高,而且缺口很大。企业成立时间比较短,规模大多比较小,企业人才平均流动率达18。28%,这和缺乏培训、业务来源不稳定、报酬机制不够合理等因素有关。同时由于产业发展迅速,人才供不应求,尤其是本地化人才和中高级管理人才。

市场需求的巨大和专业人才的缺乏令人吃惊,但这正是商机和盈利的重要突破口。可以预见,中国软件和信息服务外包产业将在不久的将来成为引领中国第三产业转型和发展的龙头产业,相关职业包含高级软件工程师的人才需求将会非常巨大。

三。职业所需基本技术及素质:

1。编程开发工具。

至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本。C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C++编写。而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在。其次,如果能掌握一种简便的可视化开发工具,如VB,PowerBuilder,Delphi,C++Builder,则更好,这些开发工具减小了开发难度,并能够在无形中强化对象模型的概念。另外,需要掌握基本的脚本语言,如shell,perl等。

2。数据库。

数据库在当今的信息外包产业是很重要的。很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以作为高级软件工程师而言,至少熟练掌握一两种数据库,对关系型数据库的关键元素非常清楚,熟练掌握SQL的基本语法是非常重要的。

3。网络协议TCP/IP。

在互联网如此普及的今天,如果还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握就很难在IT业立足。从最早的客户/服务器结构,到今天的WEBServices,这一切都离不开以TCP/IP协议栈为基础的网络协议支持,所以,深入掌握TCP/IP协议是非常必要的。

4。软件工程与CMM。

现代大型软件系统的开发中,工程化的开发控制成为软件系统成功的保证。编程只是软件生命周期中的其中一环,本人认为优秀的软件工程师应该掌握软件开发各个阶段的基本技能,如市场分析,可行性分析,需求分析,结构设计,详细设计,软件测试等。否则就永远只会是一个程序员,而无法成为名副其实的工程师。

5。计算机技术专业英语。

随着中国的信息外包产业逐步展开,IT业急需与国外相关高新技术接轨来保持在发展上不落人后。于是IT业相关从业人员现有的英语水平成为限制中国信息产业与国外交流的瓶颈。一个普遍的共识是:良好的英语交流和阅读能力成为衡量一个软件工程师水平的隐性标准。所以掌握计算机专业英语是很重要的。

6。强烈的好奇心和学习精神。

对于一个立志成为高级软件工程师的人,最重要的其实是强烈的好奇心和学习精神。没有比强烈的好奇心和学习精神更好的武器了,它是成功的工程师乃至在各行各业的成功者们永攀高峰的源泉和动力所在。

软件工程实践者的思想[1]


得其精而忘其粗,在其内而忘其外;见其所见,不见其所不见,视其所视,而遗其所不视--《列子说符》

1.语言只是工具

我曾经是非常执着的开发人员。我有连续几天几夜做Coding的经历,也曾经为了一个技术问题耗上三、四个星期而导致项目一再延迟,还曾经为了一个实现细节与项目相关的人员逐一争论。

我也曾经像大多数开发人员一样热衷于争论语言之间孰优孰劣。我在论坛上写过一个简介,其中个人特长是擅长TPascal、Delphi、TASM系列语言,痛恨C/C++.我至今保留这段文字,因为那的确是真实的经历。

如今我已经不再专注于语言,正如我在第一章中写到的一样:成天讨论这门语言好,或者那门语言不好的人,是可悲的。

然而就在我写这段文字之前的一年,我还是无止尽地深入语言细节,深入操作系统细节,以及深入开发的细节。

就在2004年3月间,我接受一个朋友的邀请,去北京做一个专题培训。我用了近两周的时间,做了50页的幻灯,全面讲述Delphi和Delphi.NET.然而在临行前的一晚,我辗转反侧,思考着一个问题:我究竟做了些什么?或者说,我究竟想告诉学员些什么?

凌晨5点,我在幻灯的末页后插入了一张幻灯,标题是语言只是工具,而幻灯的内容是一张图。这是与培训完全无关的一张幻灯。然而,这是自1997年我接触到管理,以及从1998年我接触到工程以来,第一次正视软件工程这四个字。我第一次看清楚代码、方法、过程、工程与组织的关系!

对于一个程序员,或者以程序员自命的人来说,看清楚这一切的第一步,竟是一句语言只是工具!

猿之于为人,学会制作和使用工具是最重要的标志。因而我不知道语言只是工具这句话,究竟是对语言的膜拜,还是漠视。然而从那一刻开始,我才真正地知道工程。

2.程序

在我的那个图中,在最内层的环里,是程序=算法+结构.这是编程的本源定义,也是原始的状态。与代码相关的任何工作,最终仍旧会落足于这样的一条规则。

编程的精义于此。从有开发行为开始,它就存在。挖山不止的愚公在数千年前就在用类似的行为做编程实践,而几十万年前的智人,也在循环与分支所构成的逻辑中打转。

3.方法

推动这种逻辑向前发展的是方法和方法论.长期编程实践,自然的推演与总结,必须沉淀为某种(软件开发)方法,于是过程出现了,对象出现了,相关的方法论也就出现了。

这是实践的成果。方法不是某个人或者某个组织创造的。瓜熟而蒂落,实践积累达到一定的程度,就算微软不提出某个方法,IBM也会提出这个方法。即便他们都不提出,可能你自己已经在使用这个方法了。

方法并不神秘,因为它就是你今天正在做的、从事的和实现的。正如模式是一种方法,而模式就是你昨天书写代码的那个行为。只不过,GoF归纳、抽取、提升了这些行为的内在规律。你看不到你做事的行为,也就不能理解模式作为一种方法的价值。所以大师们众口一词:模式需要一定的编程经验才能理解。

同理,理解过程也需要编程经验,理解对象也需要编程经验,理解MDA与SOA还是需要编程经验。

这可能就发生在你回顾上一行精彩的代码,或者上一个失败的项目的一瞬息。经验来源于回顾、理解与分析,而不是你将要写的下一行代码。

有人在寺院扫了一辈子的落叶而得道,也有人因为一句话而得道。

GoF因为无数次的代码回顾而得道。

4.过程

过程随生工程出现。过程解决的是工程中角色间的关系问题。

过程说的是很多人(团队)如何组织在一起进行开发。它首先把工程中的各个环节分解出来。这样,有了环节,就有了角色;有了角色,就有了沟通。因此过程中的问题,就是角色、沟通和环节的问题。

哪些环节更重要取决于具体的编程行为,也就是具体的项目。

例如产品开发的周期可以一再拖延,因为对产品来说,更重要的是其品质和技术壁垒。因此你可以看到暴雪公司的游戏总是一再跳票,而它从来都是将大量玩家测试和开发人员的个性特征放在第一位。相类同的,DOOM与QUAKE系列的灵魂就是在游戏引擎的开发和设计上。

如果用这样的模式去做项目,可能软件公司没死掉,工程需求方也被拖死。试问你有看见客户因为你对技术的远景描述而憧憬吗?不,你只会看到他们因为项目的一再延迟而懊恼,而沮丧,或暴怒。

憧憬这种事情,只会发生在那些铁杆玩家身上。

分不清玩家与客户的区别,对项目经理来说,是可怕的。这将意味着他不能清楚地知道哪个环节更加重要。

角色的确定,以及角色间的沟通问题,在项目过程中同样重要。工程组织是否合理,相互协作是否紧密,是这个项目成功的保障。

合作无间通常是流于书面报告中的措辞。真正的无间,应当是沟通的结果。然而UML,则可能是你与客户,以及项目经理与开发人员被离间的第一因素。

从程序员到软件工程师[2]


当时看算法本身的文档,然后又回头看线性代数,终于理解了算法,并用程序表达了出来。由于是嵌入式用的,又花了大量时间进行算法优化。

后来跳槽时终于尝到甜头:

1。薪水高,基本上一应聘就是Senior的职位

2。稳定,这个一般大街上招一个程序员是做不来的

3。机会多,这个怎么说呢,反正只要是大公司招人,象微软、Google等,除了问一些语言本身的问题外,基本上就是算法和数据结构的问题。

通常面试那些时间你写源代码是来不及的,基本上就是写伪代码。或说明你的算法基础和思路。答的好一两句话就解决了。

想走这条路的朋友,我首先建议好好读读《数据结构与算法:C++版》,里面所有常用算法和经典算法及数据结构必须烂熟。其次,建议将大学课本找回来,几本高数好好复习复习。《线性代数》《概率和数理统计》《微积分》《常微分》等等。

我们不是大牛,基本上创造不出新算法,但是我们能够将别人的算法实现或者能把一个具体问题分解成已知的算法,那么你就是一个很不错的算法工程师了。

说实在话,语言只是工具,是很容易掌握的。99年2000年泡沫时期,不是很多人突击那么三个月就可以上路做programmer么。就象刀法是很容易学会的。要应用精熟,也不过是长时间的积累而已。

对语言的理解实际上就是对刀法的领悟,有人是顿悟。但是多用总是会渐悟的。

最重要的是基础,就是数学能力,那可是内功。可以这样说,你要想真正和其他程序员拉来差距就在这里。

我朋友的孩子想走计算机编程这条路,考大学我就推荐考数学系!

再有就是多做那些大公司的面试题,一是锻炼自己的大脑,二是熟悉这些算法的应用。

好了,现在能想到的就这几点,这里给几个面试的例子,看看能不能用最简单的描述解答

1.如何生成一组正态分布的随机数?

2.有一个二维迷宫,如何找到出口路径?

3.有数据库存储一股票每五分钟的实时报价,如何生成每小时,每天,每周的股票价格变动曲线?

====我的建议答案

1。生成二维随机数,只取落在正态分布包络线内的数

2。二维连通图深度优先遍历

3。傅利叶变换

软件工程师的务实职业生涯规划


[1] 好好规划自己的路,不要跟着感觉走!根据个人的理想决策安排,绝大部分人并不指望成为什么院士或教授,而是希望活得滋润一些,爽一些。那么,就需要慎重安排自己的轨迹。从哪个行业入手,逐渐对该行业深入了解,不要频繁跳槽,特别是不要为了一点工资而转移阵地,从长远看,这点钱根本不算什么,当你对一个行业有那么几年的体会,以后钱根本不是问题。频繁地动荡不是上策,最后你对哪个行业都没有摸透,永远是新手!

[2] 可以做技术,切不可沉湎于技术。千万不可一门心思钻研技术!给自己很大压力,如果你的心思全部放在这上面,那么注定你将成为孔乙己一类的人物!适可而止为之,因为技术只不过是你今后前途的支柱之一,而且还不是最大的支柱,除非你只愿意到老还是个工程师!

[3] 不要去做技术高手,只去做综合素质高手!在企业里混,我们时常瞧不起某人,说他什么都不懂,凭啥拿那么多钱,凭啥升官!这是普遍的典型的工程师的迂腐之言。某人很牛吗?人家能上去必然有他的本事,而且是你没有的本事。你想想,老板搞经营那么多年,难道见识不如你这个新兵?人家或许善于管理,善于领会老板意图,善于部门协调等等。因此务必培养自己多方面的能力,包括管理,亲和力,察言观色能力,攻关能力等,要成为综合素质的高手,则前途无量,否则只能躲在角落看示波器!技术以外的技能才是更重要的本事!!从古到今,美国日本,一律如此!

[4] 多交社会三教九流的朋友!不要只和工程师交往,认为有共同语言,其实更重要的是和其他类人物交往,如果你希望有朝一日当老板或高层管理,那么你整日面对的就是这些人。了解他们的经历,思维习惯,爱好,学习他们处理问题的模式,了解社会各个角落的现象和问题,这是以后发展的巨大的本钱,没有这些以后就会笨手笨脚,跌跌撞撞,遇到重重困难,交不少学费,成功的概率大大降低!

[5] 知识涉猎不一定专,但一定要广!多看看其他方面的书,金融,财会,进出口,税务,法律等等,为以后做一些积累,以后的用处会更大!会少交许多学费!!

[6] 抓住时机向技术管理或市场销售方面的转变!要想有前途就不能一直搞开发,适当时候要转变为管理或销售,前途会更大,以前搞技术也没有白搞,以后还用得着。搞管理可以培养自己的领导能力,搞销售可以培养自己的市场概念和思维,同时为自己以后发展积累庞大的人脉!应该说这才是前途的真正支柱!

[7] 逐渐克服自己的心里弱点和性格缺陷!多疑,敏感,天真(贬义,并不可爱),犹豫不决,胆怯,多虑,脸皮太薄,心不够黑,教条式思维这些工程师普遍存在的性格弱点必须改变!很难吗?只在床上想一想当然不可能,去帮朋友守一个月地摊,包准有效果,去实践,而不要只想!不克服这些缺点,一切不可能,甚至连项目经理都当不好--尽管你可能技术不错!

[8] 工作的同时要为以后做准备!建立自己的工作环境!及早为自己配置一个工作环境,装备电脑,示波器(可以买个二手的),仿真器,编程器等,业余可以接点活,一方面接触市场,培养市场感觉,同时也积累资金,更重要的是准备自己的产品,咱搞技术的没有钱,只有技术,技术的代表不是学历和证书,而是产品,拿出象样的产品,就可技术转让或与人合作搞企业!先把东西准备好,等待机会,否则,有了机会也抓不住!

[9] 要学会善于推销自己!不仅要能干,还要能说,能写,善于利用一切机会推销自己,树立自己的品牌形象,很必要!要创造条件让别人了解自己,不然老板怎么知道你能干?外面的投资人怎么相信你?提早把自己推销出去,机会自然会来找你!搞个个人主页是个好注意!!特别是培养自己在行业的名气,有了名气,高薪机会自不在话下,更重要的是有合作的机会

[10] 该出手时便出手!永远不可能有100%把握!!!条件差不多就要大胆去干,去闯出自己的事业,不要犹豫,不要彷徨,干了不一定成功,但至少为下一次冲击积累了经验,不干永远没出息,而且要干成必然要经历失败。不经历风雨,怎么见彩虹,没有人能随随便便成功!

以上《软件工程师,你的价值在哪里?[1]》一文,由编辑精心撰写而成,希望对您的职业规划有所帮助,更多精彩请访问“职场礼仪在哪里”专题!