十个让你变成糟糕的程序员的行为
之前本站发表过《优秀程序员的十个习惯》以及《程序员需要具备的基本技能》,那是我们需要去学习和培养的。这里,我们主要讨论十个糟糕程序员的特征,主要是需要让我们去避免和小心的。
1) 情绪化的思维
如果你开始使用不同颜色的眼光来看待这个世界的话,那么你可能会成为一个很糟糕的程序员。情绪化的思维或态度很有可能会把自己变成一个怪物。相信你经常可以看到很多很糟糕的程序会使用下面的这些语句:
- 我的程序不可能有这种问题。
- Java就是shit。
- 我最恨的就是使用UML做设计。
- 需求怎么老在变,没办干了。
- 受不了这些人,他们到底懂不懂啊。
- …… ……
这些带着情绪化的思维和态度,不但可以让你成为一个很糟糕的程序员,甚至可以影响你的前途。因为,情绪化通常都是魔鬼,会让你做出错误的判断和决定,错误码率的判断和决定直接决定了你的人生。
有效编程的14件事
下面是14件如何有效编程的方法:
-
计划(Plan)
所谓Plan,其实就是对应于编程中的“设计”阶段,当然,这里的Plan并不像设计那样重量级。它要求我们程序员在正式编程前至少要考虑一下下面的问题:
- 你这个程序,工具或是项目的目的,究竟是用来干什么的。你只有知道做什么,要达到什么样的目的,你才能做得对,做得好。
- 需要有什么样的功能。需要你给出来个功能列表。这样可以保证我们不会遗露了什么。
- 准备好一些技术难题的前期调查和解决方案。不要等到开始编程的时候才去想。
下面这你因为有“Plan”而得到的好处:
- 你能够清楚地明白你要做的东西长什么样?
- 你能清楚知道你要开发的东西要干些什么事?
- 你能够在开发过程中解决你所有可能发生的难题。
未来五年程序员需要掌握的10项技能
由于最近经济形势的变化,很多开发人员只关注他们短期的工作前景。与此同时,把时间和精力花在学习最能带来回报的新技术上是件非常重要的事情。这里是我们列举的10种你需要马上开始学习的技术,让你的简历在未来5年不会落伍。这个列表并不完全,有很多业界的领域(比如大型机开发人员)没有涉及。尽管如此,对通常的主流开发来说,学习其中至少7项技能肯定不会错 ——不但要达到能在面试时侃侃而谈的程度,还得能在工作中运用自如。
1) 编程语言三选一 (.NET, Java, PHP)
除非开发世界有根本的改变(类似小行星击中雷德蒙),在不远的将来,大部分开发人员将需要了解三大开发平台——.NET (VB.NET或者C#), Java, 或者PHP——中的至少一个。并且只了解核心语言也是不够的。因为项目会包含越来越多不同的功能,你需要对相关框架和库有深入的了解。(本人以为C/C++可能比这三个语言更有竞争力)
程序员需要具备的基本技能
软件开发是一个跨度很大的技术工作,在语言方面,有C,C++,Java,Ruby等等等等,在环境方面,又分嵌入式,桌面系统,企业级,WEB,基础系统,或是科学研究。但是,不管是什么的情况,总是有一些通用的基本职业技能。
这些最基本的职业技能通常决定了一个程序员的级别,能否用好这些技能,直接关系到了程序员的职业生涯。很多程序新手也是因为缺少、达不到或是不熟悉在这些基本技能,所以,他们需要有老手带,需要努力补齐这些技能。而高级程序员应该非常熟悉这些基本技能,而且有能力胜任并带领其他经验不足的程序员。
下面这些基本职业技术可以用来做为对一个程序员的评估,很明显,下面的这些技能都可以用来做面试。虽然,还有很多非技术的因素,但对于评估一个程序员的技术能力来说,其应该是足够的了。
下面是程序员所应该具备的基本职业技能:
程序员的八个级别
在面试时,你可能会被经常问到“在未来5年,你想干什么?”,这可能是一个比较难回答的问题。在中国,答案一般可能会是Team leader,Manager,或是Architect,Specialist等,在中国,大家可能更多地觉得manager会是程序员的下一个目标,可是在国外,经理和程序员可能是两个不同的分支,Architect或Specialist 比经理来说更牛、代遇可能也更好,因为这些人的智商需要的更高。
在著名的“Coding Horror”上出现了这样一篇文章,我把其转到这里(我并没有完全一模一样的翻译,我只不过是用自己的话转述罢了),也让大家看看国外人的思考方式(当然,这篇文章只是分析程序员的级别而不是工种)。正如其作者结尾时所说,这八个级别并不是很严格的,其只不过是一种想法,希望能给大家另一种思路。
惹恼程序员的十件事
程序员应该是一个比较特殊的群体,他们因为长期和电脑打交道所养成的性格和脾气也是比较相近的。当然,既然是人,当然是会有性格的,也是会有脾气的。下面,让我来看看十件能把程序惹毛了的事情。一方面我们可以看看程序员的共性,另一方面我们也可以看看程序员的缺点。无论怎么样,我都希望他们对你的日常工作都是一种帮助。
第十位 程序注释
程序注释本来是一些比较好的习惯,当程序员老手带新手的时候,总是会告诉新手,一定要写程序注释。于是,新手们当然会听从老手的吩咐。只不过,他们可能对程序注释有些误解,于是,我们经常在程序中看到一些如下的注释:
r = n/2; //r是n的一半
//循环,仅当r- n/r不大于t
while ((r-n/r) <=t){
… …
r = 0.5 * (r-n/r); // 设置r变量
}
每当看到这样的注释——只注释是什么,而不注释为什么,相信你一定会被惹火,这是谁写的程序注释啊?不找来骂一顿看来是不会解气了。程序注释应该是告诉别人你的意图和想法,而不是告诉别人程序的语法,这是为了程序的易读性和可维护性,这样的为了注释而注释的注释,分明不是在注释,而是在挑衅,惹毛别人当然毋庸置疑。
优秀程序员的十个习惯
在这个世界上,有数百万的人热衷于软件开发,他们有很多名字,如:软件工程师(Software Engineer),程序员(Programmer),编码人(Coder),开发人员(Developer)。经过一段时间后,这些人也许能够成为一个优秀的编码人员,他们会非常熟悉如何用计算机语言来完成自己的工作。但是,如果你要成为一个优秀的程序员,你还可以需要有几件事你需要注意,如果你能让下面十个条目成为你的习惯,那么你才能真正算得上是优秀程序员。
1. 学无止境。就算是你有了10年以上的程序员经历,你也得要使劲地学习,因为你在计算机这个充满一创造力的领域,每天都会有很多很多的新事物出现。你需要跟上时代的步伐。你需要去了解新的程序语言,以及了解正在发展中的程序语言,以及一些编程框架。还需要去阅读一些业内的新闻,并到一些热门的社区去参与在线的讨论,这样你才能明白和了解整个软件开发的趋势。在国内,一些著名的社区例如:CSDN,ITPUB,CHINAUINX等等,在国外,建议你经常上一上digg.com去看看各种BLOG的聚合。
幽默:程序员的进化
高中时期
10 PRINT "HELLO WORLD" 20 END
大学新生
program Hello(input, output) begin writeln(\'Hello World\') end.