大家好,我是老黄。
最近看到一个问题:大二的学生自学Java有出路吗?
提问者自称是大二学生,学校是一本,非985,211。专业是光电信息。由于不喜欢这个专业,于是就开始自学Java。不过在自学的过程中,没法完全放弃本专业课程的学习,从而产生了疑惑:学Java有出路吗?需要学到什么程度才能找到工作?
看到这个问题,我的思绪一下子就飘远了,当年懵懵懂懂自学Java的青葱岁月,恍如昨日……
那时我风华正茂,她情窦初开,我风流倜傥,她风姿绰约,只是因为在人群中多看了她一眼,便发誓此生非她不娶。
在我的不懈追求之下,最终抱得美人归,从此过上没羞没躁的幸福生活。
咳……其实我说的是《21天学通Java》……
言归正传,这个提问人的疑惑还是蛮典型的。所谓条条大路通罗马,360行行行转IT,很多迷茫的大学生在探索前路的过程中,都会阴差阳错地接触到IT行业,毕竟在过去很长时间,包括今后的一段时间,IT行业的薪酬对比其他行业还是很有吸引力的。
作为过来人,深知新手入门的不易,所以这里结合我个人的经验,谈谈对这个问题的看法,以及提供一个比较粗略的学习路线,也许对于新手会有所帮助。
首先,回答下你的疑惑,大二自学Java有出路吗?当然有,而且入门不算晚。
理由有3个:
1、光电信息毕竟也属于电子信息类的专业,多多少少需要接触编程类课程,有了这些基础,转行Java开发更容易入门。
2、纵观目前IT领域的各个工种,Java开发工程师的需求应该算是比较多的,这一点从各大培训Java课程的招生热度可见一斑。
3、与其他热门IT领域相比,比如:大数据、人工智能等,Java的入门门槛可以说是最低的,只要肯用心,入门是完全没问题的。
以上3个理由希望可以打消你的疑虑。
OK。如果你对掌握Java已经没有任何心理障碍了,那么可以继续往下看看我作为过来人,给你提供的Java学习路线。值得一提的是,Java目前最吃香的领域的后端开发,所以我建议你往Java Web方向去努力。并且这个路线也是针对Java Web方向而制定的。
还有一点需要指出的是,我提供的学习路线,都是重中之重,一些边边角角的知识点我这里就不列出了,但并不代表他们不重要,只是对于初学者而言,优先级没那么高而已。
1、Java基础
这一点很多答主都提到了,在这里我再详细说下。
这里的Java基础指的是Java的语法基础。如果你之前没有编程基础,那么我建议你找个相关的视频课程,一步一步跟着视频里的案例去学习和实践。如果你有了编程基础,那么可以直接看书,当然看视频相对来说更容易入门,这个因人而异。
在这个阶段切记不能光看书,还要多敲代码。如果只看不练,过几天就忘光了,到时又得重来一次。
2、数据库
为什么学Java需要学习数据库呢?那是因为在后端开发中,数据库几乎是无法避免的,而且市面上很多的实战教程,也是离不开数据库的,所以这里将数据库的学习顺序放在第二。
数据库这方面,重点需要学习关系型数据库,关系型数据库里面,我推荐学习的是MySQL。因为在互联网领域,MySQL的市场份额是最大的,无论大厂还是小作坊,都可以看到MySQL的声影。
在学MySQL的过程中,重点需要掌握关系型数据库的基础,还有MySQL的语法,除此之外,还要学下Java与Mysql怎么交互,也就是jdbc,因为我们在项目中都是通过Java代码与数据库交互的,所以jdbc的学习也尤为重要。
3、Java Web
学完了数据库,那么可以学下Java Web了。Java Web只要有2个部分:一个是Web基础知识,一个是Web框架。
Web基础知识,旨在掌握什么是Web,以及Java进行Web开发的规范。主要有2个要学习的知识点:一个是HTTP协议,这个不一定要看书,网上找些资料看下,有了大致的理解就可以了,后面再进行深入学习;另一个是servlet,这个是Java进行Web开发的规范,也是必须掌握的。
Web框架,可以简单理解成工具包,就是为了方便开发而引进的工具,现在企业开发基本上都是基于框架进行开发,因为框架帮你处理了很多细节,使用了框架可以使开发者专注业务逻辑,更快速地交付软件产品。
Web框架篇只要包含这几个框架的学习,Spring、Spring MVC、Mybatis。这几个框架是目前最流行的,学了这几个框架之后,可以学习下Spring boot。Spring boot可以理解成框架的集合,继承了Spring、Spring MVC等,可以更便捷地开发。
4、项目实战
实战篇主要就是前几个阶段学习的知识的巩固与实践。一般项目的话,做一到两个就可以了。网上找些经典的项目视频,跟着里面的步骤,一步步做出来,就会对一个项目有个大致的把握。
这里面的项目有很多,不建议所有的都学习,从里面挑一两个练手就可以了。
5、Java进阶
之所以把Java进阶放在Java Web之后,是因为这部分知识需要具备一定的实战经验才能更好地掌握,而且这部分知识点是面试经常问到的,也是区分菜鸟和高工的分水岭,所以务必要掌握。
Java进阶主要包含以下知识点:Java并发编程(多线程、线程安全、可见性等)、JVM(Java内存结构、JVM调优等)、Java网络编程(NIO等)。
Java进阶知识点对于刚毕业的学生来说,能够掌握的并不多,但是如果你对这些知识点有所了解,一定会让面试官对你刮目相看。
既然是进阶的内容,就看大家自己的学习能力了,如果学有余力,还是有必要学下这一块知识点的。
6、其他技术
其他技术就是在开发过程中,需要掌握的技术了,比如:maven、git、linux等。这几个是必须要掌握的,可以不用学太深,但是一些基础的概念、常见的命令,还是很有必要掌握的。
最后,祝你能够学有所成,早日成为程序员大军中的一员。加油!