如何更高效地自学编程?
我的学校是荆州一所双非一本。整个大一,我都没有怎么认真学习编程,每天就是出去玩,还有参加各种社团活动。
在大二上学期末,最终确定了自己以后要走的技术方向是走 Java 后端。于是,我就开始制定学习计划,开始了自己的 Java 后端领域的打怪升级之路。
到了大三,我基本把 Java 后端领域 一些必备的技术都给过了一遍,还用自己学的东西做了两个实战项目。
这篇文章就从下面几个切入点来简单聊聊“如何更高效地自学?”:
- 有哪些学习的途径
- 如何获取技术最新动向?
- 自学过程中有哪些需要注意的地方?
有哪些学习的途径?
一般来说,有了一个具体的学习路线,知道学习什么之后,我们通常有下面几个方向来学习:
视频
初学编程的小伙伴尽量多看视频,因为,视频教程比较容易理解。不过,对于经验已经比较丰富的小伙伴来说,视频教程相比于文档教程学习起来会更慢一些。
像慕课网和哔哩哔哩上面有挺多学习视频可以看,只直接在上面搜索关键词(比如 Java、MySQL)就可以了。
提个醒哈!在哔哩哔哩上学习的时候,不要学一会就跑到别的分区去了,有点顶不住啊!
书籍
书籍的内容更成体系,更系统。任何时候,书籍都是我们最重要的学习途径!!!
不过,目前绝大部分高质量的技术书籍还是国外出版的,等到翻译成中文的时候可能已经过了几年了。因此,提高英文阅读能力是每个想要成为优秀工程师的程序员必须要做的。
不过,书籍存在时效问题,你可以通过一些手段来获取技术的最新动向(后面会详细介绍到)。
博客
网上的博客大多没有体系,推荐你在解决某一知识点或者问题的时候可以在网上找一些相关的博客看。就比如我在学习消息队列 Pulsar 的时候,先把Pulsar 官方文档看了一遍。然后,自己在网上找了一些相关的文章来深入学习。
- 《Kafka vs. Pulsar vs. RabbitMQ: Performance, Architecture, and Features Compared》
- 《为什么放弃 Kafka,选择 Pulsar?》
- 《7 Reasons We Chose Apache Pulsar over Apache Kafka》
- 《比拼 Kafka, 大数据分析新秀 Pulsar 到底好在哪》
- 《从 Kafka 到 Pulsar,BIGO 打造实时消息系统之路》
- 《Apache Pulsar 在 BIGO 的性能调优实战(上)》、《Apache Pulsar 在 BIGO 的性能调优实战(下)》
- 《Apache Pulsar 在能源互联网领域的落地实践》
- ......
Java 领域比较成体系的博客,推荐 JavaGuide 。
官网
官方文档我们一定是要看的。 除非是一些国产项目的官方文档提供了中文版本,否则大概率是英文的。并且,官方文档介绍的往往也比较粗糙,不太适合初学者作为学习资料。当然了,如果你经验比较丰富的话,直接看官方文档也是没问题的。
通过官方文档你才能知道你学习的技术最新的技术动态,才能知道这个技术有哪些模块需要学习,才能知道这个技术具体可以帮你解决什么问题。
比如下面是 Spring 的官网,通过网站首页你就可以大概知道 Spring 可以帮助你:
- 快速开发网站
- 开发微服务架构的软件
- 开发响应式架构的软件
- ......
总结
- 官方文档是必须要看的,通过官方文档你才能知道你学习的技术最新的技术动态,才能知道这个技术有哪些模块需要学习,才能知道这个技术具体可以帮你解决什么问题。
- 书籍的内容更成体系,更系统。任何时候,书籍都是我们最重要的学习途径!不过,书籍存在时效问题,更适合理论性的知识。
- 遇到搞不懂的问题或者想要深入研究某个知识点,都可以去找一些优质的博客来阅读。
- 遇到你觉得比较难的知识点时,可以去看视频学习。视频不仅适合初学者,对进阶学习也有帮助。不过,单纯看视频是不够的,建议搭配文字资料。
如何获取技术最新动向?
Github Trending
Github Trending 我几乎每天必看,通过 Github Trending 我可以大概知道最近有哪些项目比较火,有哪些框架比较热门,有哪些新的中间件被开源了。
并且,Github 的 Trending 可以按照语言和日期来进行筛选,你可以根据自己的需要来选择查看对应的信息。
国内的话,可以关注一下 Gitee 的 GVP 项目。
公开的技术分享
你可以留意一些公开的技术分享,比如 JavaOne 、 InfoQ 技术大会、Red Hat Summit、GitHub Universe 等。
通过这些公开的技术分享,你可以了解到当下热门的创新技术、实践案例、产品思维和管理心得。
技术大佬
技术无国界,国内外都有很多优秀的工程师。多关注一下他们在干什么,在研究什么技术,或许能给你很大的启发和动力。
国内比较值得关注的技术大佬有:
- Liang Zhang:Apache ShardingSphere,ElasticJob 创始人 & 项目管理委员会主席。
- xiaoyu : 作为主要作者开源了 soul(网关)、hmily(分布式事务框架)等等顶级开源项目,并且参与了apache/shardingsphere等开源项目。
- kimmking :Apache Dubbo/ShardingSphere PMC。前某集团高级技术总监/阿里架构师/某商业银行北京研发中心负责人,阿里云 MVP、腾讯 TVP、TGO 鲲鹏会会员。
- Juan Pan :京东数科高级 DBA&Apache ShardingSphere PMC,主要负责京东数科分布式数据库开发、数据库运维自动化平台开发等工作。
- Jintao Zhang :《Kubernetes 从上手到实践》 《Docker 核心知识必知必会》 作者、API7.AI任技术专家,负责 Apache APISIX Ingress 和 Service Mesh 等云原生技术方向。
- ……
技术社区
技术社区也是一个了解技术动向的好办法,国内外有很多优质的社区,比如 Reddit 上的 Java 社区,InfoQ 中文社区 (近几年质量有所下降)、Medium 上的技术社区等。
技术博客
关注或者订阅一些干货比较多的技术博客,不光能够获取到技术最新动向,还可以让自己深入学习很多知识点。
如果你不知道国内有哪些值得推荐的技术博客的话,可以看看这篇文章:坦白帖!我订阅了哪些技术团队的博客?。
自学过程中有哪些需要注意的地方?
英语阅读能力
大部分优秀的技术书籍都是国外的,几乎都是英文,并且,大部分技术的官方文档也都是英文的。
所以,提高自己的英文阅读能力很重要。英文阅读能力暂时比较差的也不要紧,有道翻译和谷歌翻译就是你最好的老师。如果是使用 Chrome 浏览器的话,我还推荐你安装一个 Mate Translate 插件。 这个插件对于网页阅读英文文档太友好了,可以一站式翻译您的网页以及标记的文字段落。