一直以来都很少写这些比较软性的文章,一方面觉得没有太多可以写的事情,另一方面觉得写这种博客对读者来说没有太大的价值,不过作者在今天还是想对过去的 2017 年进行简单的总结,让自己更加清楚这一年有哪些的变化。
年度总结
在今年年初的时候曾经定下了两个非常简单的计划:看 30 本书、完成 20 篇博客;前者是一个输入的过程,后者是输出的过程,这种可以量化的指标比较容易记录,对于完成与否也有一个确切的答案。
今年的计划大体来看完成度还是比较高的,如果算上这篇总结今年总共写了 35 篇博客,也阅读了 23 本书籍,对于博客来说确实超额完成了任务,不过现在看来每年读 30 本书确实是一件比较困难的事情。
作为软件工程师,在日常学习或者工作的时候,我们阅读的很多资料都来自于一些网站以及官方文档,有的文档的长度跟一本书也是差不了多少的,但是它并不是一本书;除此之外,阅读的很多论文也不属于这个类别,所以在制定 18 年的计划时可能会对这一部分进行简单的调整。
毕业
2017 年是作者毕业的年份,从 7 月份毕业、8 月份入职到现在算了一下大概有 5 个月的时间,相比起在学校每天还要担心被哪个老师点名来说,上班的日子规律了不少,每天早起学习、上班、回家再学习、睡觉,毕业之后的生活确实比还在学校时简单了很多。
不过生活虽然变得简单,但是业余时间相比大学的时候确实少了一些,与之前每时每刻不是在学习或者就是在划水不同,在公司的时候还有工作需要处理,由于公司对于项目的可用性和完成情况有着比较高的要求,这会迫使我们去解决很多问题并思考很多边界条件。
如果有人问我『大学毕业是一种什么样的体验?』的话,从我个人的经历和体验来看还是利大于弊的,虽然失去了一些选择的自由,提高了改变的成本,不过收获了更大的自由,同时也意味着自己要对做出的决定负责任。
技术栈的改变
之前还是有一些人看到最近发的博客,会发私信或者在微博下面留言问『目前主要在做什么工作?』,其实今年 2~4 月份的时候是最后一段写 iOS 的时间,在这之后一直都在学习并且从事着服务端开发的工作,毕业之后开始写 Ruby on Rails,而最近的一段时间由于工作上的变动逐渐将技术栈转移到了 Java 上。
对于我个人来说,改变当前的技术栈到服务端是一件比较自然的事情,从开始学习 iOS 开发到现在也有将近 4 年的时间了,虽然对这个领域说不上『精通』,但是还算得上『熟练掌握』。由于编译器、图像处理、音视频处理以及机器学习相关的事情我还不是特别感兴趣,所以总是感觉自己在同一个领域内做重复的工作,导致我对编程这件事情失去了一些兴趣,这是我不愿意看到的,所以才会选择做出这个改变,开始在新的领域尝试新的东西。
在这个领域中,我发现了很多新鲜、好玩的事情,包括网络、数据库、分布式系统等等,虽然我用 Rails 到现在已经快三年了,但是真正深入了解这个领域的各种知识还是从来没有过的,服务端的新知识对于我来说都很有意思,也更有挑战,所以未来的一段时间可能都会在这个领域中继续学习。
社交平台与博客
去年年末开始用 微博 发一些平时写的博客到现在也差不多过去一年了,感谢各位读者和某粉丝群里各位大佬的支持和转发,现在微博也有 2000 多的粉丝。
博客的访问量跟年初相比提高了 10 倍左右,其中一大部分原因还是之前博客确实没什么访问量,其余的就是总结出了一套排版和制图的规则,写博客的这几年的时间非常明显地提升了表达想法并且梳理思路的能力。
今年总共写了 30 多篇博客,前半年由于还在学校,同时为了毕业,一直在写一篇跟 MVC 相关的论文,所以很多博客都与 iOS 开发有关;六、七月份发的几篇博客其实都出自毕设论文的不同章节,这四篇博客从开始写到发布花了将近 4 个月的时间,这几篇中最满意的还是 浅谈 MVC、MVP 和 MVVM 架构模式,写这篇文章的时候确实花费了非常多的时间,参考了很多的资料,就是为了避免在这种关键问题上误导别人。
下半年写的文章都与服务端有关,作者对于其中的大多数文章都是非常满意的,尤其是下面的几篇文章:
简单看了下,真的不满意的文章非常少,不过这里实在是放不下更多的链接。
在这几篇文章中 谈元编程与表达能力 讲了一些我个人对于元编程的看法和理解;分布式一致性与共识算法 是我在学习区块链技术的时候写的,无论是在学习的过程中还是从最后的阅读量来看,作者还是觉得挺满意的;最后的 Docker 核心技术与实现原理 应该是今年阅读量最高的一篇博客了,发布至今不到一个月的时间,这篇文章的阅读量就能达到 3w 以上,这是作者万万没有想到的。
技术成长
从年初到现在,确实涉猎的技术类型非常广,上半年因为要处理很多与毕业相关的事情,在技术广度上并没有太多的成长,只是看了一下 ReactiveCocoa 的源代码,总结了一下客户端的多种架构模式。
在 7 月份至今的一段时间内,基本每天都在学习新的知识与技术,刚刚入职的一段时间定下了一个比较简单的目标,也就是半年内充分了解数据库的相关知识,包括 MySQL、MongoDB 的使用和存储引擎,事务、索引设计等知识,在这期间看了很多相关书籍;在学习数据库的过程中发现了分布式领域有很多有意思的事情,阅读了一些相关的论文包括 Google 出品的 MapReduce、Bigtable、GFS 还有 Amazon 的 DynamoDB 等等,到目前来看这个短期计划的完成情况还是比较令我满意的。
除此之外,由于工作和技术栈的改变,阅读了一些 Java 相关的一些书籍和文档,在这里不得不说一句 Java 的生态环境实在是太过于庞大了,而且生态中的开发者是一群非常喜欢创造概念的人。在学习 Spring 的过程中,我也更加清楚 Rails 的出现究竟解决了什么样的问题,同时约定大于配置确实是一种更加高效实用的思想,这一思想也催化了 Spring Boot 的出现,简化了 Spring 生态的使用和了解成本,但即使是这样 Java 生态中也有非常多的技术需要学习和理解。
比特币和区块链是今年非常热门的词汇,但是目前大多数人只是为了投机才参与到加密货币的买卖中,研究区块链技术的人其实比较少,不过这些技术确实非常有趣,作者最近也在研究区块链作为一个分布式系统使用了哪些技术才实现了去中心化、不可篡改等特性。
总结与规划
从年初到现在的变化还是非常大的,几个月前还在学校准备毕业答辩,而现在已经工作了几个月,技术栈和方向相比于一年前也有比较大的改变,在未来的一段时间内还是会继续学习后端的知识,而业余时间也会了解一下区块链的相关技术。
回想一下从学习编程最开始每天吐槽 Java 的臃肿和繁琐,到现在日常跟 Java 打交道,学习它各种复杂的 API 和开源框架的使用,我只能说一句『善恶终有报,天道好轮回』。
相关文章
本文转载自 Draveness 技术博客。
原文链接:https://draveness.me/2017-summary
评论