|
之前在回答中曾经说过,如果有人对我的学习历程感兴趣可以点赞收藏,后台看了下还真的有人感兴趣,所以我来兑现承诺了。
事先说明,我自己 Java学习也不过两年,不是什么大牛,只是一名普普通通的程序员,没有进到BAT等一线互联网大厂。这篇文章,里没有什么快速入门Java、快速精通Java,快速成为大神的方法,只是我从一个一无所知的小白成长到现在的的学习工作经历的回顾,只能对那些和两年前的我一样对Java一无所知却希望入门学习Java的人提供一些参考。
在开始回顾之前,我希望你能思考并回答一个问题:“学习对我自己来说,是一种折磨还是一种乐趣?”
一、初窥
我的大学专业学的是信息安全,但是和大多数普通的大学生一样,大学四年,我混了四年,虽说成绩还算可以,但是编程技术、安全技术这一块一窍不通。本来大学毕业我会被分配到指定的地方工作,但是那一年政策调整了,给了我们选择,和之前一样分配或者分流到社会寻找工作或者考研。那时已经是五月了,临毕业也就只剩一个月,春招、秋招我都没有去参加,考研?呵算了,我这半吊子的水平,就算了,出去找工作?当时我在南京,四处投了简历,无人问津。分流的未知与不确定远远超过了选择工作分配,但是最终我还是选择了分流,一边学习Java,一边四处扔简历。
临毕业前的一个月,我每天除了吃饭睡觉外就是学习Java,我有C、C++的基础,但是对Java还是一窍不通,我去网上找了免费的网课看,当时找的是尚学堂的三百集(其实期间也找了很多其他的课程,只是看下来发现还是尚学堂的视频比较契合我自己),期间甚至差点就交了尚学堂的报名费去报名培训班了,但是当时我想着自己一点基础也没有,去培训班前先把基础夯实了。那时候每天早上睁眼就开始看网课学习,直到晚上十点熄灯,差不多一天学十多个小时吧,一个月的时间,将尚学堂的三百集中的Java基础全都学完了。
有些幸运,在我学完没多久以后,我在Boss直聘上收到了杭州新华三集团的面试邀请,六月十九日晚上,我收拾好行囊,告别了室友,独自前往南京南高铁站,因为我买的高铁是第二天早上七点多的,大清早坐地铁去肯定来不及,所以我在高铁站附近的网吧通了宵,人生第一次,在网吧里学习,看尚学堂的网课,以及不断地复习着技术知识点。
第二天早上,一宿没睡的我如约到了新华三参加了面试,从早上到下午五点多,完成了笔试、面试、二面、最终的领导面以及HR面,期间还吃了顿新华三的食堂,味道还可以,哈哈哈哈。面试并不难,一方面是当时的新华三正在招大量的人,另一方面看我是应届生,问的都是基础知识以及学习情况,所以当时给了8k+1.5k的餐补的薪资待遇,说实话当时我真的很兴奋,当时我以为我马上会成为新华三的员工了,不过后来我放弃了,选择了另一家公司,开始了接下去两年的一边工作一边学习的状态。
二、苦学
部门的领导和师父人都特别好,试用期的三个月里,前一个月领导没有没让我参与项目,只是将项目的代码给我,让我挑一个模块看源码,然后教我怎么话流程图,怎么画时序图,帮助我解答问题,也是那个时候,我学会了Git的基本使用以及时序图的绘制。
上班以后发现,时间真的非常宝贵,自己的时间被工作拆的比较零碎,一开始晚上下班后我还是会选择在工位上看网课,当时看的是Spring+MyBatis框架,因为师父当时和我说优先学会Spring 和 MyBatis 的使用,但是网课效率太低了,一节课一个多小时,某个知识点我已经知道了但是我还要忍受里面的讲师罗里吧嗦的讲十几分钟,所以当用二倍速看完了框架后,我放弃了后面中间件的知识点的内容。转而是去关注更多技术的公众号,以及购买技术书,当时买的第一批书就两本,一本是《鸟哥的Linux私房菜》另一本是《Java编程思想》。接下去日子里,早上我会七点半左右到工位上,看Linux,中午午休之前有段时间,我买了《Effective Java》,晚上下班之前,在工位上则根据网上的博客,尝试使用Spring+Mybatis 搭建可运行的程序,差不多十点左右下班,然后看《Java编程思想》,十一点半左右睡觉,差不多可以看一个多小时。这样的作息一直持续了一年多,书看完了就网上买书然后继续看,继续学。这一年多的时间,依靠着每天晚上看一小时左右的书,我硬是把《Java编程思想》看了两遍,每次看完都觉得这本书确实值得自己花时间去看,感觉就像是仙侠小说里原先依靠丹药提升境界导致的根基不稳的情况,被慢慢的夯实。网课只能帮助我知道要这么用,而书本却能系统的告诉我为什么要这么用,为什么是这样的设计。
而这么明显的不想再这家公司久待的操作,我的领导都看在眼中,但是他并没有说什么,反而一直会帮助我,指导我如何处理职场上与人相处的事。而我也并没有辜负他的期望,用了一年多的时间,从原来啥也不会的小白成为了组里项目的核心成员(只不过后来溜了,我比较现实,一切向钱看)。
三、精进
当我完成了主流框架的学习后,我转向了目前市面上流行的开源中间件的使用学习,例如Zookeeper、Redis、Kafka等等,在学习的过程中,我发现因为技术更新的太快了,书本上介绍的中间件的版本,都已经有些老了,虽然通过书本可以系统的了解中间件的设计理念、初衷以及基本的使用,但是无法真正的应用到实际工作中,所以我开始接触知识付费,也就是极客时间,极客时间上,我买的第一门课是《深入拆解Java虚拟机》,但是那时候我对Java虚拟机的理解完全不足以支撑我学习这门课,所以虚拟机的学习也就暂时搁置了,我转而买了《MySQL实战45讲》,因为MySQL自己平时工作经常用,所以学习起来并没有太多的困难,而“丁奇”的分享,也让我学会了MySQL内部更多的技术细节与原理,从此我“踏上”了知识付费的“不归路”。之后我开始了书本与付费课程结合的学习之旅,当我看完了周志明的《深入理解Java虚拟机》后,再回过头来看一开始买的《深入拆解Java虚拟机》,我发现学起来并不像一开始那般费力,竟然有种水到渠成的感觉,当理解了Java虚拟机后,我开始学习并发技术,同样是一本书《并发编程实战》和一门极客时间上的课程《Java并发编程实战》。
之后我在极客时间上买了王争的《数据结构与算法之美》还有《设计模式之美》,数据结构是为了帮助自己准备面试,因为现在的面试,算法总是被列入第一优先级,而设计模式,则是帮助自己提升对架构的理解 以及 优化自己的代码编写能力。
四、总结
我自认为自己并不是什么天赋异禀的人,甚至觉得自己有些笨,但是好在现在职场上竞争的激烈程度还没到拼天赋的地步,只要比别人更多努力一点,就能收获到足够的东西,但是考虑到现在“内卷”这个词有些火,所以我想这个说法估计会引来骂声。但是互联网这一行,靠的是自己的能力,所以我想问问那些像我一样家境一般甚至更加穷困的小白们,你是希望自己的生活掌握在别人手中还是紧紧地握在自己手心?
如今知识付费的兴起,已经比当时的自己的学习情况好很多了,如果愿意忍受网课的慢节奏,其实免费的教程B站上都有,而对于Java的初学者或者想要学习Java的人,我个人其实非常推荐极客时间的,我个人认为极客时间上学习Java优先考虑的是以下几门课程,我认为如果你希望成为一为程序员而不是搬砖的码农,这几门课程是必学的,至于极客时间退出的各种训练营,因为价格都很贵,虽然非常有价值,但是比较推荐在校学生学习,工作比较忙,抽不出多少连续时间的,就自己酌情考虑,我个人不是非常推荐。
https://time.geekbang.org/course/intro/100042601?code=uF8D%2FaRil5zasSGBNc6bgoP2eLVzRVgloYhbiEFrbPA%3D (二维码自动识别)
https://time.geekbang.org/column/intro/100039001?code=UEW2ywFcd9zYnoSfI9KiOSXDo335atm8PGWb3ratMIU%3D (二维码自动识别)
https://time.geekbang.org/column/intro/100017301?code=fDsYWqQFillhd5NLkTD0Hi038J2fa8d4oV0gWzKOi5Q%3D (二维码自动识别)
https://time.geekbang.org/column/intro/100020801?code=Zzo9BqVz6Es4VxjlWR4USZ31l4Q4dYLdPXSa4DHdS%2F0%3D (二维码自动识别)
https://time.geekbang.org/column/intro/100023901?code=-wc-B%2FhZJ8pjyVNo%2FOz5NzJkne30bAKEjL4jribNAKQ%3D (二维码自动识别)
https://time.geekbang.org/column/intro/100010301?code=DKeqv%2FylU3LXEDBSM1BD4HnKhaKXWHPvX3vKeeJorcI%3D (二维码自动识别)
最后,我想强调一件事,这社会不是程序世界那样只有0和1,过于沉浸在技术的世界里容易让自己的视野变得越来越窄,至于如何开阔自己的视野,提升自己的认知,那就看这篇文章的点赞收藏情况,你们的点赞与收藏是我分享的最大动力,届时我会分享提升我自己认知与视野的几种途径。如果有任何关于如何学习Java的问题,也可以留言或者私信,我会协助你一起确定前行的方向。
 |
|