抛弃中文书籍

如果我今天想学习MongoDB了,我绝对不会去买一本中文书来啃,为什么呢?

MongoDB这样优秀的技术栈,是有非常详细的官网的,而且官网的责任感和出发点和写书人是完全不一样的。

写书人除非是MongoDB官方团队成员,否则他的第一目的并不是教会别人,而是给自己的履历上加上一条“MongoDBXXX教程作者,MongoDB中文社区推广人”,因此故弄玄虚的可能性非常大,而官网一定是最希望你能学会的,否则他怎么售卖相关服务呢?

写书人一般都是独立作者,写完最多也就给身边的朋友把把关,这种所谓的把关,朋友也就是出于礼貌给你稍微挑几个毛病,根本不可能系统性地提出什么建设性的意见,而官网就不同了,背后是原创者团队,他们像review代码一样审核官网的内容,像对待每一次上线一样对待官网更新。

写书人接触到MongoDB的时候,基本MongoDB已经在国外火了几年了,然后经历一年的写书勘校,再到出版发售,再到被你注意到,又过去两年,实际上书里的内容早就过时了,这个时候你是根据书去下载安装老版本呢还是选择新版本,面对可能完全大变样的界面和功能呢?

书如果写错了,作者如何获取反馈意见呢?我觉得除非是狂热粉丝和不怕麻烦的人,才会根据前言中留下的联系方式去发邮件,而官网就非常容易了,你可以非常轻易地留下评论,或去官方的社区吐槽,或者去GitHub提issue,我亲身经验,一般两天之内都会得到反馈,并且问题会得到解决。

还有个老生常谈的问题,英文翻译成中文,总会有种不地道的感觉,明明是中文,有些句子却要读很多遍都不一定理解什么意思,甚至我看过很多书,大段大段的机翻,以为读者看不出来,但有些翻译错误是只有机翻导致的,这样的书还据说是某某大厂P200资深专家写的,我很怀疑本人是不是南郭先生

经常用Google、GitHub的朋友应该有和我同样的体会,一般优秀的技术栈的官网都非常简洁易懂且详尽,不仅有文字教程,还有视频、动画等,内容深入浅出,从quickstart带你快速上路,到后面的tutorial,再到docs,再到effectiveXXX跟你讲设计哲学,地道用法,最后给你介绍各种进阶的案例,先调动你的兴趣,如果你还愿意深入了解,那非常好,如果你到此为止,我能常规使用,那也不错。如果你发现官网不怎么样,那说明这东西可能本身就不怎么样,或者至少暂时还没有学习的必要。

融入英文语境

我坚信,英文不好的人,编程水平是不可能有多高的。

去国外社区、官网学习就好比直接吸收从原班开发团队那里生产出来的牛排,而看中文教程书就好比吃人家消化过的屎。长期吃屎肯定会导致营养不良。

我见过身边好多985本硕的毕业的高材生,遇到问题一定是百度或者Bing国内版,然后就是在各大国内论坛里瞎翻,这篇不管用,咒骂两句,然后再找另一篇。其实Google一下,官方社区的FAQ里面就有,但一看全英文,眉头一皱,赶紧关掉。甚至有时看到我满屏英文,就惊呼,有点阴阳怪气道“不得了,全英文!”。

实际学英文并不难,尤其只是计算机类的英文。浏览器入口换成Bing国际版或者最好有条件直接上Google,搜索都用英文,完全杜绝中文环境,不让自己屏幕上出现任何一行中文字,下载个桌面版翻译软件,遇到看不懂的地方就翻译一下,然后记录在单词本里,没事拿出来复习背诵一下。刚开始几个礼拜可能感到效率下降,坚持一下,一个月后,就发现基本不用翻译软件了,此刻恭喜你,你打开了新世界的大门。相对于twitter这种平台上面很多缩略语、俚语、网络流行语,技术论坛上世界各国的人都有,别人英语也不见得比我们好,大家交流都是比较简单易懂正式的词汇,所以融入英文环境最大的困难并不是词汇量,而是内心对语非母语的恐惧感,总觉得我看中文能解决的问题,为啥非要去看叽里呱啦的英文,人骨子里就是爱找捷径的。

关于学英文的Tips

  1. 多看英文释文 这个就好比你查汉语词典,要是释文给你用英语,肯定无法展现汉字的奥义,用中文解释英文也一样,且用英语解释英语会在脑子里建立英语之间直接的联系,不会导致你看到英文的时候潜意识先转换成中文。建议用Google翻译。

什么书可以看

官网和社区可以完全解决单一技术栈的问题,但是跨技术栈的信息网上即使有,也都比较零碎,这个时候可以选择一些顶尖大牛的原版书进行阅读,比如Martin Kleppmann的《Designing Data-intensive Application》,如何选择这类书,主要看作者是否为该领域的大师,一般来说,学术派的大师有着比工程派更为严谨的逻辑框架,往往能一语道出底层逻辑,且随着知识面的扩大,越发觉得精辟有理。另外还是一句话,不要购买中文翻译版,请直接阅读英文原版,至于英文原版书如何获取,我个人比较偏爱在将ipad上的AppID设置为国外账号后,在Apple Books上面购买电子书。