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

1. 编程语言能力

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

2.编码能力

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

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

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

3.面向对象思维能力

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

zc530.cOm编辑推荐

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

优秀程序员应该具备哪些素质[1]


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

一、心怀理想

我认为优秀程序员首先具备的素质是心怀理想。我曾说过许多程序员都是冲着比尔.盖茨而来的,是被他的巨大成功所感召的。可以说不想当比尔盖茨的程序员不是好程序员。大家要记住,比尔盖茨的成功是两个方面的成功,一个是他个人的成功,另一个是IT行业的成功。作为个人成功,只要个人能在众人中脱颖而出,应该可以说行行都可以出状元的。而行业的成功则表现出行业的生命力和朝阳性。而从事这个行业的人则能够伴随着这个行业的发展而成功。在IT软件行业中,一个好的软件通过无数复制使用能产生巨大的经济效益和社会效益,而好的软件往往是程序员所编制的,与其有很大的关联性,这就意味着程序员在这个行业存在着成功的必然可能。现实中除了比尔盖茨,还有许许多多中外IT名人都是程序员出身的,他们的成功昭示着程序员成功的可能。

既然程序员有成功的可能,那优秀程序员一定是心怀成功的理想,这种理想激励他们不断进取走向成功。我这里说心怀,是说程序员不必天天把理想挂在嘴边,而是把理想放在心里,时刻牢记自己的目标是什么!目标是成功的一半,有了目标,优秀程序员可以不断地调整自己,以最优的方式去接近和实现自己的目标。

现实中还有两类程序员,一类是也想成为比尔盖茨,但是始终是想,最终只是一种幻想。另一类知道比尔盖茨,但是望而却步,从不敢有半点奢望,做到哪就算到哪,顺其自然。这两类程序员都不具备优秀程序员的基本素质。

二、充满激情

优秀的程序员一定是一个充满激情的人,他们的理想和目标的远大注定了他们不能以常人的方式平淡地、机械地工作着。我们很难想象一个优秀程序员不去争做一个大的项目;我们很难想象一个优秀程序员在大家遇到困难时,无助待援时,不挺身而出;我们很难想象一个优秀程序员历经千辛万苦编制出来的程序被用户认可那一瞬间,眼泪不夺眶而出;我们很难想象一个优秀程序员在自己遇到困难的时候,不大声叫喊永不放弃。对于优秀程序员来说付出和收获都是充满激情的。而他们的激情不但感染着自己,而且感染着团队,感染着用户。

三、市场意识

市场意识是许多程序员最不具备的,有的程序员甚至反感市场意识,认为软件卖不卖钱是公司的事,自己只要把程序做好了就行了。借用一句只拉车不看路来形容这类程序员是最为贴切的。有些人从事编程的确是个人兴趣所致,他们喜欢在编程中找到自身的乐趣。但是,更多的人从事编程是为了谋生,是为了获取更多的收入。程序员树立市场意识,就是要做有市场价值的软件,做价值最大化的软件。虽然程序员在单位可能无法挑选开发的项目,但是程序员可以在有市场价值的软件开发上投入更大的精力,可以在业余时间开发有价值的软件。如果公司的软件市场没有前景,程序员应该未雨绸缪,做好最坏的打算,选择更有成长性的软件公司。否则,编程能力再强也是英雄无用武之地,达不到自己的预期。做市场价值最大的软件,让自己市场价值最大化应该是优秀程序员必备的素质之一。

四、永不放弃

程序员可能和其他行业从业人员不太一样,一般遇到困难,其他人员可能进行一番战斗后,无法克服就会放弃了。而程序员遇到困难就可能让程序无法进行下去,他们必须要把问题解决了程序才能完成。优秀的程序员不但敢于解决各种编程中的问题,而且还会善于解决各种问题。有的程序员遇到问题,随便找一种方法就给解决了,他可能不问解决后会带来什么新的问题,不问是否有更好的解决方案。而优秀的程序员往往追求最优的解决方案,往往在这过程中遇到千难万难,但是他们抱着永不放弃的信念,一日复一日,一月复一月,甚至一年复一年去实现自己的目标,最终他们能收获其他程序员无法收获的胜利成果,使得他们水平高高在上。

五、团队精神

现代的程序员和以前的程序员已经完全不一样了,原来程序员是全能性程序员,现在程序员是专业的程序员。尽管还有很少的程序员集设计、开发、销售、维护为一身,但是专业化的潮流不可阻挡,这就表示一个软件或多个软件是靠多个人开发的,他们通过分工协作从事着整个制作工作。程序员写的程序不仅要给自己看,而且要给团队其他人看,当发现程序问题的时候,团队成员可以一起帮助分析解决。如果没有团队精神,任何一个程序员也不可能有真正的成功,即使成功也是渺小的、暂时的。因此要获得事业上的成功,必须要依靠团队的力量才能达到。优秀程序员的优秀之处是可能并不只是关心自己的优秀,而是更关心他周围的程序员和其他人员是否优秀。让更多的优秀的人在一个团队中工作形成一个优秀的团队,这样的程序员才是充满竞争力的,是战无不胜的。

优秀程序员应该具备哪些素质[2]


六、面向对象

很多人都是从面向过程思维方式开始学习编程的,随后也学了面向对象编程方法,也用了面向对象开发工具和语言,但是,真正的用面向对象方法来编程、来设计编程构架、来进行功能分析、来需求分析还是很少的。优秀的程序员一定具备面向对象的思维方式,从设计到编程都贯彻着面向对象的痕迹,他们把面向对象作为思维的日常化。具有面向对象思维方式的人,可以对复杂混乱的事物进行抽象,具有很强的分类能力,化繁为简,程序更加模块化,程序共享度更加提高,具有大程序、超大程序开发能力。有关面向对象的问题,我在前面的文章中已经阐述很多了,这里就不在重复了。

七、基础扎实

要想自己编程能力有一个持续的提高,我们就必须要注重自己的基础建设,让自己能力的提高都建筑在每一层的坚实基础之上,即使能力再高,也不会被风吹得摇晃,尽显强者的刚毅不摧。我们不要小看已经学过的操作系统原理、编译原理、程序设计原理、数据库设计、数据结构设计、甚至计算机英语。这些基础是否扎实直接影响到以后的各种应用技术的掌握和掌握的程度。而大多数新的技术都是在原有技术的发展,因此掌握好原有的技术对最快掌握新技术是有很大的帮助的。此外,扎实的基础也使程序员把精力放在创新和解决疑难问题上,这样优秀程序员的处理能力将会大大增强。

八、条理清楚

普通的程序员则不太注重条理问题,他们对可并行处理的语句从来不进行次序的考虑;对语句使用没有一致性地使用,显得很随意;对处理流程往往一气呵成,一个函数能有上百上千条语句。他们最大的特点就是从来不多问一个为什么!而优秀程序员更注重程序条理,每个语句、语句的先后、语句的行数、函数命名等等他们都能说出为什么这样做。这种条理清楚地素质使得程序员能够把控程序的制作时间进度,也有利于大程序的任务的分隔。大凡程序员编写的程序能被其他人看懂的,基本上都是条理很清楚的。程序有条理,说明程序员的思维很有逻辑性,优秀程序员是最讲究逻辑的。一个优秀的程序员能把一个庞大复杂的程序说的有条有理,并且在程序上也显得可读性极强。条理清楚地表现形式之一,就是程序函数多,函数中的语句少。从这个意义上来说,优秀程序员也是优秀的设计师,项目经理。因为他们的逻辑是一脉相承的。

九、全面细致

我这里说的全面有五个方面的含义:第一、程序员要在编程过程中要全面细致,不要有遗漏,而这些遗漏往往造成了编译错误,需要花费大量不必要的时间去查改。第二,程序员要在设计过程中要全面细致,不要在功能设计方面有遗漏,尤其不要忘记例外情况的处理,许多功能上运行出错都是这种原因造成的。第三、程序员的编程技术要全面,要尽可能多掌握各种编成技术,例如,程序员不但要掌握前台开发技术,也要掌握后台开发技术,既要会文件处理,也要会数据库处理,既要会编写程序也要会制作安装盘,等等。第四、程序员的业务知识要全面,程序员不但要掌握编程技术,而且要主动学习和掌握用户的业务知识,通过对业务知识的掌握,才能更好地理解功能的意义,有助于编写更使用的程序。第五,程序员的知识面要广。优秀的程序员不但要掌握编程知识和用户业务知识,而且要有意识地拓宽自己的知识面,多关心新闻、时事、时尚、经济、技术、文艺、文学等各种知识领域,在知识的海洋中去畅游工作的轨迹,你就会有万事相同的感觉,这些知识会潜移默化地影响你编程的风格和效率。

十、求新求精

IT发展之迅速、技术更新之快捷,使得IT成为公认的追逐潮流的行业,因循守旧,固步自封,甚至年龄的增长都会导致程序员被这个行业所淘汰。有时候叹息行业无情也是情理之中。面对潮流的挑战,优秀程序员应该是无所畏惧的,他们应该始终怀有一种追求新技术的愿望,有一种追赶潮流,伴随潮流的勇气和胆识。因为这个职业就注定了这样的工作方式。当然,在新技术满天飞的情况下,我们不能也不可能有什么新技术就去学什么新技术,我们可以花很少的时间去浏览和关注各种技术的发展状况,但是对于自己所要掌握的新技术则要不惜代价,花大力气去学习它掌握它。掌握新技术的价值评判是用于软件的开发,用于更好地解决以往程序中存在不可解决的问题,用于所开发软件的销售价值。优秀的程序员会很好的选择新技术,并利用新技术立即去革新自己的程序,并使程序投向市场产生价值。那种以学习、知识储存的态度对待新技术都是不成熟的程序员。

我们常以新为炫耀,但是我们更以精为实力。优秀的程序员不但要求新,更要求精,使得自己在编程的某个方面成为专家和高手,让普通的程序员敬仰。例如,精通客户的业务知识、精通程序构架、精通某种语言、精通数据库、精通模块化设计、精通三层结构、精通界面设计、精通接口程序、精通安装盘制作、精通等等。程序员可以精通的领域和内容是非常之多的,关键是程序员对自己的要求。很多程序员满足于会,而不追求于精,使得自己变成什么都懂,什么都不精的,任何人都能取代的普通程序员。这样的程序员怎么能可能获得更高的报酬,又怎么可能变成优秀呢。

优秀的员工具备这六种能力


作为下属,我们自问:“我可以为上司做些什么?”交出具体成果,提升身为部属的价值后,就能得到充分的权限。想成为一流部属,可以培养以下6种特质与能力:

态度力:尽早超出上司对你的期望

部属力不足的最大特色就是“什么都不会,却认为自己很有本事”,而这种态度最容易产生抱怨组织及上司的负面想法。

在抱怨之前,先问问自己能给公司和上司作出什么样的贡献,试着将艰苦的职场难题化作转机,尽早超出上司对你的期望,才有冲破工作瓶颈的动力。

印象力:端正的仪态绝对必要

“以貌取人”虽然很武断,但不可否认的是,第一眼的视觉感受将会决定外人对你的好恶。因此,戒除生活里的坏习惯,维持干净利落的外表,用有朝气的声音打招呼,以及端正的姿势仪态是绝对必要的。

(优秀的员工具备这六种能力)

信任构筑力:巧妙弥补上司的缺点

当上司嘱咐任务或商讨要事时,善用“立即反应”“用心聆听”“确实回应”这三个沟通原则,切忌打断上司的话,再搭配点头或倾身向前等身体语言,表现出你的专注力。发现上司有麻烦时,可以不经意地弥补上司的短处与缺点,发挥守护者的精神,就能成为他们最好的后盾,获得更多信任与授权。

成长力:讨厌的事也想办法认真投入

赶快治好“还不错病”!当觉得自己还不错时,就容易失去自我成长的机会。部属应该要有“吾日三省吾身”的反省能力,认真投入自己不喜欢的事情,才有可能获得双倍的能力,发觉自己都没发现的天赋!

麻烦上司应对力:笑笑面对坏老板

在职场中碰到一两个脾气暴躁、工作能力差的上司是常有的事。正面批评跟战斗是一点儿效果也没有的。虽然一开始很难转换心态,但坏老板也是一种让自己加速成长的强大力量。请给这种上司充分的认同,让他不找你麻烦;并且打通自己与周遭关键人物的关系,设法让工作顺利完成。

志向力:目标明确,坚持不懈

明确了解自己的地位、自己的工作,以及自己的公司有何存在的意义与价值,认真询问自我内心深处的想法,找到为何而生的意义。记着,勿忘初衷,面对逆境勇于前进,才能化为坚持理想的力量!

大学生初入职场要具备的12种能力


大学生们在念了十几年书后,终于毕业了,步入社会,是不是很期待呢?与此同时是不是也有许多担心和害怕呢,小编为大家带来一些初入职场涉世未深的学生们带来一些在职场上必备的能力,为大家助攻,接下来跟着小编一起学习下吧~

1、解决问题时的逆向思维能力

面对工作中遇到的新问题,一时又找不到解决方法。而且,上司可能也没有什么锦囊妙计时,他们擅长用逆向思维办法去探索解决问题的途径。他们清楚具体业务执行者比上司更容易找出问题的节点,是人为的,还是客观的;是技术问题,还是管理漏洞。采用逆向思维找寻问题的解决方法,会更容易从问题中解脱出来。

2、考虑问题时的换位思考能力

在考虑解决问题的方案时,常人通常站在自己职责范围立场上尽快妥善处理。而他们却总会自觉地站在公司或老板的立场去考虑解决问题的方案。

作为公司或老板,解决问题的出发点首先考虑的是如何避免类似问题的重复出现,而不是头疼医头,脚疼医脚的就事论事方案。面对人的惰性和部门之间的扯皮,只有站在公司的角度去考虑解决方案,才是一个比较彻底的解决方案。能始终站在公司或老板的立场上去酝酿解决问题的方案,逐渐地他们便成为可以信赖的人。

3、强于他人的总结能力

他们具备的对问题的分析、归纳、总结能力比常人强。总能找出规律性的东西,并驾驭事物,从而达到事半功倍的效果。人们常说苦干不如巧干。但是如何巧干,不是人人都知道的。否则就不会干同样的事情,常人一天忙到晚都来不及;而他们,却整天很潇洒。

4、简洁的文书编写能力

老板通常都没时间阅读冗长的文书。因此,学会编写简洁的文字报告和编制赏心悦目的表格就显得尤为重要。即便是再复杂的问题,他们也能将其浓缩阐述在一页A4纸上。有必要详细说明的问题,再用附件形式附在报告或表格后面。让老板仅仅浏览一页纸或一张表格便可知道事情的概况。如其对此事感兴趣或认为重要,可以通过阅读附件里的资料来了解详情。

5、信息资料收集能力

他们很在意收集各类信息资料,包括各种政策、报告、计划、方案、统计报表、业务流程、管理制度、考核方法等。尤其重视竞争对手的信息。因为任何成熟的业务流程本身就是很多经验和教训的积累,遇到用时,就可以信手拈来。这在任何教科书上是无法找到的,也不是那个老师能够传授的。

6、解决问题的方案制定能力

遇到问题,他们不会让领导做“问答题”而是做“选择题”。常人遇到问题,首先是向领导汇报、请示解决办法。带着耳朵听领导告知具体操作步骤。这就叫让领导做“问答题”。而他们常带着自己拟定好的多个解决问题方案供领导选择、定夺,这就是常说的给领导出“选择题”。领导显然更喜欢做的是“选择题”。

(大学生初入职场要具备的12种能力)

7、目标调整能力

当个人目标在一个组织里无法实现,且又暂时不能摆脱这一环境时,他们往往会调整短期目标,并且将该目标与公司的发展目标有机地结合起来。这样,大家的观点就容易接近,或取得一致,就会有共同语言,就会干的欢快。反过来,别人也就会乐于接受他们。

8、超强的自我安慰能力

遇到失败、挫折和打击,他们常能自我安慰和解脱。还会迅速总结经验教训,而且坚信情况会发生变化。他们信条是:塞翁失马,安知非福,或上帝在为你关上一扇门的同时,一定会为你打开一扇窗。

9、书面沟通能力

当发现与老板面对面的沟通效果不佳时,他们会采用迂回的办法,如电子邮件,或书面信函、报告的形式尝试沟通一番。因为,书面沟通有时可以达到面对面语言沟通所无法达到的效果。可以较为全面地阐述想要表达的观点、建议和方法。达到让老板听你把话讲完,而不是打断你的讲话,或被其台上的电话打断你的思路。也可方便地让老板选择一个其认为空闲的时候来“聆听”你的“唠叨”。

10、企业文化的适应能力

他们对新组织的企业文化都会有很强的适应能力。换个新企业犹如换个办公地点,照样能如鱼得水般地干得欢畅并被委以重用。

11、岗位变化的承受能力

竞争的加剧,经营风险的加大,企业的成败可在一朝一夕之间发生。对他们来讲,岗位的变化,甚至于饭碗的丢失都无所畏惧。因此,他们承受岗位变化的能力也是常人所无法比拟的。在他们看来,这不仅是个人发展的问题,更是一种生存能力的问题。

12、职业精神

他们身上有一种高效、敬业和忠诚的职业精神。主要表现为:思维方式现代化,拥用先进的管理理念并能将其运用于经营实践中。言行举止无私心,在公司的业务活动中从不搀杂个人私心。这样,就敢于直言不讳,敢于纠正其他员工的错误行为,敢于吹毛求疵般地挑剔供应商的质量缺陷。因为,只有无私才能无畏。待人接物规范化,这也是行为职业化的一种要求。有了这种职业精神的人,到任何组织都是受欢迎的,而且,迟早会取得成功。

总而言之,大家要好好培养这12种能力哦,肯定会为你在职场上的工作加分的。

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


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

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

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

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

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

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

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

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

对外汉语教师应该具备的基本能力有哪些


如何成为一名合格的对外汉语教师,又应该具备什么样的素质呢?下面以我个人的经历和理解来为大家浅析一下,也希望我的分享能够帮助更多的人顺利的走人这个职业。

一、古、现代汉语概论知识。

这一部分的掌握可以做到帮你在教学的过程中,突出解决外国人学习汉语的重点和难点,力求做到简明实用,使留学生对现代汉语有较全面的掌握。会涉及到:语音、词汇、汉字、语法、修辞、标点符号等内容。

例如:外国学生常常说我昨天不来上课,不知道留的什么作业。说汉语的人都知道,这句话中的不应该换成没。有的老师就解释说过去的事情就用不,以后的事情就用没。可是我昨天不在家和我昨天没在家都可以说,同样是昨天,为什么不和没又通用了呢?有的人解释不了,就说这是汉语的习惯,如果都是汉语的习惯,汉语不就毫无规律了吗?那学生还怎么学习?其实在汉语语法学上这个问题是有解释的。

二、跨文化交际学和中国文化。

不得不说,在你面对的学生当中要经历来自于各个国家的外国朋友,而如何做到在教学和接触的过程当中做到,文化、行为、理念、信仰的尊重和理解是非常重要的,不仅能帮助您顺利的和你的学生建立感情,同时也可以帮助你避免不必要的麻烦,同时在授课的过程中融入跟多的素材和话题,加深你们之间感情的同时提升授课效率和课程体验,那么下次你的学生也就更愿意介绍身边的朋友给你,你的教学面会越来越广。

三、优秀的媒介语

一切的一切都离不开语言作为媒介和交流的工具,优秀的媒介语可以让你的学生迅速的理解你所传达的信息,提升教学质量和学员的感受。如果你会英语、日语、韩语的话,那么你已经可以教授大多数的外国人了,而我更建议其他语种的人如果也很喜欢这个职业那么你可以选择前者当中的一种语言进行辅修,这样会避免你的授课面积的局限问题。

四、具备良好的沟通能力

汉语教师要有亲和力,要有与人沟通的能力和技巧,否则很难想象你的汉语课堂会生动有趣。北京语言大学校长崔希亮教授举过一个例子,一个汉语老师在课堂上解释跳,就板着面孔照着词典的解释念:双脚离地,身体用力向上,学生怎么也听不懂。崔教授开玩笑地说,这哪儿是跳啊,这是上吊。这位汉语老师就没想到做个动作,示范一下,学生立刻就会明白。另外,必要的外语能力是需要的,至少应该能用当地语言进行基本沟通,或者借助英语进行基本沟通。海外留学生熟悉当地语言和文化,这是从事汉语教学的有利条件。

以上是我对作为一名对外汉语教师应该具备的素质和条件,也希望我的理解和分享能够让真正想从事这个行业的人看清自身,提高自我,以正确的姿态和方向进入这个行业。

一流的员工,需要具备的6种力


第三部分,未来职业生涯规划、家庭环境分析、例如经济状况,家人期望等。感谢您阅读《一流的员工,需要具备的6种力》内容,职场资讯网小编向您推荐一些职业规划知识,欢迎参考,希望能帮到你。

作为下属,我们自问:“我可以为上司做些什么?”交出具体成果,提升身为部属的价值后,就能得到充分的权限。想成为一流部属,可以培养以下6种特质与能力:

一流的员工,需要具备的6种力

态度力:尽早超出上司对你的期望

部属力不足的最大特色就是“什么都不会,却认为自己很有本事”,而这种态度最容易产生抱怨组织及上司的负面想法。

在抱怨之前,先问问自己能给公司和上司作出什么样的贡献,试着将艰苦的职场难题化作转机,尽早超出上司对你的期望,才有冲破工作瓶颈的动力。

印象力:端正的仪态绝对必要

“以貌取人”虽然很武断,但不可否认的是,第一眼的视觉感受将会决定外人对你的好恶。因此,戒除生活里的坏习惯,维持干净利落的外表,用有朝气的声音打招呼,以及端正的姿势仪态是绝对必要的。

信任构筑力:巧妙弥补上司的缺点

当上司嘱咐任务或商讨要事时,善用“立即反应”“用心聆听”“确实回应”这三个沟通原则,切忌打断上司的话,再搭配点头或倾身向前等身体语言,表现出你的专注力。发现上司有麻烦时,可以不经意地弥补上司的短处与缺点,发挥守护者的精神,就能成为他们最好的后盾,获得更多信任与授权。

成长力:讨厌的事也想办法认真投入

赶快治好“还不错病”!当觉得自己还不错时,就容易失去自我成长的机会。部属应该要有“吾日三省吾身”的反省能力,认真投入自己不喜欢的事情,才有可能获得双倍的能力,发觉自己都没发现的天赋!

麻烦上司应对力:笑笑面对坏老板

在职场中碰到一两个脾气暴躁、工作能力差的上司是常有的事。正面批评跟战斗是一点儿效果也没有的。虽然一开始很难转换心态,但坏老板也是一种让自己加速成长的强大力量。请给这种上司充分的认同,让他不找你麻烦;并且打通自己与周遭关键人物的关系,设法让工作顺利完成。

志向力:目标明确,坚持不懈

明确了解自己的地位、自己的工作,以及自己的公司有何存在的意义与价值,认真询问自我内心深处的想法,找到为何而生的意义。记着,勿忘初衷,面对逆境勇于前进,才能化为坚持理想的力量!

程序员应建立商业意识[1]


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

让程序员感到最为骄傲的事情是什么?那肯定是自己做出的技术在别人的面前进行炫耀。就像当初卡马克做出新的三维游戏技术时,整个世界都为之疯狂,这是一个技术人员能够达到的最终幻想。不过,对大部分程序员来说,这样的高度是无法企及的,但这并不妨碍他们来show一下自己学会的技巧。

我认识一位在Dos时代的技术人员,他在别人只会用拼音输入法的时候学会了五笔输入法;在别人只会用UCDOS的时候,他可以解密WPS文件,在别人会用CCED的时候,他可以拿着打印的长长的用C语言写的Menu的实现代码炫耀。然而,到了今天,仍然对自己掌握了某一个技术感到沾沾自喜。其实,这样的技术人员应该也不在少数,甚至有些人只不过五十步笑百步罢了。这并不能怪他们,因为在最初软件开发进入中国的时候,各方面的技术资料少的可怜,尤其是当 Dos向Windows编程过渡的时候,微软有很多API并没有公布,在那个时候,可能一个产品的核心依靠的就是比别人多了解一个API或者一个钩子的机制。蒋涛曾经讲过金山词霸的开发,其实只不过是因为他们直到如何利用一个钩子机制从程序中截获信息并进行翻译的处理,但就是这个技术,事实上造就了如此大的一个产业,也造就了几位的百万富翁。而对王志东来说,也是靠剖析了Windows系统中的DLL文件实现了对 Windows平台的汉化,并由此诞生了一个畅销的中文之星软件。而瑞星的崛起也是因为刘旭将流行的Word宏病毒的查杀机制做了出来,便一下子打开了市场。那个时候,这些人被称为高手,因为他们掌握着某些关键性的技术。甚至可以说,不一定是技术,有可能只是技巧。

然而,现在随着互联网的兴起,技巧的价值变得越来越小,遇到一个难题,用搜索引擎搜索一下,一般都可以找到答案。实在不行,到论坛中发一个请求,也经常会有高手告诉你答案。一个人掌握某种技术技巧变得越来越不重要了。说到这里,我们可以讲一个小插曲,这便是微软最早评选MVP(社区最有价值专家)的时候,根据专家分来进行判断,也就是谁回答的问题最多,谁就是专家。当通过检索把名单给微软之后,在第一次见面会上,令大家跌破眼镜的是,第一名是一个女生,而且她不太编程。当询问她经验的时候,她说每次看到问题,她就会先用搜索引擎搜索一下,如果中文找不到,那她就用选择一些关键词搜索英文的网站,这样一般都会有人回答,这样答案就出来了,而且很多都是英文的答案,这也让很多网友感觉这的确是一个高人,因为这些问题都是用英语回答的。了解了这一切,令人恍然大悟,除了看到一些程序员的懒惰之外,也可以感受到技巧已经不在称为衡量一个程序员水平高低的门槛了。这个时候,考察一个程序员的价值除了其技术的深度和广度之外,是否能够看到技术之上的商业价值,是否能够拥有商业的意识便变得更为重要。这时,如果作为一个程序员,仍然整天为了获得了某个技巧而炫耀的话,相信无法取得更大的成绩。

程序员要培养企业家式的能力


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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

2、阐明问题

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

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

3、怎样着手解决问题

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

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

相关文章

最新更新

推荐访问