不要让业务牵着鼻子走

这篇文章算是要和之前写的 《程序员懂业务有多重要?》“唱反调”了。

从工作开始,我就不断被灌输着一种业务至上的观点,无论在中国的公司,还是美国的公司,衡量一个决定或者一个需求的价值,都是在业务上有多大的帮助,都说 business impact 是什么。我从不怀疑单纯这样做的初衷,但是我质疑单纯这样做的结果。我觉得,即便是一个业务驱动为主的团队,在决策的时候,技术的占比,应当占据显著的地位。因而我说,不要被业务牵着鼻子走。继续把这一点发扬光大,我认为它对团队发展,对个人发展,都是如此。

曾经认为,这样的观点应该是公认的,但是我越来越发现,事实并不是这样。应该说几乎所有程序员都看到了业务上 [……] 阅读全文

我也谈一谈 996

最近程序员圈子里最闹腾的事情就是 996 ICU 了。这个事情是如此之火爆,我觉得都没有必要再把它介绍一遍了,连 GitHub 项目都被封了(指国内的主要的几款浏览器)。作为一个号称和希望长期话说程序员和为程序员说话的博客作者,作为一个同经历过大于 996 和小于 955 这样反差的程序员本人,我应当是具备一些说几句的资格的,但奇怪的是,除了大家都已经熟悉的那些烂大街的评论,想了几天却依然没有很系统的想法,似乎有不少头绪却不知从何说起。也罢,就说一点零散的观点吧。

关于我的经历

我工作已经超过十年了,从 2008 到 2012 年初,我是在华为度过的。华为这张招牌胜过一切 996 的广告语,从工作时间来看,最 [……] 阅读全文

倔强的程序员

对于程序员来说,大多数人公司都有技术和管理两条发展路线,通常在同一家公司,管理路线的发展可能性,要相对广阔一些;但是技术路线也有技术路线的好处,比如相对而言更依赖于硬实力,因而工作机会丰富。我相信有不少程序员都和我一样,坚守着技术路线,无论是进还是退,都对管理者的岗位没有什么兴趣。

兴许大家都听到软实力和硬实力的概念。对于一个技术人来说,硬实力大致上可以认为是计算机和软件工程相关的技术能力,1 还是 0,是还是非,会不会算法,懂不懂设计,清清楚楚,明明白白; 而软实力则反过来,听起来挺抽象,挺模糊,比如沟通能力,自我管理能力,但是却扮演者重要的角色,甚至随着职业生涯的发展,它的影响力越来越大 [……] 阅读全文

关于一篇讲华为“狼性文化”文章的不同看法

最近微信的朋友圈和公众号,被 《离开华为三年,我才真正认同狼性文化》 这样一篇文章刷屏了。基本上,评论都是正面的,表示支持、理解,或者赞赏。还有许多人表示,正是因为华为这样的狼性文化,这样的领导管理方式,才造就了公司今天的成就。

一开始我也没有太在意,后来发现大量的一边倒的正面评价和转发,我觉得我应该唱个反调,在这里谈谈不同的看法。如果您还未读过原文,不妨先移步阅读。

对于文中的观点,除去在开头的案例,我大致是认可的。特别是强调了实打实地做事给钱,坚持原则和不找借口,我觉得是值得用来树立一个好的典范的。只是开头这个案例太过瘆人,太过引起不适:

同事为与家人团聚,想调来我们办事处。

[……]阅读全文

程序员懂业务有多重要?

Image result for complex程序员懂业务有多重要?印象中我从来都说,“很重要”这句没有营养的废话。在许多项目中,业务才是真正驱使价值兑现(冠冕堂皇的说法,基本上意思就是“赚钱”)的法宝,而技术实际上有诸多选择,选择某一项并无太大区别。可是,老实说,下意识地,在技术和业务难以两全其美的时候,我还是倾向于选择那些从技术角度更有趣,但是业务上显得没“那么”重要的项目。我不讳认这一点,但是随着这些年的经验积累,或者说经历的项目的洗礼,业务的分量已经越来越大了。

在华为的时候,我做过一些杂七杂八的项目,其中最大的一个项目是一个大型的电信门户网站,由于我参与的是基线版本的研发,定制业务少,变态需求少,扩展性、性能、可维护性这些技术层面

[……]阅读全文

时间投入上的权衡

time management

时间管理被很多人忽略了。被忽略的一个原因是,我们被洗脑洗得太久,读到的鸡汤文太多,觉得一个人的主观努力程度扮演了过度重要的作用。事实上,这里有两个问题,一个是如何评价目标的达成,特别是人一生这个大的范围内的评价,鸡汤文中总把一个人在事业上的“成功”列为最大的目标,但实际我觉得这只对一部分人成立;另一个是,即便这个目标成立,主观努力依然被高估了——或者说,主观努力当然重要,而且对于大多数人来说,天赋并无法起到决定性作用,但是,许多人的主观能动力是类似的,结果却大相径庭。这里面,除了主观努力和先天天赋以外,明显还有别的因素在起作用,而时间管理就是其中之一。

几年前写过一点关于时间的 文字 ,不过都是

[……]阅读全文

关于中国的学校教育,我的几点杂乱的看法

来美国工作生活已经三年了,早就过了适应期,一些酸甜苦辣也尝到了。经常和同事讨论各个国家的趣事,经常涉及到的话题是教育。事实上这也是个敏感话题,而且似乎是个永久热门的话题。我不想扯得太远,只想表达对于国内学校的课程教育,我的其中几个观点。

英语从高考中撤走?

众所周知,国内的应试教育决定了,如果高考不考,基本上课程就和放松之用的选修课差不多。无数的父辈都教育我们要把英语学好,可是每当我们跟上问一句“为什么”的时候,除了“高考要考”之外,并没有什么强有力的理由,在耳边来回倒腾的无非是“要和外国人对话”啊,“中国要国际化”啊云云自己都不太相信的鬼话。这就好像很多家长要逼着小孩子学琴一样,[……] 阅读全文

写给实习生的第一天

intern

实习生(intern)和新员工有所区别。实习生仿佛一个长达 12 周(三个月)的面试,一起工作,一起解决问题。在最后有答辩和 debrief meeting 讨论结果。可能通过了,最后公司给 offer;也可能没有通过。即便给了 offer,还要面临双向选择,有可能实习生不理 offer,继续求学或者去别的公司,当然也可能选择到别的团队。

我的习惯是,见面的第一天,这些内容是必须要交代清楚的:

1. 近视和远视。

你会在接下去的时间里遇到大量的问题,也要去解决大量的问题,有的问题解决会让你获益很长时间,但是大多数问题解决也只是帮助当时的那个你。我们尽量选择一个平衡点,既要为了完成项目,解决那些无趣,但是又

[……]阅读全文

副业?副业才有趣,才精彩

think

搞副业是要花时间精力的。但是副业的好处在于,不用担心饭碗的问题,不用担心赚钱的问题,一心一意把爱好实践好就好了。开心就多做,不开心了就少做。我觉得只有拥有足够的选择权,人生才能称得上“自由”。我计划今年继续把文章写好,把琴谈好,尽量多去短途旅行,继续追曼联的比赛,争取一场不落。对于这些纷繁复杂的“副业”,只要身体健康,我一点都不觉得疲倦。

听到过这样一种说法,你不是 xx 领域内的专家/权威,就不要发表这一方面的观点。或者用反问句式,你有什么资格 xxx。这种万事巨高门槛的风格,扼杀了一批本来有兴趣在这一方面发表见解和热烈讨论的人。最终,这帮人自己最后也不怎么样,因为他们够哪一方面的门槛都够不上,

[……]阅读全文

“残酷”的事实

crazy

下面这些文字来自我在知乎的回答:“在真实工作中的编程是怎么样的,与学校里有什么不同?”

入行愉快。

首先,一言以蔽之,用两个字来概括,就是“残酷”,但是,好在是加引号的。有的不但残酷,还很无奈;有的则是在残酷的同时,还很有趣。搞工程和学校里的象牙塔大不相同,这也许老早就知道,但是绝对不是七八年前我想象的模样。你可以把它当成我没睡醒的呓语,也可以当成我喝多的胡话,或者是心情太差的时候写的吐槽檄文。反正,它们就在那里,事实就在那里。

总的来说,学校里面编程,或者在工作之余编程,是很有趣的,没有 manager 给你各种压力,也没有各种大神(比如 TMP、PM、SE 等等我都搞不清楚干嘛的职位)给你指点

[……]阅读全文

再谈程序员学英语

english

2012 年的时候,我曾经写了一篇 《程序员学英语》,总结了一些我对于英语学习的看法,包括为什么英语对于程序员来说如此重要,还有一些自己总结的英语学习的方法。时过境迁,在西雅图待了半年多了,于是在这些内容基础上,我现在有了一些新感触,以 tips 的记录在这里,希望对于像我这样对于英语学习天赋平平的程序员来说有所帮助。

先说明一点,通常情况下我不太赞同高强度的语言训练,譬如连续地花时间背诵红宝书,我没有 GRE 的迫切压力,自然也不会像那些莘莘学子一样花数周的时间反复强力地背诵和巩固红宝书词汇。当然,话说回来,这可能还是最佳的单词记忆方式,因为可以做到高密度的反复。在一周内记诵的词汇得到反复,比每天零零

[……]阅读全文

直面歧视

discriminate

最近在知乎上面看到不少关于歧视讨论的帖子,大部分人的观点都是,歧视是负面的,要避免歧视,尤其是在公众场合歧视的人,要惩戒。这条观点展开来的话题,大部分我都认同,只是我想补充的是,其实歧视没有那么遥远,不要把歧视的事情全部看做多么罪恶深重的事情,事情要一码一码分开来看,有轻有重,我向来厌恶鸡汤,统一的道德帝是可恶的。

首先,来澄清“歧视”的概念:歧视,是针对特定族群的成员,仅仅由于其身份或归类,而非个人品质,给予不同的对待。好,就针对这样的定义,有那么多人跳出来说,“我不歧视任何人”,“我不歧视任何事”,说说如此容易,可这样的话经得起考验么?从最简单的分类例子看起,知乎“歧视”话题 [……] 阅读全文

感悟

dream

在去年 《行动、眼界和体验》 这篇文章里面,我说出了一些感触,我还说,南京是个小盒子,北京是个大盒子,我肯定还会寻找更多颜色和其他风格的盒子。接着就在不到一年的时间里面,我的生活发生了巨大的变化。马云说过差不多这样一句话,年轻人总是喜欢变化的,要不然什么事情都论资排辈了,自然轮不到年轻人。毕业以后,南京的生活最安定和规律,北京给我带来足够的大都市气息,我工作、娱乐,并且享受大城市的便捷,却离家越来越远了。亲戚看起来我颠沛流离,难得回家,但是其实我还是过得踏实。但是今天掰指头算算,离开北京四个月时间,从工作到生活都趋于平静,我已经在异国他乡安顿定居下来了,人生的经历和体验,可谓有深浅、有浓淡,无疑

[……]阅读全文

也谈谈全栈工程师

thinking

纵使目标再大,人的精力有限,于我来说,早些时候远大目标隐约是“成功的软件工程师”这个样子,但是目标是需要逐渐细化的。这些年我渐渐对自己的定位和未来有了一个清晰一点的认识。确实我有很强的观点,觉得软件工程师需要有足够的全面性,在 《我眼中的工程师文化》 中我也说“工程师文化,不是只有权力的一面,它对工程师的要求,是每个人都要足够能干,都要做许多的事”……

但是,全面性不代表没有专精、没有方向。深度和广度统一的问题已经有许许多多过往的人和我说过了,不存在一个在某一领域精深的牛人但是知识却很窄,也不存在一个博学大师但是却没有一个自己擅长的领域;而方向更是不可回避的问题,以前和朋友开玩笑总结 [……] 阅读全文

谈谈足球青训、中国教育以及工程师培养

bacelona

关于足球

我从 98 年世界杯就开始看球了,从最早国内的申花球迷,到后来长期看英超诸强的足球、西甲双雄的足球,我也算是一介有一点儿球龄的老球迷。一直以来我很想说一说关于足球青训的话题,今年在莫耶斯带领下的曼联,球踢得无比难看,比赛输得体无完肤,我觉得我找到了一个契机。比赛看得多了,也就不那么容易激动,看球更加理性。和许许多多竞技运动一样,你无法准确预测一场比赛的结果,但是长此以往的比赛分析下来,能看得到许多问题,孰强孰弱一目了然。虽说曼联的比赛我几乎一场不落,但是看看国内论坛上的帖子,骂战是从来都不可避免的,但是对弗格森的盲目的个人崇拜和神化已经到了一个简直无可救药的地步了。我相信很多曼联球

[……]阅读全文

工程师的生活

life我忽然很好奇,想知道其他软件工程师的生活是什么样的?人永远都没有活在别人心中的形象那么绚烂,生活中总有无数烂事烦事需要处理,但是每个人都有自己享受生活的方式。逛了逛了各式技术博客和论坛,我发现大家似乎都太严肃了,太谦逊了,太学术了。做软件本来是一件很有意思的事情,但是这些帖子和文章无非就包括这么几种:

  • 技术文章,不解释,这部分当然是大头,虽然技术文章普遍不受欢迎;
  • 牢骚,喵了个咪的薪水低啊,呜了个汪的加班苦啊;
  • 心灵鸡汤,要励志、要发奋、要改变世界;
  • 长者语气教育后辈,“ 给刚入职的程序员们的警示”;
  • 无聊的纷争,Linux 就是比 Windows 牛逼

[……]阅读全文

自欺欺人的故事

cheat 看到吴军博士的一条微博:

不要看不起在生产线上干活,俺正经干过一个月,你对人生有很多体会。俺的一个朋友,一个非常大的跨国公司在中国的销售主管,大学毕业后第一份工作在宝洁,从一个偏远的城市蹬三轮买洗衣服做起。他讲有一次差点把他当盲流给抓了。我倒建议现在大学生毕业,下基层一年。

若是想强调“体验”和“经历”在人生中的重要价值,这番话的初衷自然是好的。比如这样的回复:

还是去一线做个两三年的好,想想现在很多所谓顾问根本没下过车间,却给工作几十年一步步走上来的主管做咨询,有时想想都害怕,只有理论就是空谈,譬如马克思害了多少人,空谈误事啊,切记!

我们见到太多的务虚主义者,太多的所谓咨询师和流程专

[……]阅读全文

有趣还是无趣?

funny 这是一篇扯淡,一篇 rant,或者是一坨不靠谱的文字。有一些观点过于偏激,如果你没法接受,也请不要太在意。

无趣的接口封装

我记得刚工作的时候,我的第一个正式项目是去写一个基于 SOAP 的 WebService 接口,那个时候觉得新鲜,“原来 web service 是这样子的!”;到了现在,已经写过各种各样的 service 接口,再也没有觉得做这样的事情很有意思,或者很有新意、很有挑战性,尤其是一些并不复杂的增删改查的接口(当然业务逻辑是有够繁琐的)。

有同事说,做界面、做 portal 并没有什么意思,都是浮于表面的东西。虽然我不完全认可,但在这个前端工作被普遍瞧不起的国度,而且从某些层面上说也对,可是我

[……]阅读全文

行动、眼界和体验

action 这是一堆杂乱的文字。可以认为它是我从去年二月份正式跳槽到北京工作以来,这一年三个月的时间里,出现次数最多的感悟。

不知道有多少人和我一样,有选择焦虑症,总是思考要做出怎样的决定而浪费了时间。事实上,在大多数情况下我们总不能做出完全正确的选择,就像人生永远都会充满遗憾和后悔。做软件也是一样,想一猛子扎下去把东西设计完美,就走上了彻底的不归路。倒不如,像 Facebook 说的那样,“move fast and break things”,先弄出一个符合你基本预期的东西来,然后再来细细打磨和深加工,做所谓的“refactory”?

这看起来像个权衡的算术题对不对?到底是思考久一点,调查久一点,慢一点

[……]阅读全文

进阶过程:程序员做项目的独立性

project 第一阶段:编码机器

这是最低级的阶段,程序员拿到详细设计文档,上面连许多方法接口都定义好了。重构一些代码,写一些实现,调用一些既定的 API,然后花许多时间在各种各样的场景测试上面。从做的工作上看,这都不能算程序员,最多,只是编码技巧卓越的码农而已。因为它几乎扼杀了一切创造力,但是这很常见,比如在一些对日外包公司,就是如此。

第二阶段:独立的实现者

程序员得到的只是粗略的设计文档,也许注明了外部接口的清单,还有框架和基础设施的 API,需求已经澄清清楚,接下去要做的就是发挥聪明才智把软件实现设计好,把代码写好,测试通过。这项工作可以在安静和独立的环境中完成,因为没有什么是不够明确的,那些本不清楚

[……]阅读全文

back to top