- 博客(107)
- 收藏
- 关注
一个六年级、12岁的程序员的演讲【视频】
托马斯,一个12岁的六年级的小孩,自学开发iPhone应用程序。大多数的12岁的孩子都喜欢玩电脑游戏——托马斯却自学如何创造它们。在开发出像“Bustin Jeiber”——一个“打鼹鼠”的游戏——后,他现在把他的技术用在帮助其他孩子如何成为程序员。 托马斯对科技和编程的着迷促使他学会了Python,Java,C等编程语言的基本用法。在开发完成了一个iPhone应用后,说服他的父母花...
2011-12-18 21:00:59 282
程序员的七大坏毛病
1.- 所有的程序都写的很烂,除了我的。我要告诉你一个坏消息,兄弟,所有的程序都写的很烂,包括你的。无论你在上面花多少功夫,其他大多数程序员总是会认为你写的代码很烂、他们能写出比你好10倍的程序。我在前几篇文章里已经讨论过了这个问题,你可以读读这篇文章和这篇文章,从中你可以理解我所说的所有的程序都写的很烂究竟是什么意思。如何纠正:不要挑剔别人的程序,有一天也许你的程序会被人放在聚光灯下...
2011-06-13 06:50:11 202
干嘛不去掉“I”和“Impl”?
今天早上我仔细研究TopShelf项目的源代码,想追查里面一个API的修改,突然发现TopShelf终于向新近流行的去掉接口名称上的“I”字母做法屈服了。在.NET上这还是个新事物,使用Java的人这样做了有一段时间了,但在.NET里很多都还是新事物。这些可不是从ruby偷来的。 如果你对此不太熟悉,我先解释一下,传统的习惯是在接口的名称前加入一个毫...
2011-05-23 06:33:01 263
IBM黑衣小组
通常,年末是总结反省的好时机。形势好的时候,我们祝贺自己干的漂亮,形势不好的时候,我们沉思犯下的错误。过去的一年对于很多人来说都不好过;特别是那些处在技术产业中的人们。我想,对于过去我们所做的错事,讨论的文章已经太多,所以我就不再老调重谈了。我想给大家讲一个关于做事做得超级漂亮的故事。这个事情已经成了计算机产业里的一个传奇。它是关于IBM的黑衣小组的故事。黑衣小组二十世纪六十年...
2011-05-16 09:44:11 124
为什么说PHP是个集中营
有一天我跟在DUMBO的一个非常棒的创业公司的老板聊天,谈到为什么非PHP界的开发人员普遍轻视PHP和PHP相关社区。他提出了一个观点让我印象很深,很大程度上是因为以前从来没有听到过这样的说法。如果你不知道大多数的程序员都会对PHP发什么样的牢骚,那么,这些牢骚差不多会像这样:语法丑陋缺乏其它语言都有的一些必要的特征(在5.3版本之前,没有命名空间,闭包)不一致的函数...
2011-05-13 08:31:43 141
组织一个实干小组
大概6个月前发生了一件有趣的事情。我的一个朋友突然想在晚上写程序,而且我也有相同的想法。我们都有各自独立的项目,于是我们就在他家里聚会,组成了一个叫做“午夜实干家”的团体。 做实干家,你必须要到场,要做什么东西。有时我们会浏览一会HN和看看电视,但主要的,我们编程序,写博客,或改进我们商业模式。自从我成为第一个追随者后,我又找到了...
2011-05-11 06:31:07 175
我们从亚马逊(Amazon)云事故上能学到什么教训
不管你称它为“云关”,“云终结”,或其它你喜欢的名词,总之,亚马逊的Elastic云计算服务持续的事故既可以被当作云计算的一次挫折,也可以被当作让我们知道如果防止它再次发生的契机。对于Amazon来说最出名的还是它的电子商务网站,但它的云计算服务同样是占有相当大的份量。它为各种公司提供了一个可扩展的、灵活的、非常高效的存储和传输它们大量数据的解决方案。它的这种从2006开始的按需购买的模式...
2011-05-10 06:52:46 258
Twitter从Rails迁移到了Java
Rail那插满五颜六色鲜艳羽毛的帽子现在跌落到了地上。Twitter决定放弃Ruby on Rails,改用Java,这次是包括他们的整个搜索库。早在2008年9月,他们就决定了把消息队列的后端程序从ruby迁移到Scala(一种Java虚拟机上的语言),而现在连同它们的前端也要迁移到Java。他们开发了一个可扩展的叫做Blender的平台,使用的是依赖Java NIO的服务器(N...
2011-04-25 07:51:29 114
编程是一种超能力
在一个科技和互联网成为人们日常生活中不可或缺的重要元素的社会里,会编程,就形同有了一种超能力。事实上,一个程序员,不仅能得益于可以很容易的接触到最新前沿科技,同时还可以利用这些技术把纯粹的思想转变成像软件这样实实在在、有用的东西。我觉得没有一个能比可以去编程更令人兴奋的时刻了。回顾在七十年代末期、八十年代早期,那是一个让程序员兴奋的年代,而到了如今,我感觉...
2011-04-11 07:59:01 245
谷歌如何测试软件 —— 第二部分
为了做到“you build it, you break it”这句名言所说的那样,有必要在传统的开发人员之上再增加几个工作角色。因为懂技术,开发人员做测试工作就更合适、更有效。在Google,我们新增的工作角色是来让技术人员负责去提高其他人的效率。这些技术人员通常把自己看作是测试人员,但他们真正的使命是提高生产率。他们的存在可以使开发人员更高效,产品更有质量,这些都是生产率最重要的部...
2011-04-06 07:18:46 122
只要一个返回语句
别再这样写了: public boolean foo() { if (true) { return true; } else { return false; } } 每次当我深入某个开源项目,看到大概是某个专家写的、并被有经验的专业人士审查过的这样的代码,我都会惊讶不已,竟然没有人去阻止这个开发...
2011-03-28 07:32:43 96
做一个女软件工程师的好处
女软件开发人员在我们这个社会上并不是很多,但作为这样的一个人并不是那么糟!我喜欢这个身份,很多并不是因为性别的原因:由于新发布的产品受到用户的认可而感到的兴奋,可以和优秀的团队一起工作,成为繁荣的Palo Alto创业社区活跃的一份子 … 但这还有许多原因让我享受做一个女性软件工程师。穿着随意我知道很多男性的技术人员都非常喜欢他们随意的技工穿戴要求,...
2011-03-21 07:55:15 132
没事儿别优化!
事实上你应该优化,但要在正确的地方,有足够的理由。我待会儿再聊这个。 我最近和在 Badgerpunch Games 的几位朋友一起发布了一个小的以XNA为基础的游戏,而且通过论坛和Twitter与这个独立的游戏开发组织保持密切的联系。游戏开发者十分在意性能问题,而且这很必要。没有人想要一个运行不畅的游戏。因为这些对性能的担忧,出现了很多关于优化技巧的提示和论文,都围绕着如何能...
2011-03-14 07:43:50 111
Integer.getInteger 你在逗我玩吗?
我刚刚发现在 Java 5 里声明的一个方法:Integer.getInteger(String):http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Integer.html#getInteger(java.lang.String)根据指定的名称得到系统属性的整数值。第一个参数将被认为是系统属性的名称。系统属性可以通过 Syst...
2011-03-09 07:19:06 173
创业者的80/20法则
这个世界上开发人员的数目我估计至少有5百万。通过应用80/20法则,我们可以估算出:这些人中,20%的人(1百万)想去创业这些人中,20%的人(20万)有足够的动力启动自己去干这个事情这些人中,20%的人(4万)将会真正的开始去做这些人中,20%的人(8千)将会真正的完成要做的事情这些人中,20%的人(1千6百)准备的足够充分来达到某种程度的成功要想进入最后一组,你...
2011-03-07 10:23:33 121
漫画:软件开发评估过程
我很喜欢这个漫画,我做过的项目没有一个不是拖拖拉拉的,边开发边修改需求,永远没有按照计划完成过。起初的计划看起来总是那么幼稚。可是反过来,经常会有人说,有经验的人很滑头,非要把一天能干完的事说成两天。我无语。 :)...
2011-03-05 08:55:28 115
今天Facebook的价值损半
最近,天使资金投资人Jason Calacanis的一份写于2010年2月10日的信件被公布,内容很有意思: 今天Facebook丧失了它一半的价值。Google Buzz 1.0 是一个比这个7岁之老的Facebook更优秀的产品。你可以看看TED的Scoble的一篇博客 ... 他从来没有离开过Gmail,他的发言会在即时间获得无数的回复 ... 这些都是比Facebo...
2011-03-03 10:58:31 118
今天,Facebook的价值损半
最近,天使资金投资人Jason Calacanis的一份写于2010年2月10日的信件被公布,内容很有意思: 今天Facebook丧失了它一半的价值。Google Buzz 1.0 是一个比这个7岁之老的Facebook更优秀的产品。你可以看看TED的Scoble的一篇博客 ... 他从来没有离开过Gmail,他的发言会在即时间获得无数的回复 ... 这些都是比Facebo...
2011-03-03 10:57:39 101
为什么搞计算机工作的人总是看上去很清闲
对于这幅漫画我没什么好说的,因为当你看着它是就会自然的感到其中的乐趣。也许你的计算机专业的员工、亲属,朋友就面对过这样的情况,甚至也能你曾和老板争论过这个常见的问题。 ...
2011-03-02 00:14:57 193
给想当程序员的大二学生的建议
Groupon是美国著名的团购网站,《福布斯》杂志把它评为“历史上增长最快的公司”,《时代》杂志将之入选为去年最佳50网站之一,《纽约时报》称它可能是史上最疯狂的互联网公司,今年1月5日,它拒绝了谷歌破天荒的60亿美元的收购报价。最近在美国“超级碗”的比赛中以每30秒3百万美元的价格插播广告,可惜广告的主题竟然是呼吁保护西藏人吃鱼的传统风俗,真是匪夷所思,让人大跌眼镜。不过最近Groupo...
2011-02-16 12:39:49 108
为什么我要称自己为Javascript程序员
Aaron Griffin写了一篇精彩的牢骚文章,主要是关于各种框架和它们能把程序员从主要业务编程中抽离出来的功能特征。概括一下他的主要论点,当你成为了一个“Rails程序员”,你使用的是一种易于理解但不通用的东西,它是从易于理解且通用的东西,如HTTP,SQL上抽象出来的一种东西。Rails上的知识是不通用的,如果你转向使用一种新的框架,你只得扔掉你现在的技能。Rails和你...
2010-11-04 07:24:51 80
给中年程序员的温暖人心的巴比奇的故事
你也许会认为设计出第一台计算机应该是年轻人的事。远非如此。巴比奇·查尔斯(Babbage·Charles)在1833年开始研究分析机(Analytical Engine)时年龄为42岁。 他一直从事于分析机的设计,直到1846年,55岁时。这时他停止研究分析机而转向差分机2号,伦敦科技馆于20世纪八十年代晚期将其建成。巴比奇于十九世纪50年代中期重新回到分析机的研究...
2010-11-03 07:32:56 146
开发人员需要知道如何做,做什么,和为什么做
你是否工作在这样的一个大公司里——他们工作效率缓慢,会议无穷无尽?你是否有被告诉去完成一个任务,去开发一个API,但你的不知道它会用在哪里,怎么用?你只是按照文档在技术上把它正确的实现?“如何做”是一个开发人员在团队生活中需要知道的最有价值的信息。但遗憾的是,有些人却认为这是开发人员在项目中唯一要知道的事情。我们不能这么认为。如果不知道自己做的究竟是个什么东西,即使是最高效的Ruby ...
2010-11-02 07:35:06 358
面向对象并不是目的
我经常会读到或听到有人说一些“这个和那个不是正确的面向对象”,或“… 面向函数”,或诸如此类的言论。我以前也会发表这样的言论——当我刚从大学出来的时候。这种的观点在昨天这里发表的一篇名为”what we don’t need in object oriented programming“里也体现了出来。后来,在现实世界中,我知道了这真正的事实:我们开发软件并不是为了让它面向对象...
2010-10-26 07:36:27 131
你必须解决它
随着时间的推移,很多程序里都会慢慢积累一些看似没用的或废弃的代码,没人敢动它们,因为担心会把程序弄坏。我认为,这些代码借助于人们对它的缺乏了解,害怕修改程序——这其实是源于一种迷信,而非出于理智——而驻留在程序里,成为了一种具有最隐蔽形式的技术债务。你也许在处理这些代码时会把程序弄坏,但你必须处理掉它们——为了坚守你的理智,为了保持程序的健康。 几周前,一个主要由我负责的我们的基础...
2010-10-25 07:46:12 84
不,我不会这么干的,这么做不专业
“哦,对,需求说明书上有点问题,但我们需要马上去做这个东西。系统上线时少不了它。每个人都需要它。它只是个小小的改动。这一定很容易办到,你们很快就能做出来。”-项目经理你跟项目经理、市场人员一起坐在会议室里。你听着他们根据著名的“need, must, easy, fast”猜想而得出的要求。你该怎么回答?你被逼到了墙角。在这样的会议后,你们有多...
2010-10-22 07:34:37 83
从为IBM选拔实习生中学到的经验
几个月前我曾在博客中公布了IBM要招聘两个实习生来填补它的长期(带薪)实习职位空缺。现在好消息出来了,经过广泛的筛选和一系列繁琐的手续(跨国事务总是这样),最终有两个学生成功的加入到了我们实验室的DB2团队。如果你想知道这两个学生是谁,他们是罗马尼亚的Marius Butuc和来自巴西的Henrique Zambon。他们都是很棒的小伙,你们可以在Twitter上关注他们(如果你是说葡萄牙语的...
2010-10-18 07:32:16 119
如何在面试中发现优秀程序员
我曾在一次面试中要求一个很有经验的嵌入式软件开发人员写出一个反转一段字符串并输出到屏幕上的程序。他在这个题目上挣扎了很久。这个家伙是个很神奇的人。你给他一些没用的零件,他能建造一个机器人,并能用程序控制它在屋里走来走去。他曾经参与过研制卫星,并且这个卫星现在正在轨运行。他只用左脑都比我能干。但是对于这个题目他却从来、从来没机会干过:在屏幕上显示什么东西。 有些人就有这种技能,能在面...
2010-09-30 07:29:25 73
软件业年龄歧视:一个日本人的观点
我打算给关于年龄歧视问题的讨论带来一个外国人的观点:在硅谷,可能有年龄歧视,但这里却不是最糟的。等你看了什么是真正的年龄歧视后,你才能对硅谷现在的形式有更深的认识。我工作在美国旧金山湾区,是一个40多岁的日本程序员。下面的故事是跟我的一个在日本的伙伴多年的谈话中获得的。在日本株式会社里,程序员(坦白的说,基本上是男的)在30多岁的时候要面临一个选择:要么追随“电梯”制度——员工的头衔每隔几...
2010-09-14 06:44:20 250
我害怕老程序员,因为我也变老了
作者 Dan McComas今天是我的生日。生日让我烦恼——每年的这个时候,我都会为这些自己不能掌控但又无可避免的事情而焦虑。那就让我们聊聊这个吧。今天,我开始担心在事业上的前途,开始担心我作为一个web开发者对这种工作的热情。我可以坦白的承认:我害怕做老程序员。现在,我担心我正在成为他们中的一员。我的职业生涯将成怎样——14年后,当我50岁时?过去的12年里我曾干...
2010-09-08 06:38:55 120
优秀的产品能得到用户,优秀的服务能赢得粉丝
上周Amazon公司邮件通知我,一位负责S3的产品经理要跟我聊聊我们对他们的服务的使用情况。(我们使用Amazon的S3提供各种图片和视频的存贮服务)。看起来我们有个绝好的机会来跟Amazon里面的人谈谈我们遇到的问题和希望得到的功能。一接通电话,我们就完全明白了,这个人完全不是来提供服务的。他只是想了解我们的想法,去计划如何提高销售额和留住客户。我不想在这上面浪费我的时间,也不想把购买计划告...
2010-09-07 06:40:03 106
Android = Java
最近整个Java阵营都陷于一场讨论Oracle和Google之间关于Android平台的专利诉讼官司的混战中。我已经在很多地方都发表过我的观点,但这确实是个 重大的话题,需要在所有地方反复重申这个观点 … 所以,这篇文章就是要再次的完全的揭露事实真相。第八大千禧年问题: Android = Java?前几天,有研究者宣称找到了P != NP的证据,这在编程界引起了不小的兴趣——至少为此狂热...
2010-09-06 06:40:12 100
漫画:嗨,我是Jim
在崩溃之前先检查一下自己。编者言:低头想想自己,真和图上的一样,每天上班,下班,上网,睡觉(一个人睡),自己好像还没感觉什么,可让外人分析一下,自己这样子就成了一个怪物了,这就是程序员的生活吗? 图片编译来源:外刊IT评论 :-)...
2010-09-03 06:59:31 149
证据就在代码里
招聘一个程序员,唯一对你有意义的是他能写出好程序的能力。 很少人像这样去招人,他们更喜欢去挑剔程序员的个人癖好和性格缺点。我一说出这样的话,人们大量的评论就会批评道:你错了,错了,完全的错了。 好的程序员需要具备沟通交流的技能,他们要有跟他人一起合作的能力。团队里不止你一个人! 事实上,人们会说:最好折中一下对技术上的要求,这样可以找出更能适应企业文化的人。 你不如这样说更...
2010-09-01 07:16:57 128
云计算与无状态会话
场景内容云计算因其软件上的按需付费模式而大获成功,它创造了一种伸缩性模型:如果有两个公司,它们正好在相反的时区里,白天都需要10台服务器,晚上减少到1台。那么一个云计算服务商需要11台服务器就能同时为这两个公司提供服务——在任何一个时间点,拿出10台给一家公司用,1台给另一家。如果这两家公司都使用自己的机器,他们每家都要买10台(总共20台)。其中9台机器会在夜里闲置。时区可不是...
2010-08-26 07:06:36 195
Scala是个有趣的语言
经常读我的博客的人应该知道,我最喜欢的编程语言是Haskell。我喜欢函数式编程,Haskell是一个能把函数式编程推向极致的语言。虽然如此,我仍然时刻关注着其它新兴的和即将产生的编程语言,特别是函数式的编程语言,所以,当Scala诞生之初我就知道了这种语言。当时,我粗略的对它了解了一下,并不是很喜欢;我感觉它的那些语法对于我的口味来说过于甜腻,而且这种语言看起来异常的复杂。...
2010-08-25 07:01:38 202
是否应该允许开发人员进入生产环境?
在Web开发公司里,有个问题会被一而再、再而三的提出来,这就是:“是否应该允许开发人员进入生产环境?如果是,允许到什么程度?”对于此,我的观点是,整体上,应该限制开发人员访问生产环境。在论证我这个观点之前,我想声明一下,我的立场绝对不是基于对开发人员的品质品行的判断——所以请不要往这方面想。首先我要公布一些常见的程序员们不喜欢或讨厌这个观点的论据:“系统管理员什么都不让我们干,他又...
2010-08-24 06:59:40 684
著名编程语录
+++++++++=一个好的程序员应该是那种过单行线都要往两边看的人。– Doug Linder, 系统管理员 任何一个工具,它的一个最重要的、同时也是最难以做到的方面就是对那些学习使用这个工具的人在使用习惯上的影响。如果这个工具是一种编程语言,那么,这种影响——不管我们是否喜欢——将是一种思考习惯上的影响。– Edsger ...
2010-08-23 07:47:03 69
千万要避免的五种程序注释方式
你是否有过复查程序时发现有些注释毫无用处?程序注释是为了提高代码的可读性,为了让原作者以外的其他开发人员更容易理解这段程序。 我把这些让人郁闷的注释方式归为了五类,同时把写出这些注释的程序员也归为了五类。我希望读了这篇文章后你感觉自己不属于其中的任何一种类型。如果你有兴趣的话可以读一下另外一篇文章 五种程序员(英文),和这篇讲到的五种程序员对比一下。 1. 高傲的程序员 ...
2010-08-20 08:17:25 60
漫画:程序员的宿命
程序员喜欢把自己装在自己的小天地里。一点点很小的事情就能让他们高兴起来。如果他们根据设计书完成了任务,他们会非常高兴。有时候一个小小的卡壳都有影响他们的心情。他们会非常沮丧。这个漫画就是描写程序员身上有趣的事情的 … 出自:外刊IT评论 :)...
2010-08-19 07:39:39 77
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人