非科班Java学习心得

写在前面

博主本硕就读专业都是机械工程,于去年年初开始自学Java,今年年初加入春招实习大军,有幸通过蚂蚁金服的面试,在5月底进入蚂蚁金服成为了一名实习生,8月底顺利通过转正考核,评级A。在学习Java的过程中,由于身边缺少人指导,也走了不少弯路,被各种铺天盖地的教程以及让人眼花缭乱的书籍搞的头昏脑涨,磕磕绊绊到现在总算是正式入行,因此想把自己的学习心得记录分享出来,希望可以给希望进军计算机行业的非科班同学提供一些帮助。博主在本科阶段只学习过一门编程语言c++,还学的吊儿郎当,基本上是一个从对编程一无所知的小白慢慢学习起来的,因此对非科班的学生来说,学习编程最终的一点就是一定要对自己充满信心,其次就是投入比科班同学更多的精力,才能逐渐缩小与他们的差距。话不多说,下面就介绍一下我的整个学习路线。

初级班

对学习一门语言的同学来说,一本字典是必不可少的,对Java来说,能起到字典作用的书籍市面上也不少,我当初是选择了一本李刚的《疯狂Java讲义》入门,对一个刚刚入门的同学来说,只要能把这门语言里面的一些基础东西讲清楚,这就足够了。

后来看网上推荐,又买了《Java核心技术卷》这本书,这本书分卷一与卷二,对初级班的同学来说,只看卷一就足够了,怎么说呢,对比来看的话,核心技术卷讲的确实要比疯狂讲义详细一点,二者相互补充,让我对一些以前不太明白的概念有了更加清楚的认识,不过这类字典类参考书有一本就够了,主要是起到一个碰到一个不太理解的东西的时候翻阅查看的作用。

在花了大半个月的时间翻阅疯狂讲义之后,对java这门语言就有了一个大概的了解,基本概念都差不多有了印象,从最基本的开发环境的搭建,到各种数据类型,再到集合与异常,但是这些东西知识了解之后,发现过了几天立刻就忘记了,反反复复,都让我开始怀疑是不是自己太笨了,连这些基础的概念都记不住,后来终于找到了问题所在,对,就是缺少练习,对一门语言来说,只有反复的练习,才能够真正的掌握。

后面就开始了漫长的练习之路,首先就是要找一些简单的算法题练习,在这里给大家推荐一下牛客网这个平台,在这里有大量的在线编程的题目供自己练习,还有一些与概念相关的选择问答类题目,就是在这个平台上,自己的Java基本功才得到了反复的练习,自己练习的第一类题目就是PAT练兵场先从乙级练起,这里的题目都相对基础,但是能让自己快速掌握基本数据类型与容器的使用,在完成这个模块的练习之后,对Java这门语言的使用,才算是真正入门,后面的话就根据自己的能力,在这个平台上面多多使用Java语言去完成一些编程题目,我是在牛客网上完成了剑指offer以及一些公司的招聘笔试题,不断的训练自己做题的手感。

在完成Java语言的基础学习期间,对非科班的学生来说,计算机方向的基本知识也要恶补,计算机网络,操作系统,计算机组成原理,数据结构,这些基本功课都要做足,在这里我罗列一下自己的参考书籍:
计算机网络:《计算机网络》,《计算机网络自顶向下》《TCP/IP详解》《图解HTTP》
操作系统:《计算机操作系统》
计算机原理:《计算机组成原理》
数据结构:《大话数据结构》,《数据结构Java语言实现》
在完成上面的基础知识学习之后,初级班基本就完成了,基本可以看懂一些简单的Java程序,算是正式入门。

进阶班

对Java来说,只是解决一些基本的算法题目肯定不是这门语言诞生的初衷,对这门语言来说,框架是其中重量级的一部门,在掌握了基本使用之后,就要开始学习Spring框架这部分的内容,在这里推荐一本学习Spring的经典书籍《Spring实战》,通过这本书,我们可以了解到什么是IOC,AOP,什么是bean,以及SpringMVC与SpringBoot等等相关的东西,从这里才真正体会到Java语言的优美之处。
Java主要应用场景还是在后端开发,在一个完整的项目中,数据库知识是必不可少的,在这里推荐我学习数据库的几本书籍:
MySQL:《MySQL必知必会》,《高性能MySQL》《MySQL技术内幕》
Redis:《Redis设计与实现》
设计模式也是帮助自己在项目中进行设计的很重要的一部分,在这里推荐基本我用过的感觉很不错的两本书:《Head First设计模式》,《大话设计模式》。
除此之外,多线程也是项目中常常用到的部分,在这里我主要参考了两本书:《Java并发编程的艺术》《Java多线程编程核心技术》
在完成这些知识的储备之后,就进入了重头戏—实战部分,真正的进行一些项目的开发实战才能对这些知识有更深刻的理解,在这里我选择了几个项目来练手,分别是秒杀网站与牛客网的问答网站,关于这两个项目源码可以去我的github上面下载,在完成了这两个项目之后,基本上Java就完全入门了。

写在后面

仅仅是完成Java基础学习与项目实战是不足以支撑自己在求职中找到一个好工作的,越是大厂的面试官考察的问题就越深,而不仅仅是流于表面,在这里还要给大家推荐几本必读书籍:
《算法》:这本书是基于Java语言讲解,从基本的数据结构到各种经典算法都有涉及,可以说是Java提升的必备书籍。
《深入理解Java虚拟机》:通过这本书可以以一种轻松的方式虚拟机的运作原理。
《程序员代码面试指南》:左神的一本介绍在笔试面试中常见算法题目的书籍,有了它,相信征服大多数面试官不是问题。
《鸟哥的Linux私房菜》:对程序员来说,Linux系统最起码也要有所了解,这本书以一种轻松易懂的方式介绍Linux操作系统。
《大型网站技术架构》:作者是阿里巴巴的工作员工,用最简洁易懂的方式介绍一个网站的发展历程。
《Spring技术内幕》:学习Spring框架的一本好书。

以上基本上都是Java程序员必看的书籍,除此之外,随着涌入计算机行业的人越来越多,面试时在考察的深度与广度上都在不断加深,对一些集合,框架源码以及中间件的考察,对分布式,微服务的考察,对底层操作系统的考察都越来越普遍,因此,在学习完必备的知识之后,也要对这些方面多多关注,如果对某个点研究得很深入,在面试时对面试官加以引导,展现自己擅长的方面,相信进入大厂不是梦。

最后,多刷LeetCode,多刷LeetCode,多刷LeetCode,希望大家都有一个好前程。

你可能感兴趣的:(非科班Java学习心得)