网上看到一首诗:“代码尽头谁为峰,一见秃头道成空。编程修真路破折,一步一劫渡飞升。”感觉还挺有意境的。
这个阶段就是编程入门,掌握 Java 这门编程语言的基本语法,为后面的修行之路打好基础。
包括的知识点有:
这方面的资源我给大家梳理下:
1)针对 Intellij IDEA,GitHub 上有一份简体中文版教程:
https://github.com/judasn/IntelliJ-IDEA-Tutorial
2)针对 Java 基础知识总览,我这有一份 GitHub 上星标 115k+ 的教程,我亲自整理的,包括 Java 基础、Java 容器、Java 并发、Java 虚拟机和 Java IO,可以说非常全面了。
太赞了,GitHub 上标星 115k+ 的 Java 教程!
并发编程是其中一块难点,所以我在这给大家整理了另外一份牛逼的学习资料,几位阿里大佬写的,名叫《重学 Java 并发编程》,非常强!
以后面试再也不怕被问Java并发编程了,多亏了这本PDF电子书
所涉及的知识点我用下面的思维导图汇总下。
书的话,我推荐两本,一本《Java 核心技术卷》,一本《Head First Java》。
《Java 核心技术卷》分为上下两册,上册的难度较低,可以在最短时间内刷完,尤其是有了 C语言的编程基础后,再刷这本书可以说是手到擒来。下册涉及到的内容有流与文件(☆)、XML、网络(☆)、数据库编程、国际化、Swing、AWT、JavaBean、安全(☆)、脚本编译和注解处理、分布式对象、本地方法(☆),没有标星的内容我认为可以略过。
《Head First Java》更有趣一些,里面有很多小游戏,很活泼的一本书。
两本书之间的风格差别比较大,之前就有读者给我反馈说,《Head First Java》有点驾驭不了,那就挑《Java 核心技术卷》。
刷完任意一本书后,可以看一看《Java 编程思想》,看自己是否能驾驭得了。因为思想的东西嘛,只有经过一些实践后才能有所感悟,否则就像王阳明一开始对着竹子格物一样,屁也格不出来,有了后面领军作战的经验,以及到地方上体验艰苦生活的感受后就开创了心学。
视频的话,可以看一下浙江大学教授翁恺老师的。在浙大,每年最受关注的内容之一就是永平奖的百万大奖会花落谁家。2018 年,获得永平杰出教学贡献奖的人,就是翁恺教授。
在 B 站上就可以看:
https://www.bilibili.com/video/BV1DJ411B7cG?p=3
这么一套组合拳下来,Java 的基础知识基本上可以说是吃的透透的!
学习一门编程语言,如果不去操作下数据,就感觉这门编程语言空有皮囊却没有灵魂,对吧?要想学好数据,首先要学习一下 SQL,推荐《SQL 必知必会》,然后是 MySQL,推荐《高性能 MySQL》。再拓展的话,还有 Redis,互联网技术领域中使用最广泛的存储中间件,推荐《Redis 深度历险:核心原理与应用实战》。还有 MongoDB,非关系型数据库,推荐《MongoDB权威指南》。
视频的话,B 站上推荐 3 个。
SQL:一个老外的视频课(中字版啦),内容制作得非常棒,所以完全不用担心听不懂。
https://www.bilibili.com/video/BV1UE41147KC
MySQL:一个女老师讲的,弹幕很精彩。
https://www.bilibili.com/video/BV12b411K7Zu
Redis:
https://www.bilibili.com/video/BV1S54y1R7SB
大部分 Java 程序员都要从事 JavaWeb 的相关开发工作,要开发 JavaWeb,自然就离不开 Spring 的系列框架。甚至可以这么说,没有 Spring 的 Java 项目是不存在的。Spring 框架正在变得越来越庞大,但核心的概念仍然是 IOC 和 AOP,也就是控制反转和面向切面编程。这个两个概念对于初学者来说,学习曲线有点陡峭。
目前流行的内容主要是:
要学习 Spring,能读的书不多,我能想到的只有《Spring实战》,坦白地说,这本书很一般,但市面上比它好的书,我还不知道。
单视频的话,推荐:
https://www.bilibili.com/video/BV1Vf4y127N5/?spm_id_from=333.788.videocard.7
学完 Spring,就要学 SpringMVC,推荐大家看视频,江南一点雨的,在 B 站上虽然播放量不是特别大,但我觉得内容特别棒——毕竟好兄弟!视频地址我贴一下。
https://www.bilibili.com/video/BV1qp4y1n7D1
然后是 MyBatis,不用找书看了,直接看官方文档就行,讲得特别好。本身 MyBatis 也没有特别难的东西,就是一些 XML 配置和动态 SQL。
https://mybatis.org/mybatis-3/zh/index.html
Spring+SpringMVC+MyBatis 这三个框架学完,可以说你就具备了开发企业级应用的能力了。至于 Spring Boot,我推荐看纯洁的微笑的博客,访问量在千万级别以上,影响了无数的初学者,我个人强烈推荐。
http://www.ityouknow.com/spring-boot.html
视频的话,也有。
https://www.bilibili.com/video/BV1PE411i7CV
最后是 Spring Cloud,是一系列框架的有序集合。它利用 Spring Boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 Spring Boot 的开发风格做到一键启动和部署。
博客的话,推荐纯洁的微笑。
http://www.ityouknow.com/spring-cloud.html
https://www.bilibili.com/video/BV1jJ411S7xr
到底是不是一个好的 Java 练手项目,关键的因素在这个项目的文档是否全面!这个因素我认为是最重要的,GitHub 和码云上有成千上万的项目,真正能脱颖而出的不在这个项目有多牛逼,作者的技术有多厉害,而在于这个项目的文档能不能让大家看得懂!
我不给大家推荐太多,多的话,就乱,不知道该从哪个开始。
1)电商秒杀
SpringBoot 完整电商系统 Mall:包括前台商城系统及后台管理系统,基于 SpringBoot+MyBatis 实现。
https://github.com/macrozheng/mall
miaosha:秒杀系统设计与实现。
https://github.com/qiurunze123/miaosha
2)博客论坛
vhr:微人事是一个前后端分离的人力资源管理系统,项目采用 SpringBoot+Vue 开发。
https://github.com/lenve/vhr
halo([ˈheɪloʊ],意为光环,也可以当成拼音读(哈喽)):一个优秀的开源博客发布应用。
https://github.com/halo-dev/halo
这些项目都非常适合作为练手项目。像 vhr,我是贡献者之一,目前有 20k star。
Spring Boot
Spring Security
MyBatis
MySQL
Redis
RabbitMQ
Spring Cache
WebSocket
…
前端技术栈
Vue
ElementUI
axios
vue-router
Vuex
WebSocket
vue-cli4
…
基本上主流的前后端技术都用到了。松哥为初学者还特意录了项目的部署视频教程,很贴心,有木有~
我之前做的一个电商项目还用了 mall 作为基层的架构!mall 的学习教程更全面,宏哥直接做了一个在线的网站,基本上用的技术都讲述得特别明白!
到这一步,基本上理论知识也有了,经验也有了,剩下三件事:
一份好的简历太重要了,它是你拍醒招聘方的一块强有力的板砖!怎么才能写好简历呢?可以参照我这篇文章,有家长就觉得很不错,转发给了他的孩子。
教你编写一份脱颖而出的简历,从而 offer 手到擒来,要参加校招的同学要提前准备了
无论什么时候,程序=数据结构+算法这种说法都是成立的。Java 中的线性数据结构有数组、链表、栈、队列,非线性数据结构有树、哈希表、图等等。常见的排序算法有:选择排序、冒泡排序、插入排序、快速排序、归并排序、希尔排序、基数排序、计数排序、桶排序、堆排序等等。常见的查找算法有:顺序查找、二分查找、插值查找、斐波那契查找、树表查找等等。常见的算法有:KMP算法、贪心算法、回溯算法、动态规划、递归算法等等。
这里给大家推荐一份纯 Java 版的 LeetCode 刷题笔记吧。作者曾给我说,刷完 100 道题之后,发现真的是爱上了刷题。基本上后面的每道题都可以想出一种思路,甚至就是最优解,还会萌生一些别人没想到过的解法——基本上只要算法学得好,大厂小厂的 offer 基本上就 70% 的把握了!
刷完 300 道 LeetCode 题后,我膨胀到要飘起来了!纯正 Java 版
一定要要在找工作前多刷一刷算法题和面试题,让自己有更多的选择,去一家相对成熟的公司,一家给你更多试错机会的公司,一家发展前景更好的公司。我这里有一份 GitHub 上星标 100K+ 的 Java 面试攻略,应该能帮得上忙,让大家在准备的时候都有章可循。
V4.0 《JavaGuide 面试突击版》来啦!GitHub 上标星 98.1k,帮你成功上岸!
这个学习路线图是真的强,各位学弟学妹们看到的话,一定要收藏, 毕竟等于学会呀!