是什么造就了伟大的程序员(转)

aed7d2b181afbf9f

 回想起来就像是在昨天。那是2000年,在数据结构课程的课堂上,Pargas博士站在前面给我们讲一些关于数据结构的话题,一个SSH的画面投影在我们前 面的墙上。有人问了一个问题,他说了一些东西,差不多是这样的话“是这样,如果你想成为一个真正的计算机科学家,你需要从现在开始就使用vi编辑器”。

我想他是在笑谈,课后感觉他说的话并不是完全的正确,但作为年轻且容易被感染的我,回到寝室立刻就开始学习如何使用vi。学习过程不容易,花费了不少时间,但一旦掌握了其中的窍门,我发现,使用vi的确可以更快的做事情。

时间推到6年前,那时我对TextMate十分的着迷。我的工作是做Java开发,但同时我学习Rails,在业余时间开发一些Rails项目。那时几乎所有我读的文章和观看的视频都是说明和演示如何使用TextMate来完成文本编辑工作的方法技巧的。事实上,我每天都在使用的Eclipse想要把我变成一头蠢猪。于是,我买了一台Mac电脑,开机后十分钟内我就买了一套TextMate装了上去。

说老实话,这两种编辑器没有一种使我成为一个更好的程序员。 Continue reading »是什么造就了伟大的程序员(转)

PHP5.3开发者模式

PHP开发者模式

最近升级到php5.36 最新版本运行,总是会很多 “Fatal Error” 或 “Notice” 错误,后来发现Notice 是因为 php.ini 里在development模式下定义error_reporting = E_ALL | E_STRICT, 在此模式下php解释器检查语法比较严格,如果想忽略的话可以改为error_reporting  =  E_ALL & ~E_NOTICE 来跳过Notice级别的警告。

而deprecate的error警告,提示我们的PHP程序要与时俱进的向着最新的编码要求看齐,这样在以后升级PHP版本时才不会带来很多不可预测的错误,编码也更加规范。

php升级为5.3后,程序会报 Function split() is deprecated 的错误。 这是因为种种原因(主要是关于正则的原因,具体见后),split这个函数在新版本不支持了。 在php中,再使用deprecated的函数会报错,必须改掉。(java里deprecated的函数只是给警告,还可以继续用) 改为什么呢? 看第一个参数,如果第一个参数不是正则表达式,split改为 explode;如果是正则表达式,split改为preg_split。 explode会比以前快很多,因为以前要考虑正则,explode不考虑正则。 ————- PHP 5.3.0 之後的 regex, 希望使用 PCRE 的規格, POSIX Regex 都不建議使用了(統一 Regex, 避免規格太多?). 所以下述是不建議使用的 Function (POSIX), 與建議替換成的 Function (PCRE) 列表, . . . → Read More: PHP5.3开发者模式

程序员需培养企业家式的能力(转)

古人云:"劳心者治人,劳力者治于人。"时空流转,恐怕当代人对这句话的解读得适时更新了。古代劳力者,指的是农夫挑夫等粗重劳力,劳心大致指善用头脑的 翘脚老板。但到了当代,劳心与劳力的边界看似变得模糊,连街边摆个地摊什么的都得动动脑思考哪的人流量大些,而曾经让人无比崇尚的IT精英也有沦落成码字 民工的地步,没错,他们用脑,但是属于劳心还是劳力呢?尚且称为高级劳力者比较贴切。

当资源变得极大丰富时,资源的整合就成为了劳心者更高级的工种。这个世界上最具价值的工作无异于能让"1+1>2"的资源整 合,它不只是老板或企业家的专属,事实上每个人都应具备这样的眼光与思维,治人者治己为先。来看看一位IT界高级民工的感触,较有代表性,非技术工种同样 适合阅读:

在工程师这个圈子呆久了,我发现大部分的人都有一个共同点,那就是不善表达,或者说懒得表达。在公众面前 讲话会脸红,不能很好地表现自己,而且“善于表现自己”其实会被认为是一个缺点——因为大家都觉得有真才实学就好了,而且普遍信奉“低调”的做人哲学,那 些善于表现的人会被说成“很能忽悠”。

举个例子来说吧,李开复应该算是一个很成功的人了,而且是技术出身,但是你会发现这几年很多人都 对他有负面评价,说他“不好好管理公司,整天跑去演讲”、 “就是一个说书的”、“做秀”云云,都是针对他频繁出现在公众面前这件事情来说的,而且你会发现大部分的负面评价都是出自技术圈的。但是这种在公众面前演 讲、推销自己其实是一种很重要的能力,尤其是在现代社会,它是一种“企业家式的能力”。 Continue reading »程序员需培养企业家式的能力(转)

让休息的大脑工作

今天早上读了一篇关于高效编程的文章,它提到了“欲擒故纵”,制定一个行之有效的工作休息时间控制,给大脑留出休息和空白的时间,让我们一直关注的问题在“后台运行”,time  break之后重新回到我们的主题工作之后,能够带来焕然一新的效果。而且这个分时控制,防止了我们面对计算机时,工作和娱乐还有网络上其他的东西,海量信息轰炸我们的大脑,使我们大脑疲于应付,不能够思考自如,以至于工作效率低下,太多信息侵占了我们的注意力,甚至你连分清这些信息哪些有益都变得很困难。

有了这么一个分时控制,我们单独拿出不同的时间面对不同的信息,工作的时候更容易集中精力,解决主要的问题所在。time break 休息的时候让大脑远离工作,神游空白一番,可能解决问题的思路变得更开阔一些。下面是这篇文章。“ Continue reading »让休息的大脑工作

一个老程序员的随想(转)

软件开发的世界里充满了不理解客户不理解软件是怎样开发的、经理不理解开发人员、开发人员不理解指挥者

问题在于软件开发惊人的困难,造成很少有开发人员能够说出软件自始至终是怎样开发的,并能够对这个过程中会遇到的不同选择所隐含的结果表现出适度的理解。

在软件开发人员还很年轻的时候(十几岁或二十出头),他们通常集中精力学习和使用技术,称自己为perl程序员、Linux专家、EJB开发人员、.NET开 发人员等。对他们来说技术是最重要的事情Continue reading »一个老程序员的随想(转)