Loading

文章分类 -  百家争鸣

各种观点、意见、思想的大熔炉!
摘要:[原文链接]当程序员的经历让我知道了一些关于软件编程的事情。下面的这些事情可能会让朋友们对软件开发感到惊讶:一个程序员用在写程序上的时间大概占他的工作时间的10-20%,大部分的程序员每天大约能写出10-12行的能进入最终的产品的代码 — —不管他的技术水平有多高。 好的程序员花去90%的时间在思考、研究和实验,来找出最优方案。差的程序员花去90%的时间在调试问题程序、盲目的修改程序,期望某种写法能可行。”一个卓越的车床工可以要求比一个一般的车床工多拿数倍高的工资,但一个卓越的软件写手的价值会10000倍于一个普通的写手。“ — — 比尔 盖茨一个好的程序员的效率会是一个普通的程序员的十倍之上 阅读全文
posted @ 2014-03-26 11:24 dai.sp 阅读(124) 评论(0) 推荐(0)
摘要:[原文链接]我们积极的对外招聘已经有四个多月了,如果要问从这次经历中有哪些收获,我只能说,我终于明白,Jeff Atwood在FizzBuzz这篇文章里说的并不是玩笑话。(译者:这篇文章里说程序员不会编程)。在新成立的公司中,我们RethinkDB公司因面试过程最为苛刻而出名。这是事实——我们对面试过程不会有半点妥协。我们期望通过最大范围的筛选来建立一个高质量的开发团队。对于这个初衷,我在之前的一些文章里提到过多次。在过去的几个月里,我们遇到不少人认为我们的要求高的有些离谱,以为我们是在招聘同时具有量子力学和计算科学双学位的火箭专家。这是误解。我们只希望招的能编程的程序员。为了满足大众的好奇, 阅读全文
posted @ 2014-03-26 11:21 dai.sp 阅读(108) 评论(0) 推荐(0)
摘要:[原文链接]跟程序员相处你一定会有很多的挫折感。比如,程序员会把能让他们达到最高效率的那种神奇的境界叫做”the zone“。这种境界是真实存在的。至少对于我是这样的,很有可能你也很熟悉那里,只是情形不一样。对于非程序员的人来说,跟程序员的这种境界相对应的情形是,当你完全投入进一本书或一场电影,你感觉整个世界都消失了,唯一留下了的只有你正在关注的东西。如果你有丰富的创作力,那有可能是在你写一本书或绘一副画时候。当你正全神贯注的读一本书上,有人打断了你,通常这会需要你花很长的时间重回到那种状态。通常,当我在读一本书,有人或什么事情(电话!)打断我,他需要重读刚才那一页,试图接上刚才的思路。甚至一 阅读全文
posted @ 2014-03-26 11:03 dai.sp 阅读(204) 评论(0) 推荐(0)
摘要:[原文链接]人变聪明的一个关键方法就是多读书。但只读还不够。读只是要素之一。我们要借用一下《影响力》这本书的作者Robert Cialdini的一个技巧,这个技巧能让我们的阅读更深刻,让书里的知识留在我们脑子里更久。Cialdini向他的一位读者透露了这个技巧,这个读者分享给了我。去往Omaha的飞机上,他在读书。他边看边做笔记,每看完一章内容,他都会拿出一张空白纸,写上他读后的总结。他把这些笔记放在另外的文件夹里。这样做使他对读的内容领会更深刻,还有,在将来,这些总结能提供他很好的参考。无独有偶,在《The Little Book of Talent: 52 Tips for Improvi 阅读全文
posted @ 2014-03-26 10:30 dai.sp 阅读(178) 评论(0) 推荐(0)
摘要:[原文链接]我是学电子工程毕业的,在这个专业里我必须要用的编程语言只有C/C++,汇编和Matlab。在参加了一个创业周末的活动后,我开始对软件开发、计算机编程感兴趣,我决定要试一试,要进入这个领域。我发现,要想做一些编程项目,你需要去学一些完全不同的编程语言。在过去的一年半里,我学会了Java(用于开发Android),Python和Javascript(& HTML/CSS)(用于web开发),我慢慢认识到,这最好的从书本和教材上学习编程的方法是把它们读3遍!!用这种方式学习新的内容能更好的帮你理解新语言/新概念。我相信这种方式能帮助你最大限度的从书本中汲取知识——不论你看的是什么 阅读全文
posted @ 2014-03-26 10:29 dai.sp 阅读(154) 评论(0) 推荐(0)
摘要:[原文链接]这是几本每个信仰敏捷开发的程序员都应该读一下的书籍,因为这几本书表达了跟我们相同的信念,并且内涵了极丰富的价值。这里推荐的这几本书都是很常规且通用的,并不是局限在某一领域(像《Effective Java》)。书目我尽量精简,大概就4-5本,我会不时的对这个清单进行修订。下面就是这几本书,以及为什么我深信它们如此重要的原因。1. 《Implementing Lean Software Development: From Concept to Cash》Mary and Tom Poppendieck, 2006(amazon)薄但却极其丰富的一本书,对精益(Lean)软件开发思想及 阅读全文
posted @ 2014-03-26 10:28 dai.sp 阅读(1398) 评论(0) 推荐(0)
摘要:[原文链接]问答网站stackoverflow.com的一个主要功能体现就是:软件开发人员无需再从书本上学习编程,就像Joel所说的:程序员看起来都不再读书。市场上编程方面书籍的数量和编程从业人数相比来少的可怜。2004年在《The Shlemiel Way of Software》一书中Joel也表达了相同的观点:大部分的人都不读点什么或写点什么。大部分的程序员都不读软件开发方面的书籍,他们不去软件开发方面的网站,他们不去Slashdot参与讨论。既然现在的程序员都不读书,他们如何学习编程?他们用最原始的方式:捋起袖子就写代码——同时开启第二个窗口来从互联网收集经验和知识。互联网是一部百科全 阅读全文
posted @ 2014-03-26 10:27 dai.sp 阅读(213) 评论(0) 推荐(0)
摘要:[原文链接]马克·吐温曾经说过,所谓经典小说,就是指很多人希望读过,但很少人真正花时间去读的小说。这种说法同样适用于“经典”的计算机书籍。在Stack Overflow(以及其它很多软件论坛)上,诸如”程序员最应该读的计算机书籍有哪些?“这样的问题会周期性的出现。这样的问题不断的被提出、被回答,只是形式不同罢了。相同的几本书总是会出现在清单的前几名内,所以,如果想知道人们谈论的都是些什么,你有必要去读一读这些书的。大多数程序员真正读过的计算机书籍代码大全(Code Complete)——两届Software Jolt Award震撼大奖得主!程序员修炼之道(The Pragmatic 阅读全文
posted @ 2014-03-26 10:25 dai.sp 阅读(146) 评论(0) 推荐(0)
摘要:[原文链接]国外知名网站stackoverflow上有一个问题调查:哪本书是对程序员最有影响、每个程序员都该阅读的书?,这个调查已历时两年,目前为止吸引了153,432人访问,读者共推荐出了478本书(还在增加),其中最火的一本书《Code Complete》被顶了1306次。如果你是个程序员,你一定有兴趣看看这些书里你都看过几本,如果你一本没看过的话,我也不好说什么,也许你是个天才,但我相信大多数人都知道,你在学校里根本学不到什么真正的工作中需要的知识,我们毕业后能帮助我们在公司中胜任工作的老师就是这些优秀的书籍,一本好书可以改变一个人的一生。下面是这个调查中排名靠前的书的一个简单的清单:第 阅读全文
posted @ 2014-03-26 10:22 dai.sp 阅读(172) 评论(0) 推荐(0)
摘要:[原文链接]又一项研究显示,久坐对你的健康是真的、真的、真的非常有害。请买一个可站着工作的桌子吧!可站着编程的电脑桌一项对超过20万个澳大利亚人的研究结果给这样一个事实又增加了一份活体证明:坐得越久的人死得越快。研究同时还发现,锻炼不能改变这种趋势——尽管它能有效降低这种风险。研究结果清晰的告诉我们这样一个简单的信息:多站立、少坐着,这样能延长你的寿命。尽管那些每周锻炼超过5个小时的人的死亡风险会大大降低,但当他们坐的过久时,这种风险仍然会升高。目前,“久坐对身体有害”已经被广泛的认可。最近几年的研究表明,在电脑屏幕前、电视前做得太久,或仅是闲坐太久,都会增加你死亡的风险。这次的调查采取了一种 阅读全文
posted @ 2014-03-26 10:12 dai.sp 阅读(119) 评论(0) 推荐(0)
摘要:敏捷个人:http://www.zhoujingen.cn/ 阅读全文
posted @ 2014-03-25 20:26 dai.sp 阅读(122) 评论(0) 推荐(0)
摘要:[原文链接]英语中常说“30 is the new 20”,但这话并不总是对的——事实上,当遇到软件开发业里的人时,情况似乎完全相反。虽然有很多杰出人士在30岁刚开始达到仕途的巅峰,但对大多数普通程序员来说,29岁之后的未来看起来会是非常的悲惨。这个问题最近在Hacker News上引起了长篇的讨论,很多程序员都表达出了对30岁后将会发生的事情的担忧。对于30岁的程序员“太老”的问题,有人甚至干脆建议:程序员应该在40岁退休。年轻程序员受偏爱的原因是,老程序员会慢慢的疲倦于重新学习那些层出不穷的新技术。再有,更重要的,公司们喜欢招聘年轻的、没有经验的程序员来干跟他们一样的活儿,但给的薪水更少。 阅读全文
posted @ 2014-03-25 19:13 dai.sp 阅读(168) 评论(0) 推荐(0)
摘要:[原文链接]职业人士最常见的一种抱怨是:时间太少。每周工作超过60小时的人会抱怨甚至挤不出时间来处理他们邮箱里的邮件,更别说有创见性处理大项目中的问题。但时间并不是问题,哈佛经济学家Sendhil Mullainathan说。最终阻碍你成功的是你的大脑“带宽”使用效率,或集中精力的能力。Mullainathan的研究主要针对是资源稀缺情况,当人们缺少某些东西时会如何应对——可以是缺钱,食物或时间。他和他的搭档普林斯顿大学的心理学家Eldar Shafir在周二的每年一度的Aspen Ideas节上公布了他们的发现。他们发现,这些资源短缺导致人们不能作出正确的决策。因为他们的大脑只能够处理这么多 阅读全文
posted @ 2014-03-24 21:01 dai.sp 阅读(148) 评论(0) 推荐(0)
摘要:[原文链接]我并不认为程序员是一个情绪特别丰富的群体。但有一些事情却能很容易刺激程序员的神经,那就是代码格式和布局。如果看到一个函数的括弧在同一行上没有闭合,我的眼睛会喷血。如果看到有人没有恰好的在两个函数间留一空行,我的小腿会抽筋。但重点在这里——除非是在家里开发自己的业余爱好软件,我的这些个人喜好其实是无关紧要的。同样,作为一个团队中的一员,你的个人编程喜好也应该放到一边。编码风格很容易会和编码规范混为一谈,因为这两个词经常会被人换着使用。我认为,编码规范同时包括了编码风格和其它规范,不仅仅指代码格式。例如,像“返回成功/失败的函数应该用一个整数作为返回值”,这样的规则不属于编码风格。在这 阅读全文
posted @ 2014-03-24 20:59 dai.sp 阅读(161) 评论(0) 推荐(0)
摘要:[原文链接]下面是一些迄今为止最好的关于编程的名言名句。阅读它们时相信你会有几分愉悦,你可以在一些会谈场合引用它们,一定能为你的团队吸引到不少的好程序员。UNIX很简单。但需要有一定天赋的人才能理解这种简单。–Dennis Ritchie软件在能够复用前必须先能用。–Ralph Johnson优秀的判断力来自经验,但经验来自于错误的判断。–Fred Brooks‘理论’是你知道是这样,但它却不好用。‘实践’是它很好用,但你不知道是为什么。程序员将理论和实践结合到一起:既不好用,也不知道是为什么。–佚名当你想在你的代码中找到一个错误时,这很难;当你认为你的代码是不会有错误时,这就更难了。-Ste 阅读全文
posted @ 2014-03-24 20:56 dai.sp 阅读(369) 评论(0) 推荐(0)
摘要:[原文链接]几乎已经有10年了,科技界的专家们一直谈论着摩耳定律的终结。就在本周,《经济学家(Economist)》发表了一篇文章,讲述程序员们如何开始使用函数式编程语言来驾驭如今已成为标配的多核处理器。事实上,这些新式语言的发明人,例如Rich Hickey (Clojure语言) 和 Martin Odersky (Scala语言),都在勤奋的宣扬这些语言如何给了开发人员们更大的能力来处理复杂的并行性编程,来充分利用多核CPU。本周早些时候,我参加了Scala语言日大会,去听Martin Odersky的讲道,他几乎用了一半的时间来讲这个主题。种种信息一遍又一遍的在向程序员表明:你需要写并 阅读全文
posted @ 2014-03-24 20:54 dai.sp 阅读(168) 评论(0) 推荐(0)
摘要:[原文链接]最近在读《real world haskell》里关于并行的一章时,看到作者首先对并发(Concurrency)和并行(Parallelism)的区别进行了定义和解释。以前我对这个问题也是一知半解,如果有人问题这个问题,恐怕我只能挠头说不清楚。而在这本书里,作者的解释是(简单翻译):一个并发程序是指能同时执行通常不相关的各种任务。以一个游戏服务器为例子:它通常是有各种组件组成,每种组件都跟外部世界进行着复杂的信息交互。一个组件有可能要处理多个用户聊聊;另外一些可能要处理用户的输入,并把最新状态反馈给用户;其它的用来进行物理计算。这些都是并发处理。并发程序并不需要多核处理器。相比之下 阅读全文
posted @ 2014-03-24 20:05 dai.sp 阅读(883) 评论(0) 推荐(0)
摘要:[原文链接]这里将向大家分享的是一些我对编程的思考总结,这些经验在我毕生编程生涯中曾帮助我在无数的事情上作出正确的决定。这些编程策略有些是很显然的,但实际编程中往往被人们忽略。下面的例子是用Python写的,但这些概念适用于任何编程语言。2. 代码优化找出程序的主执行路径——你的程序大部分时间都执行这些模块。首先优化这部分代码,但也不要在程序实现的第一次迭代中进行优化。那些处理边界情况或失败/异常处理的地方,这部分代码不需要优化,除非它们引起了值得注意的性能问题。 :).3. 代码行数不要试图压缩代码行数,但你应该压缩每个任务的代码行数。写简单的函数/方法,每个函数/方法只完成一个任务,而不是 阅读全文
posted @ 2014-03-24 20:01 dai.sp 阅读(272) 评论(0) 推荐(0)
摘要:[原文链接]我们说懒惰有三种。第一种,整天就是吃和睡。第二种,是告诉自己,“有一类人,就像我这种,是永远管理不好自己的。”在佛教思想中,这种懒惰会让你认为努力也是白费的,你永远无法获得精神上的救赎。无自信会让你打消任何企图努力一下的念头。而这第三种就是,把生命浪费在不是最重要的事情上,总是不从解决事情最本质的问题入手。所有的时间都在想办法解决次要问题,一个接一个,永远没有尽头,就像湖面涟漪的水纹。你在告诉自己,一旦完成了这个或那个,你将会去做一些更有意义的事情。…克服第一种懒惰——生活中只有吃和睡——的方法是反省死亡,反省万物终归尘土的自然属性。我们不知道何时就将死去,何事将会导致我们死去。所 阅读全文
posted @ 2014-03-24 19:56 dai.sp 阅读(424) 评论(0) 推荐(0)
摘要:[原文链接]如果你有一个4.2GB的CSV文件,里面有超过1200万条记录,每条记录都有50列。现在你要做的是把其中某一列的值全加起来。你怎么办?这是我最近看到的一篇文章的开头部分。文章介绍的是如何使用unix命令来分析大体积文件的文章。像我这样一个基本上都在Windows平台上开发的程序员,对他提出的这样一个问题,首先出现在脑子里的就是内存溢出、CPU达到100%、跑一个晚上。而对于一个Linux/unix高手来说,这真是小菜一碟,正如文章中介绍的方法,一行命令就完成了这个任务。(假设文件名叫做data.csv,行数据用竖线分割,我们需要总计其中的第四列。)cat data.csv | aw 阅读全文
posted @ 2014-03-24 19:54 dai.sp 阅读(150) 评论(0) 推荐(0)