缘起
- 比起自己的书单,影单,以及公司的半年述职(总结)不同,这个总结更多的是为了看到自己的问题。
- 全文写完也用了62min。
综述
- 7月前都是忙着毕业相关,真正技术生涯还是下半年。
- 大体的技术栈是,从区块链技术平台,到Linux平台的C++,对应的就是这些场景下的技术了。
自己瞎琢磨的一些方法论:
- 还是要多写,读,调试代码,主要以项目为主,然后自己总结,再读一些手边有的基础类,翻翻一些经典类的item,争取把知识点串起来。
- 以前自己的学习方法应该是错误的, 要多做题,去思考,而不仅仅只是照抄,觉得能编译,运行就OK,那些只是表现的,要一步步深入。 多走回头路,哪怕只当是复习,复习到知道的技术点,至少是个正向的反馈。
- 总体看自己Code2018里的代码,善终的不多,还是高估了自己,看来自己下班后,还是不太写代码,都用来读闲书和电影了。
编程语言&技术点
Golang
- 这是全年新学的语言,《GIA》上的代码也能运行起来,代码也写了一些。 但总体觉得没建立更好的感觉
网络编程
- 比起UNP而言,韩国人写的书可能更适合入门,自己也把这本书的代码撸了一遍,代码提交在了github上。 但只是库或者流程的解释,但对于设计用处不大。(比如面试时人家问:你用TCP或UDP传输时,怎么考虑的。 那时回答的都是书上理论上的东西)
C++
- 一直把这门语言作为自己的主力语言,但C++11及C++14并没有太多关注,经典的Effective里的item,以前都不太有感觉。
- 今年算是个分水岭,实验室3年项目上都没用C++,而自己当时并没有想过去坚持下来撸一个代码。 硕士3年有遗憾啊(但凡事后复盘,谁TMD的能没有遗憾呢,要放过自己,向前看)
- 反正继续学习和项目中用着吧,毕竟是自己的主力语言,而很多特性都是差不多的。
内存数据库
- 只是知道这个概念,但真正觉得有用还是在 凑合交易引擎上,这样能更快速,其实跟硬件要吃掉部分内存一样的,所以这方面出来的早啊。
- 自己就看了Redis,主要这方面的学习曲线比较成熟,虽然后来项目用不是Redis的内存库,但我更侧重结构和应用场景。
- 用应用场景来push自己学习,用结构来夯实自己传统数据结构里的各种实现。
gdb调试
- 这个以前有看过书,包括面试时人家也会问,你linux下怎么调试,我也跟人家说(gdb和打日志)
- 但真正觉得那本《软件调试的艺术》写得一般,还是2018年项目中实际用了gdb几天后,才把这本书给串起来了80%,而我感觉书中这些东西都是最基本的啊,对于调试而言。
- 就像你会用linux命令,但从来没有并没有在一行语句中使用
exec
命令,甚至没这个意识的时候,这个属于会用和熟悉之间的差异。
总结
- 总体而言,我的技术2018,算是一地鸡毛啊。 要好好的按项目做个总结,然后更新简历。
- 没有做好的 要改善的 :费曼法则学习DS,技术blog上已经有2周没更新了。
- 从项目中代码阅读来看,自己 Linux系统编程的能力需要强化一下,虽然确实只是一些库,不懂的时候,可以查,但又觉得标准C里,其实也没多少库,str和mem相关的,为什么自己不能强化呢。
2019年计划
- github上建立一个Repo,标题是 Code2019,主要放2019年学习的代码。
- 2019年6月时,以公司项目一个模块为蓝本,进行源代码阅读,调试,从方法论到实操的输出。 2018年12月有开始起了,但还不太完善。
- 2019年6月后更新简历,去大厂面试看看自己还有哪些方面要提高,以及人家问的新技术。 不是说一定要换工作,而是想看看世界,认识自己。
自己想学的
- CMake
- 从项目的代码中去学习多线程的应用,自己前期只能看下线程库的一些基本库,自己提前熟悉下用法。
- 要把《UNP》第2卷IPC的内容看完, 不然没法去面试啊,只是知道个共享内存,管道这样可能还不行。
- 更多的精力应该是要串起已有的知识点,做到能跟人讲解,能独立定位这个系列的问题,比如调试,新人只会说我试试的话,到自己这一定要做到啥问题都能KO掉。