[置顶] 初衷-我的学习历程

以前一直都在纠结有没有必要去开个博客认真点东西,可又觉得,自己水平不是很高,那种流水账似的东西没有什么必要,就一直搁了。

从开始到现在,应该差不多有一年多不少的时间了,虽然没有去写博客,却也一直每天用 onenote 做着笔记,认真复习着。可渐渐地发现,每次的笔记,记录的都是当天的东西,可能有忽然见到的知识点,可能又有自己联想出的一大堆问题并去测试后得出的结果,所以看起来又乱又杂。

所以,隔了这么久,我又冒出了这个想写点东西的想法,当然,不同于笔记,目的是将看过的东西,系统的全面地描述出来,这才是我准备这些东西的初衷。

自己历程

自己所在的专业名字叫做 电子信息科学与技术 ,也是到了后来才决定了自己要学什么东西,所以这个专业上跟我所学的东西,基本上是没有什么交集。有的话大概就是大一的 C 语言 入了一下门了。在课上学的东西,确实没什么谈得上叫做技术的东西,也就是从那时候起,我开始思考以后要学什么做什么。

java 学习

初识 java

开始学习 java 应该是大二上学期末的时候,偶然间从 B 站 看到了 尚学堂java 300 集 也算是我的启蒙了。具体花费了多久了多长时间的自己记得不是很清楚了,当时跟着视频,一集一集跟着敲代码。

我有个习惯,就是看到老师敲出了一点代码后我会暂停掉视频,自己猜后面的东西是什么,然后自己去打去测试,也总是从一个问题上想到其他的很多东西,我都会去自己敲敲试试。所以进度不是很快。那时候的笔记都记在了本子上。

包括其中的所有小实验,做个小游戏,实现个简单的 ORM 框架等等,我都认真的完整的敲过

在这期间,每次碰到自己想不明白的自己想自己尝试的东西,我就会自己写出来看看,实际的证明一下看看真正的结果,这部分我也挂到 github 仓库 上去了。

Test项目地址: http://github.com/chenyiAlone/Test

这个过程应该是给我最多收获的吧,因为确实感受到了那种,从一开始的只会模仿,到那种打代码成为潜意识的感觉。从个中的测试中,常见的类的所属的包,都在心中烂熟了,桌面的 api文档 也成了我必备的东西了。

深入java

结束了第一阶段的 java 300集 以后,又碰巧看到了 码农翻身 的文章。于是我觉得认真夯实一下自己的 java基础

也是从这时候开始,我认识到了笔记的重要性,纸质版的虽然也是认真写了,但是却没什么想回去看的冲动。于是就开始每天用 onenote 做笔记,用 艾宾浩斯 来提醒自己复习,因为是在打基础,复习的时候看之前的东西也是很有难度的,所以这段时间花费了很多的时间在每天的复习上。

这本神书除了最后的图形化界面之外,其余的我花了差不多得半个多学期。

这本书真的是让我自己都能感觉的到,对 java 的掌握有了一个非常大的提高。书中的代码的质量真的是可以用 完美 来形容了,很多时候都只是为了去看懂这里面的代码就让我花了很大的功夫,一边结合书,一点结合源码,啃完了这本书。

java 并发

这里我看的是 java并发实战,从这里开始就是有点偏向理论的东西,因为很多的东西不是很容易的变现出来的,这个阶段就是结合源码和书,啃完了。

java 设计模式

并发结束后,转向了各种的设计模式,在一部分在 java 最开始的学习中就接触过,这里是对他进行更深一步的学习。这里找的是油管上的一个教程,同样,跟着码了一遍

jvm

这一段的偏理论的东西实在是有点多,买了 深入理解 jvm 虚拟机 ,看的过程中发现这里面的理论是真的多。这部分边看边整理了不少,理论的东西确实不怎么喜欢,就决定先放下了以后再填这个坑。

算法学习

算法 4

其实从一开始就打算认真把这个东西好好看看,我觉得这应该是一个码农的自我修养。买了一本红皮的 算法4 ,在这上面的学习难度应该算是稍微大了一点吧。这本书并没有看完,最后面的部分当时也没确定重不重要,也就先放了放。

数据结构

有幸间看到了邓老的数据结构的视频,虽然没有学过 c++ ,但看到这个视频的第一眼就被老师的代码震撼到了,所有的代码没有一丁点的冗余和浪费。也是从这里开始,对自己的代码的书写格式要求高了起来,为此,还特地找了 阿里代码规范,学习了一下 java 语法规范。

LeetCode

这个的开始要追溯到 LeetCode 仓库的建立,至于为什么建个仓库来记录,也算是为了记录一下自己的学习,毕竟没有什么跟别人区分的地方,我说了我学了多少多少东西可却没有什么证据,没准别人背背面试题,还要比认真研究过用自己的思路来表达的人更能得到面试官的认同呢… 也算是担心吧,就开始自己刷题之路。

里面有的题目每道题的思路我会写在每个题母的注释上,其中比较重要或者难理解的那种一点一点的变话题,比较难想的,我会用 ppt 做个动画记录一下(不过是真的耗时间啊,后来习惯了以后觉得没啥必要了就)。基本上 github 所有的活动都是靠他刷出来的。

从一开始的每天为了一个提交的应付,到后来的一道题有想法但是写不对能跟它肝好几天,逐渐的喜欢了算法,虽然看到了很多大神的刷题视频把自己虐的渣都不剩,但是也确实感觉出来了自己在一点点提高。

这里面给我的最大的收获就是白屏写代码的能力了,因为 leetcode 上是没有代码提示的,习惯了 eclipse 中的代码提示功能,的确是在写代码的时候不知道常用的方法的名字,从这时候开始,自己在白纸上也能写代码了。

洛谷

这个也碰巧看到的,因为 leetcode 的题目虽然多,但是觉得针对训练的好像不是很多,看到了洛谷发现这个的确是很好的一个刷题网站。不过用 java 来写代码的确是很麻烦,因为这里的输入都是标准输入读取,写出来实在是太长了,所以就学习了 c++ 的常用的语法(不会在百度)开始做题了。

刚开始阶段是是非痛苦的,因为洛谷的测试点报错以后,下载数量是有限的,一天就两三次机会,用完了之后只能是对结果进行猜了。刚好就是这个过程吧,让我自己提高了逻辑能力,当答案错了的时候我会根据别人的 Ac 的代码去想自己漏掉的情况。也算给自己真正提高的地方了吧。

java web 学习

因为 spring 框架中需要用到数据库,项目管理工具,所以在开始之前完整得学习了一下 mavenmysql

mysql

这里面的必定要用到数据啊,所以也是从 B站 找了 尚硅谷MySQL 教程,从头到尾学了一遍。也是从这时候开始,我有了一个习惯,就是在使用一个东西的时候,会总得得去学习整个要学的东西,而不是用到哪里学那里。

maven

因为项目中需要用到 maven 来做依赖管理,所以用来一天的时间系统得学习整理了一下 maven,同样找的是 尚硅谷 的教程。

spring

这个阶段学习了 spring 框架的使用,这个阶段的都是在 eclipse 中完成的,所有的依赖都是通过手动导入 jar 包来完成的,在这里深刻地加深了各种部分的依赖关系,因为这里没少出 bug

spring mvc

其次就是 spring mvc ,也算是第一个真真正正得接触和明白了什么叫做后端,这时候想想之前做的动态网页真是跟弱智似的…那个的所有的代码都写在了网页上面,之前我还在想,这一查看源代码不就把数据库的密码什么都暴露了么…

同样是 尚硅谷spring mvc 教程,这一段的学习确实是进展挺慢的。要理解的概念挺多的,包括各种注解的使用,spring mvc 的各种配置,spring mvc 运行原理等等。

spring boot

学到 spring boot,才明白了使用 spring boot + maven 配合开发,原来可以可以这么简单。这也是周期最长的了,因为这段时间准备考试,期末,投在上面的时间相对更短了一点。

总结

这玩意应该是我位数不多一直在做的事情了,有点逻辑结构的东西我还是很喜欢的,就像算法从开始的应付性刷到后来的一道题硬要以自己思路肝出来,这转变,自己都有点欣慰。

马上就大四了,秋招也要开始了,想把学过的东西好好复习一下了,认真研究一下常用的 util, lang, io, nio等核心包的源码了,写成博文作为复习了。

1
start now.