翻车笔记

目录

引子

很煞笔的一天,最近两次面试的试水都挂了(但之前面的两个小公司都拿到offer,小公司没有现场编程题),根因都是现场编程题不太理想。这个也不能怪别人,自己长期以来排斥刷题,觉得刷题纯度太低了,加上到目前为止就没有一次现场编程挂过。

这波有种熟悉的感觉回来了:大二参加acm预选被血虐留下的心理阴影,在那之后再也没碰过OJ。

另外,问到的一个关于LSM读写放大的优化也答得不是特别理想,因为工作上对这块的优化确实没有做,我看了下都是使用了默认的参数,更别说对compact等进行深度定制(引擎这块上不太深入,这也与工作中至今为止主要负责的模块不是这块有关)。

表面上,是面试准备不足,甚至是没准备。

深层次,反映出两个本质问题(对于搞技术的人来讲,很严重,在这么下去基本就是个废物了…orz.这也跟过去一年里日常工作里运维/各种救火比重太高有关,做的太零散且偏业务了,技术上的积累程度不足。

1.算法/数据结构能力退化.(那一天,终于回想起,大二下学期,被oi支配的恐惧)

2.引擎层/分布式/事务深入度不足.(那一天,终于回想起,研二下,被那坨论文/那几本书支配的恐惧)

改进项

这波决定:

  1. 常态化刷题(以前好歹坚持a了50+题+手写线段树,现在一个BFS就把我干废了lol~!)
  2. 重心转移到引擎层,积极跟进各种学术研究成果(以前落下的,总得还,什么Lsm-trie/bLsm/wisc-key/SuRf/Dostoevsky/…etc等,都是时候捡起来了,仅知道名字是不够的) 2.1. 最好深度参与到工作中引擎层优化项目上。

改进项管理

  • 刷题

  • lsm引擎层

  • 分布式

  • 事务

另外还必须搞个日报机制,把这个项目run起来。

日报

  • 2019.*.* 遥远的kickoff,之后才有了博客/建站/git新号
  • 2020.*.* 各种论文蜻蜓点水,主要搞了节点分裂,偏向于业务
  • 2021.*.* 简单题/中等题翻车,kickoff again…
  • 2021.3.23 第一天先把翻车的两题回顾一下,唉,如此简单。。。心肌梗塞=。=
    • 剑指 Offer 22 - 找链表倒数第n个节点。 龟兔赛跑,简单题。

    • 剑指 Offer 32 - I. 从上到下打印二叉树。 BFS,中等题.

    • 103. 锯齿遍历二叉树。 BFS,中等题。 BFS变种,有利于深度理解BFS。只需要一个queue就行,原因是下一层的所有节点(是排到队尾)会在上一层的节点遍历完后才会轮到。

    • 236. 二叉树的最近公共祖先。中等题。这题也简单,给每个节点加上一个parent指针即可。

    • 另外今天还给libevent搞了个c++ wrapper(~30%),其中封装fd可读的用户callback时,用到了以下几个c++的“modern feature”: functor/callable/template pack/类型萃取用来判断template参数是否为符合要求的functor/std::forward用来完美转发template parameter。让整个库变得modern了起来,整个vim充满了欢快的氛围,又知道了“茴”的一种写法。哈哈。