乐趣区

关于java:双非本科聊聊我是怎么学习编程的

大家好,我是 Guide 哥~

我的学校是荆州一所双非一本。

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

在大二上学期末,最终确定了本人当前要走的技术方向是走 Java 后端。于是,我就开始制订学习打算,开始了本人的 Java 后端畛域的打怪降级之路。

到了大三,我根本把 Java 后端畛域一些必备的技术都给过了一遍,还用本人学的货色做了两个实战我的项目。整个过程一共花了我一个寒假 + 半个学期,每天的学习强度根本都在 10 个小时以上。

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

👍举荐 2021 最新实战我的项目源码下载

有哪些学习的路径?

一般来说,有了一个具体的学习路线,晓得学习什么之后,咱们通常有上面几个方向来学习:

视频

初学编程的小伙伴尽量多看视频,因为,视频教程比拟容易了解。

不过,对于教训曾经比拟丰盛的小伙伴来说,视频教程相比于文档教程学习起来会更慢一些。

像慕课网和哔哩哔哩下面有挺多学习视频能够看,只间接在下面搜寻关键词(比方 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(我的项目地址:https://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 年工作汇报!

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

退出移动版