0%

学习的旅程

看到几篇很棒的博客,如何阅读——刘未鹏怎样花两年时间去面试一个人,想要从中汲取一些知识,并且记录一些自己的思绪。

学习的方向

其实现在的在校生根本不缺学习的动力(特别是计算机,特别是研究生),毕竟现在的大环境已经卷的不成样子。看着各大公司的招聘简历,以及相关面经,会发现大学的课程完全不足以培养你进入大厂工作,如果真只是按部就班上完了全部课程,那恭喜你达到了新成就毕业即失业。在这个能力为硬指标的行业,但凡对工作有所期望的人,都会想方设法去学习更多的东西,起码面试三轮可以有能力通过一轮吧。

但是虽然学生们都有动力,对我自己来说,进入计算机专业之前也是充满期待,希望自己经过几年的大学培养能够拥有一定的能力来解决问题,进而能够利用技术去实现自己的兴趣爱好。但是,学生并不知道需要去学什么,需要去钻研什么,需要掌握什么理论框架,需要尝试什么技术手段。计算机是一个宛如宇宙一般的庞大领域,就算花个几百年也不可能各个领域都掌握精通,要成为一个有用的人必须选择一个细分领域进行学习。然而这时初生牛犊面对无止境的知识海洋,根本没有能力决定这个领域学到哪,那个领域应该了解多少,底层和顶层应该怎么分配学习。

他们往往很想学点东西,但又不知道哪些重要哪些不重要,到底该学到什么程度,不知道导致不确定,不确定导致决策瘫痪,干脆嘛也不动,荒废时间。 ——刘未鹏

另一方面,企业在招聘时如何挖掘出有潜力,有能力的学生也是一件很难的事。在微软进行招聘的刘给出的答案值得我们进行参考:书单+GitHub=长达两年的招聘

书单:对于基础知识和底层原理来说,有没有看过这个领域的好书的人,有着质的不同。"看了就是看了,必然能学到东西,没看就是没看。知道和不知道,区别是本质的"。不管是不是用心看,真有去看过一遍,并且确实是被公认的好书,那自己也自然会被吸引进去。

当然这里一个核心的问题就是,怎么去找好书?国内大学计算机课本的含金量有目共睹,只学过课本甚至称不上是读过书。选择好书的一个很简单有效的原则——去找企业或者招聘者,在官网或者博客中给出的书单。企业为了招到最合适的候选人,必然会给出最合适的书单,例如微软:

  • Code: The Hidden Language of Computer Hardware and Software (《编码的奥秘》)
  • Computer System: A Programmer’s Perspective (《深入理解计算机系统》) / Windows via C/C++ (《Windows核心编程》 / 《程序员的自我修养》
  • Code Complete 2(《代码大全》)/ The Pragmatic Programmer (《程序员修炼之道》,我也把这本书称为《代码小全》)
  • Programming Pearls (《编程珠玑》) / Algorithms / Algorithm Design / 《编程之美》
  • The C Programming Language
  • The C++ Programming Language / Programming: Principles and Practice Using C++ / Accelerated C++
  • The Structure and Interpretation of Computer Programs (《计算机程序的构造和解释》)
  • Clean Code / Implementation Patterns
  • Design Patterns (《设计模式》) / Agile Software Development, Principles, Patterns, and Practices
  • Refactoring (《重构》)

GitHub:企业怎么鉴别读书之外的工程能力呢?GitHub。其不可伪造、不可短时间恶补。每个人的GitHub History都是这个人所作所为的见证,每一条commit,issue,pr,甚至为项目写的文档,都是构成一个代码人的重要结构。企业能从中看到信息,而作为学生,我们也自然应该维护好其中的信息。积极与同行交流,积极寻找同好,积极code,记住自己的每一步都在造就自己的历史。

从你的GitHub旅程开始,你就已经一脚踏进了真正的企业,而企业的面试也已经开始。

知识的输出

第一个优点:大家都知道好记性不如烂笔头,记录我们的学习往往能够帮助我们巩固并理清知识脉络,而不是囫囵吞枣看完就算学完。

第二个优点:从公司的角度来看,知识的输出,其实是大家认识你的重要途径

你在豆瓣写的书评,最简单的层次上,体现了你是否读过这本书(无意义无价值的书评,既不会被认为是读过,甚至还会拉低别人对你的评价)。如果写的好,更体现了你对这本书的理解与认识。

就像你的Steam游戏评测历史,将你的游戏爱好与兴趣点暴露无遗:)

你的技术博客,以及各大社交平台的文章专栏,和GitHub一样,都是一点一滴积累出的关于你的历史。你写过的每篇文章,无论是作为笔记,还是作为见解,都表明了你对知识的理解程度。(当然,没有人喜欢完全复制粘贴的垃圾文章。)所谓面试时所需要考察的问题分析能力、举止言谈能力,很大程度上就记录在你写过的东西里,一个人无法在一个长期博客中伪装自己的知识储备和习惯。

另一方面,计算机行业从不缺乏鼓励、赞扬、与辩驳。精彩的知识输出往往会给你带来同行的支持,例如知名度和交友圈。也会带来同行的评审,当我们和不知名的网友在评论区讨论半天的时候,大概是提升最快的时候~

当招聘者发现你的技术文章被几十个人点赞、或者十几个人讨论,或者你的博客知名度本身已经在圈内赫赫有名,那你这个人的质量早就经过了数不清的检验,还需要担心什么呢?

笔记与博客:我个人会将笔记也写在博客里,如工具使用笔记、论文笔记等。不过这合适吗?我并不知道。