最近刚从暑假实习的公司离职,忽然间压力又大了起来,因为还没拿到稳定的 offer。离职就意味着我又要踏上到处找工作的车道了,这种状况其实春招的时候已经经历过一次了,说实话让人很不好受。这种不稳定、未知的状态给人一种无形的压力。

回到学校,开始准备各种笔试和面试。这种无形的压力在迫使着自己去做一些平时不会花心思的事情,例如一些基础知识。做过的笔试越多,见过的面试官越多,就越能意识到除了有项目可以讲,基础的能力是多么的重要。这里的基础是指的计算机基础(数据结构、算法、网络…)。

对于接触编程这个领域不久的人来说,很容易就被各种花里胡哨的新技术、新框架所吸引,反而忽视了对于这种“基础知识”的掌握。对我一个 frontend 来说,那就更加容易出现这种状况(不是说,相比于现在的前端开发人员,前端框架似乎更多 233),层出不穷的新东西,让人眼花缭乱。

为什么要夯实基础?

不显得被动,对于开发者来说,时间是最为宝贵的东西,花费过多的时间去学习新的框架和技术,我认为是非常不值得的。因为,每一种技术,每一个框架都是有特定的使用场景的,当你没有遇到特定的使用场景,而花费太多的时间在上面,其实最后也没有用上,就是一种时间的浪费,这些时间还不如用来夯实自己的计算机基本能力。

加速学习,在基础夯实的情况下,遇到需要使用的技术或者是框架的时候,花比较短的时间就可以快速的掌握大概,而随着进一步的实际使用就会进一步的加深理解以及掌握的熟练程度。

不被职位限制,整个计算机技术的技术栈其实都是有公共的部分,掌握了公共的部分,在各个职位之前的切换也会相对容易。例如,你的算法比较夯实,那么无论是做后端还是前端甚至是算法岗,都是可能的。(这里多说一个,对于前端来说算法相对没那么重要,但是现在的前端其实涉及到的范围已经非常广泛了,如果研究构建工具以及 vue 源码都会知道,其实还是需要这方面的知识的)

挣脱职位的束缚,对于一个科班出身的计算机学生,我认为自己不应该被职位、工种限制了自己的发展和兴趣。我的职位是 frontend,难道我这一辈子就只能研究这个领域的东西了么。我个人来说,完全不想被限制。所以基础夯实了,那么你就有资格去挣脱这种限制,在整个计算机领域遨游,只要你有兴趣。

所以为了夯实自己的基础,包括 frontend 基础和整个计算机知识的基础,我:

  • 翻出了自己的数据结构和算法书,把经典的案例全部弄清楚,至少自己实现一遍
  • 罗列出所有平时用到的但是没有完全弄清楚的东西,通过 google、书籍等渠道全部弄清楚,并记录好笔记
  • 保持每天 AC 或者看懂(无法 AC 时)两道及以上的题目,通过刷题来巩固自己的算法和数据结构的掌握

其实在这个过程中收获非常的大,弄懂了好多平时都认为模凌两可的东西,感觉自己的 code 能力又有了小幅度的提升(这种东西,进步速度不可强求)。

主动离职了,有压力了,是坏事,还是好事呢?说不准,自己做的决定(死),顶不住也得顶。