为什么你应该开始学习编程了?

有一家饭店的大厨,烧得一手好菜,经过口碑相传,客人从五湖四海闻名而来。然而这对饭店的老板来说,并不单纯是一个好消息。因为客人不是奔着饭店,而是奔着大厨的手艺来的。老板必须想办法留住这位大厨,否则他一旦被别人挖走,饭店的生意就会一落千丈了。然而即便老板不惜血本保证了大厨的忠诚度,风险也依然存在: 继续阅读

发表在 编程教育 | 3 条评论

2016年终总结

2015年其实发生了很多事,获部门优秀员工,一零和零一出生,58和赶集合并,应聘Google失败,接管黄页技术团队……

一转眼已经临近年终,我才发现自己已经迷失了许久。白天麻木机械地工作,晚上则在游戏中逃避和寻求安慰。《面试杂谈:“N年工作经验”真的有用吗?》一文中的程序员小A,其实就是当年我自己的一个缩影。 继续阅读

发表在 事件 | 3 条评论

未来我们该学什么语言?

在很久很久以前,有一个原始人狩猎归来,正坐在苹果树下歇息,突然一只苹果掉了下来,砸在了他的头上……

他揉了揉后脑勺,然后就捡起苹果开始吃。吃着吃着,他无意间抬头向上看了一眼,发现树上还挂着许多苹果……他突然想到一个问题:“苹果为什么会掉下来?” 继续阅读

发表在 文学, 杂文 | 4 条评论

为什么孩子总是学不好数学?

如果我们的教育,根本就不是着眼于培养儿童的创造性,我们凭什么在未来的某一天,要求年轻人展示他们的创造性呢?! ——《玩游戏,学数学》

近日有幸拜读了江子(北京市数学特级教师,现任运城国际学校校长)的新书《玩游戏,学数学》,读完后感慨甚多,特作此一文以示敬意。 继续阅读

发表在 文学, 杂文 | 4 条评论

“臭棋篓子”是怎么炼成的?

小李是一名狂热的象棋爱好者。

每次路过小区门口的棋摊,小李都忍不住凑上前去指点江山,挥斥方遒。一旦有人推枰让座,他便当仁不让地坐下与人对弈。小李的棋艺平平,胜负全看旁观参谋者的水平如何。若是无人指点,他几乎一胜难求。当有强手在旁时,他总是顺风顺水,到了残局占优时,倒也能尽情肆虐一番。

日子久了,小李渐渐发现:自己虽然坐在棋盘前,下棋的却不是自己,而是那些旁观者,自己只是搬动棋子的工具而已。 继续阅读

发表在 文学, 杂文 | 5 条评论

致那些在我生命中留下印记的猫

夜里10点,在回公司途中,得到家里消息,宁宁走了。

对一只已绝育的公猫来说,10岁绝不算长寿,这个年龄相对于人来说,大概在55岁左右。

虽然我早知到这一天总会到来,却没有想到会来得这么快。

宁宁是我收养的第一只流浪猫,也是我养到最后的一只猫。 继续阅读

发表在 事件 | 3 条评论

只有聪明人才能学会魔方吗?

魔方作为1970年诞生的一款经典智力玩具,风靡全世界已久。70后、80后的朋友们小时候想必都玩过。近两年由于《最强大脑》节目对的普及,魔方在国内又掀起了一阵新的浪潮。

作为一个曾经出了点小名的魔方玩家,常常会有人问我:“像我这么笨的人,能学会魔方吗?”

首先,答案是肯定的:能! 继续阅读

发表在 游戏, 魔方 | 5 条评论

面试杂谈:怎样才算“精通xx”?

招聘时,我经常收到一些非常彪悍的简历,这个也精通,那个也精通。比如下面这样的:

精通php、java、c#、mysql、python、javascript、html、css⋯⋯

这样的简历是不可能得到面试机会的,我认为这么写简历的人根本没搞明白“精通”的定义,并可以简单推导出以下结论:

  • 他列出的这些技术没有一项是他“精通”的;
  • 他缺乏学习能力和工作经验;
  • 他写的代码结构性和可读性很差;
  • 他是一个“表现型”选手,而非“进取型”选手。
然而,“精通”的定义到底是什么呢? 继续阅读
发表在 文学, 杂文 | 3 条评论

面试杂谈:“N年工作经验”真的有用吗?

由于公司业务需求,最近一段时间连续面试了几十位求职者。由于笔者在互联网行业工作,借助行业内的一些垂直招聘APP,也和200多位求职者进行了线上交流。

俗话说:“读万卷书,不如行万里路;行万里路,不如阅人无数。”

正所谓林子大了什么鸟都有,有从p2p公司出来高薪低能的,有准备了大量面经来蒙题的,还有被拒后忿忿不平发邮件来讨论的⋯⋯甚至有答题不顺拿面试官泄愤的

通过面试者寥寥无几,而通过者基本都拿到了offer。最近招聘工作告一段落,终于可以坐下来回顾这半年多来的面试,总结一些经验教训出来了。 继续阅读

发表在 文学, 杂文 | 3 条评论

石头和金子

有一个流传甚广的故事:

一个年轻人去请教智者:为什么我才华横溢,却一直得不到重用呢?

智者从地上捡起一颗石头,扔到乱石堆中,让年轻人去捡回来。年轻人在一堆石头中找了半天也没找到,因为石头和石头之间没有什么区别。

智者又将一块金子扔到乱石堆中,让年轻人去捡回来。这次很容易就找到了,因为金子在石头堆中是那么得显眼。 继续阅读

发表在 文学, 杂文 | 3 条评论

为什么你会生气?

我们身边总是有一些容易生气的朋友。他们凡事稍不如意便心生不快,一言不合便大发雷霆,好像有一颗“玻璃心”一样。你有没有想过,这是为什么呢?

我们身边也总会有几个不容易生气的朋友。他们脾气好到不行,就算被人当面欺凌,也能微笑面对。他们又是怎么做到的呢?

人的脾气好坏是天生的吗?这两种人的差距,难道是所谓的“修养”、“境界”吗?

不见得。 继续阅读

发表在 文学, 杂文 | 3 条评论

孩子“沉迷”游戏怎么办?

一直以来,青少年玩游戏被视为不求上进,报纸上充斥着各种青少年沉迷游戏后影响学习、甚至走上犯罪道路的新闻。教育界人士和家长们一边历数游戏的罪过,在面对游戏时“谈虎色变”;一边却不得不接受这一事实:绝大多数的孩子都爱玩游戏。

不久前,有位年轻有为的教师小C找到我求助,她觉得自己的学生没有上进心、好奇心,沉迷游戏,只会任务式地做作业,也从未见过其他爱好,所有的时间都玩游戏、玩游戏……让她有种深深的无力感。

小C问我:“你也曾沉迷游戏,但是你充满好奇心,甚至你所说的有虚荣心——那也是上进心的一种变式。对我的这种学生,你有什么建议吗?或许你能理解他们?”

我问她,你玩游戏么?她说,我不玩。我说,如果你不玩游戏,可能很难去理解他们。有本不错的书叫《游戏改变世界》,推荐你读一下……

后来,小C真的去买了这本书。 继续阅读

发表在 文学, 杂文, 游戏 | 标签为 , | 3 条评论

游戏与人生

什么是游戏?

我们从小就在各种游戏中长大:赛跑、踢足球、下棋、打扑克、踢毽子……这些游戏不仅伴随我们度过了欢乐的童年,现今还是我们休闲娱乐打发时间,乃至社交的重要手段。

然而由于现实条件的匮乏,我们所能参与的游戏一直受限于场地、道具,以及家庭经济实力和所处于的文化环境。由于这么多限制的存在,我们能玩到的游戏仅仅是九牛之一毛而已,很多世界级的优秀游戏我们仅停留在了解的阶段,更多的游戏我们连听都没听过。

在信息技术日益发达的今天,我们有幸能够跨越地域和文化的鸿沟,接触到更多的游戏。借助电脑游戏和虚拟化技术,我们更能突破场地和道具的限制,体验到原本不可能获得的感受和体验。 继续阅读

发表在 文学, 杂文, 游戏, 游戏人生 | 4 条评论

结果与目标

前两天面试了一位姑娘,简历上这个也精通,那个也精通。结果来了一看,很多基础概念都混淆不清,完全没有性能优化的意识。我就很诧异,这完全不像是有5年工作经验的人啊?

回顾了下她的工作经历,每份工作都不超过两年,最近两份工作不超过半年,都是新兴的创业公司,工资从12k涨到17k,又涨到25k。

这位姑娘报着拿更高工资的期望,却在发现在我这里连最基本的及格线都达不到。巨大的落差让她崩溃了,哭成个泪人儿,于是接下来的面试只好变成了心理辅导。

为什么会这样?

我慢慢了解到她是如何走到今天这一步的: 继续阅读

发表在 文学, 杂文 | 5 条评论

别了,2014

时间飞逝,2014年转眼就这样过去了。这一年因为许许多多的原因,竟没有写成一篇文章,甚为憾事。在去罕台的火车上写下此文,以证明这一年青春并非虚度。

工作

加入赶集之后,深刻体会到了“流程”的重要性。每次提交的代码在上线前需要经过同事review,并通过test(纯测试)、sim(测试代码+线上数据)、online(纯线上)三个环境的测试。在这个过程中,代码逻辑BUG、需求的遗漏之处一般都会被发现并修复。此外为了保证用户体验,只有在非流量高峰时才能进行代码上线,这样即使有问题的代码通过了层层关卡到了线上,也能最大程度上减少对用户的影响。之前在微拍写完代码后简单自测一下就直接通过FTP上线,结果自然是线上事故频频了。
继续阅读

发表在 事件 | 标签为 | 2 条评论

浅谈对CACHE操作的封装及最佳实践

作为WEB开发者,CACHE对我们来说是再熟悉不过了。但是,你真的有研究如何把它用得更“优雅”吗?下面以较常见的Memcache为例,谈谈对CACHE操作的几种常见封装方法,并推荐一种我认为最佳的实践。如果你有更好的解决方案,请不吝赐教:)

为什么要封装?

$mc = new Memcached();
$mc->addServers('127.0.0.1', 11211);
$key = 'test';
$duration = 3600;
$value = $mc->get($key);
if ($mc->getResultCode() == Memcached::RES_NOTFOUND) {
    $value = getValueFromDB();
    $mc->set($key, $value, $duration);
}

第一次使用CACHE的同学,往往会写出上面的代码。简陋且有效,拿来写个Hello World是再合适不过了,但是真正在项目中使用CACHE的时候,还这么写就太low了。没有异常处理和重试机制、不能做负载均衡,大量的重复代码……当你受不了维护之繁琐时,就会想办法来解决这些问题,那就是封装。 继续阅读

发表在 IT技术, PHP | 标签为 | 3 条评论

禁用QQ自动替换表情的功能

问题的描述

不知从何时起,QQ在聊天窗口中提供了表情快捷键的功能,比如输入 /v 会变成一个动画表情。这一设计的初衷是让聊天时输入表情更加便捷,但却给我们程序员们带来了不少烦恼。因为 / 作为linux下的路径分隔符,对程序员来说是一个极其常用的符号。

两个程序员在工作中相互沟通时,经常会互相发一些文件地址,比如:“看看这个文件/www/db/script/test.sql是不是有问题?”、“你更新一下view/search.php”、“你放到api/v5下面”之类。然而发到qq里就变成这样了:

不管是直接输入、还是粘贴复制,像“/v /se /db”之类这些组合都无法避免被替换成表情符号的命运。而且一旦发生替换,消息的接收者很难再将其复原。 继续阅读

发表在 IT技术 | 标签为 | 2 条评论

《禅与摩托车维修艺术》摘录

这本书我已读过多次,对书中一些精华句子实在爱不释手,便摘录下来与诸君分享。这些句子并非按出现顺序排列,为使读来更顺畅,我进行了一些整理和分类,并对部分句子做了润色。

良质

良质是一种思想和陈述的特质,我们不能经由思考的方式了解它,因为要给它定义是一种僵硬而正式的思考过程,良质是无法被定义的。但是即使良质无法界定,你仍然知道它是什么。

科学家之所以无法侦测出良质,是因为良质就是他们所侦测出来的全部。

虽然纯粹的良质对每个人都一样,但是体现良质的本源却是人人各异的。 继续阅读

发表在 文学, 杂文 | 2 条评论

再见,2013

转眼间,又是一年过去了。借元旦的一天假期,坐下来把2013年的头绪好好整理一下。

事业与工作

9月份,我离开了奋斗了两年多的微拍

之前一直在技术圈外混,这是我进入圈内的第一份工作,所以我非常珍惜。还记得11年4月我来北京面试时,不会php、不会mysql、没碰过linux、在火车上背vi快捷键……面试过后技术主管认为我技术太差不准备留我,而BOSS胡震生却决定留下我。

创业团队人手紧张,一个顶两个使,没有DBA、没有SA、没有QA……由于缺乏经验,加上自己粗心大意、一味求快,在工作中犯了无数错误,还造成了两起严重事故(参见反思一反思二)。感谢胡哥的一再包容,才让我能继续野蛮生长到今天。 继续阅读

发表在 事件 | 7 条评论

Dvorak布局下一种比较理想的双拼方案

我从2011年开始使用Dvorak键盘布局至今,十分享受它给英文输入尤其是敲代码带来的便利。

从2013年9月开始我开始想在Dvorak布局下使用双拼,为此我尝试了网上能找到的各种方案,但大多数方案都是为Qwerty布局设计的,在Dvorak布局下完全无法使用。我还尝试了一些Dvorak玩家自己设计的布局(如这里这里这里),但都不甚理想,总有很多输入别扭的拼音组合。

为了找到一种理想的双拼方案,我开始不断调整键位、实验方案、再调整。但往往解决了一个别扭组合,又会造成更多的别扭组合。最终我找到了一个终极方法,那就是刷全拼音表,通过穷举所有拼音组合来检查当前方案是否理想。

经过一个星期的努力,基本方案的框架已经确定。又经过几次微调之后,改良空间越来越小。现在我已连续使用此方案两个多月,感觉十分流畅,于是决定将之公布,与各位Dvorak爱好者分享。 继续阅读

发表在 IT技术, 事件, 效率 | 标签为 | 14 条评论