昨天去参加了RIAMeeting组织的一次小型聚会,见了不少技术牛人,他们都有丰富的开发经验和技术体会,并且对于技术有精益求精的态度,让我这个去蹭吃蹭喝的人觉得比较惭愧,也学习到了不少东西。在聚会结束的时候大家开始自我介绍,可以料想到:一个比一个谦虚、腼腆、不善表达和我在其它场合接触到的大部分技术人员一样。这给了我一些触动,加上最近我也看了一些东西,就决定写这么一篇日志。

上大学的时候我了解到有程序员这个职业,就是写代码的,不过在我毕业进入公司之后,我更喜欢工程师这个称谓(web developer 也可以叫做前端工程师或者UI工程师),因为这个名字总是能让我想起游戏《红色警戒》里面那个带着黄帽子拿着工具箱到处跑的角色,如果半路上不被敌军的狗咬死就可以修好断桥和建筑,或者把敌军的建筑占领。我对工程师这个群体一直都抱有普遍的好感,他们低调、技术高超、真诚、单纯、有责任感,值得信任。和他们在一起工作你会感觉特别舒服。记得刚入职的时候,我对Linux一点也不了解,有次碰到一个问题,正好旁边几个工程师在那里聊天,于是我就像他们求助,他们过来之后一个人负责操作,其他几个在旁边七嘴八舌建议,不一会就把问题解决了,我当时就觉得特别有安全感,所以在以后的工作中遇到问题也没有特别着急过,因为我知道我身边有很多牛逼的工程师,有他们在就没有什么问题是解决不了的。

在工程师这个圈子呆久了,我发现大部分的人都有一个共同点,那就是不善表达,或者说懒得表达。在公众面前讲话会脸红,不能很好地表现自己,而且善于表现自己其实会被认为是一个缺点因为大家都觉得有真才实学就好了,而且普遍信奉低调的做人哲学,那些善于表现的人会被说成很能忽悠。举个例子来说吧,李开复应该算是一个很成功的人了,而且是技术出身,但是你会发现这几年很多人都对他有负面评价,说他不好好管理公司,整天跑去演讲、就是一个说书的、做秀云云,都是针对他频繁出现在公众面前这件事情来说的,而且你会发现大部分的负面评价都是出自技术圈的。但是这种在公众面前演讲、推销自己其实是一种很重要的能力,尤其是在现代社会,它是一种企业家式的能力。

在现实生活中,无论是哪个圈子和团体,都会经常发现这样的例子:有一些很有才华的人在社会上始终不成功,相反,有一些资质平平的人却为自己挣得了不错的地位和财产。为什么会出现这样的情形呢?一个重要原因是前者不善于经营自我,而后者善于。善于经营自我经常会被广大有真才实学的人鄙视,觉得那是钻营和不务正业。事实上,正如《自由秩序原理》一书中所说的那样,这是一种企业家式的能力,而且 一个人的成功不是取决于自己既有的才能、知识、技术等等,而是取决于能否成功地将它们转换成对其他有能力做出回报的人有用的具体的服务,这正是自由社会的本质之所在。

如果真的是这样的话,那么由于每个人的企业家式的能力的不同,势必会出现能力相同的人获得的报酬却相差很大,引起很大的不满,而且每个人必须为自己的才能去寻找市场,这就必然面临压力和风险。但是这种代价是必须的,为什么呢?因为如果不是根据使用才能的有用结果而是根据才能来决定报酬的话,那么就必须有一个权威来判定每个人的才能大小和级别,这就必然导致专制。如果想替代那种对自己的命运负责而导致的压力,那么可供选择的就只有那种人们必须服从的个人命令所产生的令人更为厌恶的压力。

虽然我们这一代没有经历过计划经济、分配工作这些事情,不过应该也有所耳闻吧,那个时候每个人不必去营销自己,因为上级已经给你安排好了工作和报酬,虽然说是根据你的能力进行的安排,但是里面必然掺杂了诸如个人恩怨等其它因素,那种不公平比现在的这种不公平要严重得多。尽管现在的市场经济也有不公平的地方,因为它只承认在市场上得到实现的价值,但是我想相比之下大家应该都更讨厌专制吧。两害相权,只能取其轻。

鉴于此,我很希望工程师可以抛弃一些偏见,虚心地去学习那种企业家式的能力:在公众面前讲话的能力、写文章的技巧等等,培养自己的一些市场意识,当然,这都是建立在真才实学的基础上的。如果没有真才实学而专门去推销自己的话,那真的是投机钻营了。

最后我想说的是,其实很多技术人员因为性格使然,是很难学会这种企业家式的能力的,但是他们又确实有能力又踏实肯干,很多时候对于他们来说真的不太公平。所以如果以后有机会并且有钱的话,我很想创建一家让工程师有幸福感并且摆脱无力感的公司。

zc530.Com小编推荐

程序员六大职业素养


第三部分,未来职业生涯规划、家庭环境分析、例如经济状况,家人期望等。感谢您阅读《程序员六大职业素养》内容,职场资讯网小编向您推荐一些职业规划知识,欢迎参考,希望能帮到你。

说起职业素养,可能大家脑子里马上反映出来的是西服领带公文包的精干白领形象,其实作为程序员来说,外在可能没有那么重要,更多的是内在职业素养,本期调查分享了两个研发小组的故事,让大家在统计数据的基础上进一步了解什么是程序员需要的职业素养?

案例一:问题团队A

D公司是个在发展壮大中的贸易公司,由于业务发展员工从刚开始的10人两年内增加到150多人,管理上出现了沟通效率低、对员工工作难以监控的现象。公司想近期上OA系统,以加强公司的工作效率、支持快速增长的业务。经过几次与F开发公司的沟通后,双方确定了合作意向。安排有两年开发经验的开发工程师苏成,作为项目经理带领三个开发人员,开始了D公司的OA项目。

因项目不大,没有特别安排需求工程师,而由项目经理与客户确认需求后进行开发,初为项目经理的苏成信心爆棚:对外,他想当然地按照合同后附的简单需求说明草率开发;对内,他认为项目经理拥有绝对权力,任何关于开发的不同意见都听不进去。在第一期快结束时,苏成已与项目组成员发生了N次争吵,大家纷纷要求调离项目组,团队面临崩溃。

在两个月未与客户沟通的状态下,苏成项目组向D提供了OA系统一期产品,按合同规定包括了:员工管理一项功能和其中四个子项。看完基本功能演示后,D公司的HR经理Helen几乎崩溃OA系统中员工管理没与考勤部分联系起来,而且在系统中增加一个新用户需要五步,十分繁琐,很多功能也与公司需求相差极大。

但是苏成却认为这些都是小问题,更让Helen气结的是要求增加一个小的统计功能时,他居然说做不了。后来才了解到,原来在开发时,项目组并没有留下文档,加之团队其它几个成员均已准备离开项目组,任何在此模块中的小小变化都会面临所有代码重新开发的局面,更不用说要新增什么功能了。

最终苏成辛苦开发了几个月却没有得到相应地回报,客户不满意,项目组成员不满意,研发部总监更是对他的能力产生了怀疑,在几经努力拿到D公司的第二期项目开发合同之后,更换了项目经理。

点评:程序员如何以明确需求为基础与客户沟通?

如果有专门掌握需求编写技术和经验的需求工程师作为客户和程序员之间的桥梁是最理想的状态。但以国内目前的国情,每个项目组都配有需求工程师的并不多。因此,正确地帮客户表达需求、正确地理解需求就成了程序员的基本素质之一。在此次调查中66.67%的被访者认为能帮助客户正确提出需求是程序员职业素养之一,可见在程序员内部已就此达成了相当的共识。认为能使客户需求更完善是程序员看重的职业素养之一,占到此次调查的55.13%,这说明超过一半的程序员认识到,帮助客户完善需求会节省双方的时间和精力。

那么如何才能提高自己的需求分析能力呢?以下分享几个有关需求的小技巧:

1.尽量提高自己的表达和沟通能力。良好的表达和沟通能力能在客户不能清楚表达需求时,融入到客户组织内部,了解客户的工作流程,与客户共同更好地、更准确地定义和分析需求。此次调查中60.90%的被访者认为沟通能力是程序员应具备的基本能力,但只有28.85%的程序员认为表达能力是程序员必备的基本能力。沟通固然很重要,但我们更应该进一步认识到准确表达自己的观点和意见也是成功沟通的基础之一。如果只沟而不通仍然是在浪费方面宝贵的时间。

2.应用多种方式了解需求。常用的方法有:问题分析法和建模分析法以及几种方法的结合。比如在问题分析法中应用面向对象的思想,与客户的员工谈话,访谈首先要面向工作流程,面向任务,面向角色,也就是用面向对象的思想帮助客户理清思路。

3.不臆测需求。如果有专门的需求工程师,有一点要特别强调,就是在编码过程中当需求不明确时,必须与项目经理或需求工程师及时沟通,程序员不能自作主张地猜测客户的需求。

4.不过度承诺。很多销售人员拿到项目,向客户大包大揽,甚至完全不顾公司的现有开发能力向客户承诺很多功能。在定义需求阶段,一定要向客户说明什么是我们能做的,什么是我们应该做的,什么是我们不能做的。很多时候过度承诺导致了新功能无法实现的同时,原有功能也受到影响。在此次调查中,有59.62%(近六成)的被访者正确地认识到对客户提出的不合理需求拒绝得当也是程序员职业素养的一个重要方面,这是非常难得的。

案例二:严格开发流程的团队B

国资委某下属集团公司要上OA系统,C公司在研发能力、价格两个方面以综合分第一的成绩竞标成功。拥有10年项目管理经验的李石被任命为项目经理,并由他组建团队。李石对团队成员只有三个要求:分析能力、产品意识、较强的团队意识。

初选方案

需求确定后,项目有两个方案:更流行的BS模式和传统的CS模式。李石安排两个程序员前期负责选方案,分别基于两种模式开发用户权限管理系统的原型,给大家做演示,并结合客户特别评估每一个架构的优劣。

分析了BS/CS的特点、结合客户的需求,他们发现:

1.从流程的定制来看CS结构更加利于客户方便地进行可视化定制;

2.从公文的不可修改、保密性以及电子图章的不可诋毁性需求来看,CS框架更加利于实现DRM技术和数字指纹技术实现;

3.从公文的打印需求与一般WEB报表的差异性来看,CS框架更加适合对打印格式的定制与控制;

4.从客户提出的内部电子会议的实时性来看,CS框架明显优于BS框架的非状态性,能够做到更顺畅、更及时的沟通;

5.从系统的安全性来讲,CS框架更加适合硬加密系统(如加密狗、U盘Key)与系统的对接。

产品开发

在开发过程中李石强调了每个程序员的产品意识,取得了不错的效果。比如客户要求一个能上传文件的功能时,并没有提出UI需求,团队的B程序员并没有简单完成任务了事,而是做出一次能同时选取上传5个文件的程序。这种产品意识为客户使用带来方便,弥补了需求的不足。

团队配合

在团队B中,每个程序员都做到了做完一个功能后与项目经理沟通进度、结果,并与负责测试的同事沟通,及时检测Bug,及时修改并及时回归。每个功能的实现都相对完善。及时的沟通与相互学习,还促进了团队磨合。

经过8个月的开发,OA项目第一期完成基本功能顺利上线。C公司已顺利拿到了客户第二期的开发合同。

点评:成功的开发需要这样的程序员

通过上面的案例,我们为程序员总结出如下素养:

1.学习和分析能力。每个团队都在成长,作为程序员这个群体就更需要与时俱进。尤其是在开发这个知识日新月异的行业里。同时分析能力也是必不要少的。在调查中71.15%的程序员认为,学习能力非常重要,同时有57.69%的程序员认为,在技术方面有不同的意见时,处理妥当是程序员应该具有的职业素养。相信这个案例为我们提供了新的思路。

2.与内外保持良好的沟通,永远是成功的保证。及时汇报、沟通进展也可以在第一时间发现自己的偏差。数据证明59.62%的程序员认为汇报项目进展时明确及时是重要的职业素养。

3.产品意识。良好的产品意识可以大幅度提高开发效率,也能有效的弥补需求不足。例如,在案例二中,在做文件上传功能时,充分考虑了客户使用的方便性,弥补了需求中被忽略的细节。

4.团队意识。强烈的团队意识能帮助自己和整个团队更快成长,因为知识的分享是知识学习中一个最有效的方法,尤其是在程序员这个行当里。

5.编码规范和文档规范。据调查显示有分别由80.77%和68.59%的程序员认为编码规范和文档规范是程序员的必备职业素养之一。

合格程序员应该具备的12种能力[2]


4.利用工具能力

工欲善其事,必先利其器。有了趁手的家伙,工作效率可以提升数倍。你编程序,有没有选择一个很好的IDE,以前听说编程高手都用记事本写程序,我觉得那是一种自虐。就像以前看到的一篇文章,说一帮户外旅行爱好者,出去旅游,背了重重的旅行包,里面装着什么压缩饼干等快速食品。他们宁可就着矿泉水啃压缩饼干,也不肯去1里路都不到的快餐店,农家菜馆吃饭。工具是为目的服务的,好用,提高效率就行,形式无所谓。

另外一个常用的工具就是日记本,好听点可以称为知识管理工具,我用的是myBase,感觉非常好用,在之前,我的所有的片段内容都是记录的单独的文本文件里的,非常不好找,管理也很混乱。

经常上互联网,看到好多好的资料想保存下来,作为日后查看之用。一开始,我用的是firefox自带的书签,但是自己分类太累,多了之后不便于查找,很麻烦。后来用了插件,非常方便,现在成为了我必备的一个工具。

还有一个最重要的工具就是搜索引擎了,我装了google for firefox插件,感觉不错,还有英文翻译功能。按照我同事的说法,内事用baidu,外事用google。很多技术资料都是英文的,用google搜索效率高一些。搜索引擎用好了,就等于打开了一扇通向知识宝库的门,使用搜索引擎,关键字选择很重要。

经常去浏览大牛的blog,逐个网站访问很麻烦,去看了又可能没有更新,可以借助于RSS订阅工具,我是用iGoogle桌面工具,每天早上花半个小时扫一下,大牛的最新文章尽收眼底了。

5. 英语能力

新的技术资料都是英文的,英语国家的IT技术走在我们前面至少10年(这是我自己估计的数字,可能正在缩小)。就连印度,一个连基础设施建设都不太完善的国家,因为其英语基础较好,其在软件外包领域的发展也非常迅猛,远远超过了我们。学英语,首先是有信心,其次就是花时间。多阅读英文资料,贵在坚持。

6.学习能力

在IT业混饭吃不容易,整个环境进化的太快,你不学习,就等于落后了。学习要有针对性,别今天学ruby,明天学python,后天php的。首先要认清自己的目标,自己短期目标是什么,1年后,3年后,5年后的目标是什么。结合这些目标,确定自己的学习计划,人的精力毕竟是有限的。当然,多掌握几门编程语言也是好的,可以扩充自己的知识面,重要的是为自己的目标服务。

要想系统的学习一门技术或工具,看书是最好的方法。看完后,然后上网找相关资料,进行深入学习。学习要抓紧一切可以利用的时间,比如电脑启动要花1分多钟,旁边放一本书,可以看上几页了。公交车上,地铁上也可以看。

当然,不能只学习技术,要经常练习自己的软技能,比如沟通能力,表达能力。你可以把自己学到的东西,解释给自己的同事听,既加深了理解,又增进了同事之间的交流。学习的最高境界就是你能够把学到的东西解释给别人听,这才说明你理解了。在学习心理学上,称之为构成主义。

我学一样东西,总是先上网了解有没有相关书籍,如果想学,就买一本或者去图书馆找相关的书来读。我买的书,家里快放不下了(到目前位置,我买了1万多块的书)。我多半是把目录看完,了解这本书讲解的主要内容,然后需要的时候,我就可以立即补充它进入到我的知识结构。每个人可能都有自己的学习方法,意识到学习的重要,并能够根据需要补充自己的知识,这种能力更重要。

合格程序员应该具备的12种能力[1]


毕业四年来,感觉自己也是从一名不合格的程序员一步步走过来的。回头反思一下,合格的程序员有很多标准和要求,下面是我总结的一个合格程序员应该具备的12种能力。中国软件行业的崛起,靠的是合格的程序员。任何华丽的管理制度都不能保证软件项目的成功交付,合格的程序员就是有力的保证,是项目成功的基础。写下这些,是为了给刚刚进入程序员这个职业的新同学们一点参考。我一直以为,当程序员是很辛苦的,如果不是真正的喜欢,很难坚持下去。如果真的不喜欢这个职业,也该尊重这个职业,尊重自己,赶紧改行。

1. 编程语言能力

不用多说,作为合格的程序员,精通一门语言是必须的。这种精通,不是说看了一本《24小时精通XXX》,抄了几个程序就能说精通的,要靠长时间的积累和浸淫。

2.编码能力

我曾经看多很多程序员写的代码,在同一个jsp或者java源文件里,出现了三种以上的对方法的命名方式,有下划线间隔的,有全大写的,有拼音首字母的。就像一个菜市场,杂乱无比,估计10天后,他自己都无法看的懂。遵守编码规范,是一个程序员最基本的要求,可悲的是,很多程序员根本没有意识到这个问题的严重性。随意堆砌网上搜来的代码,根本不管可读性和可维护性,只要能实现功能就行了,心想做完这个项目,就拍拍屁股走人了,缺少最基本的职责素养。我经常把代码必须成程序员的孩子,你就是是孩子他爹,孩子他妈,是有感情的。对你自己的孩子,你能不仔细呵护吗?你是称职的父母吗?

另外一个就是注释,要注意不是为了注释而注释。对类,以说明职责为主;对方法,以说明意图为主;对方法体,以说明实现思路为主。对于大段大段的代码,要分段,使用空行隔开,并使用行内注释进行说明。

思维的条理性,写代码之前,先简单计划一下,用自然语言把流程写下来,用于整理实现思路。不要看了需求或设计之后,马上就敲代码了,敲完代码马上就debug。花点时间思考,敲代码只是最后一个很简单的工作,不要把自己变成一个代码打字员,编写边想,写了删,删了写。安安静静把实现过程想清楚,在脑子里先实现一遍。再去敲代码,水到渠成。

3.面向对象思维能力

如今,多数编程语言都是面向对象的编程语言。而这些面向对象的编程语言的共同的精髓就是面向对象的思想。掌握这些比面向对象语言本身更重要,比如对继承,多态,重载的理解。对面向对象基本原则的理解,比如开闭原则,接口隔离原则,单一职责原则等。在此基础上,应该掌握常用的设计模式,比如工厂模式,策略模式,观察者模式,模板方法模式,命令模式等等。我面试过很多程序员,没有一个能说得上几句的。

合格程序员应该具备的12种能力[3]


7.创造能力

普遍认为,东方人模仿能力很强,但创造能力差。我见过很多这样的程序员,经常说,这个只能这么解决了,我想不出有什么别的方法。可能他根本都没想过别的方法,或者懒得去想。对任何一个问题,找出两种以上的解决办法都是非常容易的,简单的google一下,可能就是数十种。悲哀的是,有些程序员经常止步于自己构建的狭小领地之内。对待客户也是这种态度,不是积极的帮助客户解决问题,而是推脱这只是唯一解决方案。

打破这一思维定势的首先的一个办法就是在面临一个问题时,首先想到的是没有不可能,或是一切皆有可能,前面那个是阿迪的广告语,后面是李宁的。只有这样去想,才能寻找解决问题的别的出路,即使最后我们试了很多种办法,还是只有着一种解决方案,但我们在这种寻找解决方案的过程中,常常会产生很多好的想法,这样才会使我们真正深刻思考一个问题。

但我认为,坚持认为存在另一种解决方案的信念是第一位的,方法和工具都是其次。

8.文档能力

也许有人会质疑,程序员跟写文档有什么关系。大家开源软件也用过不少,看看Spring,hibernate,Struts等最流行的开源软件的文档就知道,他么的tutorial,他们的getstarted,他们的reference文档写的多么的易懂。其实写代码也相当于写文档,只不过用的是编程语言。同样,写文档,用自然语言,也相当于写程序,简单明了,清晰易懂,这样的程序谁看谁舒服。同样,对于想进阶到设计师或者需求分析员角色的程序员,文档能力更是非常重要。

word是一个最实用的工具,很多程序员,多级编号都不会用,索引目录也不知道如何生成,更别灵活应用样式了。很多排版都是所谓的dirty work.垃圾样式一大堆。其实,静下心来,稍微学习一下,就能写出一篇格式漂亮的文档。

9.抽象能力

抽象能力是认识事物从现象到本质的能力。如果你只是停留在见山是山,见水是水的层次,客户说什么,你就做什么,设计怎么做,你就怎么实现,从来不过问为什么,也不去想他是满足了用户哪些方面的需求呢。这样可能只解决了表面的问题,可能会引起返工。认识到本质,才能让你的程序具备更大的灵活性和可扩展性。在做企业应用软件开发中,抽象能力体现为对问题域的理解能力,对领域模型的抽象。合理的抽象也是代码重构的前提,每一次重构,都是向更好的抽象迈进了一步。

10.代码评审能力

代码评审和单元测试是保证代码质量的两种常用手段之一。代码评审能力,说明了你的审美标准,知道什么是好的,什么是不好的,什么是优雅的代码,什么是糟糕的代码,你才能让自己做的更好。

11.单元测试能力

没有单元测试的代码,只能说是半成品。因为没有什么能证明你的代码是可以运行的。测试驱动开发是一个非常好的敏捷过程的最佳实践。单元测试还可以作为回归测试,在修改代码时,起到警戒线标志的作用。是否具有单元测试的意识是区分程序员是否合格的重要标准。写不写单元测试是区分平庸程序员和优秀程序员的重要标杆。

12.DRY

DRY是一种原则,就是Don't Repeat Yourself。这条原则可以用到很多地方,比如你经常要编译,打包,部署应用程序,供集成测试用。每次你都在重复你自己,写一个自动化脚本(比如用ant,批处理命令)来将这些工作自动化,以提高效率。

还有一个就是我们经常在不同的地方切换IP,如果每次手工做,也非常浪费时间,写一个bat命令可以解决,找一个小工具也可以解决。

编码时,对代码的copy复用也是在重复你自己,虽然拷贝过程很爽,但是维护一致性就要付出巨大的工作量,特别是将来维护的人不是你的时候,使用代码生成工具可以解决这个问题。类似的例子太多了,如果你发现你经常做一些重复的工作,就要警惕了,是否违背了这个原则,想一些办法将他们自动化。

想做好工作平时就要注意培养这些能力!


当我们在职场上工作一段时间以后,我们就会越来越感觉到,其实每一个人在职场上的时间和精力都是有限的。我们必须专注的去做一些事情,才能把这些事情做得更好。但是在日常生活当中,我们每天的时间却都会被各种各样小的事情所瓜分,比如:临时的会议、临时的任务、同事之间的寒暄、老板的一个突然任务等,这些都会在不经意之间瓜分我们的时间。

想做好工作平时就要注意培养这些能力!

还有一些人虽然在职场上工作了很长的时间,但是其实他们的工作能力却并没有提高多少,这其中最主要的原因就在于他们已经把很多的时间都浪费在了做一些很琐碎的事情当中去了,他们不懂得借助职场上的机会去提升自己,他们也没有利用职场外的时间去好好学习。

所以在职场上,为了做一个对自己负责的职场人,我们就需要借助一切的机会和时间来提升自己的以下能力。

一、查找关键信息的能力

在职场中,我们每天除了要做好自己的本职工作以外,在工作之余,我们还要去总结一些经常用到的职场技巧。比如在在同样多的资料之下,有的人能够很快的抓住问题的关键,然后在最短的时间里做好这些事情。而有的人一拿到一些资料以后,他们就会花费很多的时间和精力去仔细研究,但等他们研究清楚以后,其实领导已经不再需要他们了。毕竟市场上很多事情都不等人,很多项目的节奏很快,等你研究清楚了,说不定这个项目已经结束了。所以对每个职场人来说,在平时的工作中,我们就要一步一步的去学会如何快速的从海量的资料当中查找自己所需要信息的能力。

二、高效的时间管理能力

在职场中,虽然每个人的工作学习时间问题都是企业一样的,但是由于每个中国人在相同的时间里做出一些事情的能力却是不一样的。在做事的过程设计当中,除了人与人之间做事的方法不一样之外,很多人对于不同时间成本管理的方式不一样,这也会造成影响他们可以最终做事的结果不一样。想要得到提升学生自己的做事效率,我们不光要去改掉自己的那些懒惰的行为和拖延的习惯,同时提高我们教师也要尝试为自己公司制定提供一个科学合理的时间安排表,然后在工作中一步一步的去践行自己的目标。在实践的过程当中,通过技术不断的迭代和升级来最终能够形成适合作为自己的时间信息管理服务模式。

三、沟通表达能力

在工作场所工作,我们不可避免地与不同的人打交道。 但是每个人都有不同的特点,每个人都有自己的思维方式和做事方式,所以对于不同的人,我们必须用不同的方式与他们相处。 在与他人相处的过程中,我们也应该学会总结自己。 通过与他人相处,我们会慢慢知道我们擅长什么,不擅长什么。 最后,在找出自己的优缺点后,要结合自己的特点、兴趣、爱好、工作优势、做事方式,创造出合适的沟通和表达方式。

四、文字表达能力

在工作中,一些人口的牙齿很清楚,他们的表达能力很强,但有些人在口头表达能力非常欠缺。我们有他们的工作流程,工作场所不要求每个人都可以表达上面说的非常好,但是在书面表达方面,工作场所每个人的需求都是一样的说辞。无论是我们的老板或我们的老板,他们都希望通过邮件能干的下属,说清楚表达自己的意见,别人读你写的东西后,他们也知道,你可以明确地表达什么结束了吗?您可以通过邮件最终发送某种信息?

五、用批判性思维去看待问题的能力

现在是一个信息爆炸的时代,我们每天都接受各种信息。 无论是在工作还是生活中,我们都很容易受到一些信息的干扰。 因此,如果你想相对正确地看到一些东西,你需要学习和花费大量的时间最终形成你自己的思维系统。 面对很多问题,我们也应该用批判性的思维来看待这些事情,而不是轻易地迎合别人,被别人牵走。 因为不是一切都是完美的,许多处理和解决问题的方法都有两面。

六、知识体系搭建的能力

对于已经在职场上工作过一段时间的人来说,不管你在哪个领域工作,如果你已经接触了一些理论上的或者是实践上的东西,但你还没有搭建起属于自己的知识管理体系,那你就很难和别人在未来进行长期的竞争中获得一些比较优势。有句话叫做“隔行如隔山”,每个会计行业都会有它独特的知识经济体系,一个人想要在某个领域里有很不错的发展,他就需要去搭建起属于他们自己的知识教育体系,这种教学体系建设不仅会帮助你去分析和解决存在一些生活实际的问题,同时,这种知识体系也会让你站得更高,看得更远。

七、演讲能力

不管是在学生时代,还是在职场上,我们已经见到过很多极有演讲魄力的人,他们通过高超的演讲技巧来向外界清晰的传达着一些信息。而在职场上往上走到一定的阶段以后,演讲能力就会显得越来越重要。毕竟越往上走,你或多或少都会管理几个人,而作为领导者来说,在很多场合下,你都需要向别人去表达你的观点,去向别人传授一些你的经验和看法。都说台上十分钟,台下十年功,想在台上做好演讲,让外界为你的演讲而感到振奋,这就需要你在平时的工作当中抓住一切机会去锻炼自己,去提升自己的演讲能力。平时准备好了,那在真正需要你上台演讲的时候,你才不会感到紧张。

程序员的职业规划


经济的黯然失色丝毫没有影响高科技企业的人才争夺。在硅谷,从谷歌这样的大型企业,到最小规模的初创型公司,各家都在争相挖掘最优秀的IT人才。

为了防止有经验的老员工跳槽,美国加州的大公司纷纷提高了薪酬和奖金,例如《金融时报》称,毕业不久的初级工程师的薪酬去年上涨了30%至50%.

而微软早在2011年年中便计划为员工加薪,并提高薪酬中现金部分的比例。在发给员工的一封电子邮件中,微软CEO史蒂夫。鲍尔默表示将为发展最快的市场上的部分员工加薪,其中包括研发部门的中高级员工,以及某些地区的所有中级员工。为了更好地奖励出色的员工,微软将使受奖员工比例由之前的50%提高到80%.鲍尔默在电子邮件中称,这将是我们有史以来幅度最大的一次加薪。

不仅是硅谷,去年一整年,这股相互挖角的风气还刮到了世界各地的就业市场,中国也不例外。近日发布的《2011中国企业招聘现状调研报告》显示,高科技行业2012年招聘需求将呈现大幅反弹,较2011年将增加近2.3倍,增加幅度位于各个行业榜首该报告是人力资源公司CHINAHRKEY针对167家企业招聘调查的结果。前程无忧(51job)的统计也指出,2011年,计算机/通信/电子行业的招聘职位数排行第一。

而韬睿惠悦发布的薪酬调研报告中,高科技行业在2011年的实际加薪率仅次于银行业,而在2012年的预期加薪率则与银行业持平,皆为10.7%的幅度。2012年全球经济形势并不明朗,中国市场也会延续高通胀预期。如何在此种情况下吸引、保留人才,将会是中国企业的一大挑战。韬睿惠悦全球数据服务咨询中国区总经理许文宗表示,为了让核心岗位具备竞争力,在高科技行业,研发、销售这些关键岗位的年度总现金收入就比该行业平均水平分别高出18%和10%.

事实上,高科技行业的人才争夺战从未停止。在这个领域,近期最引人注目的莫过于去哪儿和携程的人才争夺了。经历了10年的发展,在线旅游网站的战火已经从用户、流量和资源竞争燃烧到了人才领域。去年底,去哪儿CEO庄辰超甚至在微博中称:携程12周年庆当天我在携程总部办公楼各个办公室挖人,收获颇丰啊。

对此,携程人力资源部总经理施琦不愿置评。但他坦言,随着进入中国在线旅游业的公司越来越多,这个行业的人才竞争变得空前激烈起来。实际上,携程每年都会参与薪资调查,并根据调查报告对员工和经理人的薪酬进行相应的调整,所以携程每年重要骨干的流失率都是个位数。

相比之下,去哪儿的招聘和留人策略则更为激进。2011年,去哪儿的员工数从200多人一下子扩张到1000多人,其中,从校园招聘的毕业生达200人左右,核心员工的离职率约为5%.随着部门的扩张和架构的调整,每个部门的主管都需要发动各种资源和渠道进行招聘。

为了吸引人才,目前公司经理级以上的员工都持有股权。2010年7月前,去哪儿实施了全员持股政策。去哪儿网副总经理钱臻表示。毕竟,在线旅游业的从业人员本身并不多,富有经验的人才就更加稀缺了。今后一段时间,旅游电子商务公司的人才质量很可能成为企业间竞争的关键。

除了OTA领域,各大门户网站也纷纷祭出薪酬的手段保留人才。2011年春节后,搜狐几乎全员提薪10%左右;腾讯在去年4月人均涨薪9.3%;新浪去年5月的提薪幅度大约为14%;网易门户在6月的调薪覆盖了60%的员工,综合调薪幅度平均为25%.

这是因为,眼下的门户正处于第二轮扩张阶段,很多旗下的频道希望分拆上市,于是缺人成了普遍现象。另一厢,IT企业的从业者大多数为年轻人,他们普遍加班多、压力大,流动性也大,而涨薪是最直接的留人方式。

腾讯的HR负责人此前对媒体表示,互联网行业的人才非常稀缺和宝贵,真正好的人才不多,且都去创业了。为此,新进入到这个领域的人才,企业都会用超常规的办法去保留。

不过,施琦并不完全认同始终向市场看齐的薪酬管理方式。去年,不少人都见识过了某些公司高调地用2至3倍的薪酬挖人,但过了没多久,又很高调地裁员。

2011年年中开始,电商业就陆续传出有企业倒闭的信息,例如金光集团投资的百货B2C网站大货栈,以及我友网、飞虎乐购等网站也在进行业务和人员的大调整。而B2C网购平台品聚网也发布官方公告称,由于公司资金链断裂,将开始准备进行清算,并暂停公司相关业务。而团购网站的裁员信息也是接连不断,有员工甚至表示2011年年终奖将一无所获。

施琦认为,当前浮躁和混乱的市场环境下,公司除了提供更具竞争力的薪酬外,为员工提供更多的发展机会,让他们找到真正的归属感很重要。

程序员个人职业生涯成长公式


微软有些部门以成长公式的形式从为什么(Why)、做什么(What)、怎样做(How)和在哪里(Where)角度为员工计划自己的成长提出了方向。比如某部门提出以下公式:

当然了,微软和其他公司企业文化、制度、对员工要求、为员工提供的职业生涯发展条件各有不同,所以微软的公式并非对每个人都适用。不过该模式有5个要点是值得我们注意的:

(1)我们每个人都应该思考和认识到为什么要努力成长?比如因为我们都希望自己不断充实提高,能胜任微软的本职工作,也希望能高质量完成任务,成为优秀员工,为用户和社会做贡献等。

(2)至于要做什么才能算是在成长呢?首先就要考虑本职工作,也就是分给自己要完成的所有任务。在微软这样的特别强调和积极实行创新和发明新技术、新过程的公司,每个员工当然也要跟上新要求、新形势,因此也要积极学习和积极参与新技术和新过程的创新和制定。此外也应该承担额外责任,帮助其他团队成员和团队建设;还应该计划将来的职业发展目标,并把个人目标计划和团队、公司总体目标结合起来。
(3)做什么明确了,还要注意怎样做。微软要求员工参照公司的胜任能力要求和团队对各员工的特定要求。

(4)至于员工职业生涯成长的目标和计划要在哪里留记录和追踪,微软是用职业发展指南针网站,也是微软员工年度考核网站的一部分。

(5)自己的直接上司应该对帮助员工职业生涯成长负很大责任。虽然员工自己要对个人的成长计划目标明确和积极努力,但还需要自己的直接上司(manager)的指导、支持和帮助。

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


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

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

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

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

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

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

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

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

程序员的职业发展


程序员这个职业到底是不是吃青春饭,这个问题可能一直是每个初入职场的程序员心头挥之不去的阴影。最近看到一篇关于程序员生涯规划的奇文,也许能解答这个问题。

在IT行业由超常趋向平常的阶段,社会关注热点转移,程序员的社会平均薪资水平由高向低回落,引起了许多人对程序员前程的思考。按专家或行业资深人士的说法,程序员有两条进阶路线。一条是技术路线,由程序员,经系统分析师、系统设计师、项目经理、产品经理,直到架构设计师为归宿。另一条是领导路线,由程序员,经开发小组负责人、工程负责人,奋斗到项目经理。

勿庸置疑,每种说法都有存在的个例支持。实际上,能走常规进阶路线的毕竟是少数人,大多数程序员在吃过青春饭后,面临着前途选择问题。这与运动员、航空乘务员、舞蹈演员等的职业境遇是类似的。相比之下,程序员是种新生职业,而且是多数人认为更高尚的脑力劳动,如果能看到更好的转型方向,还可以心理平衡。现在面临困境的程序员们,在未看到明朗前途时,迷茫,焦灼,敏感,难容对自己不利的言语(哪怕是真实的)。

站在企业主的立场,希望能保持IT业的狂热,既能保障程序员的高待遇,又能获得企业的高收益。问题是市场不接受,IT产品和服务的价格越来越低,企业出低价又招得到人,程序员的薪资水平下降是自然的事。对于程序员的辛苦和劳动与收入的不公平感觉只能表示理解。

从程序员的角度,可以发现更好的方向,IT业不断有新东西出现。用J系列语言比用C系列语言更时尚,用面向对象(或构件)的方法比面向过程的方法更先进,还有Delphi、。net、eLearning等开发工具,更有ERP(企业资源计划)、CRM(客户关系管理)、SCM(供应链管理)、CPC(协同产品商务)、BIS(商业智能系统)、EAI(企业应用集成)、EIP(企业信息门户)等层出不穷的新概念。如果你能不断与时俱进,追着新东西走还行,但毕竟是年龄不饶人,三、四十岁的肯定不如一、二十岁的记性好、反应快,长江后浪推前浪本是自然规律。

从经济发展规律来看,每个新生的行业都要经历高潮、低谷、平常的时期。IT业从社会热潮地位到现在的社会平常地位是很正常的事。只不过我们习惯于接受地位不断上涨,对回落难以接受。这只说明我们的教育有缺陷,心智不健全。

对于程序员个体,只能适应社会状态。如果你是天才、精英,不会有职业的烦恼。如果你是平常的程序员,或自认有才但运气不好,就应该思考前程的问题。

一般来讲,社会对程序员的定位是满足技术需求,程序员自身所受的教育和积累的经验也使自主前程意识局限于技术路线。实际上,我们所看到的在技术方面有建树的前辈多是综合型的人才,单纯局限于技术思维的多有行为局限,也难看出自身的幸福感。其实,人有多方面的属性,除非你是极少数的天才,在某一方面特别突出 (相应地在其它方面就很脆弱),大多数人是多种属性综合发展,而且各属性间相互促进。所以,在考虑程序员的前程时,有必要分析程序员的主要属性及其可能产生的影响。

技术属性

从表面上看,程序员是会使用计算机语言编写程序的群体。实质上,程序员是联结精神世界与物质世界的最有效的中介,将人语转变为物语创造财富。以前我们所说的技术,是分科的技术,或物理,或化学,或生物,程序员的技术是全面涵盖的技术。从人的意识到物的结果的全面流程看,程序员所用的从应用层到物理层的分层次体系(如ISO/OSI网络模型)是一种严密有效的逻辑结构,这正是经济建设需要而传统文化沉淀缺乏的要素。

高尚属性

文化素质高,与IT精英接近,感受的文明信息量大,经济基础较好(与一般劳动阶层相比),决定了程序员的生活方式、趣味、格调更高尚,表征一种社会文明的指向。如果程序员介入到其它行业,为了保持生活的水准,也是保持勤奋的工作习惯,表现得非常努力,传播积极向上的精神。这如同在先进国家或大城市生活过一段时间的人,再回到相对较落后的地方,会作为文明种子,产生积极的作用。

人生属性

当你把程序当作异物看待时,编程是一种负担,是劳累的事儿,需要在工作之外得到补偿。如果程序员能把自己作为一个具有个性的人的主体存在,程序就只是人的属性的延伸。这时,程序就不会作为人的负担,就象人不会把自己的肢体作为负担一样。这样的人会不断努力,不断学习新知识,把程序作为人生奋进的载体,创造性地使用程序,会把编程中的普遍东西升华成一种精神,主动地影响其它领域。

面对工作人们通常有三种态度,一种是把自己放在利益的案板上任人宰割,把工作当作获取利益的工具;另一种是跟着兴趣走,视工作为玩乐;第三种是把工作当作展现人生的载体,将工作视为实现人生使命的阶梯。

我们提倡程序员热爱本职工作,在本行内不断进阶。但也应正视现实,看到人的当前选择并非都是适合自身的条件的,以程序员的基本素质,在技术路线以外也可以有更大的作为。程序员应勇敢尝试更多的选择,在选择中认识自我,找到适合自身发展的方向。

人有外职业和内职业,外职业是你现在从事的职业,是可以改变的。内职业是适合你自身条件的职业,在一定程度上难以改变,它可以升华成一种精神,产生更大的影响。

程序员是一种当前社会稀缺的人力资源,程序员应该是播种机,将理性思想,工程手段普及到更多的方面,为经济建设提供更大的力量。

在工业社会,工人阶级因其无产性,成为对资产阶级最革命的力量。在信息社会,程序员因其学习性和与时俱进性,会成为对懒惰阶层的强大革命力量。所以,从社会负于程序员的职责来讲,程序员肩负重任,前途无量。

如果你一时没有读懂,建议再仔细看看,也许它能改变你对程序员职业生涯的看法。就我对这篇文章的理解而言,这篇文章主要阐述了程序员是信息时代先进生产力的代表,程序员的职业决定了程序员站在信息变革的最前沿,比社会的其他阶层能更早的感知到信息社会的每一个变革的发生,程序员职业要求的学习能力、综合素质、与时俱进性是把握这种变革的能力保障,当然这并不是说任何程序员都能够把握这种变革,开创自己的事业,对于大多数人而言,必须培养自己的综合能力,而不是仅仅局限于技术路线,才能真正把握住机会。每个人都有自己的解读,你的想法是什么?

何谓程序员?何谓中国的程序员?


程序员,曾经是很多人尤其是计算机初学者为之崇尚的一个职业,仿佛就是理想、激情和事业的象征,从此就开始了IT白领人生。计算机技术发展之初,几乎就是一个个人英雄主义时代。一个天才的程序员,几乎就可以主宰一个计算机时代,创造出无数奇迹和梦想。

今天,计算机技术的发展日新月异,技术朝着愈加复杂和简单的两个看似矛盾其实一致的方向发展。计算机技术越加普及,无数非计算机专业的人群,出于爱好或者生存的需要,也加入了这个程序开发大军,并且都称之为程序员。

软件技术的发展,已经进入了一个大分工、大整合的时代,由此导致了软件开发工作的分层和分类越加细致复杂,同为程序员,彼此之间工作的技术含量可以说有天壤之别。系统软件、应用软件,是一个大的分水岭,几乎大多数程序员,都在应用软件这个层次进行开发,国内的程序员更是几乎全部如此。

既然是应用软件,就必然要和实际应用结合,而实际应用,是非常复杂多变的,尤其是具有中国特色的国内应用。于是乎,大多数程序员都在为开发应用层面的软件忙得不亦乐乎,财务软件、ERP、CRM、OA等等,几乎成了国内软件开发的主流方向,更不用说电信、石化、铁路、电力等具体行业应用软件的开发了,这些早已被称为项目了。国外的应用软件,除了以上业务应用之外,尚且还有像CAD、3D等专业领用的软件,具有一定的核心技术。

很多工作了多年的程序员们,在回首往事的时候突然发现,自己依然是一个辛苦的打工者,一个IT行业的苦力。反思一下,我们这些自认为程序员的工作者,其实是在核心技术的外围做一些表面工作,和那些非软件开发人员相比,我们觉得自己有技术,其实我们到底掌握了多少核心技术呢?现在的很多程序员,连数据结构、编译原理、操作系统等这些基本的知识都掌握得模棱两可,天天跟着老外的屁股后面追捧所谓的新技术、新框架。其实,又有多少是我们自己的呢?作为JAVA程序员,经常听到很多人自称精通Spring、Struts、Hibernate等主流框架,并有大型项目的开发经验,其实我们只不过比那些初学者多干了几年,使用这些框架更加熟练而已。国内软件行业的面试经常有此类现象,一个面试者可能这次面试不合格,但是他回去看一下书之后,再来面试,很可能就通过了。为什么?因为我们的面试太初级,太表象化。

我们经常接触IBM、微软等公司的面试,他们一般情况下是不会考核面试者具体掌握了什么框架、什么语言的,一般都是考核的面试者最基本的逻辑思维能力和分析判断能力。这也说明了,同为程序员,其间的差别是如此之大。

作为一名程序员,尤其是国内的程序员,应该对自己有一个清醒的认识,不要被表面的感觉所迷惑。到了这个时代,不是说程序员已经失去了光彩,而是我们所从事的层次,技术门槛已经大大降低,很多人处于同质化竞争。

怎么办?很多人说软件行业是个辛苦活,国内的很多软件公司更把程序员当牲口使用。其实,根本上还是怪我们自己没有很好的反思和调整。一方面,如果对技术真的有浓厚兴趣和激情,那就不妨向软件的底层核心技术迈进,另一方面,如果觉得自己真的缺乏这方面的潜力,那就努力适应国内环境,实现技术与应用的完美结合,争取向公司的中高层发展,如果不给与机会,那就自己创业,选择好技术和市场的切入点。

此外,一名优秀的程序员,一定不能是一个唯技术论者,如果持这样的观点,即使专心做个技术专家,也会存在发展障碍。微软的例子,sun公司的例子,都生动地说明了技术与市场的辩证关系。

当然,每个人的成败观是不一样的。如果始终把技术追求放在首位,追求技术完美的境界,并以此为乐,也未尝不是一道美丽的风景。

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


或许上面写的比较偏激,但真的是很普遍,我想告诉你们,你们虽然只是负责一个模块,但无论如何,请要知道你的项目到底是什么,如何运转,哪些地方好,哪些地方不好,因为这是对你自己的一个提升,也是对公司的一个负责。说到负责,我不得不说责任感,很多人就是缺少了责任感,以为完成了任务就可以了,但你要知道,你的公司或许等的不是你的完成呢?

请您拿到项目需求的时候,分析一下您要做的东西,用你敏捷的思维想一下,该如何去做,还请您多想想下一步,如果扩展了,我要改哪些地方,最重要的是,请您想想,这个任务对公司是否有利,或许你会说你只是个程序员,我没有权利去改变任务,没有错,你是个程序员,首先请你完成你的任务,在完成任务的同时,想想任务的完成对公司的运营是否起到反作用,因为有时你会比你的老板更了解项目对公司的利弊。如果你真的觉得不太好,不要怕,提出你的观点,但一定要想好你观点的描述,尽可能的表达清楚,让你的老板知道你的意思,因为老板他不一定懂技术,所以一定要白话一点。如果你的观点是正确的,你们老板也听明白你的意思了,那样你们老板会更加的器重你,而不会不可理喻的让你完成他所要的东西了。毕竟这是对他好的建议,也是对公司发展好的建议,如果你的观点不好,那样老板也会给你一定的提点,何乐而不为呢?

下班后,请你抽空想想公司的发展吧,因为你是公司中的一员,公司发展前景好也代表着你的发展前景好,如果你的想法给公司带来了好的前景,那也是对你能力的一种肯定。

最后说说面试,我也经历过很多面试,同样也面试过很多人,刚开始也会为工作着急,到处找面经,但最好的面经是无法从其他地方找来的,因为面试是一个展示自己的机会,而不是一再的ctrl+v 。刚开始我也会紧张,但马上,我调整了自己,每次面试就当自己一种磨练,一种交流、沟通、展示的机会,随后的几次面试都比较成功,再随后的几年,我回到了老公司进行面试,显然他们对我的能力已经是一个肯定了,最后我还是没有选择他们,因为我回去面试只是为了看看公司的发展进行的如何了,因为这一切也有着自己的一份努力。最好玩的是一次邮件面试,对方给了很多题目,大多是网上都有的,我也没有baidu,用自己的想法回答了所有的问题,并提出了很多意见,没想到对方回错了邮件,把他给人事的邮件发给了我,貌似是说面试还可以,就是工资高了点之类的话,我也懒得继续往下看,回信给对方,发错邮件了。过后不久收到对方的面试通知,更确切的说是offer,不过在他电话中我直接给回绝了,因为我已经在一家自己喜欢的地方就职了。

我爱我的公司,我爱我的程序,我也爱我的老婆和家人,因为他们给了我快乐,也给了我支持,让我能更全身心的去投入到代码之美中,我更相信公司能异军突起,成为IT界的领军人物,因为我看到了一群为公司孜孜不倦,辛苦能力的同事,我很爱这种氛围,我相信我们的努力一定会给自己带来收获,就算没有收获,我也没有任何怨言,因为我沉醉了,因为我快乐,因为我是个快乐的程序员。

充满荆棘的专家程序员之道


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

国外程序员常常遇到这样一种困惑,即他们的老板认为资深的程序员是可以通过培训菜鸟程序员来生产的。老板把菜鸟程序员扔给资深的程序员,或者扔到一个短期培训班中,希望能够像镀一层金一样的生产出一个又一个编程高手。然而这其实是很不现实的,本文作者在自己的这篇博文中类比阐述了这个观点。

在过去的几个星期里,我作为父亲一直在教自己年轻的孩子开车。对于新手司机来说,学习控制汽车的整个过程(把握方向盘、使用各种踏板、换挡、看后视镜,等等)是比较伤脑筋的。但是所有这些都是相对简单的事情,大部分年轻驾驶员都能掌握,不会有太大的问题。

新手司机在经过一段时间的锻炼之后,当他们跟其他的司机一样外出上路时,真正难受的经历才开始。这时才是真正学习开车的时刻,因为仅仅能控制汽车并不能够成为好司机,虽然这是重要的前提条件。相反,能够预料和避免一些意外的情况才能成为一个好司机。不幸的是,你不可能教给他这些技巧。

你可以告诉他们一些潜在的问题。你可以描述这些问题,并告诉他们在那些情况下应该怎样做。你甚至可以进行一些实地演习。但是,每个新手必须亲自经历过很多普通的驾驶危险之后(而且要幸存下来)才能预料类似的情况,然后采取措施避免这些问题。

遗憾的是,优秀程序员的成长也需要经历一个这样的过程。咱们来看一下开发一个应用程序,功能是在一个文件中存储一些数据,每次用户启动这个应用程序的时候都调用这些数据。

◆新手程序员(已经学过在文件中读取和写入数据的语法)面对这个问题只会简单的写几行能够读取和存储数据的代码。

◆如果他们已经有过一段时间的编程经历,他们可能会写一个测试程序来确保代码读取和写入的数据是正确的。因为所写的代码工作了,初学者就认为可以了,他们会认为已经自己完成了任务,也符合规格,并且还对他们的工作进行了测试。

◆一个专家级的程序员,当面临同样的情况的时候,他知道这不是一件简单的事情。当然,写几句在文件中读取或者存储数据的代码非常简单这只是当一切都顺利的时候。但是如果要让应用程序能够处理所有可能出错的情况,这就不是那么简单了,就算是这种简单的操作也一样。因为,文件可能不存在,硬盘可能满了,文件可能损坏了,用户可能没有权限去读取文件,这个文件可能正在被使用。如果文件不在本地磁盘,程序可能都接触不到这个文件。

当然,不是所有这些问题都会同时发生在某个特定的时刻,但是那些已经把应用程序交付给很多用户的开发人员都知道,经过足够长的时候,所有的这些问题都会发生,这是迟早的事。

一个专家可以告诉初学者去检查这些可能出现的情况,那么对于这些特定的问题,不是专家的开发人员只能对其进行编码,而只有专家才能预料并避免他们。就像开车一样,一个好的程序员不仅要能够解决已经发生的问题,而且还应该能够预料一些没有发生过的问题。不幸的是,专家是靠犯错误才学到这些本领的,这对于人类来说是件伤心的事情。每一代想要成为专家的人只有在经历过上一代人所犯的所有错误之后才能成为专家。Neils Bohr解释说,专家就是在一个非常窄的领域内犯过所有可能的错误的人。

但是当你跟一个新手驾驶员坐在同一辆汽车上的时候,你可能就会更加欣赏P. J. Plauger的这个版本了,我对任何领域中专家的定义是一个对什么是真正可怕的事情知道得足够多的人。

相关文章

最新更新

推荐访问