前言:夏天到了,人也变得些许焦躁。转眼工作一年了,想着写点什么来总结一下我这个IT新人的起起伏伏。毕竟从刚入职不久,我这颗跳槽的心一直蠢蠢欲动。都怪自己大学不努力,在人生的许多节骨眼上被动的做出了选择,好在本人自尊心强,不愿自甘堕落,不说废寝忘食,但也靠着仅存的悟性跌跌撞撞摸索着继续前行。在这里写下我这一年多的学习心得吧。

入门难,还是坚持到精通难?
学习编程和学习任何一门学科一样都是枯燥乏味的,但是它也和许多理工学科一样,充满魅力和朝气。计算机语言是诚实的也是可靠的,你给它什么参数,它返回给你特定结果,你的努力和汗水都能够在瞬间得到回报,但有时也会吃闭门羹。当然,这对所有学习编程的同学来说都是公平的。因为所有人都要从生涩到熟练,从错误到成功,一步步挺过来的。没有人的成功是不通过debug而与生俱来的。我的本科四年,虽说没有挂科也没有翘课,可是也没有什么拿的出手的专业技能。直到大三那年,当身边的同学开始找实习的时候,我才顿时醒悟,决定从零开始学习JAVA,做出改变。可是从何学起?如何学呢?看教材太慢,看博客太零散。但是时不我待啊!除了工作,再加上当时还有毕业设计,毕业论文等事情,一并给了我很大的压力。时间不会心疼你的焦虑和艰苦。于是在大四那年我开始大量的下载视频,观看视频,下载视频,观看视频。。由于时间紧迫,于是我靠着一点点入门基础就跳过了JAVA SE的部分,也跳过了JAVA WEB的servlet部分,就因为曾经在大三做过一次实验而来的迷之自信。直接从SSH,SSM这些招聘信息上的硬性规定技能开始学习。当然,最终我都因为基础不行而不足以让我找到工作。原因很简单,虽然我是科班出身,虽然我有系统的学习环境,但是我坚持的时间没有那些远比我优秀的人多。因为写代码就和读书写作一样,你以为你看了目录就能获取知识,你以为写了大纲就能发表登报。但是编程从头到尾都在告诉你,你不会是因为你没有坚持,编程的知识,你不会就是不会,没有argument就没有result,没有努力也就没有收获。

让你打一遍真的只要打一遍啊!
相信很多同学和我都有一个毛病,就是买很多书放着,结果一本都没看。其实在学习编程的时候我们也一样,收集了大量学习视频,但是看了一个介绍后面就没看下去了,下载许许多多的项目,但都还是jar包模样呆在网盘里直到被遗忘。当然,也有很多同学下了视频也从头到尾看完了。结果呢?所有的疑点难点都被配置文件卡住了。为什么,因为你根本就没开始真正的开发,所有的精力都花费在了观看视频,直到出现了如何配置连接,如何构造项目,web文件怎么写,pom文件怎么加这些问题的时候又返回去观看视频啦。敲一遍代码,实际操作一遍吧。有时候当别人告诉你亲自操作一遍的时候,真的只要操作一遍就能够顶得上你看三四遍视频。

主动的求知欲
去年从学校毕业的我回到了位于海边三线城市的家,经介绍进入了一家外包公司。公司开始有培训,福利也算不错,于是我的学习斗志也被重新激发,工作之余继续关于JAVA的学习。可是好景不长,当我进入这家公司的时间越长,他暴露的问题也越多。首先,作为外包公司,其开发模式是敏捷开发。需求,开发,出版本,测试,改需求。这样的轮回几乎每周一次,朝九晚六七八九十,甚至朝九朝零,我的天,就算身体能抗住,头发也不答应啊!于是我就有了跳槽的想法并开始大量学习JAVA进阶阶段的知识,包括多线程并发,集合源码,JVM底层原理等。虽然工作很累,但我也不敢松懈,因为我看到许多同事每天只是为了混时间而机械性的完成任务,就连和我同一时间进来的小伙伴也慢慢的被这种氛围吞噬。他们只关注自己开发的任务,做完就忘,得过且过。你学的越多,你就离你讨厌的人越远,因为我相信各位都不想成为某个公司五年甚至十年的寄生虫。

正确的时间做该做的事
没学会走就想跑,到最后一口吃成胖子,一事无成。但是一个模块的学习时间也不宜过长,尽量选择适合自己的学习方法,跟紧流行的学习趋势。就像去年的我,虽说基础不行,但是我也有意识的去搜索当时的招聘信息,通过了解招聘信息上的技能要求而有选择的学习,例如前年流行SSH,去年流行SSM,到今年流行Spring boot。

说了那么多,接下来分享下我从去年到现在的一些学习资源和书籍吧。

1、自学网站 首先我要推荐一下这个我认为国内比较好的JAVA自学网站,麻雀虽小五脏俱全。

2、github 这个全球最大程序员基佬网站想必大家耳熟能详了,作为一个新手程序员,事实的跟上圈内的流行是有必要的,除了许多有趣的项目外,在这上面也有许多作者也值得follow的,否则你连996.icu是什么都不知道就有点尴尬了。

3、书籍《Effective JAVA》,2019年好像出到了第三版本,至于是否有中文版还没有去看。不过第二版也是许多新手必看的,这里面会有一些JAVA的编程习惯和技巧,适合新手入门到实战的过度,诸如一些基础面试题其实也是从里面衍生出来的。

4、设计模式,无论是《设计模式之禅》还是head first系列的设计模式,作为一年的以内的程序员,虽然百分之九十不会用到设计模式,但其实他对理解整个系统的结构设计是很有帮助的。如果实在看不下去的,起码要达到能画他们的类图程度。

5、《深入理解JAVA虚拟机》 神作,如果想要更深的理解JAVA类加载的过程,这本书是必不可少的。

6、慕课网  因为在公司做的项目很多用的都是一些封装好的技术,而且往往分配到的任务只有零散的一小块。虽然慕课的项目不便宜,但是由于它是会随着技术的更新而上线对应的项目的,所以为了不和流行拉开较多,我还是建议买一些项目回来做。例如像redis,shiro等这些有时候会用上但是却没时间深究的,可以通过一个完整的项目去了解他们的使用。

7、各种博客,这些博客内容包括多线程并发,集合源码,编程技巧,面试题目。诸如这些进阶的问题可以通过搜索得出。

其他感想
在我找工作的时候,发现一个现象。就是每年的软件开发岗位,都会有一群特殊的人群数量不断提高,那就是培训机构出来的学生。培训机构的优点是,快。六个月或者更短的时间内学完JAVA基础,相比我在大学四年,大二才开始接触JAVA确实没有培训机构的效率高。但是呢,我大一在学的是操作系统,计算机组成原理等一些基础的学科,这些学科有助于我对编程的更好理解。所以如果你是培训机构出来的,而且有多余时间的话,可以找找这方面的书籍看看,了解二进制,数据结构是怎么回事对以后编程有很大帮助。

写在最后
虽然最近在为辞职的事烦恼,自己也没有真正准备好接下来要面对的找工作的困难,但是既然决定了,就说明自己不安于现状,只要继续努力就好了,加油!共勉!


Jacob
4 声望0 粉丝