转载

一个Java程序员的2018年总结

大概有2个月没有真正的去写过文章了,这段时间的确是太忙了,先给各位读者道个歉。2018都过去快一周了,终于在周末的时候抽出了时间对2018进行总结。

在这匆匆的2018年中我阅读了很多书籍,结识了很多人,了解了很多不同的学习方法,也领略过一些高深莫测的源码,写过一些不精的技术文章。这一年的确经历了很多,自己也得到了很多成长,获得了很多感悟,而这些经验,感悟我也将在这里记录下来。

2018的那些书

2018年买了很多书,但是目前看完的是少数,但是一般买书之前我都会参考很多地方的评论,以及他的目录,自我认为选择的书还是算不错的吧,这里我把我今年购物车的书列举一下,大家可以参考一下:

  • 《kafka权威指南》《Apache Kafka源码剖析》 以前市面上基本没有对于消息队列介绍的书 ,去年关于消息队列kafka的书一下出了好几本,买书的好好挑选了一下,选择了这两本书。

《Apache Kafka源码剖析》:这是国内作者写的一本书,如果你想了解消息队列实现原理,一些实现的核心思想,但是你并不是很想真正的实战上面对他使用,对他调优,那么这本书就足够了,相信你阅读了之后读kafka,乃至其他消息队列都有一个全新的认识。 《kafka权威指南》:这本书是Kafka作者推荐的一本书,其实我觉得也可以叫kafka实战,这本书讲原理不是很深,但是对于实战的场景却讲述得很透彻。如果想真正的业务上使用kafka那么这本书是必不可少的。

  • 《大型网站技术架构演进》:相信很多人都阅读过李智慧的《大型网站技术架构》这是一本13年的书,而《大型网站技术架构演进》这本书同样也是阿里人写的,如果光看名字你有可能以为这是那本书的2.0版本,但是真正的内容差别很多,作者许令波介绍了很多很好的思想,技术。比如中台的演进,国际化的挑战,尤其是合并部署,这个技术以前根本都没听过,但是我的水平有限,合并部署这一块如何落地还是不是很清楚。这本书也比较薄,差不多2周之内就能阅读完吧,非常推荐这本书。
  • 《架构整洁之道》:《架构整洁之道》是创造“Clean神话”的Bob大叔在架构领域的登峰之作。这本书不是很推荐新手玩家阅读(当然阅读之后肯定没有坏处),这本书对于工作一段时间的人是非常有益的。这本书的章节划分得很细总共34章,我特别喜欢这种划分得很细的章节,有助于我们总结归纳。其中介绍的很多东西对于工作之后的人是非常有用的,如果不想只当写代码的程序员,想对自己往更高的一个层面进步的,这本书应该会让你受益匪浅。
  • 《码出高效》:这本书相信不用我推荐也有很多人买,毕竟阿里出品。阿里孤尽的《阿里巴巴Java开发手册》所制定的规约相信已经成为很多公司,很多部门的开发规约了,当然这本书我个人觉得可能还是更多的面向一个初,中级的,对于技术比较厉害的同学也可以阅读,毕竟孤尽也介绍了很多自己的一些经验。内容介绍得很全,由于太全了肯定就导致了不会太深,从计算机基础,到Java语言,再到JVM,最后作者也介绍了个人成长。作为一个Javaer,相信你读了这本书肯定能得到很多收获。
  • 《Effective Java3》:《Effective Java2》已经出来快10年了,虽然第二版的内容到现在依然适用,但是现在Java11都出来了,Java6的规范显然明显是不够的。买这本书的初衷是自己计划看完一本英语书,但是这本书的中文版已经在12月份的时候出版,有兴趣的可以去购买,第三版的《Effective Java》介绍了很多java7,java8,乃至java9的最佳实践。所以这本书应该会逐渐替代《Effective Java2》在Java书届中的地位。
  • 《领域驱动设计》《领域驱动设计精粹》:微服务的火热让DDD重新焕发了青春,我们的项目重构也用到了很多DDD的思想。很多人一开始就会陷入战术模式的死胡同,认为DDD就是充血模型。所以这里首先推荐一下《领域驱动设计精粹》,这本书介绍了DDD的战略模式,这本书叫DDD精粹但是却通篇没有提起战术模式或者是充血等等,所以DDD的精粹应该是他的战略建模,领域划分等等,同时这本书很薄,大概一周就能读完,所以对于想了解DDD的同学来说这本书很不错。对于想了解更多的DDD可以阅读《领域驱动设计》,这里也推荐一下GitChat上张逸的领域驱动的课程,让我也受益良多。
  • 《持续演进的Cloud Native:云原生架构下微服务最佳实践》:对于想了解什么是微服务,如何做好一个微服务架构,那么这本书可以帮助你。这本书目前只看了前面3章,作者的水平的确不错。有兴趣的可以了解。
  • 《数据密集型应用系统设计》:这本书是另外一个公众号作者kirito推荐的,这本书很不错,在这里强烈推荐。但是比较厚,如果要把这本书看完,需要一定毅力的,目前我只看了3章。这本书介绍了很多分布式系统的内容,比如系统的可靠性,可维护,可扩展,数据编码,时钟不可靠怎么处理等等。对分布式有兴趣的同学阅读这本书是一个不错的选择。

学习方法

2018年出现了很多知识付费,掘金小册,GitChat,极客时间,提供给了我们更多的学习选择。同时也有更多的优秀开源项目,更多公众号,更多的技术文章如雨后春笋般涌现。

阅读书籍

很多人特别喜欢读文章,我这里不是很推荐只读文章,很多文章都比较碎片,没有连贯性,比如你想学习kafka,可能有很多文章能介绍一个大概,但是真正的很多细节还是需要自己看书去系统阅读学习。当然这里要值得一提的是,作为技术人员也没有必要只看技术上的书,对于一些方法论的书籍也可以做一些了解对自身的成长有很大的帮助。我一般阅读书籍会给自己定个目标,比如今天看哪几章,一般来说我看书不会一段时间只看一本,而是多本一起看,然后每天只阅读适量的,有点类似于以前上学一样学习多个科目,可能自己比较适应这种模式吧。所以希望想学技术的同学,读书永远都不能丢。

阅读文档

很多人学习一个东西,会走进一个误区,会首先去网上搜索文章看看这个东西是什么,这个东西怎么用,文章写得再好也只是他们个人的一些理解,但是真正作者要介绍的东西可能都在他的文档上面了,比如阿里前段时间开源的arthas,其实只需要阅读他的文档,基本原理和使用方法都能了解得很清楚。

知识付费

不得不说18年的知识付费的确很火,很多社区都选择了这个模式,的确我也很赞同这个模式,现在的技术社区垃圾文章遍地都是,我们筛选一个好文章就会浪费我们很多时间。如果一篇文章收费的话,那么这个作者我相信他不会舔着个大脸去写一些没有营养的文章吧。

  • 极客时间:知识付费做得最好的我觉得应该是极客时间了,极客时间的作者的确都是比较有名的人,写出来的文章自然也不会差,当然也别什么课程都去买,对于自己来说有个度就好。毕竟买多了你真的没有时间看,当然也有几个课个人认为还是比较水,所以这里也要分辨好。
  • GitChat: GitChat课程我只买了张逸的《领域驱动》,其余的课程对于我自己来说没有必要。GitChat比较适合你想要学习某个东西然后你去GitChat搜索,看看是否对应的文章,一般来说这种文章比网络上搜索出来的质量会好一点,并且你也可以直接和作者进行沟通。
  • 掘金小册: 小册的话比较推荐老钱的redis和闪电侠的Netty,这两个都是比较不错的小册。掘金的课程比较少,作者的名气和宣传都比较弱。但是质量都还可以,希望掘金加油!

阅读源码

读源码这个学习方式,相对来说比较累,毕竟没有前人给你铺路,需要你自己从头开始梳理,理解。当然读源码的时候也可以配合网络上的一些分析文章去阅读,有可能会事半功倍。

读源码也需要针对性的,不能猴子搬苞谷似的阅读,今天喜欢这个框架阅读这个,明天喜欢那个系统就阅读那个,一般来说阅读源码需要坚持,需要把这个框架的整体思路理清,一些巧妙的细节也需要关注,最好读源码的时候你能在上面打上你的中文注释,然后用文章去记录,去画出作者的设计思想,比如常见的一些类图,架构图等等。

如果你还在只会阅读Spring,Mybatis的源码的话,没有方向去阅读其他的那么我可以推荐一下几个不错的项目的源码:

  • rocketMq:如果读kafka的scala代码比较吃力的话,那么阅读rocktMq代码一定是你不二的选择,通过rocktMq你可以了解如何去做到高性能的存储等等。
  • sentinel:对服务限流,服务降级有兴趣的同学可以了解这个框架的源码,毕竟是阿里开源的,还是很不错的。
  • arthas,jvm-sandbox:这两个的源码其实都比较类似,原理大同小异,可以选择看看arthas他是如何做到实时监控我们服务的运行情况,当然你也可以学习到ASM,类加载器等知识。jvm-sandbox比较人性化里面有很多中文注释,帮助你理解。
  • caffeiene,guava cache:对缓存如果比较感兴趣的可以了解这两个。
  • disruptor:这个源码强烈推荐看,代码来说相对于那些中间件来说少很多,也很容易理解。你可以学习到缓存行,RingBuffer等知识。

当然我公众号也写过caffeine,guava,disruptor原理介绍的文章有兴趣的可以自行阅读。

国外文章

很多国内的技术文章其实都是二手的,很多东西还是需要查看一些国外的文章,尤其是大家查找什么bug的时候StackOverflower肯定是少不了的,当然英语比较差的怎么办呢,对于技术文章来说英语单词都比较简单,容易理解,如果还是不行也可以使用有道翻译,这里谷歌不是很推荐,翻译这种句子成中文自己测试之后还是有道翻译比较准确。

当然国外其实也有很多技术论坛,但是平时需要阅读的东西太多了,所以也基本不可能逛。如果有兴趣的同学,我觉得多逛逛其实很有用处的,毕竟技术新闻相对来说比较新一点。

公众号文章

现在的技术公众号很多,产出的文章也是参差不穷,对于公众号这类的文章因为很难形成一套的技术知识体系,所以一般都当成类似新闻快餐的一样去阅读了,当然对于一些写得很优秀的文章也还是需要做笔记的。 我推荐一下我置顶的一些公众号吧:

首先是我自己的 咖啡拿铁,这里就不过多介绍了,嘿嘿。

kirito的技术分享:kirito的公众号基本都是原创,而且他也是阿里中间件服务治理的大牛,大家都叫他徐妈,他写的很多文章是关于中间件天池大赛的,对于喜欢一些技术极致优化,服务治理或者天池大赛的同学可以关注他。

芋道源码:就和名字一样,喜欢学习源码的可以关注他,他写了很多中间件源码分析的文章。

占小狼的博客:喜欢JVM和服务治理的都可以关注狼哥,狼哥在这两个方面都是大牛。

学会写文章

读文章是一个吸收的过程,但是写文章却不是屏弃知识的过程。写文章同样也是一个学习的过程,当你决定要写一篇文章的时候(前提不是水文),你肯定会查询大量的资料。当你下笔的时候,你会发现其实这个知识还有很多是你不懂的,这个时候也会查询大量的资料。当你写完之后,其他同学问你问题,或者提出质疑的时候,也会帮助你进行知识上的自我反思。所以学会写文章相信对你的技术上,个人影响力上来说都会有很大的进步。

多认识人

今年通过写文章认识了很多人,越发的发现一个人学技术是闭塞的。为什么会有很多项目开源,那其实就在说明技术是交流的,而不是独享的。

比如今年认识了kirito,从他的影响下就会感觉天池大赛很有意思,可以从天池大赛中锻炼很多,所以我也决定下个赛季也想去试试,哪怕是最后一名也无所谓。

自己也建立了一个技术交流微信群,在群里面能结识到很多不同的公司,很多不同的地域的人。也能和他们讨论不同的技术方案或者技术细节,对于一些不懂的问题,提问出来大家也都愿意去解答,当然大家遇到一些比较好的文章也会进行交流分享,当然能做一些行业内的闲聊也是很不错的,当然如果你想加入可以关注我的公众号,然后加我好友拉你进群。

2019的规划

2019已经来临,想必很多人都做了自己的技术上的规划吧。这里也给自己立下几个flag:

  • 尽量春节之后文章每周一篇,每月4篇。
  • 把2018年没有读完的书给读完。
  • 参加一次天池大赛。
  • 结交更多志同道合的朋友。

希望大家都能做一个矢志前行的逐梦人,志之所趋,穷山距海,不可阻挡!

如果大家觉得这篇文章对你有帮助,你的关注和转发是对我最大的支持,O(∩_∩)O:

一个Java程序员的2018年总结
原文  https://juejin.im/post/5c318a54f265da614933cb52
正文到此结束
Loading...