工作一年JAVA科班生的自学经历

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

入门难,还是坚持到精通难?

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

让你打一遍真的只要打一遍啊!

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

主动的求知欲

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

正确的时间做该做的事

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

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

1、 how2j  就像该站站长说的那样,学Java,一个网站就够了!

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

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

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

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

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

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

其他感想

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

  • 101
    点赞
  • 237
    收藏
    觉得还不错? 一键收藏
  • 56
    评论
计算机科班通常需要学习以下四个核心领域,也被称为"四大件": 1. 计算机组成原理(Computer Architecture):学习计算机硬件的基本组成和工作原理,包括中央处理器(CPU)、存储器、输入输出设备等。了解计算机内部的运行机制,包括指令执行、存储器层次结构、总线和I/O管理等。 2. 操作系统(Operating System):学习操作系统的概念、功能和原理。掌握操作系统的管理和调度进程、内存管理、文件系统、设备管理等基本知识。了解操作系统如何提供对硬件资源的抽象和管理,以及如何协调多个应用程序的执行。 3. 数据结构与算法(Data Structures and Algorithms):学习各种基本的数据结构(如数组、链表、栈、队列、树、图等)和算法(如排序、查找、图算法等)。掌握数据结构和算法的设计思想和实现方法,培养解决问题的能力和编程技巧。 4. 数据库系统(Database Systems):学习数据库的基本概念、结构和操作。了解关系型数据库和非关系型数据库的特点和应用场景。掌握SQL语言的基本使用和数据库设计、优化的基本原则,以及数据库管理系统的原理和技术。 除了这些核心领域,计算机科班还会学习其他重要的课程,如编程语言、网络通信、软件工程、人工智能等,根据个人兴趣和专业方向的不同,还可以选择深入研究相关的领域。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 56
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值