程序人生 ’ 目录下的文章存档

IT考古:1984年的鼠标使用指南

我们这一代人从小就开始和电脑打交道。我们已经熟练掌握该如何通过鼠标来指挥电脑完成各项工作。但是鼠标作为一种人机交互工具,不是在电脑诞生时就出现,未来也不会一直存在(00后最先熟练掌握的估计是iPad)。1984年,Macintosh 128K(麦金托)首次亮相时,鼠标对人们来说是一个绝对陌生的概念。因此Macintosh必须通过寓教于乐的方法,来教用户如果通过鼠标实现指向、点击、拖动等功能。

Apple的Lisa计算机是首款使用图形用户界面(GUI)的个人电脑,但是Macintosh 128K才是真正的把GUI以及鼠标广泛推向市场的产品。对于很多人来说,Macintosh 128K是他们的首台电脑和首次遇见鼠标。Apple自家的Macintosh使用指南由两部分组成,分别是软盘以及盒式磁带,配有同步音频说明。为了让用户对鼠标这个外形奇怪的新奇设备有更深入的了解,Apple在使用指南中特别列出一章节来指导用户使用鼠标,这一章的名字也很诡异叫“捕鼠”(MOUSING AROUND)
Apple和微软的Windows都有一份详细的使用指南,里面都有教你如何使用鼠标。如果感兴趣你可以装个Windows 95看看,又或者拿部Lisa来玩玩。现在我们就来看看1984年Lisa的鼠标使用指南。
阅读全文

对于程序员说的话,项目经理们是这样理解的

bbb

 

程序员:就目前的设计,我大概一周内就可以搞定基本框架。然后我们从头再优化整理、完善设计, 在接下来的一周提交一个稳定的版本。
项目经理的理解:整个项目只要两个礼拜就可以搞定。

程序员:是的,我可以写一些Web服务,通过这个服务,其他的开发人员能够与我们的系统进行交互。
项目经理的理解:他一人就可以构建出一个每分钟能够承受百万用户的负载均衡Web服务网站。

程序员:我们需要和下一版本负责人开个会,告诉他们除非有合适的构建部署服务器,我们无法按时完成项目。
项目经理的理解:没戏了!(泪奔中。。。)
阅读全文

请放下你的无效社交

有一次在北大讲座,遇到一位学生问我,“老师,你说学习重要,还是经营人脉重要?”看着他一脸大杂烩的表情,我先拿出本子记下了这个问题,然后告诉他说,这是个比较大的话题,我会仔细写篇文章放在网上的,然后给了他我的博客地址。而后又补了一句,“相信我,所谓的人脉就算重要,也根本没他们说的那么重要”。你愿意与什么样的人成为朋友?让我们细说从头。先动脑思考一下,你愿意与什么样的人成为朋友?

从幼儿园开始,每个人就都已经有一些选择朋友的原则——尽管并不自知。事实上,资源分布的不均匀,必然造成人与人之间的某种依附关系。

观察一下,就可以看到事实:幼儿园里玩具多的孩子更容易被其他孩子当作朋友。那么,玩具最多的孩子朋友最多么?答案并非肯定。如果你像我一样有机会、也恰好愿意多花一点心思与那个玩具最多的孩子交谈的话,你也很快就会发现,在他心目中,与所有成年人一样,朋友被划分为“真正的朋友”和“一般的朋友”。以下我们姑且把那个玩具最多的孩子叫做“小强”。
阅读全文

如何不被程序员(RD)们嫌弃--写给那些血气方刚的产品经理(PM)

最近有位刚做 PM(产品经理)的小伙跑来跟我控诉,说公司技术部的 RD 们(程序员)个个不给力。需求过了千百遍还是理解错,或者就是简单回一句“做不了”,表情如死灰。

这位 PM 血气方刚,张牙舞抓,脑子里总有一千万个新产品需求的想法扑腾着。他咄咄不停的抱怨 RD 们不配合,能力差,懒惰,没思考能力,没品位,顺带连抠脚味儿太大这种事也强烈谴责了。“擦,老子明天就去学编程!” 哎,我发现 PM 们都特喜欢说这句无比励志的话呢!

面对他,我的心突然惆怅起来。几年前的自己也差不多是这个模样,懵懂如白纸,但谁又知道这样的 PM,在很多 RD 的眼里就是个傻逼吧。身为一位女性 PM,我至今为止并肩合作过的 RD 团队超过 8 组共 200 多人(动荡曲折的职业生涯啊),受过的委屈流过的泪就不在这里赘述了,打算留着以后写小说。今天我只想浅谈一些自己总结的 PM 与 RD 相处之道,所谓人艰不拆,希望大家看完后能更理解彼此“都不容易”的立场。

PM眼里的RD分成两种:能沟通的,和不能沟通的。后者占90%。(呵呵)
阅读全文

我们应该如何对待技术信仰?

当你发现自己有了技术信仰时,不要尝试去磨灭它,而是去利用它!利用它带给自己的动力!

程序员的荣耀

  1. 编程语言战争:认为自己所用的语言是最好的。
  2. 编辑器的圣战:Vim和Emacs党派不断向对方发起攻击。
  3. 操作系统之乱:Windows、Linux和Mac OS阵营之间的不断争论。

看到这个列表,你一定深有感触。嗯,程序员荣耀(额,这是我自己起的名Programmers' Glory)已然把网络上的任何地方当成了自己的战场。

记得之前看过一篇博文叫做How Religion Destroys Programmers,翻译过来就是“信仰是如何毁掉程序员的”。

文中列举了众多被垢病的程序员的臭毛病和它们所带来的巨大危害。文中提到,这种自我强加的信仰导致的问题是,它让我们看不到真相,不去尝试别的技术。代码偏执为拥有Programmers' Glory的人关上了很多扇门。
阅读全文

一个程序员如何快速赚到一百万?

一个程序员如何快速赚到一百万,说的详细点儿就是:

一个固定工作者怎么跳出固有的模式,靠其他途径(投资、理财、生意、创意、外包等)赚得相对殷实的钞票?

80% 人都会问这种赚钱问题,但这种问题却太难回答,因为太难有个可标准化的模式去效仿或借鉴。


这个时代,赚钱不难,赚 100 万也不难,难的是要具备且能勤奋的执行的能够持续创造财富的思想方法:观察事物 – 分析分解事物 – 得出解决方案,且把每一个步骤一步一步“写”下来并踏踏实实实施,这个方法最笨,但是她是最踏实的,有了这个,钱是迟早的事儿。
阅读全文

如何成为一个伟大的开发者

英文原文:How to be a great software developer

作者简介:Peter Nixey,Ruby on Rails 程序员,前计算机视觉学者、企业家,Clickpass 公司 CEO,YC 孵化器的企业规划导师,Brojure 公司 CTO。

SONY DSC

 

作为一个开发者,最关心的不外乎提高自己的软件开发水平。那要从何做起呢?积累技术知识(比如Node或者No-SQL)?死磕那些经典的算法问题(比如气泡排序或者网址缩短)?或者是打牢基础?

作为一个程序员你的价值不是由你知道什么来衡量的,而是由你能做出什么来衡量的。两者看起来相似,但有着天壤之别。你的价值在于如何将项目不断向前推进,并带领团队一起进步。15年的开发生涯中,我从未需要去实现一个气泡排序算法或是网址缩短程序。我要做的是花成千上万个小时来编写和重构账户管理工具、邮件系统,编辑套件、测试套件,整理业务逻辑,部署脚本、JS层,进行架构分析以及文档管理等等。这些才是真正有意义的东西,完成了这些我们才能迈上新台阶。
阅读全文

我为什么要学习Linux?

好长时间没好好写点东西了,前段时间由于项目的需要出差了一个多月,期间各种加班,每天晚上加班到十点,回到宾馆实现是没什么精力再写博客了。有时间能静下来写点东西总是很好的一件事,如果写技术方面的博客,不仅能给读者提供一些解决问题的线索,也能加深自己对技术点的理解,如果写的是自己对项目的感悟,也算是对自己所做的工作的总结。现在终于有时间写点东西了,感觉还是不错的大笑

 

今天这篇博客不是写关于具体技术的,而是我对程序员怎样学习和提高自己能力的一些感悟。我是今年7月初毕业的,离开学校后就直接进入之前实习的公司上班了。现在算来工作了也将近半年了,算上实习的时间,将近一年了。在这期间,参与了几个android项目的开发,也维护过别人写的项目,虽然都不是很大的项目,但也学习了不少东西。在这其间,我亲身经历了一个设计拙劣的项目,是怎么样一步步趋于混乱而最终变的完全不可维护。从这件事情我了解到优秀的程序员是多么可贵,而“不优秀”的程序员是怎样把项目一步步的搞砸搞烂,也了解到做出一款优秀的软件是多么的困难。什么样的程序员才算优秀的程序员,而什么样的程序员是“不优秀”的?(我不愿意说别人坏话,只能委婉的说“不优秀”)作为一个工作不到半年的新人,谈论这个问题好像没什么权威性可言, 我也只是简单的谈论一下自己的看法,鉴于自己的阅历和经验不是很丰富,难免具有局限性,读这篇文章的读者可以指出我的错误。
阅读全文

做程序员压力山大,很多人都快疯了

a1

 

软件程序员在如今看来是一个既能挣钱又有工作保障的职业,但是,这种职业对你的精神健康却会造成巨大的伤害。

有两种事情几乎能让程序员疯掉。

一个是被人们称作“骗子综合征(imposter syndrome)”的东西。患这种症状的人通常是发现一起共事的所有程序员都比自己聪明、比自己有天份、比自己有才能。你生活中一直恐惧中,担心其他人会最终发现你是个冒牌货、你的技术和能力是装出来的。

经常会有女性程序员坦白说遭受”骗子综合征(imposter syndrome)”的折磨,这并不让人意外。这种精神疾病是由心理学家Pauline Rose Clance博士和Suzanne Imes博士提出,他们发现一些成功的女性会表现出这种症状。有很多心理健康类的书籍也以”骗子综合征(imposter syndrome)”为题材,在女性读者中很流行。

但是,大量的男性程序员也越来越多的表露他们也有这种精神压力
阅读全文

jQuery 之父:每天写代码

去年秋天我的支线代码项目 遇到了一些问题,项目进展不足,而且我没法找到一个完成更多代码的方法(在不影响我在Khan Academy方面的工作的前提下)。

我主要在周末进行我的支线,当然有时候也在晚上进行。这个方法对我而言效果不佳。我的压力太重了,我需要在周末努力完成尽可能多的工作(如果没做 到,我会为此感到挫败)。还有一个问题是我无法保证每个周末都有空,而且我也不想把周末所有的时间都花在编程上(失去一切放松娱乐的机会)。

此外,每隔一周进行编码的话,间隙太长了。太容易忘记你正在做什么,或者你还需要做什么了(即使你有笔记)。如果你错过了一个周末的话,问题就更严重了,间隔一下子变成两周了。多周的上下文切换可能是致命的(我有很多支线项目因为这类注意力缺乏而死亡了)。
阅读全文