一、前言
工作一周了,这11,11,6是有点累。
每天十一点半左右打卡下班,第二天九点半起,十点四十左右到公司,每天要写日报,这样的日子一周持续六天。
其实也还行,也是身体累点。更主要的是发现自己有很多不会地方,很焦虑(组内就我一个是应届,全组最菜),要学的东西太多,会在一段时间内没有产出,生怕过不了试用期。
生理和精神的双重焦虑暴击,哈哈,估计适应一段时间会好很多。
二、缺点
要学的东西实在是太多了,读研期间由于种种原因,没有去实习,工作了极其不适应。主要有两方面的缺点,
2.1 技能缺失
技能的缺失主要有以下几点:
2.1.1 Linux开发经验
不熟悉的技能有:
- vim(编辑器)
- bazel(构建工具)
- shell命令
- gdb(调试工具)
- Git(版本控制)
生产环境是Linux。而自己以前用Linux的时候也仅限于cd, mv, reboot等等简单的命令,用vim也只是简单的修改配置文件,随便用用还行,可离靠这些吃饭还差的很远。
2.1.2 c++语言实践
主要是两点:
- 智能指针的使用
- 多线程的编写
以前在学校的时候,生活在自己的舒适区,写的项目用的都是最原始的指针,C++的智能指针只是用来应付面试的,另外更别提多线程的经验了。
2.1.3 CUDA编程
为了更好的利用CPU,提高程序的效率,代码从单线程走向了多线程。
现有的状况,CPU的能力已经完全释放,但依然跟不上计算任务的所需算力。那么下一阶段的发展可能是GPU编程,利用GPU的多核进行计算。这样CUDA编程可以说是将来的必备技能(参照多线程技术的发展)。
自己在前几年就想过这个发展趋势,遗憾的是没有付出实际行动去进行学习,工作中遇到了只能一脸懵。
2.1.4 框架学习
主要是RPC框架。
公司的实际生产中,很少有单机的程序(这是与学校的Demo项目最主要的不同)。大部分逻辑都以服务的形式进行提供,那么这就要求对相应的RPC框架进行熟悉。
2.2 思考方式
快速迭代开发的过程中,很少有详细的文档对项目进行描述。在接手别的项目之后,如何能从“几乎没有注释”的代码中找到相应的处理逻辑。
2.2.1 数据流
一个有效的方法应该是按照数据的流动进行分析,然后在分析的过程中把握以下几点:
- 模块的划分
- 数据的变化
“没有注释”≠“一团糟”
注意每个模块的边界条件,定义相关的数据格式。把握住这两点就能写出自己的模块,来替换原有逻辑。
三、计划
原来是计划每周一篇博客的,在当前的情况下貌似是一种奢望了。
因为博客是输出自己知识的过程,主要是为了自己便于总结、提升,当然,如果分享出来能帮助到别人就更好了。
但工作以后,一方面接触到的东西是业务偏多,另一方面工作内容也会涉及公司机密(这肯定不能写出来),导致没啥可写的。
好在刚工作,需要学习的基础知识有很多,前一两个月的可以进行基础知识的总结。
以后写博客应该分成以下两个方向:
- 通用基础知识(如某一框架的学习,源码解读)
- 工作经验总结(尤其遇到问题的处理方法,思维逻辑的总结)
四、理想
当有太多的事情要忙的时候,很多人都会疲于奔波,他们把所有的精力都放在了眼前的事情上,却忘了自己为什么要做这些,忘了自己本来要去哪。
希望以后工作的时候,时时刻刻记着
- 我为什么在这里?
- 我为什么要做这件事?
另外,拖延症一定要改!