您现在的位置:首页
--> 外刊IT评论
iPhone五年来的变化 仿造的苹果电脑 我最喜欢的电脑我实在是买不起,希望没有人能看出它们之间的不同。 当看这张图片时,你的坐姿是怎样的?
• 也谈编程改革
如果我告诉大家,这篇文章出自一个只有20岁的小伙,我想很多人都会感到吃惊。至少我是吃了一惊,因为这篇文章涉及到主题听起来是很有深度的,我本人在20岁时几乎想都不会想这些事情,更别说研究了。但又过了这么多年,不知国内的青年们有没有追赶上西方的步伐,也能出现几个这样看起来很有编程天分的人?我最近看到了《编程改革 》这篇文章,里面的内容讨论到了我们的编程中存在的一个最根本的问题。我同意作者的观点,但我感觉很多的评论并没有理解他说的问题,所以,我打算用另外一种方式来说明一下。 我从事编程已经很久,主要是因为我痴迷于解决难题。
漫画一:软件编程 漫画二:使用LISP语言的程序员眼里其他语言程序员的形象 漫画三:学校里的编程和真实项目里的编程 漫画四:程序员与劫匪
引言 有些人可能还记得,去年年初时,我写过一篇文章介绍我是如何开始成为一个独立程序员的文章。 随着新的一年的到来,我想是该做一些反省/总结的时候了。在这篇文章的结尾,我会告诉大家目前为止我挣了多少钱。我计划把这种收入公布做成一种每月一次的例行公布,就像 KreCi 在他的网站上的做法一样。 但首先,我觉得需要用稍微多一点的篇幅先介绍一下我是如何计划和开创这整个“事业”的。计划部分故事很短。我已经受够了在电子游戏行业里不能按自己的想法做事的生活。我最后的一次尝试,一个网页游戏公司,是我和几个前同事一起开办的,由于投资人对我们的创意和技术丧失了信心,倒闭了。我又在另外一个公司工作,但很快,我认识到,我应该出来单干。于是,我: 辞职(那是一个目前为止我认为是最好的一份工作) 开始编程 我设法申请到了一个政府的创业扶植资格,能获得失业补助,外加一些健康保险之类的款项。我要依靠这些收入维持近9个月的
在薪水上讨价还价的方式有很多种,我要说的这一点也许并不是最好的。然而,如果使用的得当,会收到很好的效果。如果你正在跟一家公司接触(没有经过职业中介),而且事情看来很顺利,进度很快,你要保持这种面试的势头,但如果到了最后快要得到这个职位时,你要把节奏慢下来! 这有个例子: 你在四处求职,一个朋友,或一个同事,或一个以前公司的上司找到你,要给你一个职位。你面试了一次,你吸引住了他们。你进行了复试,你见到了CTO。一切都很顺利,因为你是一个有价值的人,你的资历说明了这些,CTO决定加快进度,决定给你这个职位。因为事情发展的太快,而且很顺利,很多程序员在这个时候都会在薪水上不是那么努力的讨价还价。毕竟,没有人希望打破这种和平的气氛。我遇到很多次有程序员对我说,“我非常喜欢这里的
我总感觉一个方法返回null值有问题。当读了Misko Hevery关于how to think about OO的博客文章后,又让我想起这个问题。 我感觉返回null值是有问题的,它大量的被使用在一个方法有不同的返回类型时。简单的用谷歌搜索一下“returning null”,你就会发现有建议把返回类型做成一个null对象。返回一个Null对象在某些情况下是合适的,但并不适合当你需要向客户端传送两种不同的东西的情形。用Misko重构的一段代码来说明这个问题。
下面是一系列的动作: 从小屋里拿出耙子,用它把院子里的树叶堆起来,然后把耙子放回小屋。 飞到西雅图,看风景,然后飞回。 把钥匙插进钥匙孔,打开,然后取出钥匙。 点亮你的手机,查看时间,然后把它置回睡眠状态。 看到这些模式没?你做一种事情,然后做另外一种事情,然后又撤销你做的第一件事情。或者用更精确的说法,这最后的一步是第一步的反向操作。一旦你认识到这种模式,你会发现它无处不在。拿起茶杯,喝一口茶,放回茶杯。同样,在程序代码里有到处都是: 打开一个文件,读取内容,关闭文件。 分配一段内存,用它做一些事情,释放它。 把内存地址内容加载到寄存器,修改它,然后存回内存。 虽然这很容易解释,也很容易举出例子,但想实现它却不那么容易。
本刊评论目前为止,据我个人观察,从语法角度上讲,最被人诟病的一种语言应该是LISP语言了。打开这种语言的代码,一眼望去,满目全是括弧,一层套一层。这种语言特征最大的问题是,它不符合人们通常的思维习惯。LISP语言的这个特点是个整体的语言现象,而任何一种语言其实也都有一些个别的很奇特的东西,其中有些会奇怪的让你摸不着头脑。有一个好事者在一个帖子上征集各种语言里不合常理的地方,结果收集到了320多条,问题最大最多的语言算是Javascript了,另外还有C,Java,Python,PHP等等。下面列出的是其中最有趣的几条。
本刊评论 首先,问这个问题的人是个天才,他怎么会遇到这样的一个问题。其次,回答这个问题的人更是一个天才,我难以想象他会回答这个问题,更难以想象的是,他的回答是如此的详细和丰富和完整,真正称得上诲人不倦。 既然遇到了这个问题,我们不妨也跟着提高一下。 这是一个Javascript语言题目,一个完全有效的等式,不信自己可以试一下,下面看看高人的题解: ++[[]][+[]]+[+[]] 如果把这段表达式拆分开来,它相...
一种很流行的说法是,程序员是把咖啡因转化成程序代码的机器。 说的是实情,随便问一个程序员,问他什么时候工作最有状态,估计他很有可能说是深夜。有人稍微早一点,有人更晚。有一种流行的趋势是凌晨4点起床,在破晓之前这段时间里做一些事情。而另一些人喜欢凌晨4点才睡觉。 所有这些的主要目的是躲避打搅。但是你把自己反锁在屋里不...
大家好,我是Google+基础架构团队的工程师。早在7月份,当Joseph Smarr开发出了Ask Me Anything栏目后,很多人都想知道一些关于Google+技术架构方面的信息。我们几个工程师觉得应该写一些关于这个题目的文章,给大家分享。 对于Google+团队,我们头一个要认真处理的问题就是:页面生成速度。在谷歌,我们十分在意速度,下面就是我们用来提升速度的5项技术。 1. 我们喜欢Closure 我们喜欢...
• 管道工程序员
前些时候,我曾把一个程序员称作管道工,可他并没意识到“管道工程序员”实际上是一种赞美。管道工通常是团队里最有经验的程序员。 从管道设备字面上讲,软件管道是用来把东西连接到一起。它发挥的作用是很多人根本不想看见、根本不去思考的东西,但它却是至关重要的。 Thomas Guest 画了一些图表来说明这个问题。经理们画软件结构图时通常使用大个儿的方块和小的...
Java程序员在使用Ruby编程时会有一种解放的感觉,一种从Java那繁琐的语法环境进入一个无拘无束、自由国度的感觉。随着Clojure和Scala等新语言的出现,这种对比的感觉会越来越强烈。Ruby在很短的时间里异军突起,很大的原因在于它的简洁和自由,比如下面一句代码: File.new("testfile").each {|line| puts line[-1] } 如果用Java来写,不知道要写多少行。Bruce Tate在《七周七种语言》这本书中谴责Java说:“...
Canvas标记很多年前就被当作一个新的HTML标记成员加入到了HTML5标准中。在此之前,人们要想实现动态的网页应用,只能借助于第三方的插件,比如Flash或Java,而引入了Canvas标记后,人们直接打通了通往神奇的动态应用网页的大门。本教程内容只覆盖了一小部分、但却是非常重要的canvas标记的应用功能――图像显示和处理。 图像来源 最常见的在canvas上画图...
上周,我和公司里四个技术负责人中的两个一起给应聘公司副总裁职务的候选人进行面试。屋里了所有人――除了我――都是典型的“技术型”人才――他们能写代码,有解决编程难题的经验,有计算机专业背景。我写最后一行PHP代码已经是2004年的事了,而且那些代码被一个真正的程序员在半年内给重写了。
JavaScript6让我很兴奋,这是我看了David Herman在YUIConf 2011大会上的演讲后的反应。我非常希望这些语言特征能尽快的在V8引擎上实现,这样我就可以在node.js里使用它们了。这些新增加的语言特征对于一个使用JavaScript的程序员来说,解决了很多以前使用起来很不方便的东西。尽管这个标准中2013年才能制定完成(大会上David这样说的),谷歌浏览器和火狐浏览器很有可能会...
本刊评论下面是stackoverflow网站上网友针对你看到过的最好的代码注释是什么样的?这个问题给出的回答的前10条: // 亲爱的维护者: // 如果你尝试了对这段程序进行‘优化’, // 并认识到这种企图是大错特错,请增加 // 下面这个计数器的个数,用来对后来人进行警告: // 浪费在这里的总时间 = 39h /** * 致终于来到这里的勇敢的人: 你是被上帝选中的人,英勇的、不辞劳苦的、不眠不修的来修改 我们这最棘手的代码的编程骑士。你...
HTML5是最新的HTML标准,或迟或早,所有的web程序员都会发现需要使用到这个最新的标准,而且,很多人都会感觉到,重新开发一个HTML5的网站,要比把一个网站从HTML4迁移到HTML5上容易的多,这是因为这两个版本之间有很大不同之处。 事实上,HTML5并没有对HTML4做什么重大的修改,它们很多东西都是相似的。 可是,其中有一些很重要的区别...
• Scala很难
首先要说的是,我是一个Scala粉丝,我作为一个Scala语言的倡导者差不多有5年历史了。我写了不少Scala语言方面的书和文章。我曾在数十个公司里做过Scala和Lift框架项目的开发。我对很多的Scala项目进行过代码审查。 我过去以为Scala很简单。它过去确实很简单,而且一直很简单,它是治疗Java里很多问题的良方。从“有些使用Java显的异常的困难或不可能的事,使用Scala却非...
在开始叙述这篇文章之前,我要非常清楚和明确的声明:“我并不是在鼓励你放弃NodeJS或转向Java”。 我一直参与在这种争论中。在我的编程界的朋友中一直存在着一种误解,他们认为NodeJS语言是将来的趋势。我对Javascript是百分百的喜爱(不是自吹,我有一段时间曾被认为是Javascript专家,我写了很多喜欢js的文章);关于Javascript闭包的优美,原型模式编程风格的优势,我是毫无质疑。但...
近3天十大热文
- [69] Twitter/微博客的学习摘要
- [67] IOS安全–浅谈关于IOS加固的几种方法
- [65] android 开发入门
- [65] 如何拿下简短的域名
- [63] find命令的一点注意事项
- [62] Go Reflect 性能
- [61] 流程管理与用户研究
- [60] Oracle MTS模式下 进程地址与会话信
- [59] 图书馆的世界纪录
- [57] 读书笔记-壹百度:百度十年千倍的29条法则
赞助商广告