这一篇分享如何提升CS素养,是我具体操作实践过并且觉得有用的一些习惯。

写博客

为什么要写博客?刘未鹏的博客里给出了很好的回答,我当初也是看了他的文章才开始写博客的。

一个人提升自己影响力的方法有两种,演讲和写作。它们的共同点就是实现了一次产出,无限次的被阅读。让我深有体会的就是我写这一系列【招工求职】的文章。如果我跟一个人分享我招工求职的经验,其实跟我写下来发到博客上花的时间基本上是一样的。然而后者可以让更多的人看到。

怎么开始写

推荐使用hexo+github搭建你的第一个博客,域名可以在万网上申请。

如何搭建博客,可以参考:

  1. hero官网 https://hexo.io/
  2. Mac搭建Hexo博客及NexT主题配置优化
  3. 一篇老教程,虽然hexo 3.0 跟以前的有所不一样,但是这篇很详细值得参考 http://ibruce.info/2013/11/22/hexo-your-blog/

写什么内容

因为我们当前最重要的目的就是找工作,所以博客内容以下面这些为主,当然不限于这些。尽量用英文写专业相关的文章,一方面锻炼英文表达能力,一方面如果hr打开你的博客,也能知道写的是什么。

  1. 算法分析,leetcode遇到一道好题,比如有好几种方法/数据结构的题,可以写一篇分析题目的文章,从最简单的解法写起,写下分析的过程,数据结构的比较,时间空间复杂度的分析等等。用英文写这些的另一个好处就是写完一篇就相当于模拟面试了一遍,熟悉了相关算法的英文表述。

  2. 学习笔记,在学校上课的笔记,以及心得都可以写成博客。这样同学如果问你要笔记,你就一个博客链接甩过去(如何正确地装逼)

github

对于程序员找工作,github可能比linked还要重要。丰富的github repo是hr筛选简历时的一个加分点(其他加分点详见另外一篇如何准备简历篇)。那主要传些什么上去呢?即使你是新手也没事,不用传什么高大上的开源项目。平时刷题,刷完就可以传上去;上课大作业,可以等到上完课传上去;自己课余时间做的小项目都可以传上去。我建议从现在就开始每天往github上传点东西。github会用绿点记录你每天的活跃程度。如果你从现在就开始使用github,到投简历的时候,你的github首页满屏的绿点,hr眼前一亮,第一印象感觉很牛逼。就像这样Ruan Yifeng: https://github.com/ruanyf
如果有兴趣可以相互follow,我的github是https://github.com/cfdtlee

排版

Latex

专业排版工具,一般写论文和简历的时候会用到。推荐 Overleaf,一款在线的Latex编辑器,所见即所得,还有大量模板。比如一个简历模板 用Latex写的简历,先不管内容,看起来就很专业。

Markdown

一款轻量级排版工具,常用来写博客,写笔记,语法简单。我的博客里的文章都是用markdown写的。搭配MathJax,克服了数学公式排版的问题,能让你爱上写带有数学公式的博客,比如:

Maxwell’s Equations

\[ \begin{aligned}
\nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} & = \frac{4\pi}{c}\vec{\mathbf{j}} \ \nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \
\nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \
\nabla \cdot \vec{\mathbf{B}} & = 0 \end{aligned}
\]

很多机器学习的课用这套来做笔记,写成博客,莫名的有成就感。

如何提问

如何提问没法帮助你装逼,但是绝对属于CS专业素养之一。CS是一个99%知识靠自学的专业,自学的过程就会有很多的问题。如何提问也就显得很重要了。

提出了问题就解决了一半了

好的问题,能提示回答者给出正确的回答,所以说提出了就解决了一半。提问之前做好功课,一方面不浪费别人的时间,一方面自己锻炼了解决问题的能力。所以有问题,先问google,因为除了博士研究课题,基本上其他问题都有人遇到过。所以google一下八成能找到答案。

  1. 问具体的问题,
  2. 问小问题,
  3. 问选择题,
  4. 问了问题,包括自己做的调查,给出自己的理解

举一个例子,问笼统的问题是很为难人的,比如“你对cs找工作有什么建议吗?”这个问题很难回答,因为太笼统,太宽泛了,以至于不是十分钟就能回答的,如果问这样的问题不要期待得到即可的回答(所以我写了一系列文章来回答这个问题)。同样的“刷题有什么建议?”也不是一两句能够回答的。那好的问题是怎么样的呢?

“你觉得刚开始刷题应该按照什么顺序刷呢(具体的小问题),是按照顺序呢,还是按照难度呢(给出选择),我做了几道题发现按顺序来老是在难题上卡主(给出自己的理解)”

那回答就很容易,比如

第一遍刷,按照Acceptance刷会更合理,循序渐进。

这一点在入职之后尤为重要,因为每个人的时间都很紧,如果你经常问“不好”的问题,别人开始可能出于礼貌,给了回答,但是久了别人会不耐烦。如果问“好”的问题,节省回答者的时间,有时候还能启发回答者,让他享受帮助你。

软件

默认大家都是用mac,如果不是应该也都能找到同类的软件

spectacle

用快捷键来布局窗口的软件

clipmenu

能存复制历史的软件,强大到mac上复制,在iphone上能直接粘贴

f.lux/day light switch

程序员整天对着屏幕,更需要保护研究。这款减弱蓝光的软件,蓝色波段的光对眼睛刺激最大,这个软件消除了蓝光。

dropbox/paper

重要的或者常用的文件都存在dropbox上,笔记都用paper写,因为支持markdown,简洁好看,所以它一出来我就从evernote换过来了。

mou

本地markdown编辑器,但是mac新版好像用不了了

iterm + oh my zsh

终端配置

湾区早鸟

开通了微信公众号,获取最新的更新可以扫二维码关注。

湾区早鸟