0%

君子反求诸己

君子之遇艰阻,必反求诸己,而益自修。 –《周易程氏传》

昨天在Tinyfool的文章中听到了这句话,还是挺有感触的。作者在文中提到自己创业濒临失败的时候自救的过程。【注1】

而“反求诸己”的时候,不妨先加强下面几个能力:

  • 搜索能力
  • 自学能力
  • 分析问题能力
  • 提问的艺术

搜索能力

如果说古代圣贤的标准是知识渊博,那么现代的搜索引擎的出现则让很多人都成为了圣贤。为什么说是很多人而不是所有人,首先你得懂得搜索。

搜索引擎

搜索引擎绝不仅仅是将一句话一个词输入然后点击Enter。还是有很多隐藏属性的,比如

  • “” : 精确匹配。搜索引擎会将我们输入的信息进行分词,分成多个关键词进行搜索,使用“”可以禁止分词。
  • A-B: 在搜索A的返回结果过再去除包含B的信息
  • A+B: 在搜索A的返回结果过必须也包含B的信息
  • filetype:pdf 搜索pdf格式的文件
  • site: legendtkl.com 站内搜索。

细分领域

搜索引擎只是将网上已有的信息给抓来全都放到你的面前,而鉴别工作可能就需要你自己来做了。但是有很多网站就是帮助我们来做这些甄选工作的。

  • 书籍、电影:豆瓣,Imbd
  • 实时新闻:微博、推特、facebook
  • 科普:维基百科
  • 编程问题:Stackoverflow
  • 。。。

但是,记住一点:大众的选择只能作为参考,并不能作为标准。

自学能力

自学能力不是短时间内可以培养的,而我觉得自学能力得到充分锻炼的地方应该是大学了吧。根据二八法则,大部分知识的80%都能通过20%的时间来获得,而剩下的20%知识可能要通过80%的时间。与其将80%时间在专业课上那些稀奇古怪的知识点上,还不如利用这些时间去广泛涉猎,同时也锻炼一下自学能力。当然,并不是说专业课不重要,只是大学考试的很多知识点实在是生僻,以至于就在考试遇到一次。完全没有必要在浪费大部分时间在这些分数上。精髓的东西反而会在一次次中不断加深理解。

而自学能力的一个有效的锻炼方法我觉得就是不断填充自己的Read List。接触美国名校公开课之后也发现,国外的课程的阅读材料相比于国内实在太多了。比如高中学习某一篇长篇小说的一个片段时,语文老师会各种分析词句,而这个时候去通读一遍原著应该更好吧。

自学能力的另外一个体现:联想。有些人说年轻人学东西快,我并不这样认为。两个知识体系差别太大的人,同时接触一种新技术,有经验的人只需要将其关联到自己之前的知识体系中,与相似的东西做联想,效果往往比其他方法要好很多。Scott H Young以一年之内完成MIT的计算机科学课程而著名,而他的一本挺有趣的《Study less, Learn more》中阐述的一个很有效的学习方法就是联想(中文版翻译成比喻)。通过联想将独立的学科知识建立连接,最终构建起自己强大的知识体系。

分析问题能力

相信很多人应该都听说过一道很有名的面试题,在浏览器中敲入legendtkl.com,到网站首页展示出来都发生了什么?(原谅我的厚颜无耻0.0)。这道题测试的并不是具体特定的技术,而是对这整个过程的理解。而对整个过程的理解真的就这么重要吗?对的就是这么重要。来我们看看有多重要。如果返回的页面中有一些诸如小广告之类的东西,可能是什么原因呢?明白的人可能会一眼看出来是中间人。类似的问题还有很多,如果对上述流程不能有个整体的理解,针对各个问题可能都是零散的理解。【注2】

说了这么多废话,我想说的其实是Trouble shooting最基本可能也是最有用的方法就是分解问题。不管是多么严重的问题,最后都有一个落脚点,而我们需要的就是找到这个落脚点。

提问的艺术

不得不承认,不管多么牛逼的人都有搞不定的问题,这个时候就涉及到提问的艺术。提问是你去打扰别人,所以提问的一个最基本原则就是尽量少打扰别人。所以这就需要我们提前将问题表述的比较清楚。比如你的一个程序出问题了,你拿去问你的师兄或者同事,这个时候不是把一坨代码甩过去(我觉得这其实很不礼貌),而是提供尽量多的,必要的信息。比如错误信息,错误的代码段的基本含义,编程环境等的配置等等。关于这一点,可以去stackoverflow上练习。stackoverflow的创始人曾经说过,提出好的问题和提供好的答案一样重要。

就在我们准备提问整理信息的时候,问题的答案很可能就自己蹦出来了。小黄鸭调试法就是这个原理。

最后以一句高中时期最喜欢的英文结尾吧,“God helps those who help themselves”。

【注1】Tinyfool 公众号(tiny4voice)文章:《环境和你个人的关系,君子反求诸己》
【注2】caoz的公众号(caozsay)文章:《一则经典技术面试题目的解读》