程序员个人简历模板。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

zc530.Com小编推荐

程序员的职业规划就像软件工程


电信、银行等行业一直是许多人非常向往的工作单位,清差厚禄,旱涝保收,陈皓却不以此为然。所以当记者采访他的时候,他连用了两个最字来形容他离开银行的成就感。

陈皓毕业后的前两年就职于云南省工商银行,从事银行电信内全国性业务系统开发。后来在全球最大的网格计算/分布式平台软件公司从事研发工作,熟悉Unix系统以及C/C++语言,擅长大型系统软件需求分析、设计、架构、实施和维护,目前是某全球金融信息数据处理公司的技术主管。

随波逐流

回想当初,陈皓颇有感慨。还在大三的时候,他就被系里优先推荐给了工行。那时他参与了系上的一个项目(用HTML+Java开发一个在线教学课件),由于当时国内根本买不到HTML和Java的书,而学校也没有上网条件,所以关于HTML和Java对系里的老师都是比较新的东西,当开发完成后,系里对此评价比较高。因此就在大三下学期把陈皓推荐给了工行。

由于早早地被银行预定,所以陈皓的大四生活很自由,整个一年他基本是在一家很小的软件公司打工度过的。就是在那家公司工作的经历,让陈皓后来产生了离开银行的念头。

那家公司主要做些MIS系统,陈皓不仅获得了一定的实际工作经验和能力的锻炼,还习惯了软件公司高节奏、快学习、充满挑战的环境和氛围。这造成了他毕业后到银行工作时极度的不适应效率低下,工作毫无激情,工作当中充满了相当复杂的人际关系和政治斗争。

最主要的是,由于初到银行,很多技术和产品从未见过,而主要实施却由外面公司来完成,银行自己内部中有经验的人又不愿意与人分享知识。虽然可以拿很多红包,整天也很清闲,不是看报纸就是打游戏,但陈皓感觉到那并不是自己喜欢的工作,没有任何激情和斗志可言。和大四时在那个软件公司中的技术氛围相比,完全就是天壤之别。

所以在银行工作的这两年,陈皓天天都在彷徨和思想斗争,因为没有自己的职业规划,所以,浪费了至少两年的时间。最后,陈皓打定信念,决意离开去寻找自己的道路。

因为我是在一个相对比较闭塞的城市(昆明),所以,我要离开银行的决定遭到了父母、同学、朋友、同事,几乎是身边所有人的反对。但最终,我还是一意孤行离开了银行,远走他乡到上海这座大城市去寻找自己的人生道路。

程序员陈皓

从此,我走上了一条不可回头,并和以前完完全全不一样的道路。从国企到民企再到外企,从打杂到程序员再到高级程序员到team leader到技术主管,从小酒店MIS到企业OA到全国性的大系统到世界领先的分布式计算平台集群软件,若干年过去了,经历了高速的发展和获得了很多不同的经历,但唯有当时选择离开银行这件事情让我至今都为之兴奋。迄今为止,这是我自己觉得最最有成就感的事情。

正如陈皓所说,也许,最让一个人感到最有成就的事情,不是他做成了什么,而是他选择了什么。

 认识自己

多年打拼后,陈皓虽已是技术主管,但走的那些弯路,浪费的两年时间,一路中的心酸让他明白了很多道理。今天,我对许多刚上路的朋友都会说,人生的规则很重要,从上大学时就要好好规划,这对国人来说尤其重要。因为对于国人来说,人生的头20年都是被别人规划的,导致了自己根本不会给自己做规划。这点是相当危险的。

人生短暂,属于自己黄金的时间不多,如果把太多的时间浪费在寻找道路和方向上,很有可能会导致一事无成,要及早确定自己的规划,然后照着这个规划坚定不移的去执行。陈皓认为,做规划时最重要的是两个方面:一是清楚地认识自己的能力、优势和性格;二是确定自己的专业和想从事的行业。只有在确定这两方面后,才能做出自己的职业规划。

两方面看起来很简单,但认识自己并不是一件容易的事情。陈皓认为应当从下面十五个方面审视和认识自己,帮助自己确立人生规划:A)所掌握的知识,B)问题的解决能力、判断能力和分析能力,C)对待困难的心态,D)团队合作能力,E)表达能力和语言组织能力,F)创造和创新能力,G)沟通能力,H)自己的性格内向还是外向,I)是否有坚韧不拔的专研精神,J)自己的弱点和性格上的缺陷,K)学习能力,获得知识的能力,L)领导组织能力,M)目前自己能够进入的企业,N)目前自己在社会中的地位,O)目前自己的竞争实力。

职业规划就像软件工程

确定了自己的行业和专业领域后,接下来的事情应该是:1)努力掌握这个行业的知识,2)用最短的时间了解这个专业和行业更为具体的各个子方向。然后在实际过程中再认识自己。比如,选择了计算机行业,应该尽量地尝试软件、硬件、网络、娱乐、媒体等计算机行业不同方向的工作,如果从事软件,又分Web、系统、项目、ERP、CRM、数据库、嵌入式,在工种上又分开发、测试、技术支持、流程管理,项目管理,系统架构,售前,售后。当然,我们并不需要去尝试所有的工作或工种才能知道自己适合什么,我们完全可以向从事不同方向的人咨询并结合自我认识来做出判断。

在这个过程中,迷茫的摸索可能是很难避免的。能够及时得到前人的指点可能会是一个捷径,征求前人的建议可以起到参考的作用,快速原型(快速尝试)或许也是好的办法。因为人与人不同,他人的路并不一定适合自己,适合自己的路还要自己去规划,别人是帮不上忙的。

要经常性地跳出自己再来看自己,客观地分析自己的优势和劣势。让自己和别人掂量掂量自己到底几斤几两,了解到自己的长处和特点,然后才能知道自己适合做怎么样的事和并调整自己的职业路线,这是一个肯定到否定再到肯定螺旋上升的进化过程。当度过对自己对社会的陌生期后,才有谈得上对自己人生和职业的规划。

个人的职业规划就像软件工程。我们都知道软件项目最大的敌人是需求的不明确和需求的大面积变更,同样,在个人的职业规划中,自我需求的不明确和需求的变更也是非常危险的,尤其是在职业计划实施了四五年后需求的变动和改变。只有需求确定以后,才谈得上个人的职业设计的HLD(High Level Design)和LLD(Low Leave Design),以及具体实现。此后随着自身的日益成熟,可以随时为自己的Bug打补丁(Patch)改进自己的职业生涯的设计和实施细则(Enhancement),并为自己加上更多更强的能力(New Feature Requirement)。最终达到软件版本的升级。

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


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

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

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

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

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

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

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

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

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

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

从糟糕到不朽 程序员的八个级别[1]


在面试时,你可能会被经常问到在未来5年,你想干什么?,这可能是一个比较难回答的问题。在中国,答案一般可能会是Team leader,Manager,或是Architect,Specialist等,在中国,大家可能更多地觉得manager会是程序员的下一个目标,可是在国外,经理和程序员可能是两个不同的分支,Architect或Specialist 比经理来说更牛、代遇可能也更好,因为这些人的智商需要的更高。

在著名的Coding Horror上出现了这样一篇文章,我把其转到这里(我并没有完全一模一样的翻译,我只不过是用自己的话转述罢了),也让大家看看国外人的思考方式(当然,这篇文章只是分析程序员的级别而不是工种)。正如其作者结尾时所说,这八个级别并不是很严格的,其只不过是一种想法,希望能给大家另一种思路。

第八级 不朽的程序员

这一级别是程序员的最高级别。你的代码比你的生命活的还长,当你死后,你将会成为整个历史的一部分。其它程序员对你顶礼膜拜,或许你会获得计算机最高奖图灵奖,不然就是一系列极其影响力的论文,再不然,就是发明了一些可以影影响整个编程界根基的技术。你拥有的不仅仅是在维基百科上的一个词条,还会有一个专门的网站来研究你的生平和你的工作成果。

比如:Dijkstra, Knuth(编程艺术的作者),Kay

第七级 成功的程序员

这类程序员一方面很著名,另一方面在商业上也很成功,他们影响了整个工业界。他们似乎决定了工业界中发展的方向,这些人,自己的编程能力固然了得,但估计他们的Business方面的能力应该大于他们编程的能力。(我个人认为Linus应该属于这一类)

比如: Gates(比尔盖茨), Gates(Doom和Quake 3D游戏), DHH (Ruby on Rail的创建者)

第六级 著名程序员

这一类的程序员,在编程圈子内比较有名气,但是他们的这种名气并不一定能给他们带来某种利益。名气是一件好事,但是成功可能更好一些,这类人一般正在给一个很著名的大的公司,或是是一极具影响力的小公司里工作,或者正在创建自己的事业。无论怎么样,其它的程序员听说过你的名字,并以你为榜样在效仿着你。

第五级 骨干程序员

这类程序员一般来说都是公司里的骨干份子,他们担任着公司内最重要的编程角色,在公司内部,他们受到老板和其它程序员的尊敬,他们不会失业,因为他们随时都可以很容易地找到工作。他们工作过的公司都会因为他们而有所发展。

软件工程师的职业规划


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


未来社会发展的最终趋势将是集体一体化,这就注定软件的开发编程是必不可少,而且具有计算机网络的公司、银行、证券公司、海关、企事业单位及公、检、法等部门,都需要一定的编程人员,所以我可以从事计算机信息安全管理,或信息安全产品销售与服务等工作,从事计算机信息化管理,计算机辅助设计,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. 长期职业目标:


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


三.结束语


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


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

程序员你真的只是程序员吗[1]


你是不是感觉标题有点矛盾啊,是啊,程序员当然就只是程序员而已嘛,还会有其他什么吗?

No,No,No,如果你以前是如此认为的,那看完这篇文章后,请从此打消这个念头,因为你要改变成一个不一样的程序员(怎么还是程序员?)

虽然我工作经验也就6年左右,但经历了很多,也自己创业过,也是从一个初级程序员走起,因为看的比较多了,某些东西也普遍存在着很多程序员身上,希望自己的经验能帮助你们。

当刚踏入程序员这条路的时候,有幸为一家公司开发一个大型的电子商务网站,因为这篇领域当时还算刚刚起步,自己的编程能力还不太好,所以做起来就比较吃力,每天重复着做完PM给的工作,但是做了大概几个星期,我发觉某些地方真的不合理,但自己又仅仅是一个程序员而已,怎么办呢?我还是按照PM的任务一步一步来做,私下里我用了大量的时间去尝试着我的做法,在接下来的几个星期,我试着跟我的PM进行沟通,他也发觉不错,所以一并写了方案提交给上级领导,很好的是,我们的领导发觉建议还不错,所以改变了原先的策略,对我们的网站原先的设计进行了彻底的推翻,一套新的理念就此诞生了。

这只是一个小例子,并不是炫耀自己的能力,我只是想说,程序员,你其实不仅仅是worker,更应该是Ideaer。当你选择程序员这条路时,如果你仅仅为了工作而选择的,我想你的人生真的很灰暗,为什么这么说呢?我面试过很多人,大多都是从培训中心出来的,虽然我也是从那里走出来的,不过我当时是为了学习编程而去培训,但现在更多的人会为了工作而去培训。其实如果你是真正的选择程序员这条路,我想你的思维能力一定不错,因为一般程序员大多是理科出生,理科靠的就是你的思维能力,在某些时候或许你的思维还不够敏捷,但我知道,每个人在接受了一段时间的工作后,就会产生各类的想法,或许某个想法你会改变你公司的命运,可为什么提出观点的人就寥寥无几呢?

我想可能是因为性格吧,因为很多程序员都是内向型,因为我们需要花一定的时间,去沉醉在代码中,因为这是一个奇妙的世界,无法自拔,所以很多时候就忽略了沟通,因为我们打交道最多的是abcd。如果你正是如此,希望你快点走出来吧,分清楚何时沉醉,何时交流才是最好的。我的偶像-唐骏,我看过他的访谈,他在大学时还是一个不会沟通的人,只是偏执于技术,而且和大多人一样,都会觉得自己什么都会,什么都行,是个天才,但在他大三的时候,他意识到了错误,花了几年的时间去学习交流、沟通,在宁愿委屈自己进入微软做程序员,再到无数次发意见给Bill,一步一步成就了这位打工皇帝。

所以,我们每个程序员要做的是,技术和沟通并行提高。在唐骏的话中,我会学到很多东西,他能从容应对每一次挑战,当时有幸成为唐骏的下属,见证过他的能力,虽然他当时只是个技术总监,但他的想法、创意给盛大带来了无比的利益,我不得不佩服他的胆大,不得不佩服他的能力。从他身上还学到了专一,其实很多程序员会在编程的道路上三心二意,这是很正常的,不过我相信一段时间以后你会学会专一的,因为程序真的很美,带来的不仅仅是工作和薪资。

我这里又不得不批判一些年轻程序员了,他们仅仅看中的是工资、福利等,没错,这是考虑工作的一点,但你要知道,有些时候,你第一点的工资,或许你会学到更多的东西呢?我经历过很多,经历过1年工资翻几番,又经历过折一倍,又经历过小公司,又经历过大公司,各种各样看的实在是很多,但我不会说我自己半途而废,因为每次我会把事情做的觉得自己可以了,我才会选择更好的发展前景。我面试过一些人,工作也就2,3年,做过的东西也很多偏向于OA、ERM等项目,就觉得自己很了不起了,工资也是漫天要价,可真正面谈的时候,我才得知,你仅仅是其中的一个小模块,但当我问其项目的整个运维的时候,就会楞个半天,最后来一句,这个模块不是我负责的,敷衍了事。那好,我问你自己负责的模块,如何具体写的,用了何种方式等,基本都会回答,三层架构,什么什么,My god 三层架构是你一个模块就能体现的吗?那好,既然你说三层,何为三层,三层的优点,缺点在哪里?诶~~~~~前几天首页那篇批判大学生的文章,我觉得写的太好了,你们这是在沉醉吗?如果你不喜欢,你为什么非要选择程序员这条路呢?

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


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

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

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

不要去做技术高手,只去做综合素质高手!在企业里混,我们时常瞧不起某人,说他“什么都不懂,凭啥拿那么多钱,凭啥升官!”这是普遍的典型的工程师的迂腐之言。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.数据库.

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


二、 跨领域的强势竞争力。

信息科技瞬息万变,每个产业都变的越来越复杂,因此越来越需要专业分工,某种角度来说,每个人都需要花更多的时间与精力来加强自己的专业,要谈跨领域的能力,其实谈何容易。

但是请记住,就是因为很难,所以更值得去做。跨领域专长的培养也可直接反应在你的不可取代性上面。

三、 弹性再弹性,请让自己有最好的适应能力。

对于大部分工程师来说,这也会是个难题,然而却不可逃避。二十年前那个一份工作做到退休的美好时代已然远离,现在与未来迎接我们的,是一个信息平台不断变化,技术不断演进的时代,请记得随时保持你的弹性,乐于接收新的知识与观念。

对于生涯规划这件事情我其实抱持着非常怀疑的态度,人生其实怎么计划都比不上老天爷在背后给你来一刀阴的。不要抱着你现在所拥有的一切不放,要有心理准备,你所拥有的专业职能随时都可能被现实的职场一脚踢开,保持敏锐的观察力,并且拥抱变化。

一旦你察觉所懂得的专业即将被时代的潮流所淹没了,千万别怀疑,你不是在疑神疑鬼,赶紧学习新的专业技能。五年前复兴美工毕业的人也没想到五年后一个不是专科毕业的人也能靠书本以及网络来学习使用PhotoShop来跟他抢饭吃。大部分的工程师前一天晚上都还在网络上抓美女图,隔天就突然迸出个什么CMMI来要把他的工作变成工厂里生产线的一个配装员。

四、 全球化竞争,你的定位在哪里?

老实说,成也全球化,败也全球化。

如果不是网络的蓬勃发展,信息科技不会在短短几年内如此跃进,进而增加这么多就业机会来。然而,全球化到了一个极致后,信息从业人员要面对的除了日新月异的科技之外,还得与全世界的程序员竞争。

在这样的洪流中,不论是软件工程师还是其他产业的知识工作者皆然,我们都不可避免的要去思考自己在职场中的定位。BLOG、Skype、eBay这些东西在十年前都还不存在,当这些新东西出现时,势必造就了新的就业机会,相对的也必定剥夺了某些旧有的工作。

当我们面对如此竞争的职场时,要不断的思考自己的核心价值何在,找到自己对于工作的热情所在。再怎么不景气的产业都会有赚钱的公司与大鸣大放的成功者,再怎么热门的产业也会有经营不善关门大吉的公司与不求长进被请回家吃自己的员工。

只有找到自己的定位,才能立于不败之地,祝福大家。

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


在我上初中的时候,我接触到了一种名叫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]


这个问题相对比较复杂,也很宽泛,很难简单回答,我这里,也仅仅就个人的一点认识,谈谈看法。

目前在学生里,我也观察到,很多二本,三本的同学,在心里上有种自卑感,总觉得考分低了,出来就低人一头。这点,我是万万不赞同的。很多时候,我对小弟讲,我相信你们的老师,师兄,师姐,前辈,都有讲过:大学毕业,仅仅是开始,不是结束。

中国的社会,越来越商业化,其实商业化有一个好处,就是这个社会给每个人的机会,总的来说还是越来越公平。这个问题分怎么看,名校毕业,高官子弟,亿万富豪的孩子,总会比我们站在更高的一个起跑线上,这是事实,但是,也仅仅是起跑线而已。在社会上,也有太多的故事,从一个穷家子弟,经过努力奋斗,最后成功的事实,因此,首先我觉得大家不必气馁,万事有拼才会赢,只要敢拼敢做,没什么大不了的。

我自己的学历就不高的,经过这么多年奋斗,也取得了一点成绩,这里就不多说了,总之,请大家记住,这个世界,还是相对比较公平的,只要肯努力,就会有回报。反过来说,当我们认为社会不公的时候,不妨问问自己,自己尽到自己最大努力没有?

第二个问题,关于学校里面开设的课程,大家可能会觉得不够时髦,不够酷。净是一些计算机组成原理,数据结构等老掉牙的课程,远没有什么spring 框架来得过瘾。呵呵,不过根据我的经验,工作几年以后,大家可能会觉得,最值钱的,恰恰是这些最土气的课程。用框架,永远不算本事,也没有什么核心竞争力的,哪天框架死了,你就死了。会做框架,才叫本事,才叫公司里面的骨干人才,才可能成为架构师。而另一方面,框架也是人做的,大家以为,做框架需要哪些知识?是不是上述old的知识?

因此,我的建议,大家好好学好自己的课程,在这几门课上,清华的老师,比起你们的老师,未必有优势,因为这些知识太经典了,也没有给老师什么推陈出新的发挥余地,学这几门课,大家和清华的学子,是站在同一个起跑线上的。

第三个问题,学习C和C++的问题,大家不用想,我的经验,别说这两门相对复杂点的语言,就算是 Java,PHP等语言,没有指针的干扰,要想学精学透,没有3到5年、5到10年的刻苦,也是不行的,大学毕业就想做大师,不太可能的。因此,建议大家不必妄自菲薄,你做不到,别人也做不到,大家还是一个起跑线,关键看,以后工作中,能不能扎下来潜心研究,仔细揣摩,不断增长自己的经验值。

第四个问题,关于培训机构不培训C和C++的问题,我也很好奇,好像是有这么回事。我曾经研究了一下,认为原因是这样的:

培训机构也是商业公司,主要目的是赚钱。对他们来说,赚钱有两个重点,第一是短平快,要短期出成果,让学生和家长有看得见的进步,给客户以信心,好让客户买单。第二则是成本够低,在同样营业收入的情况下,培训时间越短,请的老师价格越低,老师的沟通成本越低,培训机构的利润越大,因为企业做生意,核心问题是利润,即他真正赚到手的那部分钱。

这就很好理解了,无论从哪个方面理解,C和C++都不是最佳的选择。大家可能没有讲课的经验,但是我本人有一点。我讲课时,发现最难和同学们沟通的细节就是指针,翻过来揉过去说,几个小时下来,就是有人搞不懂指针,至于指向指针的指针,就更晕了。更不要说C中的函数指针,C++中的对象指针,泛型设计等复杂概念,反之,Java,.net都有比较成熟的应用程序框架,同学们可以快速搭建一些立竿见影的应用,因此,从短平快角度,从利润最大化角度,C 和C++都不是最好的教学语言。

如果我开培训公司,我的目的是赚钱的话,我也不会教C和C++,太费神了。当然,有人说你贵买贵卖吗,收费贵点,把成本补回来。那样也不太现实,因为,太贵的费用,就没有客户了,大家试想一下,如果开个培训C和C++的培训班,保证出来会写操作系统,收费20万,大家学不学?我估计就算这个课程值这个价,恐怕也卖不出去。

所以,这位同学说的培训机构的意见,我的建议是,听听就好了,不要太认真。

从糟糕到不朽 程序员的八个级别[2]


第四级 一般的程序员

这类程序员的优点在于,他们很清楚地意识到了自己可能这一辈了也无法成为一个伟大的程序员。天才只是很少的一部分人。如果这类程序员有一些商业和人员管理能力,他们也会在公司里相当的成功。认识自我并不简单,这并不是一般人能做到的,能够认识自己的人已经是很不错了,找到自己的长处,并像那个方向努力,一定也会很成功的。因为在公司里,并不只有程序员一种职位,经理,PM,流程,SQA,技术支持,售前,管理员,测试人员等等都可能会让这类程序员有更为广阔的天空。

第三级 业余的程序员

这类人员不管是不是计算机科班出身,基础如何,他们对编程有着特殊的爱好,他们可能会是一些很有前途的学生或实习生,也许他们可能会给开源做一些贡献(比如说提供一些语言包或是一些插件什么的),有时候,他们也会写两个小工具软件放在网上让人下载,也行有些时候就是为了玩玩而开发一些小程序而打发一下他们空闲的时间。他们完全是靠热情和承诺来编程。兴趣永远是最好的老师,也是最好的一件事,因为兴趣而引发的热情通常会让这些程序员成为骨干程序员。

第二级 不知名的程序员

这一级的程序员是典型的为大众所知的程序员,他们有一定的编程能力,但并不出众,也许他们会在一家大公司里工作,只程序员只不过是他们的工作而已,并不是他们人生的全部。当然,这样的程序员也挺好的。必竟,平凡地人还是大多数,平凡地活着也没有什么错的。

第一级 糟糕的程序员

这类程序员不知道为什么就走上了编程这条路,他们甚至连最基本的编程经验和能力都没有。所有被他们碰过的事情都需要他们的同事重头再返工一遍,他们根本不就是程序员。程序员这个职位对于他们可能就是一个错误。

正如原文作者所说,这些级别并不是很严肃的,也并不是每个程序都会去思考一下自己的未来,但是这些级别可能会让你去想一想从事程序员十年/二十年/三十年后,自己可能变成什么样。

如何从优秀的程序员成为伟大的程序员[1]


怎样评定一名软件开发人员?这是一个颇为奇怪的问题。现在已经有了很多的理论和形式来做这件事,人力资源部门也试着帮你管理和反省自己的行为。然而,怎样才是一个伟大的软件开发人员,在今天,你该怎样发展你的职业生涯?以下是我评定团队中软件开发人员的军规.按照这些技巧和规则,你可以改善你的现状,由一个优秀的程序员,成为一名伟大的程序员。

1、时间花在写精彩的代码上

这里说的不是数量,而是质量。对此,一种歪曲是:要数量,也要质量。你也许会很多次的遇到以下的两种情境:

情境A:你有一个发疯似的能写代码的程序员,事情似乎在进展中然后,Bug开始不断出现,你们也不知道为什么,好像永远补不完。补完十个,又出来五个,现在你手里的,就是一大堆代码

情境B:你现在有一个看起来很聪明的程序员,你面试他的时候,他似乎无所不知,能把理论说的头头是道。然而,你留给他三个任务,三个星期以后,他还在做一些三天就该干完的事。这下该你困惑了,他这么聪明,他知道generics(详见备注),多线程的一切事情,甚至还能给祖母级的人讲解什么是指针,让老太太兴奋的想去编程。可是--怎么什么都没完成?

于是,在梦境中--你写出了堪称伟大的代码,--伟大的代码是伟大的程序员写出来的,他睿智,明白代码的真正品质所在。写代码就像托尼?霍克在玩滑板一样自然优美,看上去就令人愉快。这些程序员以让你眼花的速度搞定一切,他们知道每个问题应该处理多长时间,也不会追捧寻觅所谓的世界最好解决方案,弄很多线程很多层来写一个简单的游戏。他们写的程序没有Bug,因为写的时候自己测试过了,在睡觉时也在写代码说的就是这样的人。这些程序员太宝贵了。

2、阐明问题

可以明确的是:即使有问题暂时处理不了,还有成百上千的方法去解决。有些人反应很迅速,很快就能提出多种解决方案。然而,一个伟大的程序员应该在做出行动以前清晰阐明问题--创建文档或用白板表达出来。他们写邮件给项目的管理者,这样表述:我想和你说说我是怎么理解这个问题的,我们能这样处理吗?然后他们就会动手给你多种方案。

对,这些人明白自己看问题和阐明立场的方式,而这理解方式大概不会是问题创建者所想要被理解的。请牢记这就是关键所在。一名伟大的程序员在尝试解决问题以前,一定要完全的理解它。你百分百搞明白了吗?没有?百分之九十九?--回去再多问些问题,确保百分之百理解清楚了。

3、怎样着手解决问题

那一搞明白了问题,就开始动手写代码?错!一个伟大的程序员应该按照规划,开始思考面临的多种选择,基于问题开始考虑最好的解决方案。我觉的这像一场国际象棋比赛。你知道每个棋可以怎么走,知道所有的游戏规则。但是你会马上走棋吗?不,你要审时度势,制订计划,紧盯对手,分析其通常的做法。和这一样,在你coding解决问题以前,你也要这么做。

看看问题,计算出需要怎样的结果,你的时间能怎么安排,预期的质量,你必须用的工具,好了,开工吧!

以上《从程序员到软件工程师[1]》一文,由编辑精心撰写而成,希望对您的职业规划有所帮助,更多精彩请访问“程序员个人简历模板”专题!