个人情况
本科四年基本一直用 C++,毕业接近 6 年,主要用 java,对关系型数据库比较感兴趣,用过 mysql 和 sqlserver,捯饬过慢查优化,索引设计和索引原理等,也看过《数据库设计概论》的一部分,但没有深入到源码层级。
短板分析
- 虽然出身科班,但基础较差(甚是惭愧)。看 java 一些涉及到大量位运算的源码就比较吃力。想做一个 mini DB 的契机很大程度上也是源于希望加深对操作系统各方面的认识,练好内功,适应以后技术的飞速变化。
- 自认语言 stack 还是显得狭窄,想多熟练一门语言。
- 虽有 C++经验,但水平一般且丢了好几年。个人认为 GO 的学习曲线应该比 C++稍微平些。
纠结点
- C++虽成本高,但更接近 OS 底层,而且熟练之后猜测对学 JVM 也有所裨益?毕竟现在几个主流的 VM 依然是 c/c++ 实现的。
- 从功利一点的角度看,似乎 GO 更值得学。
从个人而言,最重要考虑的点依然是加深对操作系统 /网络等基本功的认识。希望有类似经验的老哥们能给点参考意见。目前想法是先做一个比较简陋基本版的,再慢慢添砖加瓦。如果能推荐一些学习 c++或者 go 的 resource 就更好了。