双非本科,聊聊我是怎么学习编程的。

你们好,我是 Guide哥~java

个人学校是荆州一所双非一本。git

整个大一,我都没有怎么认真学习编程,天天就是出去玩,还有参加各类社团活动。程序员

在大二上学期末,最终肯定了本身之后要走的技术方向是走 Java 后端。因而,我就开始制定学习计划,开始了本身的 Java 后端领域的打怪升级之路。github

到了大三,我基本把 Java 后端领域一些必备的技术都给过了一遍,还用本身学的东西作了两个实战项目。整个过程一共花了我一个暑假+半个学期,天天的学习强度基本都在 10 个小时以上。算法

这篇文章就简单聊聊:我是怎么学习编程的?apache

👍推荐2021最新实战项目源码下载编程

有哪些学习的途径?

通常来讲,有了一个具体的学习路线,知道学习什么以后,咱们一般有下面几个方向来学习:后端

视频

初学编程的小伙伴尽可能多看视频,由于,视频教程比较容易理解。浏览器

不过,对于经验已经比较丰富的小伙伴来讲,视频教程相比于文档教程学习起来会更慢一些。markdown

像慕课网和哔哩哔哩上面有挺多学习视频能够看,只直接在上面搜索关键词(好比 Java、MySQL)就能够了。

img

提个醒哈!在哔哩哔哩上学习的时候,不要学一会就跑到别的分区去了,有点顶不住啊!

博客

网上的博客大多没有体系,推荐你在解决某一知识点或者问题的时候能够在网上找一些相关的博客看。

就好比我在学习消息队列 Pulsar 的时候,先把Pulsar 官方文档看了一遍。而后,本身在网上找了一些相关的文章来深刻学习。

Java 领域比较成体系的博客,推荐 JavaGuide(项目地址: github.com/Snailclimb/…

👍推荐2021最新实战项目源码下载

官网(官方文档)

除非是一些国产项目的官方文档提供了中文版本,不然大几率是英文的。

另外,官方文档介绍的每每也比较粗糙,不太适合初学者做为学习资料。

不过,官方文档咱们必定是要看的。经过官方文档你才能知道你学习的技术最新的技术动态,才能知道这个技术有哪些模块须要学习,才能知道这个技术具体能够帮你解决什么问题。

好比下面是 Spring 的官网,经过网站首页你就能够大概知道 Spring 能够帮助你:

  • 快速开发网站
  • 开发微服务架构的软件
  • 开发响应式架构的软件
  • ......

书籍

书籍的内容更成体系,更系统。不过,书籍存在时效问题。你能够经过一些手段了解技术最新动向:

  • 关注一些技术社区的动态好比 Github Trending
  • 关注一些公开的技术分享
  • 关注一些技术大佬
  • ......

自学过程当中有哪些须要注意的地方?

英语阅读能力

大部分优秀的技术书籍都是国外的,几乎都是英文,而且,大部分技术的官方文档也都是英文的。

因此,提升本身的英文阅读能力很重要。英文阅读能力暂时比较差的也没关系,有道翻译和谷歌翻译就是你最好的老师。若是是使用 Chrome 浏览器的话,我还推荐你安装一个 Mate Translate 插件。 这个插件对于网页阅读英文文档太友好了,能够一站式翻译您的网页以及标记的文字段落。

多练!多记!多实战!

不管是看视频仍是看书,最好都要跟着一块儿练,记录一些关键的内容。

另外,若是你是看视频学习的话,最好能够边看视频边找一本相关的书籍阅读。

学习过程当中没弄懂的知识点必定要尽快解决。如何解决?首选百度/Google,经过搜索引擎解决不了的话就找身边的朋友或者网上认识的一些人。

另外,必定要进行项目实战!不少人这时候就会问没有实际项目让我作怎么办?我以为能够经过下面这几种方式:

  1. 实战项目视频/专栏 : 在网上找一个符合本身能力与找工做需求的实战项目视频或者专栏,跟着老师一块儿作。跟着老师作的过程当中,你必定要有本身的思考,不要浅尝辄止。对于不少知识点,别人的讲解可能只是知足项目就够了,你本身想多点知识的话,对于重要的知识点就要本身学会去深刻学习。
  2. 实战类开源项目 : Github 或者码云上面有不少实战类别项目,你能够选择一个来研究,为了让本身对这个项目更加理解,在理解原有代码的基础上,你能够对原有项目进行改进或者增长功能。Java 类的实战项目,你能够从 awesome-java 这个仓库里面找,里面有不少很是赞的项目。
  3. 从头开始作 :本身动手去作一个本身想完成的东西,遇到不会的东西就临时去学,现学现卖。这个要求比较高,我建议你已经有了一个项目经验以后,再采用这个方法。若是你没有作过项目的话,仍是老老实实采用上面两个方法比较好。
  4. ......

作项目不光要作,还要改进,改善。另外,若是你的老师有相关 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年工做汇报!

原创不易,欢迎点赞分享。我们下期再会!

相关文章
相关标签/搜索