看到身边的朋友通过勤刷算法题和系统设计,拿到了翻倍的薪水,心里不免起了波澜。在同一个公司同一岗位做了两年,如果技术上没有进步,在老板眼里也就是一个随时可以替换的螺丝钉。升到下一个级别,也许有一定的激励作用,但是胡萝卜就那么多,如果不想那么卷,升职这一条路也不容易的。因为疫情原因,市场上招工难度变大,脸书、谷歌、还有亚麻等科技公司,纷纷调高了新员工的薪资待遇。涨幅达到了20%以上,这样会导致同一级别的新老员工薪资倒挂现象。综合来看,跳槽也是一个不错的选择。

当然,想拿到谷歌和脸书等公司的录取,也不是一个容易的过程。平均四轮算法面试,还有一轮系统设计面试,就过滤了很多求职者。勤奋的华人同胞,还有印度兄弟,都努力在刷算法题,努力挤进科技大厂的门槛。

一般的工科学生,只要能沉下心来,花4个多月的业余时间,算法题都能做的不错。 这是一个熟能生巧的过程。

这两周,我做题还不够踏实,有些题不知道解题思路,花比较长时间琢磨。有些题有解题思路,提交做题答案,不能通过在线测试,需要debug好几遍,发现一些步骤的错误,才能成功。 总的来说,还做不到高效刷题。

看人家的解题思路,自己再来实现,也许有用,但是过了一段时间,还是只记得自己原始暴力解法。

给一同刷题的朋友们讲题,我因为准备不充分,讲题不流畅,有一些测试用例跑不过。而且,面对听众的提问,我有的时候,大脑一片空白,支支吾吾,说不所以然来。很佩服刷题小组的大牛们,能够条分缕析地把题目和测试例子讲清楚。

还有一个小体会,讲题过程中,在代码上方的注释块里面,动态地单步走代码和测试例子,效果很好,听众觉得很清晰,这需要一定的训练和技巧才能做到。 见贤思齐,我也要掌握这种方法,多训练。

另外,工欲善其事,必先利其器。用带触摸屏的windows电脑和手写笔,在Zoom 会议中,画图说明tree和链表,图等数据结构,非常地方便。这一点Mac做不到,只能用iPad来画。

不管怎样,要想拿到翻倍的薪资待遇,自己的系统性思考和训练必不可少。以前做过的项目,为什么这么设计,有哪些巧妙的地方,又有哪些不足的地方,如果自己重新设计,怎么做?

做算法题,也是学习一门新语言的好办法。做题能提高自己编程的速度。例如,我现在已经能够用Python写比较复杂的程序了,比工作用Python写的代码要流畅。我用Python之前只是做做简单的报表,写增删改查程序,REST API和数据库打交道,很少用到Tree,Graph等复杂数据结构。

如何提高刷题的效率,网络论坛上的大牛文章有很多,其实关键一条自己要能自律,每天坚持做题,提交测试。分类刷题也很重要,一次刷同一类别的题目,融会贯通。第二条,掌握同类型的解题模版,提高写代码的速度。

第三条,还是要看讨论区高分的解答,选择自己好理解,能讲述的解法。 第四条,网上大牛的解题汇总,他们经过成年累月的做题,已经形成自己做题风格,可以用来借鉴和对比。

还是那句老话,宝剑锋从磨砺出,梅花香自苦寒来。日复一日地训练,每天有所精进,在面试的现场,才能做到游刃有余,最后拿下自己满意的录取。

于2021年10月31日

自勉!!