Saturday, January 16, 2016

Learning How to Learn



http://mp.weixin.qq.com/s/UnaKwBZn1Xv-FRT4vJELKA
MNK,Mininal Necessary Knowledge,最少必要知识
放到IT技术领域而言,掌握最少必要知识,显得尤为重要,因为技术变化太快,技术种类繁多,如果你想贪多求全,估计是没可能的。但在职业生涯的过程中难免遇到新技术,如何快速上手呢,下面就笔者个人的心得体会。
  • 是什么
基本的概念搞清楚,有助于后面的预研。
  • 为什么用?它适合那些场景
在特定的场景下才能发挥一项技术的优势,毕竟大部分技术都是为解决特定问题而生的。
  • 怎么用
这就很简单了,一般都提供安装文档、使用手册、开发手册等等,以及别人的应用笔记等,都可以找到怎么用的例子。
  • 有哪些弊端
能应用自然是好,但一定弄明白这项技术不擅长做什么,万能的技术总是少数,总不能什么东西都往它身上套。Redis是好用,但依赖系统内存。SSDB与Redis属同宗,协议兼容,但不受内存限制,而看硬盘的扩展性。
  • 周围生态如何
上下游的技术融合,社区的支持,版本的更新频率等等,都是衡量一个技术生态的因素。如果兼容性好,适配难度低,应用自然广泛。比如Spring周边产品几乎成了Java开发的标配。
  • 替代性技术有哪些
总会有大牛使不惯别人的东西,于是同一问题的解决方案并不会只有一个。替代性技术的出现,一定程度上弥补了不同技术在某些技术点上的盲点。也给我们在做技术方案是提供了不同的思路。大牛顺手写了个Git方便自己做开源产品的研发。
  • 他人的应用总结
这一点很重要,前人的应用总结是后来者的之路明灯。从那些分享者的总结中,会发现那些隐藏在技术背后的隐患,使用实战技巧等等,这些都是我们在实践之前都应当学习的教训、经验。
如上操作,更多的是依赖搜索引擎、技术官网、网友专栏文章等等,一点一点去深入进去,最后形成一个思维导图,将掌握的资料整理出来以加深印象。
  • 动手
谋定而后动,准备充足才能事半功倍。当然看了那么多不行动就属于纸上谈兵,真正应用时就会眼高手低。
动手时还有很重要的一点,记得做笔记。即便按着官方或者别人成功的应用总结来做,往往也不会一帆风顺,因为大家的环境是不同的,就会出现各种各样的问题。记下来吧,将来都是经验的总结。
https://www.coursera.org/learn/learning-how-to-learn
http://mooc.guokr.com/note/10044/
1. 主动回忆(Recall). 读完一页时,看向别处,回忆主旨。尽量不用荧光笔,永远不要在记住知识前画高亮。尝试着在你学到知识的地点外回忆,比如上学路上,或其他房间。掌握回忆的能力——自己形成思路的能力,是成为好学生的关键所在。
2. 自我检测. 有关任何知识,在任何时间。记忆卡片是你的朋友。
3. 整合相关的知识(Chunking). 通过整合,你可以在面对问题时,自然地使用解决方法。解出一道题后,再整理一边思路。确保你已理解每一步。把问题想象成一首歌,不停在脑子里演奏它,这样相关信息就结合成一个整体,你便可以在需要时得心应手地使用了。
4. 有间隔地安排复习. 像运动员的训练那样,把学习计划安排到每天一点。你的大脑像肌肉一样,对于每一个科目,它每天只能承受有限的训练强度。
5. 交替练习不同的解题思路. 永远不要练习一种解题方法太久—否则,你会产生思维定势,见到什么问题都用一种方法解。交替练习:不同思路和不同问题。这可以让你知道如何何时使用某个思路。 (课本往往不是这么编排的,所以你需要自己做。) 整理考试与作业题,找出错误,搞清为什么犯错,然后重新做一遍。记忆卡片有助于高效学习,把问题写在(手写,别打字)卡片的一面,解法写在另一面。(手写比起打字能建立更牢固的神经网络)你可以把卡片照下来存到手机里。随机检测自己不同种类的问题。你也可以随便翻开书本的某页,找一道题看看能不能做出来。
6. 适当休息.
7. 向自己解释问题,使用比喻.
8. 集中注意.
9. 先吃掉青蛙. 在一天中最清醒的早晨,把最难的任务解决。
10. 勿忘梦想. 想想你从哪里来,学习又会把你带到哪里去。在书房贴一张有关你的梦想的照片或文字。这可以激起你的动力。
10个学习坏习惯

1. 被动阅读. 除非你能自己复述一边,证明材料已经被吸收,否则重复阅读是浪费时间。

2. 用荧光笔做太多批注. 高亮会让大脑产生掌握了的错觉。其实你只是手部做了运动而已。一点点高亮没有问题—有时可以提醒你关键点。但是如果你用高亮来记忆,确保与此同时你的大脑也会记住高亮的内容。
3. 看懂答案就以为自己懂了. 这是最差的错误。你能完整独立地解决问题才是懂了。
4. 考前临阵磨枪. 你会在考前填鸭式突击吗?你的大脑就像肌肉——对于一个科目,它一次只能进行有限的练习。
5. 重复练习你已经掌握的问题. 如果不停练习类似的问题,其实你不是在为考试做准备—这个就像为篮球赛练习时,只练习运球。
6. 把学习小组变成聊天小组. 和你的朋友互相批改答案,互相测试,找到问题,可以让学习更有趣,更深度。如果你的学习小组在完成任务前变成玩游戏,就是在浪费时间,而你最好换一个学习小组。
7. 做作业前不复习课本. 你会在学会游泳前跳水吗?课本是你的游泳教练—它引导你找出答案。你要是不复习就做题便是在浪费时间。顺便,在开始阅读前,扫读章节名以了解知识框架。
8. 不和老师同学讨论你的困惑. 教授很习惯学生向他们提问—帮助你是老师的工作。他们所担心的是不提问的学生,别成为其中的一员。
9. 认为被干扰时还能学下去. 每一条短信都会损耗大脑学习的力气。每一个干扰都会阻碍神经的形成。
10. 睡眠不足.如果考前睡眠不足,一切都将成为徒劳。你的大脑在睡眠时会整合信息。过度疲劳会在脑内产生毒素,扰乱神经元的连接,让你无法敏锐的思考。

http://zhuanlan.zhihu.com/donglaoshi/19964946
强力推荐的Coursera课程 “learning how to learn”. 这门课的一个主要观点是
  • diffuse mode thinking (如常规的身体锻炼)

对提高思考和学习能力有很大帮助。我实践了一两个月,感觉效果很好。工作中遇到的问题都更容易梳理解决。我们目标只有一个:了解大脑的工作原理,以便更好的学习。
1. 集中思维 vs. 发散思维

  • 学习和思考有两个模式(mode), 即 focus mode (集中) 和 diffuse mode (发散).
  • Focus mode learning 即我们通常意义上的“学”, 如上课, 看书, 做练习等。
  • Diffuse mode leanring 指就某个内容进行随意的发散性思考。
  • 学习知识或技能是身体进行特定的神经连接,搭建神经网络的过程。 这个过程需要我们不断的切换focus mode 和 diffuse mode.
  • 打个比喻: 盖一面墙, 我们需要铺一层砖和黏合剂,等黏合剂干了把砖头稳固好, 再铺上面一层。 这样墙才能盖起来。 盖得太快太急, 墙可能会塌掉。
  • 搭建神经网络也是这样。 Focue mode learning 就是连接神经元; diffuse mode learning 就是给时间让这些连接稳固。 对于好的神经网络搭建,两者缺一不可。

2. 多感学习和空间识别
  • 多种感官的刺激让学习效果更好。因为那样子的神经连接更丰富, 更稳固。
  • 空间识别: 我们大脑的空间识别网络特别好。

3. 记忆系统
  • 短期: 研究表明我们的短期记忆最多只能放四间事情。
  • 长期: Chunking (对概念进行切割和封装) 做得越好, 记起来越容易,越牢靠。

Chunk告诉你如何解决问题,context告诉你什么时候使用chunk,以及这个chunk在整张知识图中的位置。举个例子,你在读一本书,书中的概念和章节就是一个个chunk,你为了更好的掌握这本书的主题(大chunk),往往会看书之前先翻章节题目,看看每节的图片(自顶向下,掌握大局),之后再钻进去一节节地看(自底向上,步步为营)。先有一个总体了解,然后再处理局部拼图,这样即使你最后遗漏了一些细节,也不影响你使用整张图。
  • Chunk就像是知识的雪球,聚少成多,相互关联,终成雪人。
  • 如何形成chunks? 集中注意力,理解,反复练习。
  • 如何练习? 回忆怎么建立chunk, 最小化测试自己, 保持上下文的连贯
如何应用到我们自身学习上?
1. 集中思维 vs. 发散思维
  • 学习时间不宜太长。 比如用 pomodoro 定时: 番茄土豆工作法. 每半个小时休息十分钟。 让新知识有时间从focus mode 切换到 diffuse mode 巩固。
  • 分散学习。 一个知识或技能可以把它分到多天,每天花少量时间学习。 这样的长期效果比集中一天要好。
  • 对于重要的知识点或问题多进行随意联想。 Diffuse mode thinking 可能会提供意想不到的好答案。

2. 多感学习和空间识别
  • 尽可能使用不同感官学习。
  • 练习其实也是一种多感学习。 所以越多越好。
  • 我们可以利用我们大脑的空间识别网络特别好这点, 用想象的方式把学到的知识点进行虚拟的空间链接。 那样子能够快速搭建神经网络, 掌握和巩固所学。

3. 记忆系统
  • 可以利用长短期记忆特性,用递归的方式,把新概念切成<=四块子概念, 进行有效的连接封装, 强化长期记忆。
  • 锻炼身体重要。除了散步洗澡听音乐等让你放松的方式会帮助你进入diffuse mode,锻炼健身能让你从之前集中精力的地方解放出来,使得diffuse mode有机会呈现。研究还表明锻炼身体对大脑生长新的神经元并保持脑健康也同样重要。
  • 睡眠影响学习。脑内会积累影响记忆和思考的物质,可视之为脑内毒素(metabolic toxins)。睡眠时神经元收缩,可使这些物质更容易被清除,同时加固你白天想学习和记忆的东西。
  • 隐喻(metaphors)是强大的学习技术。
4. 解决拖延

原因是人遇到困难,大脑真真切切会产生化学物质,让你感觉不开心。这时,老祖宗的基因会驱使你的大脑让你去做一些更能让你高兴的事,从而获得短暂的快感。看,你本能的完成了一次自救,把自己从不愉快中救了出来!但现代社会毕竟不同于远古时代,总是逃避困难的任务而选择简单的娱乐会让人自毁前程。
如何应对拖延?有个简单的工具:番茄工作法。操作简单,用个番茄钟(或者软件)记时间,25分钟内全神贯注在手头的工作上。原理是人一旦开始进行手头的困难工作,让你痛苦的化学物质就会骤减,然后慢慢的不愉快的情绪就消失不见了。简言之应对拖延的方法就是忍住不快和痛苦,立刻全身心投入工作一小段时间。
最后课程还总结了应试技巧:
  • 从细节到宏观,再从宏观到细节不断反复,会让自己清楚自己在学什么
  • 找到自己容易错的地方,然后从错误中学习,不断的测试自己
  • 从失败中吸取经验,然后慢慢学的更好,也会让自己喜欢上之前讨厌的学科
  • 学习自己喜欢的学科会有更多的动力,干自己爱干的事情,不会累
  • 想要学好一门语言,或一门学科,要把自己沉浸在其中,多多练习
  • 给自己定一个短期的目标,然后驱使自己的动力,一步一步完成
  • 休息很重要,能保证高效率的学习模式
  • 尽可能的利用身边一切的资源,多向有经验的老师同学请教,如老师的 办公室时间, 网上的 MOOC,其他一些公开课
  • 大任务分成若干个小任务,每天做一点,半个小时,
  • 学习语言错误的动机:炫耀,进入大学等。正确动机:喜爱其文化
  • 学习语言不要怕犯错误,即使犯了错误,别人也听得懂,大胆说
  • Self fulling Prophecy,告诉自己没有天赋,学不会→恶性循环
  • 任何人学习一门语言,都是付出了很多的努力,面临很多挑战,他们都战胜了
  • 学习语言总会遇到很多困难,尝试不同的方法,坚持一段时间不适合,换一下。
  • 学习和休息相结合,学习六天休息一天
  • 重复是需要的,单纯重复不一定是最好的方式。可以运用视觉
  • 学习数学慢慢来,数学问题太抽象,尽量把自己置入问题中
  • 人类没办法 多线程工作,所以集中精力干一件事才是最高效的
  • 关掉所有让人分心的提醒,手机短信,email,网站之类
  • 遇到难以理解时:类比, 画图, 举例, 把数学上抽象概念给虚拟化物化。
参考资料:
how to learn 笔记
week4_考试指南
【个人心得】番茄工作法の实战篇——学习如何学习的初期学习报告
如何培养好习惯(实战篇)——学习如何学习的终期学习报告
(翻译)有关学习的10个好习惯和10个坏习惯
Learning How to Learn, Part 1
Focused mode就是注意力集中的时候,只有局部的神经链接处于激活状态,有利于你解决实际问题。比方说你熟悉四则运算,那么解决算数题的时候就主要靠那部分神经出力。diffuse mode就是人脑放松的时候,神经信号可以在脑内大面积移动,有利于发挥创造性,比方说你洗澡的时候突然想到一个久攻不破的问题的解决方案。在学习新知识的时候,往往处于diffuse mode,以便结合已有的知识来更好的理解新知识,但也经常要在两种mode之间切换。可以在紧张的学习新知识的时候通过洗澡散步等让自己放松的事情主动进入diffuse mode来帮助加深理解。
接着我们再来简单看看两种记忆模式:working memory(短期记忆), long time memory(长期记忆)。
Working Memory and Long Time Memory
Working memory(位于前额叶皮层,上图左边)用来解决当前遇到的问题,比如记个电话号码。之前人们普遍认为可以一次记7组左右的信息,新的研究表明人只能记住4组信息(chunks)。它的特点是容易使用但是也容易忘,需要频繁刷新记忆。Long time memory就像大货仓,记忆被分门别类的存放在大脑各处(如上图右边)。它的特点是记忆你确实有,但是有的被埋的很深,不容易回想。记忆由短期转变成长期的方法就是随着时间不断重复。但是不要在一天之内不停重复,就像不要在一天之内不停举重健身一样,肌肉不是那么长的。学习新知识也一样,要给予一定的时间来沉淀,否则知识构建成豆腐渣工程是没用的。


    了解了两种思考模式和两种记忆模式之后,我们的收获是:
    • 长时间集中注意力学习知识或者解决眼前问题只是思考模式的一种,可以(也应该)主动用diffuse mode来加强学习和解题效果。
    • 学习和记忆需要时间沉淀,突击学习不科学。
    接下来理性的说明一下生成chunk的方法:Focus, Understand, Practice

    Understand

    理解材料就像是强力胶水,它能让chunk之间相互关联,使得知识更容易被想到和使用(正如下图中右下角不同颜色的chunk相连那样)。孤立的chunk也可能形成,但是很难被用到,正如你拼图拼出个眼睛但很难想出这个人是谁
    注意,不要将“啊哈”那样的顿悟或者看到答案瞬间的会心一笑当成真正的理解。如果初次理解后长时间不温故,那么很快就会想不起来了(印象/颜色淡了)。所以第一次真正学会了某样东西应该是在你合上书自己做出来了一遍之后。看别人的画作不意味着你也能画出来,听别人唱歌也不意味着你也能一模一样的张口就唱,你必须自己练习几遍。

    Practice

    生成chunk的最后一步就是练习,形成context(上下文),从而巩固chunk,并建立多个指向chunk的入口。那要怎么才能形成context呢?
    Chunk同时也能帮我们理解新的知识(通过被称为transfer的过程)。因为学习新知识时,人脑会神奇的连接已有的chunk,比如你已有的物理学的知识可能帮助你学习经济学的概念,语言学的东西帮你更好的理解编程等等。长此以往,你的chunk会越来越大,越来越多,越来越强。
    知道怎么形成context了,那要怎么练呢?人们自然会觉得repeat(重复)学过的东西多了就记住了,形成chunk了。实际上有种更好的方法,叫recall(回想)。Recall能调动更多的记忆,使得chuck更整洁干净。在不同的地点Recall好处更多,可以让你不用受环境限制。很多时候有书本在手边google在眼前,你会觉得你掌握了新的知识,但实际上是一种illusion of competence.如何避免幻觉?mini test,自己给自己小测验,它让你真正掌握知识。Recall也算是一种有效的mini test。

    • Chunk就像是知识的雪球,聚少成多,相互关联,终成雪人。
    • 如何形成chunks? Focus, understand, practice。
    • 如何practice? Recall to form chunk, mini test yourself, also have the whole picture first to form context.
    此外还有:
    • Minimize highlighting。不要过多的画重点,因为这可能会给你一种错觉你记住了这些划过的内容(illusion of competence),提倡的是在阅读学习的过程中多提炼中心思想,多总结。Again,mini test能避免你产生illusion of competence。如果在mini test中犯错了,那是好事儿,你为了避免不再犯错,就能加深资料的理解。
    • Overlearning。从week1我们知道了短时间不停的重复学习相同的内容,帮助不大,更科学的做法是在接下来的一周里每天或者每隔几天复习。但是对于我们已经掌握的东西,就没必要一直重复学习了,否则也会造成一种illusion of competence,实际上你只掌握了最简单的那小部分。
      相对而言,你更应该多花时间和精力在你感觉最难的部分,这叫deliberate practice。deliberate practice往往能把顶尖和普通的学生区分开来。
    • Einstellung。你已有的想法,思路,和神经结构有时会妨碍你想出新的更好的方案。对应手段是diffuse mode。
    • 当你发现东西太多了不可能学得过来的时候:start try a little bit,好运会来。先解决第一个概念,第二个就会容易一些,后面的慢慢就都能搞定。
    Learning How to Learn, Part 2
    Week3: Procrastination and Memory
    深挖一下,习惯的养成有四个部分:导火索(cue),习惯动作(routine),奖励(rewards),信念(belief)。
    一个技巧是:专注于过程,而非结果(Fouces on process rather than product)。我要做完五道题,这就是专注于结果,它会触发你的痛觉中枢 (insular cortex),所以你越想着要把题做完,就会越感觉痛苦,就会越是拖延着不去做。取而代之的应该是关注在过程,别管能不能完成,我就先开始看看题目总是可以的吧,稍微看一下跟例题相似的地方,想一下应该用哪些知识去解题。从很小的一个个知识点(chunk)出发,一旦你开始做了,你大脑内让你痛苦的化学物质真的会骤减。同时你感受到的不再是“我到底能不能做完,能不能做出来”,而是很放松的将注意力集中在做题这件事情上。番茄工作法之所以有用,就是因为他让你专注过程25分钟。
    另一个建议是做计划,weekly list of key tasks, and daily to-do list。每周对主要任务列个计划,每天再列个待办事项。别小看了写下计划的益处,如果不把待办事项列个表写下来,你就要消耗一部分脑力(短期记忆的资源)去帮你维护这个列表。因此,写下来就可以省下脑力专心做事,而不必乱糟糟的担心下一步要做什么。要在每晚睡觉前做好第二天的日计划,因为研究表明睡眠中大脑会自动梳理如何做这些任务,使你第二天做的时候更容易上手。
    还有三个提升效率的技巧和建议:
    1. 最难的事情最先做。因为越难越需要最充足的脑力去战斗,而且最难的最容易拖延的事情都解决了,后面都好办。”Eat a live frog first thing in the morning and nothing worse will happen to you the rest of the day – Mark Twain”
    2. 给自己定一个结束时间,这跟制定工作时间一样重要。工作一整天不见得效率就高,孰不见多少人图书馆里坐一天半页书也没看完,净玩儿手机了。莫不如定好下午5点以后就不学了,之后去吃去玩去运动,所以5点之前,就专注把清单上的任务一个个做下来吧,尽量抓紧时间多做些,5点就解放。
    3. 遇到困难怎么办?先试一会儿再说。只要试一下,头不疼了,心不乱了,过一会儿就发现,呀呵我做完了。The law of serendipity: Lady Luck favors the one who tries。
    我们一定要战胜拖延症。因为学习是一个日积月累的过程,人脑需要时间来建造神经蓝图,就像长肌肉那样。所以我们要保持一个良好的学习惯性,避免拖延到最后一刻,以防在脑内搭建豆腐渣工程。建立新的习惯是战胜拖延的良方,可以从习惯的四个部分入手养成好习惯。关注过程而非结果,做好计划都是提高效率的技巧。最后向大家推荐一个结合了to-do list和番茄工作法的工具:番茄土豆
    Week4: Renaissance Learning and Unlocking Your Potential
    Visual memory and trunk
    Memory trick example: Old people from texas eat spiders
    1. 在学习中多用隐喻和视觉记忆来加深印象。隐喻在相似概念上建立更多的神经链接,从而更容易回想起。人对图像更容易记忆,所以多将要记忆的内容与图像联系结合。总之,将记忆与更多的东西关联是加深记忆的有效手段。
    2. 再次强调锻炼身体的重要性。新生成的神经结构如果不通过重复来巩固的话会消失,而锻炼身体可以延长神经结构的寿命,它被证实比任何药物都有效。而且锻炼影响的不仅仅是大脑细胞,全身细胞都受益。所以对健身不以为然的朋友,咱动起来呗。
    3. 再推荐一个帮助抵抗焦虑放松凝神的方法——腹式呼吸(深呼吸)。简单讲腹式呼吸就是吸气时肚子鼓起来,呼气时肚子憋下去,过程中胸不动。详细讲解可以参考这篇知乎文章。熟练腹式呼吸的好处很多,可以静心凝神,提升唱功,协助腹肌锻炼等,我本人深受其惠,不禁要赞叹它的简单实用。
    http://mooc.guokr.com/note/9601/
    首先是测试准备检查表,你做要做的就是尽可能多得在这些问题下写下YES。

    1.改变解题顺序
    是否以前老师都建议先做简单题,之后再做难题呢?
    虽然这个策略适合大部分人,但是否你也有这样的遭遇,在考场里抓耳挠腮,百思不得压轴题的思路,但是在交卷的一瞬间,在你走出教室的一瞬间。文思如尿崩。
    对此,老师的建议是改变解题顺序,对于难题,先尝试,如果解不开,则再跳过,但在此时虽然你表面上并没有在思考这个问题,但大脑的其余地方在后台并行处理这个难题。等你回过头再看这个问题的时候,这个题目的思路就已经躺在你的记忆工作区里面了。
    The hard start jump to easy technique may make more efficient use of your brain by allowing different parts of the brain to work simultaneously on different thoughts.
    2.转变思想
    当处于压力状况下,身体会产生像皮质醇(cortisol)这样的化学物质。
    该物质会帮助你在压力状况下维持正常的生理机能。如果没有皮质醇。身体将无法对压力作出有效反应。若没有皮质醇,当狮子从灌木丛中向我们袭来时,我们就只能吓得屁滚尿流、目瞪口呆动弹不得。然而借由积极的皮质醇代谢,身体能够启动起来逃走或者搏斗(fight or flight)。
    因此,现在你面临着考试(狮子),你的身体分泌了皮质醇,想通过考试,你必须选择fight。
    而要利用皮质醇,你需要转变思想。把“这考试真可怕”转变成“这考试真让我兴奋,我会尽力的”。(这不是在立flag么?)
    ps:这周的另一个重点就在改变想法上。但涉及的内容也不是很多。
    给个参考视频:TED:如何同压力做朋友
    3.深呼吸(腹式)
    这个过程可以抵消考试带来的焦虑,让你心平气和。
    但这个训练需要在考前几周开始,每次花1-2min。只有提前开始训练,才能让你习惯,并能在考场中顺利地进入安定的考霸模式。
    (有相关经验的同学,希望分享一下)
    4.如何做选择题(Susan Sashna Hebert,湖首大学心理学教授)
    做选择题的时候,先把选项盖上进行知识点的回忆。
    于是在看选项前,你已经有了几个参考选项。然后再对照选项,选出正确答案。(个人感觉就平时练习的时候用比较合适,考试这么做有点作死)
    5.学习金字塔
    这个金字塔是由美国学者、著名的学习专家爱德加·戴尔1946年首先发现并提出的。
    爱德加·戴尔提出,学习效果在30%以下的几种传统方式,都是个人学习或被动学习;而学习效果在50%以上的,都是团队学习、主动学习和参与式学习。
    ps:这个图来自于课程论坛内的分享,但搜索了一下目前好像没有证据表明该研究结果出自美国国家训练实验室的某项研究。但也许是该结果非常符合人们的常识,很容易被人接受。


    Labels

    Review (572) System Design (334) System Design - Review (198) Java (189) Coding (75) Interview-System Design (65) Interview (63) Book Notes (59) Coding - Review (59) to-do (45) Linux (43) Knowledge (39) Interview-Java (35) Knowledge - Review (32) Database (31) Design Patterns (31) Big Data (29) Product Architecture (28) MultiThread (27) Soft Skills (27) Concurrency (26) Cracking Code Interview (26) Miscs (25) Distributed (24) OOD Design (24) Google (23) Career (22) Interview - Review (21) Java - Code (21) Operating System (21) Interview Q&A (20) System Design - Practice (20) Tips (19) Algorithm (17) Company - Facebook (17) Security (17) How to Ace Interview (16) Brain Teaser (14) Linux - Shell (14) Redis (14) Testing (14) Tools (14) Code Quality (13) Search (13) Spark (13) Spring (13) Company - LinkedIn (12) How to (12) Interview-Database (12) Interview-Operating System (12) Solr (12) Architecture Principles (11) Resource (10) Amazon (9) Cache (9) Git (9) Interview - MultiThread (9) Scalability (9) Trouble Shooting (9) Web Dev (9) Architecture Model (8) Better Programmer (8) Cassandra (8) Company - Uber (8) Java67 (8) Math (8) OO Design principles (8) SOLID (8) Design (7) Interview Corner (7) JVM (7) Java Basics (7) Kafka (7) Mac (7) Machine Learning (7) NoSQL (7) C++ (6) Chrome (6) File System (6) Highscalability (6) How to Better (6) Network (6) Restful (6) CareerCup (5) Code Review (5) Hash (5) How to Interview (5) JDK Source Code (5) JavaScript (5) Leetcode (5) Must Known (5) Python (5)

    Popular Posts