折腾的快乐

sde

先讲个故事

公司里有这么一个小小的差事,某一个月,每天都要把 Excel 的某一列的数据根据某种规则换算以后拷贝到另一列去。

DA(数据分析师)看了以后说,就手工完成吧。反正只有一个月,这件事情每天做 3 分钟,也没有多耽误时间。

TPM 看了以后说,这事情每天做做很简单啊,写一张便签贴在屏幕上,每天就不会忘记了。

Dev Manager 看了以后说,衡量一下这个很小的时间成本,用其它的方式来解决是不划算的,还是手工搞定吧。

……

不过地球上还有一种特殊的物种不同意。它门叫做程序员——这么重复性的劳动难道不能用脚本完成吗?

就是,用 geek 的脚趾头想一想,这还用问?

于是写脚本,调试,

[……]阅读全文

再谈谈工程师

IMG_1989昨天去参加了一个公司内的 expo,大致就是以团队为单位组织起来,做广告,招呼各种工程师去看,有团队介绍,产品介绍,技术介绍;有披萨、啤酒和零食;也有一些填方格的活动供参与和纪念衫可以领取。我们组也大张旗鼓地伴着各种搞笑的口号和宣传材料上阵了。挺有趣的一件事情,也是很有工程师文化的事情。

以前谈过不少关于工程师的话题,比如这个这个这个,今天想再谈谈。

其实自我工作以来,软件工程师这个职位变化很大,无论是职责、技术、待遇,但是不变的是,我看到优秀的工程师至始至终非常抢手,而且需求量很大。不扯没用的,任何行业优秀的角色都受欢迎,但是就我熟悉的 IT 公司来说,软件工程师始终处于特别的存在 [……]阅读全文

从工具使用的痛苦说开去

painful

是因为最近团队里的数据分析师(data analyst)向我抱怨,为了分析数据,要跑 job,要执行 pipeline,要用 Spark 来算结果,但是期间遇到各种问题,虽然我们一起研究问题的解决方法,但是依然非常耗时而且令人沮丧。这些问题大多并非数据本身的问题,而是工程问题。换言之,我认为数据分析师的价值在于数据思维,他们有我们软件工程师不具备的数据敏感性,他们能从海量的数据中获得有价值的信息——但是如今他们却陷入了因为工具问题而导致才华无法施展的境地,确实令人叹息。而工具的问题,正是应该由软件工程师来解决的。

上班同车的同事 Kai 和我说,现在和几年前不同的是,“全民 dev 化” 了。除了 [……]阅读全文

谈谈月饼事件

mind control

最近在程序员圈子内引起热烈讨论的月饼事件的详情在此,阿里巴巴也给出了官方回应,事件本身的大致内容是:

阿里巴巴有一些低于市场价的月饼供员工抢购,算是公司福利的一种体现。但是安全相关部门的 5 位员工写了脚本,利用内部抢购系统漏洞,抢到了超过限制数量的 133 盒月饼。

于是看到了各种各样的声音,有表示公司做得对;有表示公司的处理方式简直不可理喻;也有质疑公司 HR 的权力之大的。于是讨论就上升到了公司的文化,以及公司的价值观上面。

这件事情在互联网上的讨论已经非常充分了。以下是我的几个观点:

从公司层面上看,杀一儆百,给其他员工带来的是警示作用。我更相信他们只是为了践行这一点的牺牲品。有点必须绝对 “

[……]阅读全文

层次

level

以下文字,看看就好,笑笑就好。

最近在被一个问题折磨,大致上是,公司内部某些技术更替的关系,要把原有的一个鉴权的组件 A 淘汰掉,迁移到一个新的替代品 B 上,我估摸着也就一天时间搞定它绰绰有余了。没料想一猛子扎进去就没那么容易出来了,替换完成以后的测试傻了眼,发现了一个诡异的问题,于是追根溯源,把牵涉进来的林林总总一一拖出来检查排除枪毙,环境比较复杂,debug 起来又比较头疼,折磨了三天半的时间;最后还靠这个替代品 B 的问题列表里面,有某下游产品的工程师跳出来说是这个替代品自身有问题,分析代码怀疑是如何如何的一个 bug,于是我也按照这个思路修改它的代码,编译并且打上补丁以后,才发现确实修复了我遇

[……]阅读全文

做工程和搞研究

我记得和同事吃饭的时候大家在一起讨论,什么样的人可以称之为牛人,有人当即就提出来,对于我们这样做工程的人来说,谈何牛人呢?真正牛的人应该都是那些搞研究的大拿们。还有人说,这样说也不甚准确,只是牛人的比例和程度不同:

curve1 curve2

搞工程的取得成就的人的比例,要高过搞研究的(左图);但是搞研究的,取得的成就要大过搞工程的(右图)。

在推动生产力前进上,为什么 Page Rank 的发明人是工程师,而不是数学家?因为工程师最擅于把那些尚在理论上的东西转化为实际的东西。再比如像 Jeff Dean 这样的,工程师关心和解决的问题往往是最实际的问题。

但是说到严谨性,做工程和搞研究是同一的。二者都很容易被经验和那些显而

[……]阅读全文

关于 Jeff Dean 的几个搞笑传言

JeffDean首先,Jeff Dean 是谁?

我想许多程序员都对这个名字如雷贯耳,如果你没有听说过,可以扫一眼他的个人履历,你会感到无比惊讶的:

  • Google AdSense(在线上发布广告);
  • Protocol Buffers 协议,protobuf,用于把结构数据序列化;
  • Google News;
  • MapReduce;
  • BigTable;
  • Spanner,分布式数据库;
  • DistBelief,分布式的深度学习和并行计算平台;
  • ……

但是,最著名的就是他设计和实现了 Map Reduce 和 Big Table,这两项改变世界的技术。

坊间流传着许多关于 Jeff Dean 有趣的说法,我挑了一些我觉得有趣的列在

[……]阅读全文

不安分的工程师

goodOrNot 在超级杯中,拜仁和切尔西战成平手,点球大战中,20 岁的年轻的球员卢卡库站出来罚球,遗憾的是罚失点球,令整支球队失败,丢掉冠军。对于失落和愧疚的年轻人,切尔西的传奇射手德罗巴在 Instagram 上鼓励了他

“ 只有那些从不踢点球的人才不会罚失点球,罚点球你足够强大。你需要从中学习,我也有过类似的经历,在莫斯科的决赛中的红牌,还有半决赛对阵巴塞罗的比赛。坚持不懈的奋斗,更好的日子一定会到来。你是切尔西的一员,切尔西的球员永不放弃。”

弗格森在位曼联主帅二十六年,培养了小贝 C 罗等等一干球星,拿了无数冠军。一次对曼联主帅弗格森的采访。记者谈到各种各样风格的球员,

[……]阅读全文

IT 外企在中国

外企 要说这个话题是因为昨天和朋友聊起 IT 外企在中国就会“ 变味” 的现实。

朋友口中的 Google 中国,尤其是在那件众所周知的事情之后,实在是不能和本土 Google 公司相提并论。他以前在北京和上海的 Google 中国工作过,他说,把一群非常优秀的人放到一起,就能做出成功的产品吗?未必如此,他经历了许许多多失败的项目。在会上大家总是一致喊好、互相鼓励,但是私下里却清醒地意识到、谈论着产品的问题。可为什么就没有人公开地说真话?

我们可以细心数一数在中国的那些非常有名的 IT 外企,的确并没能够做出多少革命性的或者令人眼前一亮的产品来,在我看来这实在算不得成功。鲁迅早就说过,中国是一

[……]阅读全文

我眼中的工程师文化

facebook 现在 HR 和猎头也懂得,挖程序员不能光讲钱和项目了,多少号称工程师文化的公司花开北京上海,可是到底什么是“ 工程师文化”?谁能给一个准确的定义?

有人说,什么文化就是什么说了算的意思,工程师文化就是工程师说了算。这未免也太肤浅了。也有人说,工程师文化就是自由上下班、松散管理,做喜欢的项目。我想这依然是不恰当的,这些人只说出了工程师文化给工程师带来的权利,更何况这种对权利的认定还是片面的。

工程师文化的核心是什么:价值观。但是,它不止价值观。我在这篇文章中提到过工程师文化:

  • 首先,这个世界上大部分软件公司采用工程师文化的模式来运作的话,都会死得很惨。
  • 其次,
[……]阅读全文

观点的碰撞

argue 几周前我写了一篇文章,《对几个软件开发传统观点的质疑和反驳》,微博上、独立域名的博客上,还有 ITEye 网站上,都有一些评论的朋友给了我许多事实和观点。我觉得这些评论,似乎都有理由,无所谓对错,这些是有价值和有意义的文字。相较于那些“ 顶”、“ 支持”、“SB”、“ 沙发”…… 纯灌水或者是没什么意义的信息垃圾,这些文字要显得珍贵得多。

最近看了两本软件和创业方面的书,我的世界观总在不断小范围地崩塌和建立。现在愈发觉得,到底何谓对错,到底何为黑白,我是不是受到中国传统教育毒害太

[……]阅读全文

《Rework》语句摘录

37signals《Rework》是让我有所感触的一本书,推荐阅读。作者是 37signals 的创立人 Jason Fried 和 DHH(没错,此人正是 RoR 的作者)。37signals 有两本书,除了这本,还有一本叫做《Getting Real》。

整本书都在做 37signals 价值观的宣扬,37signals 是一家颇为特别的公司,小,但是非常酷,有一些想法令人叫绝。他们做的东西,用他们自己的话来说叫做 “web-based collaboration apps for small business”,整个公司只有 35 名员工,遍布世界各地,产品优秀,RoR 名声在外。

我喜欢做大事的大公司,但是更喜欢那些做大事的小公司

[……]阅读全文

程序员漫画

今天有一位同事群发了这样一张有意思的程序员漫画:

wtf

上面说的是,唯一有效地测量代码质量的标准是:每分钟 “WTF (What The Fuck)” 的数量。

然后,又有一位同事给了 stackoverflow 上的一个新链接,爆长的回复。帖子名称叫做:What’s your favorite “programmer” cartoon?(最喜欢的程序员漫画是什么?)

楼主贴图:

fox

这则程序打印的内容是:我再也不在课堂上乱扔纸飞机了。这句话打印 500 次。

后面有人吐槽:居然打印那么多都没有换行。然后就是关于这个 main 函数语法的讨论,哎,程序员啊……

下面还有 207 个其它回答:

xkcd

这是从大名鼎鼎的 x

[……]阅读全文

C++程序员和 Java 程序员的差异

C  _Java 首先说明,这几年接触的最多的程序员就是 C++程序员和 Java 程序员,这只是我自己的一点体会而已,一个人的眼光难免是浅薄的。不过,欢迎拍砖,也欢迎对号入座。

从对基础知识掌握的程度来说,例如数据结构和算法,C++程序员要比 Java 程序员牢靠得多。究其原因,大概是因为 C++程序员需要经常自己实现那些项目基础设施,但是 Java 程序员大多拿来即用。公平地说,C++不是一门适合程序员初学者的语言,但是 Java 是。C++程序看起来确实要比 Java 程序稍难懂一些,C++程序员往往思维更加严密。另一方面,我也发现内地的程序员要比沿海和发达城市的程序员基础扎实,而且低调内敛,不那么浮华,但是就是善于解决那些难

[……]阅读全文

普通程序员、文艺程序员和 2B 程序员

本文纯属扯淡,欢迎对号入座。如果你不知道什么是普通青年、文艺青年和 2B 青年,请绕道。我说的是程序员的版本。

 

笔记本电脑

普通程序员:

image

文艺程序员:

image

2B 程序员:

image

 

求 2 的 32 次方

普通程序员:

System.out.println(Math.pow(2, 32));

文艺程序员:

System.out.println(1L<<32);

2B 程序员:

System.out.println(2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2*2);
[……]阅读全文

程序员眼中三种类型的公司

1 劳动密集型公司

这样的公司以业务为导向,市场团队在公司中占据较高的地位。每一个技术人员最终被折算到了 “人天” 里面去,团队规模相对较大,所有技术人员都比较容易被替代,能力强的可以做更多的事情,能力弱的就少做一些。通过强有力的制度、政策和流程的规约,团队有条不紊地运作起来。业务氛围强势,技术通道升级较慢,需要非常长期的积累才可以获得丰厚的回报,诸多优秀人才脱离编码,而潜心转管理、谈需求并获得回报。愿意招纳毕业生编码,以减小运营成本。只鼓励小范围、浅层次的创新,对于优秀的创意、想法,必须转化为生产力才能够被认可。

 

技术密集型公司

这样的公司较为重视技术和创新,敢于在产品中使用预期能够

[……]阅读全文

back to top