共计 3842 个字符,预计需要花费 10 分钟才能阅读完成。
序章
时光疾驰,从事 IT 行业已两年无余。16 年 11 月开始自学 Java,从此开启自学之路,起初实习期自学大数据、python、爬虫等,最终成长为一名平庸的程序员。回首望去,一路上的过往历历在目,有初学 Java 把握皮毛后的沾沾自喜,也有遇到问题无奈解决时的埋头失望。曾在学校的夜晚洋洋洒洒写下笔记百十行,只为记住一个知识点。也曾实习期凌晨,走在公司到站牌暗淡灯光挥洒的马路上,唱着本人喜爱的南山南庆贺着成长。
你问我自学累么,我会通知你不累,因为自学路上播种了很多。你问我自学孤单么,我会通知你不孤单,感激这条路上曾有那么多帮忙我的人。
很久之前就想以本人的经验为题材,记录一下对于本人的自学之路。在知乎和球球群里,也遇到很多和我当初一样对计算机充斥着渴望但又迷茫的童鞋。心愿通过简略的文字模式,能够帮忙到一些人。
谁的青春不迷茫
我不是学霸,曾只是沉浸游戏之人。亦非出身名校,只是一名专升本的学生。大学之前虽是被老师寄予厚望的少年,但在大学生存里最终活成了本人已经最厌恶的样子。
我读过三年专科、两年本科。高考得胜没有抉择复读,大一开学因病住院,回来跟不上学习节奏开始奋发图强、同流合污。游戏,旷废了三年的青春。
起初为了回避离校实习,报考了专升本。刚开始的日子草草了事,当有一天可能从学霸的一个眼神或着一句话里,感触到了一种仰视。从那时,我开始自学数学、数据结构、操作系统、微机原理、C 语言专升本科目,最初通过专升本。
专升本完结后的假期里,试图找过计算机相关的工作,皆无功而返,只能回家期待开学。那时的心里,也不晓得有没有为当前埋下一颗渴望的种子。
人生会让你有想要爱护的人,也会让你有致力的能源,或者来源于他人对你的态度,亦或者是为了生存。
Java 自学之路
环境真的会影响到一个人。
16 年 9 月,正式开启了本科两年的生存。我曾认为我的舍友和我一样,专科打打游戏混混日子。起初才晓得来自各个高校的舍友,皆为省赛免考退学。因为常常加入省赛,彼此之间也相互意识。从那时,我感到了来自身边前所未有的压力。
我本应该躲在角落,感触弱者的光明。但我的舍友,没有因为我技术菜而孤立我。那时我对 Java 比拟感兴趣,他们给我找了 Java 视频,教我做笔记。从那时,我开始早晨在宿舍自学 Java。对于 Java 我算是零根底,专科的 Java 课基本上都在玩手机,而且书上的常识不足以用于工作。所以自学是很好的一个抉择。
有时候也会一起网一开黑,但大多数的时候都是回绝他们,他们也开玩笑说我不合群,说我偷偷学习不和他们打游戏。我只会日常对立回复:我要是免考我早就不学了。其实,他们始终也在学习,始终加入较量,始终考据,我也随着他们的足迹一路向前。
就这样,本科的第一年保持看 Java 视频,根本两个小时以上,当然偶然也会偷懒。同时跟着视频敲代码,敲到本人了解为止。也始终在做笔记,什么都记,只有能让本人看懂。
看看刚开始做的 Java 笔记。
回过头来看这些自学路上留下的足迹,横七竖八,未然帮忙不大,但那份初衷和致力,永远激励着本人。
时至今日,你问我是否进行了学习 Java?没有,始终在学习。
你问我自学给我带来了什么?一个好的学习习惯和一份支出尚可的工作。
自学方法
找一套零碎的学习视频 + 敲代码 + 做笔记 + 保持
视频教程我看的是 Java300 集,做笔记之前用的是 OneNote,当初用的 有道云笔记。在学习的过程中,要养成多问为什么和独立思考的习惯,造成一套齐全属于本人的编程思路。
保持学习,保持获取新的常识。计算机是一条学无止境的路。
Java 小家庭
在自学 Java 的过程中,我将 Java 简略地分为以下几类。
Java 根底
面向对象、数据类型、汇合(List/Map/Set)、I/O、异样、反射、序列化、设计模式、JDBC 数据库、网络编程、设计模式等。
JavaWeb
servlet、request、response、cookie、session、Ajax、数据库连接池、文件上传下载等。
此刻就不得不提和 JavaWeb 配套的练手我的项目了,也是大家相熟的,万众期待的:淘淘商城。商城类的练手我的项目集初学者钟爱于一身,是各大 Java 初学者 web 常识串烧的必备利器。
Spring 全家桶
Spring、SpringMVC、MyBatis、SpingBoot。
前三者就是传说中 SSM 框架。Spring 负责管理 bean、SpringMVC 负责解决申请,Mybatis 负责数据库操作。然而 SSM 框架配置文件太多,Springboot 简化了很多配置,自从有了 Springboot,我就再也不必 SSM 框架了,就是这么喜新厌旧。
微服务、分布式
springcloud、dubbo。我没有系统地学过 Springcloud 和 dubbo,只是搞过一次我的项目,理解了一下注册核心、网关、熔断降级、swagger 等。
深刻了解 JVM
< 深刻了解 Java 虚拟机 > 这本书看了很多遍,别问多少遍,问就是三遍。
第一遍(刚开始学 Java):感觉很 NB,就是看不懂。
第二遍(刚开始实习):花非花,雾非雾,似懂非懂!
第三遍(工作一年):某一天我懂了!也会整顿一些本人的了解写进去。
多线程、NIO
买了 <Java 并发编程的艺术 >、<Java 高并发程序设计 >、<Java 并发编程实战 > 来学习多线程,这三本书看没看完我就不说了,该懂得人都懂。
NIO 次要跟着视频学习了 Netty。
扩大
Maven:依赖治理;Git:我的项目代码版本治理,等等。依据本人须要,能够学学大数据、Redis 啥的。
至此扬帆起航
本科第一年,驱散了已经被游戏笼罩三年的迷雾,稳打稳扎的学了一年的 Java。第二年找到了 Java 的实习工作。
我是在学完 Java、JavaWeb 和 Spring 开始的实习。实习期一年,在实习后期,利用下班时间学完了 SSM 框架、Springboot 等,通过参加我的项目学习了多线程和 JVM(实习篇会着重写一下)。
自学四年,致力在计算机这条路上前行,四年之中很多的夜晚只与学习为伴。不是任何的致力都能立见后果,然而要保持总会有闪光的一天。尽管最初没有依照轨迹成为一名正儿八经的 Java 后端,但却通过 Java 一步步成为了一名大数据开发。
知乎问题汇总
1. 看书入门 Java 能够么
集体高见,看书真的不适宜 Java 入门,而适宜 Java 进阶。为什么这么说呢?书籍会因为篇幅或者排版问题,不会把每个知识点写的那么具体,而视频里老师会将本人一些独特技巧教给你,这是书里学不到的。而且看书很难引起你敲代码的欲望,学习 Java 肯定要敲代码!
2. Java 代码应用记事本编辑
刚开始学习 Java 的童鞋喜爱用 记事本 来编写代码,应用 java 和 javac 命令来运行,于是导致各种拼写错误或者标点符号问题,这里倡议应用 eclipse 或者 IDEA 来编写代码,这样能够防止最根本的谬误,从而升高学习难度。
之前我在知乎答复相似问题的时候,一个童鞋说:刚学 Java 不必记事本手写代码,而应用这些带有提醒性能的编辑器,那么当前让你手写代码怎么办。duck 释怀,别说遇不到手写代码的状况,就算真的遇到了,敲了那么久的代码,public static void main(String[] args)这些代码还手写不进去?Java 就 50 多个关键字,基本无需记忆。真正须要记住的是代码实现思路和逻辑。
3. Java 学到什么水平能够工作
基本上学完 Java 根底、web、SSM 就能够工作了。然而找到工作不意味着进行学习,在大型项目的开发中,jvm 和多线程都是必备常识。
4. Java 没有将来?
任何编程语言都会有属于他的的将来,真正没有将来的是人的自身。一个人从事 Java 开发,但只停留于之前把握的 Java 常识,不深刻学习,也不随着技术的倒退一直晋升本人,何谈将来?Java 尽管热度会被其余语言超过,然而目前难以被代替。
5. 自学两月毫无停顿,放弃?
Java 是一门比拟整体性的语言,各个局部常识紧密联系。所以学习 Java 是一个拼图的过程。我刚开始自学的时候,面向对象的概念都没搞懂,随着前面一直学习,某一天恍然大悟。既然下了学 Java 的决定,跨过了最难的局部,为何不再保持一下呢?学习 Java 就像练就绝世武功,都是长年累月的积攒和厚积薄发的升华。
6. 大四学习 Java 晚么
官网答复:任何时候学习 Java 都不晚。但瞎话说,大四学习 Java 真的不晚,只有肯下功夫,找对办法,保持下来,齐全能够在上半年自学,下半年去实习。
7. Java 只适宜理科生或聪慧之人?
一句话:Java 适宜致力之人。
8. 学历重要么
不是必须,但很必要,目前大部分 Java 开发要求都是本科起步,而且很多公司专科只能进入外包。
9. 对于 Java 培训
经济容许 + 想要速成 + 抗压能力强能够抉择,具体下一篇文章会写。
期待下次相遇
此文记录了我大学自学 Java 的一些经验与感悟,不管你认为是天生痴呆运气使然,亦或笨鸟先飞大器晚成,都心愿能帮忙到你。
18 年毕业后,留在了一个小城市,虽未身处 BAT 互联网顶端,但亦自知不可自弃仍需致力,让本人走得更远。在学习大数据、Python 的同时,也始终保持着 Java 的学习。对 Java 放弃着感谢之心,一直摸索让本人成长。后续会依据本人的理论经验写一下对于培训以及实习的文章,讲述一下如何在实习期成为了一名大数据开发。
零根底学习 Java 编程,能够退出我的十年 Java 学习园地,有我做 Java 技术这段时间整顿的一些 Java 学习手册,学习路线,视频教程,面试题,开发工具,PDF 文档书记教程,需要的话都能够自行来浏览获取。