JAVA的发展前景如何好不好自学

Java前景如何?我负责任地说,Java非常有前景,因为使用Java的开发场景就非常非常多,可以说是多不胜数。

我刚参加工作的时候,使用Java开发网站应用,用JSP和Servlet,那时候J2EE已经被认为过重了,新的Java应用框架层出不穷,还用Java的Java Applet功能做过网页,当时就感觉Java这种语言非常全能。

后来,我去了Motorola,在Motorola开发一个手机平台,目标场景内是用Java开发手机应用,很不幸,这个项目中途夭折了(值得一提的是,这个项目解散之后不少美国同事去了Google,不久之后Google就推出了基于Java的Android平台,我错失了做出匹敌Android平台的机会。
再后来,我就来到了学致私教,我算是退出了开发的江湖了,但是我在做着比开发更有意义的事情,我在学致私教当老师了,是属于线上java技术开发指导学习,带着一群学习java 的小兄弟,正赶赴在java开发的光明大道上。

说这么多,其实就是想说明一点,Java的应用场景非常广泛,最初发明Java想要的是(代码一次编写,导出都可以运行),但是最初的发明人估计也没有想到Java应用如此广泛,所以,对于标题(Java的前景如何)的问题,我的回答就是——你只管放心的学习java,就业情景是十分的广阔。只要你的技术学的扎实,走到哪里你都是风景。不管你以后是进了哪一家企业,你都会有很高的工资,关键还是要提高自己的水平,把一门语言学好了,而不只是学会了。
宫力博士有一句话我印象很深刻:软件开发人员只能在软件开发中培养。

所以,对于标题:Java好不好自学 的问题,回答是——像所有其他语言一样,自学可能并不是合适的选择,因为自学没有软件开发的场景,你需要在软件开发中来学习Java。

但是,这又引出一个悖论,一些刚入行的年轻人,因为没有工作经验,无法获得项目开发的机会,但是他们没有项目开发的经验,而在就业的时候企业又是非常看重项目经验的,很多要入行java开发的人,因为没有项目经验,在面试的过程中惨遭淘汰,无法达到企业的最低基数要求。我现在工作的这家机构还不错,在这里学习的学生每一个学生在每一个学习阶段都会有大量的实操案例,和综合性的实战项目去做,老师提需求,学生按照具体的项目需求自己去搭建项目的业务逻辑并完成相应的项目功能。这样,每个学生在就业的时候都具备了一定的项目开发经验,完全可以满足企业的项目开发需求,找到工作是毫无压力的。
自学的问题就在这里,你自己学的,你说“我自学Java全都学会了,” 这话一点分量都木有啊,这话谁都可以说啊,没有第三方证明背书,等于没说一样。

根据标题,其实也很明确——我不只是要(学会)或者(学好)Java来自嗨,我是希望通过学会学好Java来找一个工作。

这里我要强调一下,要通过学Java找到工作,需要满足两方面,缺一不可:

学会了Java

最好的方式,是有一个靠谱的有公信力的机构教你学Java,这个机构要能够有教真本事的能力,当你学完之后,用人单位才能相信你说(我学会了Java)。

市面上很多培训班,呵呵,我坦白说,最多做到(学会了Java) (有很多连这一点都做不到),而且,这些培训班缺乏公信力,或者说他们只能小范围做到有公信力,比如只在所谓对口介绍工作的几个用人单位还能说上话,出了这个圈子,培训班的那个证明没有任何价值。

我个人建议,找一个影响力更大的教育机构来给自己背书,你不光要投入经前还要投入时间的,没理由不找一个靠谱一点的。

为了避免同学们走弯路,我介绍一些学习Java的注意事项,或者说选择培训课程和培训机构的关键点。

第一, 学习Java不要只是学习语言本身。

Java表面上是一门语言,其实已经发展为围绕这个语言构建的生态系统,拥有众多设计模式、应用框架、开发工具,光学会语言是没用的,你需要把生态系统中这些模式、框架、工具也学会了,才是真正学会Java。

所以我觉得Oracle Java认证(Sun被收购之前叫Sun Java认证)没什么用,因为这些认证只关注于Java语言本身,各种纠结语言本身的小tip,实际工作是不能只会Java语法的。或者这么说,你不要纠结成为一个Java语言大牛,那并不会帮一个新手找到工作,真正有用的是对业界各种框架和工具的熟悉,这些才是工作单位的技能要求。
现如今,你光说你会Java语言,但是连Spring都没听说过,没法说自己学过Java服务器端开发;你说你会Java语言,但是不会Android,做移动开发的公司也不会有胆招你;你说你会Java,但是不知道Hadoop、Spark这些平台,做大数据的工作你也无法胜任。

对Java有差不多了解的时候,就要开始熟悉基于Java的某个框架或者平台了。

记住,公司需要的是能用Java创造价值的人,不是对Java语言有多精通的人。

第二, 与时俱进了解Java的社区发展。

让我说得直白一点,找工作嘛,决定性的也就面试那几个小时的时间,在这几个小时里,你和别人的区别,很可能就是有一些知识点你知道,别人不知道,然后你就被录用了。

如果你只知道好几年前的技术方案,对最新趋势一无所知,那你就比别人的胜率少。

几年前,懂MVC差不多就可以对架构侃侃而谈了,但是时代在发展,现在很多应用架构需要更多的内容,比如需要事件驱动的方式,合格的培训教育必须包含这些与时俱进的内容。

第三, 实战!实战!实战!

不讲实战的教育培训都是耍流氓。

前面我说过了,(软件开发人员只能在软件开发中培养),如果一个培训课程只讲基本语法,只让学员编出一些玩具一样的小程序,没有任何意义的,因为那不是实战,只是做玩具,用人单位也不会买账的。
负责任的培训机构,不应该仅仅有只会讲课的老师来讲课,应该是请一些也有业界实战经验的老师来讲课,那些在实际工作项目中积累的经验,才是真正有价值的。我现在工作的地方学致私教就很不错,所有的老师都是有10年以上很丰富的开发经验的。

了解更多关于java基础学习路线和学习资料可以添加我的学生学习扣峮:前 108 中 062 后 1881 。

总结一下:

Java的前景如何?——非常好,有很多就业岗位。

Java好不好自学?——不好自学,你最好找一个靠谱的教育机构来学习。

我这里要强调一下,找教育机构一定要靠谱,不是任何一个培训机构都可以称得上靠谱的,靠谱不靠谱,通过他们的课程介绍就能看得出来。

就像我上面解说过的,要看这个机构的课程是不是只教Java,如果只教Java这个语言却不教Java社区的各种平台和使用,那就不靠谱!

再就看这个机构的课程是否与时俱进,如果还是只教MVC,对于最新的事件驱动设计和架构只字不提,对最新最热的工具使用不传授,那肯定也不靠谱。

最后——也是最重要的——就是看这个这个机构的老师是什么背景,纯粹的只有讲课资历的讲师,我无意冒犯,但是靠这些没有实战经验的人来讲课,是教不出用人单位需要的真功夫的,但是靠这些没有实战经验的人来讲课,是教不出用人单位需要的真功夫的。

到此这篇关于JAVA的发展前景如何好不好自学的文章就介绍到这了,更多相关java的前景内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

时间: 2020-06-23

浅谈java定时器的发展历程

在开发中,我们经常需要一些周期性的操作,例如每隔几分钟就进行某一项操作.这时候我们就要去设置个定时器,Java中最方便.最高效的实现方式是用java.util.Timer工具类,再通过调度java.util.TimerTask任务. Timer是一种工具,线程用其安排以后在后台线程中执行的任务.可安排任务执行一次,或者定期重复执行.实际上是个线程,定时调度所拥有的TimerTasks. TimerTask是一个抽象类,它的子类由Timer安排为一次执行或重复执行的任务.实际上就是一个拥有run方

Java编程发展历史(动力节点Java学院整理)

Java的由来 Java语言的诞生具有一定的戏剧性,它并不是经过精心策划.制作.最后残生的划时代产品,从某个角度来说,Java语言的诞生完全是一种误会,美丽的误会. 1990年年末,Sun公司预科嵌入式系统将在未来家用电器领域大显身手,于是Sun公司成立了一个由James Gosling(后来被称为Java之父)领导的"Creen计划",准备为下一代智能家电(如电视机,微波炉,电话)编写一个通用控制系统. 该团队最初考虑使用C++语言,但是很多成员包括Sun的首席科学家Bill Joy

Java发展史之Java由来

Java:由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称.Java语言是一种可以撰写跨平台应用软件的面向对象的程序设计语言,由当时任职太阳微系统的詹姆斯·高斯林(James Gosling)等人于1990年代初开发,它最初被命名为Oak.Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言. Java从第一个版本诞生到现在已经有十九年的时间了.时间若白驹过隙,转瞬即逝.弹指间19年过去了,在下图所展示的时间线中,我们看到JDK已经

浅谈java中集合的由来,以及集合和数组的区别详解

对象多了用集合存,数据多了用数组存. 数组是固定长度的,集合是可变长度的. 集合是:只要是对象就可以存,不管是不是同一种对象 而数组只能存储一种类型的对象 下面是集合的框架: 以上就是小编为大家带来的浅谈java中集合的由来,以及集合和数组的区别详解的全部内容了,希望对大家有所帮助,多多支持我们~

简单说说Java SE、Java EE、Java ME三者之间的区别

1. Java SE(Java Platform,Standard Edition).Java SE 以前称为 J2SE.它允许开发和部署在桌面. 服务器.嵌入式环境和实时环境中使用的 Java 应用程序.Java SE 包含了支持 Java Web 服务开发的类, 为 Java Platform,Enterprise Edition(Java EE)提供基础. 2. Java EE(Java Platform,Enterprise Edition).这个版本以前称为 J2EE.企业版本帮助开发

java存储以及java对象创建的流程(详解)

java存储: 1)寄存器:这是最快的存储区,位于处理器的内部.但是寄存器的数量有限,所以寄存器根据需求进行分配.我们不能直接进行操作. 2)堆栈:位于通用RAM中,可以通过堆栈指针从处理器那里获取直接支持.堆栈指针往下移动,则分配新的内存.网上移动,则释放内存.但是 在创建程序的时候必须知道存储在堆栈中的所有项的具体生命周期,以便上下的移动指针.一般存储基本类型和java对象引用. 3)堆:位于通用RAM中,存放所有的java对象,不需要知道具体的生命周期. 4)常量存储:常量值通常直接存放在

Java开发学习 Java数组操作工具

看到网上的一段关于对数组操作的代码,觉得有用,在此备用. import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Random; import java.util.TreeMap; /** * @desc 数组操作工具 * @author OuyangPeng * @datatime 2013-5-11 10:31:02 * */ public class MyArrayUtil

java基本教程之java线程等待与java唤醒线程 java多线程教程

本章,会对线程等待/唤醒方法进行介绍.涉及到的内容包括:1. wait(), notify(), notifyAll()等方法介绍2. wait()和notify()3. wait(long timeout)和notify()4. wait() 和 notifyAll()5. 为什么notify(), wait()等函数定义在Object中,而不是Thread中 wait(), notify(), notifyAll()等方法介绍在Object.java中,定义了wait(), notify()

java数据结构之java实现栈

复制代码 代码如下: import java.util.Arrays; /** * 栈的实现<br> * @author Skip * @version 1.0 */public class Stack<T> { private int size;    //栈中元素的个数 private Object[] arr;  //底层数组 private final int defaultLength = 200; //默认长度 /**  * 无参构造,使用默认长度初始化数组  */ p

java教程之java继承示例详解

什么是继承(extends)? 继承是:新定义的类是从已有的类中获取属性和方法的现象. 这个已有的类叫做父类, 从这个父类获取属性和方法的类叫做子类. ExtendsDemo1.java 复制代码 代码如下: /*什么是继承*/public class ExtendsDemo1 {    public static void main(String[] args) {        Truck t = new Truck();        t.size = 100;           //不

选择java的理由:java之父访谈实录

文章来源:pconline 作者:郁小夫 微软的.NET和SUNone的争夺由来已久,并且有愈演愈烈之势,最近微软的Server2003活动刚落幕,在16日上午"Java之父"JamesGosling在北京出席第六届全国Java技术与应用大会,面对以COM+为核心Server2003凌厉攻势,让我们听听这位传奇人物是如何评价微软还有java的. 以下是James Gosling答记者和Java爱好者的提问: "微软是一个很难合作的公司,在微软的字典里似乎没有合作二字!&quo

java教程之java程序编译运行图解(java程序运行)

首先我们在桌面,开始->运行->键入cmd 回车,进入windows命令行.进入如图所示的画面: 可知,当前默认目录为C盘Users文件夹下的Administrator文件夹.一般而言,我们习惯改变当前目录.由于windows有磁盘分区,若要跳到其他磁盘,例如E盘,有几种方法: 1.输入命令: pushd 路径(此命令可将当前目录设为所希望的任一个已存在的路径) 2.输入命令: e:  转移到e盘,然后再输入 cd 转移到所希望的已知路径. 如图: 希望在windows命令行下使用javac.