> 最近看到[阮一峰老师的2016年度总结][1],菜逼程序员我也想记录下自己的这一年。
## 从学校走出来
>15年6月从学校走出来,和几个大学死党同学规划毕业旅行是大西北,作为一个重庆的山上娃娃,见到沙漠,戈壁,雅丹,丹霞,草原还是蛮惊到掉牙的,涨了见识,but代价是从西北回来到公司后同事说:"还以为是羽泉来公司了呢"。
## 公司入职
>毕业旅行完就直接入职了。工作是做移动端DSP的流量接入层,老大跟我讲了讲RTB相关东西,就开始融入团队。团队用的语言是Go,从之前使用php开始过度并接触Go,深深的被Go给迷住了,并将对Go的预期膨胀到最高点[Phase 2][2]。
## 工作
在公司的一年多,做事方法很有多不足,也犯过很多低级错误,做过两次case study,从这些教训中收获良多,逐渐从一个热血方刚的愣逼转变成一个稍稍不那么头脑发热的菜逼。除了日常开发升级,也在做业务侧的机房迁移,机器配置升级,机器性能调研等工作,算是从枯燥乏味的码业务逻辑外找到一点儿新鲜感的东西。熟悉业务后逐渐发现跟我相关的基础服务没有跟上业务的步伐,有很多东西规范性很差,所以逐渐整理和写相关工具制定推进一些规范。
## 瞎折腾
> 工作的这段时间,一有闲工夫抑或码逻辑烦躁后就会瞎折腾各种没有接触过的玩意儿。哈哈,但是涨了见识,丢了业绩
### Golang看过的开源项目或标准库:
0. 标准库io。net库,从底层分析Go在网络编程的便捷性,并绘制了一张UML图。net/http库,由于经常用到,简单分析了下,但是还不彻底,以后继续
1. [kiteq][3],blackbeans写的一个分布式消息队列。之所有没有看nsq,是因为kiteq是中文的,并且自己对分布式东西很不熟悉加上自己英语很low,所以没这个本事装逼。kiteq对我的学习就是很不错的项目,也是第一次为开源打赏(笔者很尊重作者)作者
2. [turbo][4],也是blackbeans写的底层网络通讯框架,看了源码后当时受益匪浅
3. [groupcache][5], memcache作者用go写的一个分布式去中心的缓存服务。虽然觉得这种东西使用场景并不多,但是抱着学习态度看了一遍源码
4. [martini][6],看了一遍源码,知道原来要这样写Go版的web框架
5. [Negroni][7],突然有一天很多人都说martini不是那么原汁原味的Go(其实到现在我也不理解什么程度的代码才算是原滋原味),就看到了一遍Negroni,于是自己模仿这个框架也写了一个山寨版
6. [livego][8],一个用Go写的直播。
7. 还有一些项目,像[docker][9],[kit][10]啃不动的属于自己能力还不够
### 大数据
> 这一块是由于工作时会间接接触到,所以也抽空学习了下,主要是Hive和storm,kafka,zookeeper等。但是还停在表面,一直没有机会用在实际项目中
### 前端
> 在学校学php和c++,当时还流行jquery,在16这一年突然发现nodejs,react,vue, webpack, es6标准等新东西层出不穷,虽然现在用不上,但是为了开拓下视野也简单学习了一下react,vue,webpack等东西,写写简单demo。
### 看过的书
1. 西游记,86版的还原度还是很高
2. 万历十五年,作者口吻还是蛮幽默的
3. 跟乐嘉学性格色彩。看乐嘉说的挺有道理的,但是发现这种东西...
4. 从0到1,看的时候挺热血的,但是现在...
5. Curious George。英语水平有限,看本英文原著提高下英语
6. Beezus and Ramona,还没看完
## 最大惊喜
> 这一年的经历很平凡,但是却有意外意外意外的惊喜。生日这天,我喜欢了很多年的大学同学跟我异地告白了(哈哈,都来领程序员的狗粮了),毫无疑问的结果我们在一起了。
## 2017展望
![此处输入图片的描述][11]
哈哈,看来定的目标很难实现啊,不过还是可以定几个目标留给以后开开玩笑
0. 异地 ---> 负数
1. 代码整洁之道。工作一年多了,但是觉得自己写的代码依然受到ACM((时间就是排名)时期的影响而不那么优雅,所以啃这本书
2. 看一个Go长连接,Go IM/直播的开源项目,总结大家的套路
3. 造一个Go轮子,什么轮子还没想到
4. 养成做笔记,写博客的习惯
5. 达到[phase 3][12]后期
5. 看5本跟技术无关的书
6. 继续撒狗粮
>总结,这一年保持了足够的好奇心和精力去探索未知。虽然看过不少七零八落的东西,但是却没有沉淀下来属于自己的,一方面是因为自己没有养成做笔记总结的习惯,另一方面是因为自己始终停在表面没深入实践。但是因为某些原因这一年依然是值得纪念的一年
[1]: http://www.ruanyifeng.com/blog/2016/12/year_summary.html
[2]: https://www.oschina.net/translate/the-5-stages-of-learning-go-with-examples
[3]: https://github.com/blackbeans/kiteq
[4]: https://github.com/blackbeans/turbo
[5]: https://github.com/golang/groupcache
[6]: https://github.com/go-martini/martini
[7]: https://github.com/urfave/negroni
[8]: https://github.com/qieangel2013/livego
[9]: https://github.com/docker/docker
[10]: https://github.com/go-kit/kit
[11]: http://sm.domobcdn.com/ugc/e/23864d84fe02f245c349e053.png
[12]: https://www.oschina.net/translate/the-5-stages-of-learning-go-with-examples