《项链》中令人细思极恐的情节

2018年12月8日,全国首届“深度语文”研讨会在运城国际学校举行。我有幸旁听了严盈侠老师的《项链》一课。严老师指出这是一个现实版的《灰姑娘》:

都在描述女孩的共同梦想:渴望被爱、被尊重、被关注

都是去参加宴会,都想博得关键人物(王子 / 部长)的关注

都有一件本不该丢的东西丢了(水晶鞋 / 项链)

虽然故事结构相同,但《灰姑娘》是浪漫主义的童话,因此有一个幸福圆满的结局;而《项链》是批判现实主义的小说,因此有一个讽刺的悲剧结局。

我虽然不是像严老师那样的文本解读高手,但作为一名程序员,我天生对数据非常敏感。在阅读课文的过程中,我突然发现故事情节中存在一个重大的漏洞。课后就此问题和一些老师交流讨论,仍然百思不得其解。

半夜醒来,在床上思索良久,突然想通了,于是坐到桌前,写下此文。

Continue reading 《项链》中令人细思极恐的情节

弱者怎样才能拥有尊严?

有位同事来运城国际工作一段时间后,觉得周围到处都是强人,而自己干什么事都被批得一无是处,渐渐地对自己的人生都开始产生了怀疑。于是就跑来问我:

能力是有高低,没那么强大的人难道就不能有尊严吗?就是不能赢得尊重,难道还不能有应得的尊重吗?我并不想那么优秀,只想做个普通人,不行吗?

我凭直觉做了一番回答,对方似懂非懂,这事就过去了。回头想想,我发现自己并没有讲透,其实这里存在几个不同的问题:

我们该如何赢得别人的尊重
我们该如何看待别人的批评
我们该如何面对自己的失败

今天我就来跟大家聊一聊这几个话题,希望各位能有所收获,也欢迎在留言区和我作进一步的讨论。

Continue reading 弱者怎样才能拥有尊严?

我的第一首原创歌曲《成长》

少年的我,沉迷与游戏与网络,只想逃脱父母的控制;
青年的我,满足于初恋的完美错觉,未曾想及自己的未来;
成年的我,终于不得不面临家庭和事业的双重考验;
终于,我做出了一个改变自己人生轨迹的选择……

Continue reading 我的第一首原创歌曲《成长》

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

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

2016年终总结

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

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

未来我们该学什么语言?

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

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

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

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

近日有幸拜读了江子(北京市数学特级教师,现任运城国际学校校长)的新书《玩游戏,学数学》,读完后感慨甚多,特作此一文以示敬意。 Continue reading 为什么孩子总是学不好数学?

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

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

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

日子久了,小李渐渐发现:自己虽然坐在棋盘前,下棋的却不是自己,而是那些旁观者,自己只是搬动棋子的工具而已。 Continue reading “臭棋篓子”是怎么炼成的?

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

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

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

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

宁宁是我收养的第一只流浪猫,也是我养到最后的一只猫。 Continue reading 致那些在我生命中留下印记的猫

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

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

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

首先,答案是肯定的:能! Continue reading 只有聪明人才能学会魔方吗?

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

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

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

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

  • 他列出的这些技术没有一项是他“精通”的;
  • 他缺乏学习能力和工作经验;
  • 他写的代码结构性和可读性很差;
  • 他是一个“表现型”选手,而非“进取型”选手。
然而,“精通”的定义到底是什么呢? Continue reading 面试杂谈:怎样才算“精通xx”?

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

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

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

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

通过面试者寥寥无几,而通过者基本都拿到了offer。最近招聘工作告一段落,终于可以坐下来回顾这半年多来的面试,总结一些经验教训出来了。 Continue reading 面试杂谈:“N年工作经验”真的有用吗?

石头和金子

有一个流传甚广的故事:

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

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

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

为什么你会生气?

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

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

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

不见得。 Continue reading 为什么你会生气?

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

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

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

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

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

后来,小C真的去买了这本书。 Continue reading 孩子“沉迷”游戏怎么办?

游戏与人生

什么是游戏?

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

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

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

结果与目标

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

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

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

为什么会这样?

我慢慢了解到她是如何走到今天这一步的: Continue reading 结果与目标

别了,2014

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

工作

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

浅谈对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了。没有异常处理和重试机制、不能做负载均衡,大量的重复代码……当你受不了维护之繁琐时,就会想办法来解决这些问题,那就是封装。 Continue reading 浅谈对CACHE操作的封装及最佳实践