共计 1611 个字符,预计需要花费 5 分钟才能阅读完成。
缘起
比起自己的书单,影单,以及公司的半年述职(总结)不同,这个总结更多的是为了看到自己的问题。
全文写完也用了 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 掉。