凌晨起来肝的一篇 Java 学习路线,保证学弟学妹们大三大四的时候顺利找到实习 Offer(1)-阿里云开发者社区

开发者社区> 沉默王二> 正文

凌晨起来肝的一篇 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


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


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
我为什么要放弃 RESTful,选择拥抱 GraphQL
REST作为一种现代网络应用非常流行的软件架构风格,自从Roy Fielding博士在2000年他的博士论文中提出来到现在已经有了20年的历史。它的简单易用性,可扩展性,伸缩性受到广大Web开发者的喜爱。
6 0
如何保障消息中间件 100% 消息投递成功?如何保证消息幂等性?
一、前言 我们小伙伴应该都听说够消息中间件MQ,如:RabbitMQ,RocketMQ,Kafka等。引入中间件的好处可以起到抗高并发,削峰,业务解耦的作用。
8 0
这样统计代码执行耗时,才足够优雅!
代码耗时统计在日常开发中算是一个十分常见的需求,特别是在需要找出代码性能瓶颈时。 可能也是受限于 Java 的语言特性,总觉得代码写起来不够优雅,大量的耗时统计代码,干扰了业务逻辑。特别是开发功能的时候,有个感受就是刚刚开发完代码很清爽优雅,结果加了一大堆辅助代码后,整个代码就变得臃肿了,自己看着都挺难受。因此总想着能不能把这块写的更优雅一点,今天本文就尝试探讨下“代码耗时统计”这一块。
7 0
Google 开源的依赖注入库,比 Spring 更小更快!
Guice是Google开源的一个依赖注入类库,相比于Spring IoC来说更小更快。Elasticsearch大量使用了Guice,本文简单的介绍下Guice的基本概念和使用方式。
9 0
Slf4j 包老冲突,每次排查半天,是什么原因?怎么解决?
一、前言 在进行 Java 开发时,通常我们会选择 Slf4j 作为日志门面,但日志实现却不尽相同。如果系统运行中同时存在多个日志实现,就会出现类似下图的 Warning。
8 0
首长,Redis 性能优化十三条军规立好了,请过目~
Redis作为高性能的内存数据库,在大数据量的情况下也会遇到性能瓶颈,日常开发中只有时刻谨记优化铁则,才能使得Redis性能发挥到极致。 本文将会介绍十三条性能优化军规,开发过程中只要按照执行,性能必能质的飞跃。
12 0
听说 Spring AOP 有坑?那就来踩一踩
前言 前几日,有朋友分享了这样一个案例: 原来的项目一直都正常运行,突然
5 0
我为什么要放弃 RESTful,选择拥抱 GraphQL
REST作为一种现代网络应用非常流行的软件架构风格,自从Roy Fielding博士在2000年他的博士论文中提出来到现在已经有了20年的历史。它的简单易用性,可扩展性,伸缩性受到广大Web开发者的喜爱。
9 0
【保姆级教程】Spring Boot 单元测试
【保姆级教程】Spring Boot 单元测试 一、 单元测试的概念 概念: \1. 单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。在Java中单元测试的最小单元是类。
7 0
+关注
沉默王二
微信搜索「沉默王二」,回复关键字「00」获取硬核计算机基础资料。
1084
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载