Skip to content

四火的唠叨

一个纯正程序员的啰嗦

Menu
  • 所有文章
  • About Me
  • 关于四火
  • 旅行映像
  • 独立游戏
  • 资源链接
Menu

Category: Engineering Culture

折腾的快乐

Posted on 01/09/201809/25/2019 by 四火

sde

先讲个故事

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

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

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

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

……

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

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

于是写脚本,调试,

[……]阅读全文

Continue reading

再谈谈工程师

Posted on 06/03/201706/23/2019 by 四火

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

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

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

Continue reading

从工具使用的痛苦说开去

Posted on 10/25/201606/23/2019 by 四火

painful

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

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

Continue reading

谈谈月饼事件

Posted on 09/15/201606/23/2019 by 四火

mind control

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

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

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

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

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

[……]阅读全文

Continue reading

层次

Posted on 07/19/201406/23/2019 by 四火

level

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

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

[……]阅读全文

Continue reading

做工程和搞研究

Posted on 02/03/201406/23/2019 by 四火

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

curve1 curve2

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

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

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

[……]阅读全文

Continue reading

关于 Jeff Dean 的几个搞笑传言

Posted on 09/13/201306/23/2019 by 四火

JeffDean首先,Jeff Dean 是谁?

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

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

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

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

[……]阅读全文

Continue reading

不安分的工程师

Posted on 09/02/201306/23/2019 by 四火

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

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

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

[……]阅读全文

Continue reading

IT 外企在中国

Posted on 03/08/201306/23/2019 by 四火

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

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

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

[……]阅读全文

Continue reading

我眼中的工程师文化

Posted on 12/10/201206/23/2019 by 四火

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

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

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

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

[……]阅读全文

Continue reading

观点的碰撞

Posted on 12/03/201206/23/2019 by 四火

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

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

[……]阅读全文

Continue reading

《Rework》语句摘录

Posted on 11/25/201206/23/2019 by 四火

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

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

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

[……]阅读全文

Continue reading

程序员漫画

Posted on 10/26/201206/23/2019 by 四火

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

wtf

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

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

楼主贴图:

fox

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

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

下面还有 207 个其它回答:

xkcd

这是从大名鼎鼎的 x

[……]阅读全文

Continue reading

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

Posted on 10/25/201206/23/2019 by 四火

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

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

[……]阅读全文

Continue reading

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

Posted on 07/08/201206/23/2019 by 四火

本文纯属扯淡,欢迎对号入座。如果你不知道什么是普通青年、文艺青年和 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);

[……]阅读全文

Continue reading

Good Surrounding For Programmers

Posted on 02/05/201210/08/2024 by 四火

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

[……]阅读全文

Continue reading

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

Posted on 02/03/201206/23/2019 by 四火

1 劳动密集型公司

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

 

技术密集型公司

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

[……]阅读全文

Continue reading

订阅·联系

四火,啰嗦的程序员一枚,现居西雅图

Amazon Google Groovy Hadoop Haskell Java JavaScript LeetCode Oracle Spark 互联网 亚马逊 前端 华为 历史 同步 团队 图解笔记 基础设施 工作 工作流 工具 工程师 应用系统 异步 微博 思考 技术 数据库 曼联 测试 生活 眼界 程序员 管理 系统设计 缓存 编程范型 美股 英语 西雅图 设计 问题 面向对象 面试

分类

  • Algorithm and Data Structure (30)
  • Concurrency and Asynchronization (6)
  • System Architecture and Design (43)
  • Distributed System (18)
  • Tools Frameworks and Libs (13)
  • Storage and Data Access (8)
  • Front-end Development (33)
  • Programming Languages and Paradigms (55)
  • Testing and Quality Assurance (4)
  • Network and Communication (6)
  • Authentication and Authorization (6)
  • Automation and Operation Excellence (13)
  • Machine Learning and Artificial Intelligence (6)
  • Product Design (7)
  • Hiring and Interviews (14)
  • Project and Team Management (14)
  • Engineering Culture (17)
  • Critical Thinking (25)
  • Career Growth (57)
  • Life Experience and Thoughts (45)

推荐文章

  • 聊一聊分布式系统中的时间
  • 谈谈分布式锁
  • 常见分布式系统设计图解(汇总)
  • 系统设计中的快速估算技巧
  • 从链表存在环的问题说起
  • 技术面试中,什么样的问题才是好问题?
  • 从物理时钟到逻辑时钟
  • 近期面试观摩的一些思考
  • RSA 背后的算法
  • 谈谈 Ops(汇总 + 最终篇):工具和实践
  • 不要让业务牵着鼻子走
  • 倔强的程序员
  • 谈谈微信的信息流
  • 评审的艺术——谈谈现实中的代码评审
  • Blog 安全问题小记
  • 求第 K 个数的问题
  • 一些前端框架的比较(下)——Ember.js 和 React
  • 一些前端框架的比较(上)——GWT、AngularJS 和 Backbone.js
  • 工作流系统的设计
  • Spark 的性能调优
  • “残酷” 的事实
  • 七年工作,几个故事
  • 从 Java 和 JavaScript 来学习 Haskell 和 Groovy(汇总)
  • 一道随机数题目的求解
  • 层次
  • Dynamo 的实现技术和去中心化
  • 也谈谈全栈工程师
  • 多重继承的演变
  • 编程范型:工具的选择
  • GWT 初体验
  • java.util.concurrent 并发包诸类概览
  • 从 DCL 的对象安全发布谈起
  • 不同团队的困惑
  • 不适合 Hadoop 解决的问题
  • 留心那些潜在的系统设计问题
  • 再谈大楼扔鸡蛋的问题
  • 几种华丽无比的开发方式
  • 我眼中的工程师文化
  • 观点的碰撞
  • 谈谈盗版软件问题
  • 对几个软件开发传统观点的质疑和反驳
  • MVC 框架的映射和解耦
  • 编程的未来
  • DAO 的演进
  • 致那些自嘲码农的苦逼程序员
  • Java 多线程发展简史
  • 珍爱生命,远离微博
  • 网站性能优化的三重境界
  • OSCache 框架源码解析
  • “ 你不适合做程序员”
  • 画圆画方的故事

近期评论

  • Ticket: TRANSACTION 1.922915 BTC. Go to withdrawal >> https://yandex.com/poll/enter/BXidu5Ewa8hnAFoFznqSi9?hs=20bd550f65c6e03103876b28cabc4da6& on 倔强的程序员
  • panshenlian.com on 初涉 ML Workflow 系统:Kubeflow Pipelines、Flyte 和 Metaflow
  • panzhixiang on 关于近期求职的近况和思考
  • Anonymous on 闲聊投资:亲自体验和护城河
  • 四火 on 关于近期求职的近况和思考
  • YC on 关于近期求职的近况和思考
  • mafulong on 常见分布式基础设施系统设计图解(四):分布式工作流系统
  • 四火 on 常见分布式基础设施系统设计图解(八):分布式键值存储系统
  • Anonymous on 我裸辞了
  • https://umlcn.com on 资源链接
© 2025 四火的唠叨 | Powered by Minimalist Blog WordPress Theme