Vim 学习卡和提鞋的问题

vimemacs1

题图由GraphSketcher(大名鼎鼎的Omni提供的免费开源产品)绘制。

Vim 这个系列很久没写了,今天从坑里捡起来,发现灰落了厚厚一层,抖掉灰尘,我决定续写 Vim 。在纸版《MacTalk·人生元编程》里我已经写了 Vim 缘起、模式、帮助、配置、概念、技巧和部分常用插件,手里有书的可以先看看那部分内容。今天准备写写 Vim 学习卡。

说到 Vim,常常让人想起 Emacs,在这个蓝色的星球上,在编辑器领域,永远存在两股暗黑势力,他们就是 Vim 党和 Emacs 党,这两股力量势如水火,分别守候着两大上古神器:Vim 和 Emacs……不停的有新人入会,也不停的有旧人出走,因为很多人发现这两大神器的学习曲线是如此陡峭和诡异,在没有发现神器的强大力量之前,这些人就离开了,去寻找 Eclipse 和 jetBrains 的庇护。但是永远会有一些人留下来,通过了艰难的考验,坚定的守护这两大神器……

以上是一种文艺的写法,真实的情况是:双方经常叫嚣 A 不配给 B 提鞋,B 甩了 A 几条街,到底是扔鞋还是扑街,就看谁的戾气更重了。古人云,文人相轻,其实技术领域也是一个德行,经常有人在人堆里喊一声「Perl 是世界上最好的语言,Ruby 不配给 Python 提鞋」,之后就是一群程序员争先恐后冲上去一顿群骂,等所有人口吐白沫笔走龙蛇的时候,发现原 PO 主早已转身离去专心致志的去写 Java 了,不带走一片 C# 代码。

对于这种技术争论,我的观点是:不提倡。

无论是夸,还是骂,您都得说到点子上,有理有利有节的文章永远胜过无谓的口舌之争,网络上的争论永远没有终点,成文成章才能流传。在这方面做的比较好的程序员,举两个例子:徐宥( http://blog.youxu.info )和王垠( http://www.yinwang.org ),倒不是这两个人的所以观点我都同意,而是他们写文章的态度非常值得赞赏。这两个人在「痛恨 Unix」领域还有过一次交锋,感兴趣的读者可以去他们的博客看看,可惜的是徐宥已经写的越来越少了……

今天的文章题图分别是 Vim 和 Emacs 的学习曲线,Vim 的曲线异常陡峭,但是当你度过了那一段艰难时候,就会领略到千帆竞发、百舸争流的美妙,并且从此天堑变通途。Emacs 则是初期似乎不过尔尔,但是学习愈深愈艰,而且还会出现回退,反复,360度大回环等匪夷所思的情况,到最后你终于明白,Emacs 原来是个伪装成编辑器的操作系统,满眼都是泪!

在互联网的江湖里流行着「唯快不破」的传说,一款互联网产品似乎不以迅雷不及掩耳盗铃之势做出来,江山美人就会白白拱手送人。圈地,出产品,拉用户,快干猛上,一抬头已经花团锦簇!当然,快的后果也可能是这块地压根没有江山美人,刨了半宿,其实是块盐碱地。在产品的成败上,都是以结果论英雄,所以,急性子成功了,当然唯快不破,慢公司赢了,那就是以慢打快,以柔克刚。

但是,「唯快不破」这个词,用来形容 Vim 却是最合适不过。我在之前的 Vim 系列中写过:

写过程序的人都知道,编程的时候双手大部分时间都放在键盘上,或编码、或插入、或移动、或定位、或查找,这种连续操作的时间和频率远远大于阅读、翻页、设置字体、摆弄样式等文案工作,而二者往往产生很多停顿和间隙,而编程时的停顿是非常影响编程效率的,所以 Vim 的设计理念就是通过模式的转换、命令的组合和数以万计的插件,保证程序员在编程的过程中,双手尽可能保留在键盘中央的区域,快如闪电的编辑文件,并且,不需要鼠标。

想做到快如闪电,就需要你记住四种模式切换(普通模式、插入模式、可视模式、命令模式)、大量的快捷键和命令,想通过死记硬背记住这些东西是不现实的,唯有长期坚持不懈的练习和使用才能达到随心所欲的地步,就像乔峰一般,任何平坦无奇的武功到了他的手里,均可化腐朽为神奇。难道就没有捷径和快速学习的方法么?

捷径真没有,方法可以有!今天就给大家说说如何通过 Vim 学习卡逐步实现从入门到精通。

所谓 Vim 学习卡,是用 Vimscript 编写的一个 Vim 脚本,其中包含了两百多个 Vim 用法。首先,我们把这个文件下载到本地,下载地址:

https://gist.github.com/gmccreight/7519289/raw/master.vim

为了避免混淆,把该文件复制命名为 study.vim,命令如下:

cp master.vim study.vim

用 Vim 命令打开文件,我们可以看到文件分为两部分,从第35行华丽的分割线以上是 Vimscript 脚本,用来创建三个命令:「,,」「,c」「,k」,后续我们将通过这三个命令操控 Vim 卡片。

分割线以下是两个队列,第一个是「= Study」,在37行,表示在学的 Vim 卡片。第二个是「= Known」,在831行,表示已知的 Vim 卡片。

开始时所有的 Vim 卡片都在学习队列种,每个 Vim 卡片有三行,第一行是命令,第二行是解释,第三行空行。代码片段如下:

M
go to the middle of the window(大写 M 把光标移到窗口中部)

L
go to the bottom of the window(大写 L 把光标移到窗口底部)

10L
go to the tenth line from the bottom of the window(10+大写 L 把光标从底部上移10行)

<c-d>
Go down half a screen(ctrl +d 向下翻半屏)

学习方式就是从第一个 Vim 卡片开始,学命令,看解释,然后进行操练,练习完成后通过那三个命令移动 Vim 卡片。具体做法:

1、在普通模式执行「:so %」,加载 Vimscript 脚本,定义上面提到的三个命令。

2、把光标移动到 Vim 卡片的第一行,执行:

,,:两个逗号,表示你已经比较熟悉这个命令了,但是还不放心,该操作会把 Vim 卡片放到学习队列的最底部。

,c:逗号+c,表示你对这个命令不明觉厉,希望很快再次见到它,该操作会把 Vim 卡片下移几位,这样你很快就能再次见到它了。

,k:逗号+k,表示你已经彻底掌握了这个命令,该操作会把 Vim 卡片移除学习队列,放入已知队列,也就是「= Known」的下面。

每次学习完成之后,用「:wq」保存退出,下次打开根据上次的进度继续学习。如此循环往复,生生不息,武功终将大成。

当然,你如果总结出了该卡片不包含的命令,也可以加入进来,不断完善,这个 Vim 脚本将变成你的 Vim 学习宝库。

这世界上一直存在一条路,让我们的能力从平庸到杰出,这条路漫长而艰辛,只有少数人愿意走下去,所以,优秀的人永远是少数——来自《MacTalk·人生元编程》

先有 Mac 还是先有钱?

macres

自从开设了这个公众号以后,收到最多的问题是:听了 Mac 君的介绍,我也觉得 Mac 很好,可是穷屌丝一枚,真买不起,怎么破?前几天我在微博上说,读了我的书,就有 Mac 了。居然有读者来问:这是真的吗?

今天我要郑重的回答一下这个问题:是真的。

你信吗?

你应该相信。因为我谈的根本不是 Mac 和金钱的问题,而是程序员合理投资自己的问题。

有时候很多人类表现出来的行为特别不可思议。比如大家会把很多资源和时间花在对个人成长毫无意义的事情上,而到了真正需要进行投入和学习的时候,我们会理直气壮的说:对不起,我既没时间,也没银元。

大部分程序员在这方面的表现绝对是「猿国不让须眉」,咱们会:

用大量的时间寻找各种盗版软件的注册码和注册机,而不是去购买几十块钱的正版软件。
用大量的时间搜索各种粗制滥造的扫描版电子书放到硬盘里,并安心的认为书中的知识都已经属于自己,而不是去买一本正版书籍并把它读完。
用大量的时间研究goagent、vpngate等免费的越墙方案,而不是去买一个 VPN 或「曲径」轻轻松松翻越长城并了解世界。
用大量的时间优化已经用了四年烂电脑以期击败85%的同类用户,而不是买一款配备了视网膜屏的 Macbook 去击败世界。

很多年过去了,前者以为自己节省了金钱,也积累了资源,他们擦擦汗,抬望眼,仰天长啸:我特么真是勤俭持家的好猿啊!这时他们会惊奇的发现,那些看起来傻乎乎的后者,早已一骑绝尘,夕阳西下,「前者」只能看到「后者」奔跑中的背影……和一缕尘埃。

当你还在为每年99刀的 iOS 开发者费用进行汇率计算的时候,人家已经开发出上架的 App 并工资翻倍了。当你还在纠结要不要买一本正版图书的时候,人家的书都已经开始第三次印刷了。当你还在为破解和安装盗版软件绞尽脑汁的时候,人家已经写出正版软件了。当你还在打工的时候,人家已经创业成功了……

每个人成长到一定阶段的时候,最值钱的是你的时间,而不是别的什么东西。这么说并不是鼓励大家无节制的花钱,但是,如果能够用合理的价格购买到工具、产品和服务,最好不要花时间去找替代品,至少,你要评估一下你的时间是不是那么不值钱。

写到这如果你们还不相信,我就给你们讲一个真实的故事:

今天下午一位老大姐把我叫过去,儿子马上要生日了,她准备送给儿子一台 MacBook,让我给选选。这位老姐算是我的老领导和老朋友,我自然不敢怠慢,问了孩子的年龄、学习程度和基本用途,然后分别为她介绍了 Macbook Air 和 Macbook Pro 的优缺点和使用场景,最后根据性价比最好的原则,推荐了13寸的视网膜屏 Macbook Pro,老姐听得频频点头。讲完后我擦了擦额头的汗水,问,您觉得满意不?满意的话我给推荐一个香港代购。

老姐问我,最贵的是哪款泥?我说15寸的 RMBP 高配。老姐说就是它吧,然后就高高兴兴下单去袅,还买了一堆配件……和 Apple Care!

现在你们知道了吧,土豪就是这样子生活的。钱只是一种资源,从资源角度来看,有了资源可以做更多的事情。世界并不以穷人富人划界,而是用自由度来划分你的人生的。

对于这样的大姐,肯定是先有钱,再有 Mac。

对于大部分程序员,想要有钱,你最好先有一台 Mac……


很多读者不断的问电子书与纸书的区别,这一点我在「纸书的秘密」一文中已经写的很清楚了,但鉴于很多人都是浅阅读,我就再说一遍:

纸书的内容比原来的电子版增加了 Mac 入门和 Mac 演化史系列、Linux 系列、Vim 插件系列、职场系列、编程与写作等内容,大概增加了十万字左右。另外,纸书的版面全部重新设计,我根据书中的主题和时间线,重新调整了文章的顺序和文字结构,更符合读者阅读习惯。

已经买了电子版的,买本纸书也不会有损失,不买亦然。当然,如果您愿意支持我,我同样高兴。

点击{原文}查看本书在知乎上的评价,如果您读来有感,也可以去写写画画。

曲径 – 翻越长城另一法则

getpic_new.php

前几天的文章《VPN – 长城内外,惟余莽莽》介绍了如何通过自动修改路由表实现 VPN 状态下内外网的路由切换,并在知乎专栏里获得了68个赞,对此我的感受是:赞。

然后就有很多读者询问,Mac 搞定了,我的 iOS 怎么办,Android 怎么办,你这样做让 Windows 怎么想?别着急,都有办法。根据我上篇文章的描述,Windows 和 Android 也可以通过类似方法搞定,但是不越狱的 iOS 则无计可施,上述方式设置起来还是费时费力的。

今天给大家推荐一个更好更智能的服务:曲径,它让你更为优雅的翻越长城。

曲径是一个先进而又易于使用的网站和App加速器,旨在帮助那些生活在中国(比如我们),但仍想在他们漂亮的手机、平板和电脑上用Twitter、Facebook 和 Pandora 服务的人们。

方法:使用 曲径通幽 进行注册,选择合适的套餐,然后根据对应设备的文章指南进行设置,分分钟完成,之后你就会发现,虽然霾还在,但墙没了。

注意:由于 iOS 上的Twitter 采用了SPDY 协议,导致曲径无法在 iOS 进行网络代理,解决方案:https://support.getqujing.com/kb/articles/18

祝大家翻的开心!

从容的生活

长假如流星划破长空,一闪即没,除了留下一些光影,就像什么都没发生过。一上班即千头万绪,另有新书上市,忙的不亦悦乎。说这些就是希望大家不用每天等着我的微信更新,也不用催促,文字这东西,催也没用,有时间有想法,我一定会和大家交流,实际上我已经规划了很多坑,有扯淡有技术,坑坑都在等,不用急,我们唯一的敌人就是时间。

《MacTalk·人生元编程》纸版上市以来销售一路走好,目前已经排到京东计算机品类图书畅销榜榜首。这个成绩让我非常惊讶,没想到咱们程序员也有今天!另外得感谢大家捧场,虽然大部分东西翻翻微信也能看到,但你们的鼓励是我写下去的动力。

京东今天下午已经卖断货了,随即又补了些书,目前该书是预订状态,可以下单,送货会晚几天。签名版已经消耗的差不多了,现在是随机发放。关于签名这东西,不用太纠结。Mac 君人生过半,几近不惑,从目前的迹象丝毫看不出我即将成为一个伟大的程序员、著名作家或中年优秀企业家的趋势,如果将来偶有小成,必是运气使然。所以,签名版就是个念想,没什么用,读书还是得看内容。但凡书中某个片段对你有所帮助,那就是我最大的骄傲。如果有如下反馈,那就再无遗憾:

今天在京东上买了这本书,感慨一下。我是在2012年9月买了mbp,由于自己对 Mac 系统知识的匮乏,所以关注了 Mac 君的微信。Mac君一直在微信里鼓吹 Mac 电脑用于开发才是神器。于是,为了不浪费自己的 mbp,我转行成为了一位码农(我学的是通信类的)。可以说是 Mac 君改变了我的生活轨迹。

今年我们的假期比较长,大部分读者开始上班的那天,我还有四天假期,于是提前回到北京,过了几天从容的生活。

很多人说春节期间的北京人去楼空,车道似乎都变宽了,去任何地方都不堵车,一切都变得那么美好,你开始想去每一个朋友家做客,你想给每一条路、每一座楼重新起一个温暖的名字,你幻想着北京的每天都像春节一样,那么从容……

其实你平时也可以这么从容!

当别人都在早晨8点的地铁上挤肉成饼时,你可以睡个懒觉或早起读读书,等到10点出门街上一样空空荡荡。当所有人堵在晚高峰的时候,你可以提前4点出来,甚至可以去后海溜溜冰,等吃了晚饭后再回家,有灯光和夜色,也从容。

大部分人在讨论生活的时候,基本都是从自己的立场和环境去考虑问题。你每天在地铁里挤的伸出不手看微信,就会以为全北京上班族都是「人进去,相片出来;饼干进去,面粉出来」,「呼吸着别人的呼吸,嘴巴上时而还能飘过她的马尾」。你大过年的微信发红包抢红包玩的不亦乐乎,就会以为全国人民都在玩微信红包。但是,永远存在另一种生活,就像《国土安全》里的 Brody 在走投无路的时候,依然坚信:There’s always another way。

可是,明显有一些人,尽管数量上并不是大多数,在用另外一种状态生活。他们从容,他们优雅。他们善于化解各种压力,安静地去做他们认为应该做的事情,并总是有所成就。他们最终甚至可以达到常人无法想象的境界——不以物喜,不以己悲。

——摘自《把时间当做朋友》

写到这估计已经有朋友压不住邪火拍案而起了:「劳资房租都交不起了,你还在谈神马从容……」。这位朋友请放下板砖立刻从容。每个人都可以选择从容的生活,但可能不是现在,不是现在……

Mac 君年轻的时候上班在三环的马甸桥,住在北五环。为了避免挤公交坐地铁,每天骑自行车上班,春天一头土夏天一头汗冬天一头雪,现在想想绝逼过不了那种生活了。但是当时年轻啊,根本不算个事。几乎没人能生来从容,但是我相信现在选择不同的生活方式会影响我们十年后的生活品质。很多成功人士教导我们,要一步一个脚印,踏踏实实往前走,终能抵达希望的终点。我刚开始几乎信了,走了一阵才发现,这特么就是个恶意的谎言。如果一直这么走下去,终点倒是到了,可惜是人生的终点。

世界上存在两种职业,一种是按时记酬,按件计费的职业,每天进步一点点,工作了40年,就进步了 40*365 点点。还有一种是报酬具有突破性的职业,也就是说,你的工作成果不受时间限制,也不是按件计酬。你可能工作了15年获得的酬劳还不如按时计酬的人工作了五年。但是在第十六个年头,你的工作成果开始十倍或百倍的增长,你的生活不再是线性的,而是非线性的,你有了突破。你突然变得从容了,这可能得益于你前十五年的生活方式……也可能是运气!

后一种职业包括写作、表演、绘画、音乐、创业等等,当然,也包括编程。选择吧,让自己的工作具备突破性。

我现在依然不够从容,不过我幻想自己在奔向从容的路上……哈哈


今日推荐:

1、公众号:懒人在思考,ID:Lazy-Thought

维护者是我的好朋友余弦,也是之前推荐过的书籍《Web 前端黑客技术解密》的作者。余弦是安全领域的顶级专家,对 Web 安全领域有深入的研究。目前正在写一个黑客团队技术和管理的系列,非常有嚼头,推荐关注。

PS,这个人的懒都是装出来的。

2、今天 Mac 君在网易云阅读开了一个帐号,一样的名字,一样的味道,可能有不一样的内容和阅读体验,有使用网易云阅读App的读者,可以关注一下,评论和交流似乎更方便一些。订阅搜索 MacTalk 即可。

点击{阅读原文},访问网易云阅读版的 MacTalk。

纸书的秘密

<br /> 纸书的秘密<br />

纸书的秘密配图 2

今天接到出版社通知,《MacTalk·人生元编程》已经在京东各地区全面上架了,目前的安排是京东首发签名版,有需要的读者可以去京东网站订购,相关链接:

京东:http://item.jd.com/11398297.html

亚马逊:http://www.amazon.cn/dp/B00ID5UV30

当当:http://product.dangdang.com/23417548.html

互动出版:http://product.china-pub.com/3769393

下面就给大家说说,为什么有了电子版还要出这本纸版的元编程,纸版与电子版的主要区别除了纸,还有啥。整个事情的经过是这样的,在一个月黑风高的夜晚……

在这本书付印的最后阶段,本书的责任编辑杨海玲老师找到了我说:书要出版了,你要不要写个前言和读者说两句?我说:来得及吗?杨老师郑重地看着我点了点头。好吧,那就说两句,于是就有了这一篇前言。

我小学四年级之前一直在农村居住,那时候没见过汽车,只见过马车和小推车。搬到城市之后才发现,这世上居然有汽车这种交通工具,那时我的理想是当一名212吉普车的司机。后来见的车多了,觉得司机不够神气,我希望拥有一辆自己的汽车。这个理想在长大后也实现了。但是我从没有想过自己会出版一本书!今天这本书也要出版了,我很欣慰。

现在回想起来,这本书的诞生经历是传奇和值得称道的。我从来没有出版过一本书,曾经有几次心血来潮想写本技术书,结果规划完目录后自己已经疲惫不堪了,看着层峦叠嶂的目录结构,我仿佛走在一个没有出口的迷宫,想到以后的每个日子都要用业余时间去写这些枯燥的技术文字,我仿佛置身凄风苦雨中而茫然若失,所以,写书计划还没开始,就已经结束了。但是大家都知道,胸中有丘壑的人总能找到吐槽的土壤,是金子总会发光。2012年8月微信推出了公众平台,我终于找到了一个写作的契机。

2012年12月,我开始运营自己的微信公众平台“MacTalk By 池建强”,几乎每天一篇,半年内写了100多篇文章。之所以能够坚持下来,我想得益于公众平台的交互性和正向激励,如果每天都有人告诉你,晚上不读完你推送的文章就不睡觉,你也会坚持下去的。慢慢地读者越来越多,很多数字出版界的朋友也加入了这个队伍。突然有一天,他们不再潜伏,而是爬起来告诉我,你的这些文字该收拾收拾出本书了!我原本是不信的,不过,先是多看的朋友这么说,然后是豆瓣,然后是亚马逊,然后我就信了。这种感觉就像是我一个人混迹于敌占区多年,突然冒出了很多自己的同志,拍着我的肩膀说:小同志,你干得不错!我感到无比荣耀,紧紧握住他们的双手,激动的说:可算找到组织了,其实,俺早就想出本书!

于是电子版的《MacTalk·人生元编程》问世了,书中的内容截止在2013年8月底。

电子书上线后获得的赞誉超乎我的想象,在多看平台上线当天就跃居畅销榜第一名,从此一路榜首,整整霸占了一个月之久。随后上架的很多新书都对我这本书发起了猛烈的攻击,最终都如潮水般褪去,它们失败了,包括韩寒推出的《一个》。因为这个原因,程序员老赵时不时调侃我为“超越韩寒的男子”,虽然这句话看起来错误百出、逻辑混乱,完全不像出自一个优秀程序员之口,但我听起来还是若有所思的。

截止到2013年底,多看上的《MacTalk·人生元编程》获得了700多个评分,平均得分9.1,另有230多条读者评论。有些读者说这是他们的第一本电子书,有些读者说一口气读完,酣畅淋漓。我的感受有两点:

  1. 我为电子书事业做出了些许贡献;
  2. 又不是武侠小说,读那么快有必要吗?

事情终于到了峰回路转的时候。电子书虽然风光,但仅限于电子阅读的领域,而且,单纯的电子书是没有ISBN的,想做个图书认证都不行,还不能签售,你总不能卖本书搭个镌刻版 Kindle 吧。这时候另一群关键人物出现了,他们是传统出版界的好朋友。每个人都告诉我,电子阅读确实是未来的方向,你已经考虑了未来的事儿,那现在的事要不要管?只有电子版,你让广大钟情于纸书的群众怎么看?让想要签名版的读者怎么看?……于是我觉得,是时候出一本升级版的《MacTalk·人生元编程》了。最终这个重担落到了程序员的好朋友、人民邮电出版社的杨海玲老师肩上。

和人民邮电出版社的合作是轻松愉快的。我继续写作,除了完善之前的文字之外,还要为这本纸质版再增加十万字。出版社的编辑和美编则开始对于原有的文字进行校对和美术设计。一切都很顺利,除了我偶尔出现写不下去或改不下去的情形。杨老师对我是非常宽容的,遇到这种情况,她就会语重心长地告诉我:对你我心里有底,选题咱已经报去了,选题号也已经批了,情况就是这么个情况,所以您写也得写,不写也得写,还是写吧。于是我的文章顺利地完成了……

剩下的就是杨老师和编辑们的工作了,他们像打磨璞玉一样一点一点地打磨这本书,从文字、内容、印张和色系选择,到最终的版式设计和封面设计,一个细节都不放过。修改顺利的时候他们不会来找我,偶尔找我的时候也是咨询一下我的个人意见,我只要一言不发或若有所思就可以了,因为杨老师他们总能找到最佳的做法。我唯一的任务就是等待,或想点儿别的。

最终的成书就是您手中的这本书,它的封面设计和正文版式都是独一无二的。书封简约大方,干净得一塌糊涂,体现了MacTalk所倡导的纯粹之美。没有腰封,没有邀请业界大牛和土豪在封底写推荐语(年底了,他们都在做新年计划,我就甭给人家添麻烦了)。正文采用图文并茂的方式,页码和标题都精心设计过,如果您获得了良好的阅读体验,那么我们要感谢这本书的美术设计。

书的内容比原来的电子版增加了 Mac 入门和演化史系列、Linux 系列、Vim 插件系列、职场系列、编程与写作等内容,全书共计70多篇文章,划分为六大主题:Mac、程序员与编程、科技与人文、 人物、工具、职场。篇篇独立成文,可拆可合,您可以随时翻阅。Mac 主题的最后部分是130个 Mac 使用技巧,供 Mac 用户参考使用。另外,我根据书中的主题和时间线,重新调整了文章的顺序,更符合读者阅读习惯。

这既不是传统意义上的 Mac 用户手册或技术图书,也不是一本思想文集,而是一个70后程序员,以柔软的笔触,立于 Mac 之上,讲述技术与人文的故事,起于 Mac 而不止 Mac。书中写了 Mac,说了苹果,聊了技术,侃了人生元编程,汇聚了我个人的经历和悲喜。您读完了,有收获就是好事,不用想的太多。如果书里在讲 Mac,那就是苹果公司的 Mac;如果在说Shell,那就是操作系统的Shell,如果在聊程序员,那就是你我身边的程序员。我尽量做到文字简单、内容有趣,因为简单和有趣也是一种力量,希望您读完这本书以后,也能拥有这种力量。

王小波说,“每一本书都应该有趣,对于一些书来说,有趣是它存在的理由;对于另外一些书,有趣是它应该达到的标准”。我希望这本书达到了有趣的标准,同时还讲了一些有用的东西。如果您说没达到,那我下次继续努力。

在写作的过程中,我得到了很多朋友的帮助,包括技术圈和出版界的朋友。其中冯大辉先生在我运营微信平台和写作的过程中给予了诸多支持和推荐,并为此书作序;微信平台“二爷鉴书”的作者邱岳为此书作序并多次推荐;网友“密码有误”为此书作序并进行了部分文字的校对。杨海玲老师在成书的过程中起到了中流砥柱的作用,没有她的催促和辛劳的工作,此书无法出版,在此一并谢过。

特别感谢我的妻子和女儿,写作占用了我大量的业余时间,虽然我很努力地抽出时间去陪伴家人,但在这方面显然是不达标的。没有她们的包容、照顾和期盼,此书无法出版。

最后,我把这本书献给我的父母。我的父母就像千千万万的普通父母一样,永远在远方默默注视着子女的成长。我在他们身边得到了最好的教育和关怀,他们是这个世界上我最敬爱的人!

撰写于 北京,2014年1月8日,晴

日记——程序员的烦恼

OLYMPUS DIGITAL CAMERA

前天(2014年1月7日,阴,据说有人在延庆看到了几片雪花)


我用了一晚上的时间写了三千字,写完后已至凌晨。古人云,白发三千丈,缘愁似个长。写完三千字之后我找到了这种感觉,又读了 N 遍,改了 N 遍,终于沉沉睡去。醒来后再读,发现自己被感动了。这一点充分证实了,Mac 君依然在写作的道路上狂飙突进,以一个二把刀的身份。希望在下个阶段,Mac 君能够从二把刀转变为一个合格的工匠。

这三千字,暂时还不能发。

昨天(2014年1月8日,晴,大风吹)


我开了一天的会,会议从早上9点持续到晚上7点,期间吃了一碗面。参会的每个人似乎都发言了,但我忘了他们说了些什么。我自己也发言了,我也忘记了自己说了些什么。似乎做了很多决定和决策,又似乎什么都没定下来。我很疲惫。晚上回到家想写点什么,打开微信后台看到有个叫麻花的兄弟在吟唱:强哥,发个文章看看吧,火车上睡不着啊。我心想,难道睡不着也要强哥哄吗?多大岁数了都!接着我又打开了用户分析,取消关注的人数又增加了几十个,于是我很伤感。掐指算算,这一年取消关注的读者也有2万了,好在新增人数永远大于取消关注人数,否则后果是严重的,成为负数也是可能的。据说防止取消关注的秘诀就是什么都不写,让你的微信号静静的躺在读者的折叠文件夹里,既不发声,也不回复,也许会躲过一劫。于是我决定这个晚上什么都不写……然后眼前一黑,睡过去了。

今天(2014年1月9日,晴的厉害,气温似乎更低了)


事情似乎都走上了正轨,下午一口气处理完这几天累积的「年关例行事务」,效率还不错,看来从明天开始就可以写点代码并考虑2014年产品规划和实施的事情了。2013年我们的平台产品做了一个重要的 Release,开发环境大部分都迁移到了 Git 和 Maven 上,如果没什么变化的话,2014年我会把重点放到企业移动应用和 UI 模式优化上。要做的工作还很多,不过我不急,只要有人、时间和空间,事情总是可以做成的。

前几天送书活动公开了我的 icloud 邮箱,最近收到了不少读者来信,其中大部分都属于「程序员的烦恼」,今天有点时间,做个答读者问吧。

1、工作中提前完成了自己的任务,应该学习提升还是去帮助他人?
帮助别人完成任务也是任务。如果你提前完成了自己的工作,最好的做法是去问你的上级接下来的任务是什么。如果暂时没有其他任务也没有兄弟找你帮忙解决问题,那么就去看书学习吧。提升自己是利人利己的事。

另外,不要忘了好好利用剩余的8小时。

2、应届毕业生投简历到 BAT(百度阿里腾讯)石沉大海怎么破?
那就不要投嘛。据我了解,BAT 对应届毕业生的要求还是很高的,候选人太多,自然可以好好挑挑。石沉大海并不意味着你不够优秀,只是你现在不够优秀而已。放低身段,先去一些不知名的公司锤炼一下,如果能够做到独当一面,你的眼光和技能、经验都会不一样的,到时候再「说英雄谁是英雄」。

3、我现在从事 Android 开发,但我看好 iOS,我应该放弃 Android 转投 iOS 的怀抱吗?
如果你在 Android 的怀抱里获得的是冰冷,在 iOS 那也未必能找到温暖。Android-Java,iOS-Objective-C,虽然我更偏爱 iOS,但是这两个平台和技术,都是好技术,要不然怎么能分庭抗礼这么多年呢?如果你觉得做 Android 悲催,其实是你自己悲催,任何一门技术做到顶尖都是需要坚持和磨练的。

另外,为神马不双飞呢?这又不是结婚,亲吻 Android 的同时,不妨碍你拉起 iOS 的小手啊。少刷微博少看电视,就行了。

4、操作系统、算法、数据结构、设计模式到底该不该学,工作中根本用不到嘛!
最近搞「自媒体」的人似乎功利心大盛,每个人都觉得自己写了这么多字,我容易吗?也该有回报了吧?也该套现了吧?所以好多事情就有些变样。还好我不是自媒体,不用担心这个。

其实学习也是一样,不要那么功利。如果每学一门知识都想着怎么换成银元,第一是心累,第二是学成二把刀的几率大大增加。做为一个程序员,操作系统、算法、数据结构、设计模式等基础知识当然应该学,这是程序员的尊严。至于实际工作中是否能用的上,那是另一回事,用上了就是你的运气,用不上也是很自然的,我小时候还学了一大堆无线电知识呢,最终也没成为无线电专家啊。有人说很多技术不用就会忘记了,那就用呗,做开源项目,写文章,这都是用。退一步就算忘了也没什么,再看一遍就是了。

多少美好的事物,都他妈的毁在了功利二字上!


二把刀定理:写作永远是自己冷静让别人激动的事情,被自己的作品感动的或涕泪涟涟或击节赞叹的货,一定是个二把刀,证明完毕。