特别放送 Jackey:寄语天涯客,轻寒底用愁 大家好,我是Jackey,目前在一家创业公司的架构组做Java开发工作。因为工作需要,我也会做一些Node、Python以及运维相关的工作,所以称自己为“半栈工程师”。今天,我想和你说说我学习这个专栏的一些心得。

我平时是如何学习的?

我先来和你说说我的经历吧。

本科毕业后,我去了一家国企做项目开发,日常工作就是使用已有框架去快速搭建一套可用的内部管理系统,然后做些定制化。

做了一年多,我感觉工作内容大量重复,所用技术也与行业严重脱节。但同时我也发现,我竟然连自己做的项目是什么原理都说不清楚,没办法通过其他公司的面试。然后,我开始深入研究所用框架,为日后的面试做知识储备。

当我在调用框架提供的某个方法时,不再停留在是什么、怎么用,而是去研究源码看看它是如何实现的。比如,NIO是怎么实现的,为什么用select而不是epoll;再比如,某个类的实例为什么要用单例,单例还有哪些写法;又比如,某处代码用到了线程池,用的是哪种阻塞队列,为什么要用有界队列,队列的参数是怎么设置的。

每次点开一段源码,我都感觉打开了新世界的大门。每次遇到新知识点,我都会通过搜索引擎去查看官方文档、技术博客或其他资料。在阅读这些技术资料的过程中,我又会发现一些新的知识盲区,进而通过递归学习去触达更多的知识

经过半年多的研究,我终于搞清楚当时所用框架的基本原理了。而在这期间,我也从一个写Bug的小菜鸟变成了带领他人开发项目的小组长,顺利入职了一家AI公司,负责自有商城的开发。

团队人数不多,但技术足够新、氛围也很好,并且开发流程非常规范,编码格式要求严格。这,对我的个人成长帮助很大,因为代码就是开发者的名片,“优雅可读”的代码给人的印象总是好于“惨不忍睹”的代码。

因此,我感谢自己之前对技术原理的积累,让我有了一个更好的发展平台。

我为什么要学习“分布式技术原理与算法解析”专栏?

后来,因为内部调岗等因素,不想远离技术的我再次选择了离开,这次我打算去一家大公司。

由于我之前积累了比较多的基础知识,再加上读过一些Redis源码,在一面中的表现都很不错。但二面问到关于系统设计的问题时,我就有些无从下手了。

我记得在美团二面时,面试官让我设计一个注册中心。我了解一些Eureka的原理,所以简单阐述了下自己的想法,然后,面试官在此基础上增加难度,问我:如何保证高可用、如何应对高并发。这时,我想到了要使用分布式技术,但如何做分布式、机器间怎么联系在一起、如何保证机器间数据的一致性呢?

当时,我对分布式技术并没有一个清晰的认识,也不了解这些问题具体要如何解决,更不清楚引入分布式系统后会提升多少复杂度。所以,我面试的回答大都止步于提出分布式概念。

这时,我意识到自己需要去学习一些分布式系统的设计方法。互联网发展到今天,稍微有些规模的软件几乎都离不开分布式部署,多数基础组件也都建议进行分布式部署,分布式技术更是高并发、高性能的重要保证。

所以说,作为一名互联网从业者,如果不了解分布式的原理,就快与时代脱节了。也许,你会用“分久必合”来反驳我,但目前来看,硬件的发展已经明显降速,可能很难再看到“合”的场景了。因此,我相信分布式技术将会成为程序员的一项必备基础技能,看到“分布式技术原理与算法解析”专栏时毫不犹豫地就入手了。

学习这个专栏,我有哪些收获?

我学习专栏的习惯是,每周一三五更新后,当天上班的地铁上就抓紧学习,如果遇到不懂的知识点,就第一时间去查阅相关资料。看完一篇文章后,我会在评论区留下说说哪里有困惑,以及对应的课后思考题的解答思路,并会关注其他同学的留言,加深对这篇文章的理解。

一路学习下来,所有的辛苦都是值得的,所有的付出都是有收获的。跟随专栏到现在,对于我来讲是“温故”和“知新”的过程。

比如,我在学习“分布式事务:all or nothing”这一篇后,不仅对熟悉的二阶段提交有了更透彻的认识,还学到了它的改良版,三阶段提交的原理。

再比如,我在学习“分布式锁:关键重地,非请勿入”这一篇后,除了对基于缓存的分布式锁有了更深的理解外,还学习到了基于ZooKeeper实现的分布式锁,让我在日后的系统设计时又多了一种思路。

目前,我们公司还处在搭建基础架构的初期。随着对分布式架构的不断了解,我在公司担任的角色也更加重要了,设计新系统时Leader也总会听听我的意见。同时,我也希望能通过学习这个专栏,在公司内做一些关于分布式技术的分享,来提升自己的技术影响力。

我觉得,这都是这个专栏给我带来的收获吧。

给新同学的一些建议

如果你已经订阅了这个专栏,我的建议很简单,那就是抓紧时间学习吧,早学就是优势。当你养成学习习惯以后,你就发现自己已经比身边的大部分人都优秀了。

另外,我想说的是,学习专栏的过程不要局限于某个知识点,你可以再根据文章内容进行二次发散,去学习更多的知识,由点及面,构建自己的核心知识体系。

如果你还在犹豫的话,可以对比一下我的经历,如果你有所感触的话,真心建议你能认真学完整个专栏,再去挑战大厂,成功率会大很多。

参考资料

https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/%e5%88%86%e5%b8%83%e5%bc%8f%e6%8a%80%e6%9c%af%e5%8e%9f%e7%90%86%e4%b8%8e%e7%ae%97%e6%b3%95%e8%a7%a3%e6%9e%90/%e7%89%b9%e5%88%ab%e6%94%be%e9%80%81%20Jackey%ef%bc%9a%e5%af%84%e8%af%ad%e5%a4%a9%e6%b6%af%e5%ae%a2%ef%bc%8c%e8%bd%bb%e5%af%92%e5%ba%95%e7%94%a8%e6%84%81.md