程序员如何高效学习以 Java 为例(4)
大三
这是很关键的一年,因为这一年你将决定是否考研。考研的我就不管了。。接下来是针对准备一毕业就工作的同学的。
敲黑板:这一年,你要做的,是深度!
通过大二一年的努力,你的广度已经足够了。并且在这个过程中,你应该也找到了自己最感兴趣的方向,如果没有,那就继续研究 java 吧,总比你不知道学什么好。无论怎样,这一年,你的重心都应该放在一条路上。以 java 为例。
首先,巩固基础!
这是最重要的。怎么做呢?进阶书籍+看博客+写总结+写开源项目。
这个阶段的视频不是很多,也没有必要了。直接看书+看博客+开源项目,最后再总结就够了。我举个例子,比如,我现在要学设计模式,我买一本《head first 设计模式》然后一个模式一个模式的学,每学一个模式,看一遍书,然后 google 一下这个模式,看几篇高质量博客,结合书和博客自己写一个总结,甚至可以自己写一个博客专栏,让后来者也能享受到你的学习成果。同时,可以好好整理一下自己学习过程中的代码,放到 github 上,最好可以试着封装一下这个模式,让其他人更方便的使用这个模式。当你收获一个又一个的 star 时,你会非常有成就感的。
上面是学习的大致方式。学完了,怎么检查自己有没有学好呢?给大家提供一个网站牛客网,你打开就知道怎么用了。
基础都包括什么呢:
面向对象的思想
java 常用类
集合框架
io
nio
多线程并发
设计模式
算法
jvm
计算机网络
spring
orm 框架
一些书籍的推荐
初级:
《java 从入门到精通》没看过,但是买的人很多,有视频。
《疯狂 java 讲义》没看过,买的人也不少。
《head first java》head first 系列都蛮好的,看起来不乏味。
中级:
《java 编程思想》java 程序员必读书籍,厚厚的,让你有种看不完的感觉,但是认真学了收获会很大
《java 核心技术卷 1 2》推荐买第十版,最新的。也是讲基础的,虽然很啰嗦,但是正是因为厚,写得多,所以你才能理解的更透彻。
《head first 设计模式》设计模式经典之一,有趣的案例驱动,看起来很有意思。
《设计模式之禅》国内大牛力作,通俗易懂,某些设计模式的实现和《headfirst 设计模式》有区别,可以两本一起看。
《大话设计模式》没看过,也挺有名的,不做评价。
《java 并发编程实战》多线程好书,不光教你怎么用,还告诉你为什么要这么用。
高级:
《effevtive java》必看书籍。讲了 70+如何写好 java 代码的例子。看了这些你会觉得以前写的代码都是问题。
《重构 改善代码既有的设计》必看书籍。重构你之前的代码能让你有一个很高的进步。
《深入理解 java 虚拟机》必看,不解释。
《java8 实战》java9 都要出来了,你 java8 还不会说不过去的。。
《java 性能权威指南》学完虚拟机再看它,深奥的一比。
你要知道,bat 等大厂每年会有两次招聘,一次春招,在每年 3-5 月,一次秋招 8-10 月。春招是招实习生的,秋招是招正式员工。所以,如果你想进这些公司,就要提前做好准备。至少,上面的那些基础你是必须得都掌握的。
大三这一年,要让你的深度足够,有能力的可以继续延伸自己的广度。这个阶段,最忌讳的是朝三暮四。早上看 python,下午发现 go 很有趣,看了一下午 go,晚上听说 R 很厉害,又去研究 R 了。千万不要这样!不要成为各个领域的杂牌军,你现在要做的,是在一个方向有一些建树。
大四
去实习
实习的话我能给的建议不多,虽然我的实习经历还蛮多的。但是毕竟不是混迹职场多年的人,就不乱说了。
找工作,待遇,环境挺重要的。但是我觉得,这个公司的技术栈,行业背景也是很重要的。我实习的三家公司是三个不同的行业,所以我知道,不同的行业差距还是很大的。有的公司招聘的时候会要求你在这个行业有过经验啥的。所以,行业背景还是有必要注意一下的。同时,为了自己为了的前途,一定要问清楚公司的技术栈!
当然:作为一个有抱负的人,毕业设计一定要向着优秀发展!并且依旧要不断提高自己的水平。这个时候,学什么可能得根据公司的需求来了,但是,永远不要停止学习!
简而言之,这四年你应该这样过: 大一:培养兴趣 大二:横向发展,广度优先 大三:纵向发展,深度优先 大四:选好方向,不断提高自己
6.2 一点感悟
很多时候,一个好的老师或者是指导你的人会让你受益终身,尽可能多的去认识这样的人。
谦虚和乐观是受用一生的财富。多去认识更优秀的人,而不是在自己的小圈子里沾沾自喜。
真正优秀的人不是埋头苦读不问世事,他们也会打游戏,也会看剧,也会追番。但是,他们会合理的安排时间。
七、结语
文章写得很匆忙,很多东西其实是我以前写过的。我的学习经验也不是很丰富,工作经验也不是很多。所以难免有写得不对或者不到位的地方,一些细节也没有展开谈,希望大家多多包涵。
如果看完这篇长篇大论对你有一点帮助,那么我的目的就达到了。如果没有什么帮助,我表示很遗憾,争取以后能够写出对你有帮助的文章。
我举得很多例子都是针对大学生和 java 的。一方面是因为我自己还是个学生,方向是 java,对这个比较熟。一方面是我知道参与这次分享的很多人都是我的朋友,他们也是学生,也在学习 java。对与一部分人,可能要说一声抱歉了。