你们好,我是 Guide哥~java
个人学校是荆州一所双非一本。git
整个大一,我都没有怎么认真学习编程,天天就是出去玩,还有参加各类社团活动。程序员
在大二上学期末,最终肯定了本身之后要走的技术方向是走 Java 后端。因而,我就开始制定学习计划,开始了本身的 Java 后端领域的打怪升级之路。github
到了大三,我基本把 Java 后端领域一些必备的技术都给过了一遍,还用本身学的东西作了两个实战项目。整个过程一共花了我一个暑假+半个学期,天天的学习强度基本都在 10 个小时以上。算法
这篇文章就简单聊聊:我是怎么学习编程的?apache
👍推荐2021最新实战项目源码下载编程
通常来讲,有了一个具体的学习路线,知道学习什么以后,咱们一般有下面几个方向来学习:后端
初学编程的小伙伴尽可能多看视频,由于,视频教程比较容易理解。浏览器
不过,对于经验已经比较丰富的小伙伴来讲,视频教程相比于文档教程学习起来会更慢一些。markdown
像慕课网和哔哩哔哩上面有挺多学习视频能够看,只直接在上面搜索关键词(好比 Java、MySQL)就能够了。
提个醒哈!在哔哩哔哩上学习的时候,不要学一会就跑到别的分区去了,有点顶不住啊!
网上的博客大多没有体系,推荐你在解决某一知识点或者问题的时候能够在网上找一些相关的博客看。
就好比我在学习消息队列 Pulsar 的时候,先把Pulsar 官方文档看了一遍。而后,本身在网上找了一些相关的文章来深刻学习。
Java 领域比较成体系的博客,推荐 JavaGuide(项目地址: github.com/Snailclimb/…
除非是一些国产项目的官方文档提供了中文版本,不然大几率是英文的。
另外,官方文档介绍的每每也比较粗糙,不太适合初学者做为学习资料。
不过,官方文档咱们必定是要看的。经过官方文档你才能知道你学习的技术最新的技术动态,才能知道这个技术有哪些模块须要学习,才能知道这个技术具体能够帮你解决什么问题。
好比下面是 Spring 的官网,经过网站首页你就能够大概知道 Spring 能够帮助你:
书籍的内容更成体系,更系统。不过,书籍存在时效问题。你能够经过一些手段了解技术最新动向:
大部分优秀的技术书籍都是国外的,几乎都是英文,而且,大部分技术的官方文档也都是英文的。
因此,提升本身的英文阅读能力很重要。英文阅读能力暂时比较差的也没关系,有道翻译和谷歌翻译就是你最好的老师。若是是使用 Chrome 浏览器的话,我还推荐你安装一个 Mate Translate 插件。 这个插件对于网页阅读英文文档太友好了,能够一站式翻译您的网页以及标记的文字段落。
不管是看视频仍是看书,最好都要跟着一块儿练,记录一些关键的内容。
另外,若是你是看视频学习的话,最好能够边看视频边找一本相关的书籍阅读。
学习过程当中没弄懂的知识点必定要尽快解决。如何解决?首选百度/Google,经过搜索引擎解决不了的话就找身边的朋友或者网上认识的一些人。
另外,必定要进行项目实战!不少人这时候就会问没有实际项目让我作怎么办?我以为能够经过下面这几种方式:
作项目不光要作,还要改进,改善。另外,若是你的老师有相关 Java 后台项目的话,你也能够主动申请参与进来。
必定要学会分配本身时间,要学的东西不少,真的不少,搞清楚哪些东西是重点,哪些东西仅仅了解就够了。必定不要把精力都花在了学各类框架上,算法和数据结构真的很重要!
你或许也发现了。不少成绩特别特别优异的同窗,他们的编程能力其实并很差。在大学的时候,那些编程能力最强的每每是那些成绩比较通常的。
为何会这样呢?
我以为主要是一个思惟的转变问题。不少人学习编程的时候,老是想着我要把这个 API 记下来,把这个库的用法记下来。这样学习,致使的结果只有一个那就是你会很难受!由于,这些根本不是要死记硬背的东西啊!真还当这是上课考试啊!你要从如何用你学的东西来解决实际编程问题出发,站在作一个实际的项目的角度来学习。
拿我本身来讲:我平时也会写 Python,基本就是本身看着官方文档或者一些书籍的教的语法跟着写。若是哪一个地方不会了,我就去查一下。
不看优秀的代码,你写的代码质量很难提升。
虽然要多看优秀的代码,可是也不要被 “最佳实践” 所束缚,不少时候实际是根本不存在适用于任何场景的“最佳实践”,没有银弹。
有哪些优秀的代码值得学习呢?
拿 Java 来讲,不知道阅读什么源码的话,能够先从 JDK 的几个经常使用集合看起。另外,我比较推荐看 Dubbo 的,由于感受会稍微相对容易一点,模块划分清晰,注释也比较详细。搞清楚了 RPC 的基本的原理,知道如何本身实现一个 RPC 框架以后,看起来就没那么吃力了。
另外,随便一个框架的源码都 10w+行了,都看一遍是不可能的。要挑选比较重要的地方看,就好比看 Spring 源码的话你必定要看 IoC 和 AOP,要知道一个 Spring Bean 是如何一步一步被建立出来的。你要看 Spring Boot 源码的话就要知道 Spring Boot 的启动机制是啥,Spring Boot 是如何实现自动配置的。
学习理论知识的时候,咱们能够多花点时间整理笔记。
可是,在学习框架使用的时候,就没有太大必要花大量时间的整理作笔记了。
你彻底能够随时查文档,记住关键词便可!好比 Spring Boot 你不知道如何接受 Query Param 的话,你直接搜 Spring Boot Query Param 便可!
再好比你不会使用 Redis ,你作的 Spring Boot 项目须要用到的话,你直接搜“Spring Boot+ Redis”就出来了各类详细的教程。
你要作的就是把经常使用的东西串联起来,知道有这个东西就好。根据本身的实际能力,再对底层的东西进行学习就好。
更多编程好习惯,请看:《成为一个不那么差的程序员》 。
我是 Guide哥,拥抱开源,喜欢烹饪。Github 接近 10w 点赞的开源项目 JavaGuide 的做者。将来几年,但愿持续完善 JavaGuide,争取可以帮助更多学习 Java 的小伙伴!共勉!凎!点击查看个人2020年工做汇报!
原创不易,欢迎点赞分享。我们下期再会!