大家好,我是 Guide哥~
我的学校是荆州一所双非一本。
整个大一,我都没有怎么认真学习编程,每天就是出去玩,还有参加各种社团活动。
在大二上学期末,最终确定了自己以后要走的技术方向是走 Java 后端。于是,我就开始制定学习计划,开始了自己的 Java 后端领域的打怪升级之路。
到了大三,我基本把 Java 后端领域一些必备的技术都给过了一遍,还用自己学的东西做了两个实战项目。整个过程一共花了我一个暑假+半个学期,每天的学习强度基本都在 10 个小时以上。
这篇文章就简单聊聊:我是怎么学习编程的?
??推荐2021最新实战项目源码下载
一般来说,有了一个具体的学习路线,知道学习什么之后,我们通常有下面几个方向来学习:
初学编程的小伙伴尽量多看视频,因为,视频教程比较容易理解。
不过,对于经验已经比较丰富的小伙伴来说,视频教程相比于文档教程学习起来会更慢一些。
像慕课网和哔哩哔哩上面有挺多学习视频可以看,只直接在上面搜索关键词(比如 Java、MySQL)就可以了。
提个醒哈!在哔哩哔哩上学习的时候,不要学一会就跑到别的分区去了,有点顶不住啊!
网上的博客大多没有体系,推荐你在解决某一知识点或者问题的时候可以在网上找一些相关的博客看。
就比如我在学习消息队列 Pulsar 的时候,先把Pulsar 官方文档看了一遍。然后,自己在网上找了一些相关的文章来深入学习。
Java 领域比较成体系的博客,推荐 JavaGuide(项目地址: https://github.com/Snailclimb...
??推荐2021最新实战项目源码下载
除非是一些国产项目的官方文档提供了中文版本,否则大概率是英文的。
另外,官方文档介绍的往往也比较粗糙,不太适合初学者作为学习资料。
不过,官方文档我们一定是要看的。通过官方文档你才能知道你学习的技术最新的技术动态,才能知道这个技术有哪些模块需要学习,才能知道这个技术具体可以帮你解决什么问题。
比如下面是 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年工作汇报!
原创不易,欢迎点赞分享。咱们下期再会!
考虑以下两段代码: 复制代码 代码如下: urlset url lochttp://www.caixw.com/ar...
根据百度地图官方解释,在移动端 H5 页面中可监听下面这 4 个事件: touchstart, ...
最近做项目,遇到一个问题,在手机上要实现视频的全屏播放功能。测试了很久,终...
对于网页制作者来说,最烦琐的事情可能就是给页面中的图片或文字加链接了。假如...
链入式是把所有的 样式 放在一个或多个 外部样式表文件 中,这个文件是以 css 为...
本文将介绍 CSS 中一个非常有意思的属性 mask 。 顾名思义,mask 译为遮罩。在 C...
前言 2021 年中国共产党将迎来建党 100 周年。百年来中国社会发生了沧桑巨变。从...
web前端开发中避免不了要在页面上显示很多文章,如何才能从文中,文末点击快捷的...
工欲善其事,必先利其器! 就在不久之前,Java领域的开发神器 IntelliJ IDEA 终...
写给初用Nestj做项目的你(第二篇: 配置gitlab-runner操作gitlab) 如果不想自己搭...