凌晨起来肝的一篇 Java 学习路线,保证学弟学妹们大三大四的时候顺利找到实习 Offer(1)

简介: 凌晨起来肝的一篇 Java 学习路线,保证学弟学妹们大三大四的时候顺利找到实习 Offer

大家好,我是二哥呀!


13 年 Java 编程经验的老油条了,拒绝过阿里,在日企搬砖过 5 年,Java 领域的优质创作者,说实话,如果是单纯奔着实习 Offer 去的话,还是不难的。


说句挺不好意思的话,上学和刚参加工作那会,我一直傻乎乎的认为,只要把 Java 吃透的话就可以了,直到近些年我才恍然大悟,我的认知是有缺陷的。想从事 Java 后端开发工作,需要从以下 5 个方面做起,找到实习 Offer 绝壁不是问题。


C 程序设计语言,为什么学 Java 要学 C 语言呢?这也是我最近才想明白的一个问题,因为 C语言是其他编程语言的母胎,包括 Java,不少同学感觉自己学 Java 很吃力,原因可能就在这,没有把根基打好。

数据结构与算法,清华大学的邓俊辉教授曾说过这样一句话,数据结构作为构建高效算法的必要基础,在计算机科学领域中,起到了技术体系基石的作用。而算法呢?又是面试的必考内容,在国外,甚至可以只刷算法题就能拿到大厂的 Offer,这里给大家推荐一份纯 Java 版的 LeetCode 刷题笔记,美团技术大佬写的,主力编程语言是 Java 的同学可以借鉴下,刷题的幸福指数会提高很多:刷完 300 道 LeetCode 题后,我膨胀到要飘起来了!纯正 Java 版

计算机组成原理,这方面知识比较扎实的话,学妹再找你装机修电脑的话,可以说轻松搞定。计算机是由 CPU、内存、显示器这些设备组成的硬件,但我们大学毕业后,往往从事的是软件方面的开发工作。那怎样才能在硬件和软件之间自由穿梭呢?答案就是学好计算机组成原理。弄明白了计算机的组成原理,也就对整个软件开发有了一个系统的认知,不论是计算机的硬件原理,还是软件架构,都能很好的驾驭,随之而来的,我们的职业发展机会也就更多了。

计算机操作系统,为什么要学习计算机操作系统?第一,面试要考,第二,无论学习哪门子编程语言,比如说 Java、C/C++,都需要和操作系统打交道,像 Java 中的多线程技术,其实是由操作系统来负责进程和线程管理的;第三,学习操作系统,还能学到内存分配方面的知识。

计算机网络,又是一块面试经常被问到的知识点,什么 TCP 为什么三次握手?四次挥手?TCP 为什么是可靠传输协议,而 UDP 不是?键入网址到网页显示,期间发生了什么?HTTPS 握手过程是怎样的?

Java 源码,我大学时期有一个很牛逼的同学,基本上我们遇到的问题在他那都能搞得定,我问他有什么秘诀吗?他的答案很简答,看 Java 源码啊!确实,面试的时候,像 HashMap 这种源码级别的知识点,基本上是必问项目。

我之前整理过一个 Java 工程师进阶之路的大纲思维导图,这里贴出来大家围观下(参考自 hollis 的成神之路)。


image.png


当然了,这只是 Java 后端体系的鸟瞰图,校招的时候,不会要求上面的这些知识点全部都得掌握,像设计模式这块,通常需要大量的实战经验才能运用得恰到好处,学生阶段,往往项目经验比较缺乏,所以这部分内容在大学的时候往往没办法施展拳脚。


我之前曾分享过这么一个观点,假如有那么残酷的一天,我不小心喝错了一瓶药,一下子抹掉了我这十多年的编程经验,把我变成了一只小白。我想自学 Java,并且想要找到一份工作,我预计需要 6 个月的时间,前提条件是每天都处于高效率的学习状态当中,并且每天的学习时间至少在 12 个小时以上。


现在回头再评估下,发现这个观点依然是成立的。


如果大学阶段,学校开设了数据结构与算法、计算机操作系统、计算机网络、C语言程序设计这些基础课程的话,其实学起来会更快一点。


对于那些转专业的同学来说,如果时间比较紧迫的话,可以直接上手 Java,等到拿到了实习 Offer 后再把这些基础补一补我认为也是可以的。但这种情况下,就必须在找工作前很刷面试题和算法题了,通过强化突击弥补自己在计算机基础知识方面的短板。


我认识这样一些同学,是真事,初中高中阶段就对编程很感兴趣,在兴趣的驱使下很早的就有了编程的基础。我之前就认识这么一位小妹妹,初中的时候学习成绩特别好,直接保送到北航的一所直属高中,不是搞卫星就是搞航天模型,立志以后做一名黑客。


image.png


对于这些未来潜在的技术大佬,她们学什么都会特别快,因为论语里不是有一句话嘛,“知之者不如好之者,好之者不如乐之者”!


相关文章
|
6月前
|
人工智能 Java 大数据
Java程序员真的还有未来吗?如何备战2024春招?并狂拿大厂offer?
Java程序员还有未来吗? 嘿,小伙伴们,你们有没有想过Java程序员还有没有未来? 哈哈,别担心,我这就来给你们答疑解惑! 首先,让我们来看看Java的发展历程。自从Java诞生以来,它就一直是编程界的一颗璀璨明星。从Web应用到企业级应用,再到移动应用,Java无处不在。那么,现在呢?现在,随着人工智能、大数据和云计算的兴起,Java依然发挥着重要的作用。这些领域都需要大量的Java程序员来支持它们的发展。 那么,有人会说:“哎呀,现在出现了那么多新的编程语言和框架,Java程序员会不会被淘汰啊?”哈哈,别担心,Java程序员们!这些新语言和框架的出现并不会让Java消失。相反,它们
138 0
|
6月前
|
设计模式 消息中间件 算法
【实习总结】Java学习最佳实践!
【实习总结】Java学习最佳实践!
90 3
|
5月前
|
前端开发 Java 关系型数据库
Java后台学习路线
Java后台学习路线
57 5
|
4月前
|
Java
图解java工程师学习路线
图解java工程师学习路线
242 0
|
6月前
|
Dubbo Java 应用服务中间件
Java外包是如何进入阿里的熬夜整理出Java后端学习路线
Java外包是如何进入阿里的熬夜整理出Java后端学习路线
|
6月前
|
存储 安全 Java
剑指offer全集系列Java版本(2)
剑指offer全集系列Java版本(2)
36 0
|
6月前
|
存储 Java
剑指offer全集系列Java版本(1)
剑指offer全集系列Java版本(1)
42 0
|
6月前
|
移动开发 搜索推荐 Java
Java如何支持函数式编程?,作为移动开发程序员应该怎样去规划自己的学习路线
Java如何支持函数式编程?,作为移动开发程序员应该怎样去规划自己的学习路线
|
6月前
|
算法 Java C++
刷题两个月,从入门到字节跳动offer丨GitHub标星16k+,美团Java面试题
刷题两个月,从入门到字节跳动offer丨GitHub标星16k+,美团Java面试题
|
6月前
|
JavaScript Java 关系型数据库
基于 java + Springboot + vue +mysql 大学生实习管理系统(含源码)
本文档介绍了基于Springboot的实习管理系统的设计与实现。系统采用B/S架构,旨在解决实习管理中的人工管理问题,提高效率。系统特点包括对用户输入的验证和数据安全性保障。功能涵盖首页、个人中心、班级管理、学生管理、教师管理、实习单位管理、实习作业管理、教师评分管理、单位成绩管理和系统管理等。用户分为管理员、教师和学生,各自有不同的操作权限。