折腾的快乐

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);

[……]阅读全文

Good Surroundings For Programmer

surroundings Programmers are those who work on creation, and they’re simple, hard-working and careless about dressing. They really need some special conditions to help to exhibit their creativity, since the very work is easily affected by environment.

1. Comfortable chairs. Programmers can keep a good sitting p

[……]阅读全文

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

1 劳动密集型公司

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

 

技术密集型公司

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

[……]阅读全文

back to top