过去的十多年,JAVA基本每年都是全世界使用人数第一的语言。全世界数百万的IT企业构建了庞大的JAVA生态圈,大量的软件基于JAVA开发。 JAVA也被誉为“计算机界的英语”。 JAVA的应用范围涉及所有行业、绝大多数IT企业,形成了庞大的生态圈。如下是智联招聘在一个月内、北京地区的JAVA人才需求量:
当月需求量25121个职位,我们以一个职位招聘3人,总量就是:25121*3=75363人。这还只是光北京地区。可以想象全年、全国招聘的数量,以及由此形成的生态圈有多么庞大。
这个生态圈的影响力越来越大,需要的人才也越来越多。越多人会JAVA,就有越多软件使用JAVA编写,反过来促进需要更多的JAVA人才。 这就是著名的“马太效应”,即“强者越强,弱者越弱”。
JAVA目前在:企业级软件开发、安卓开发、大数据、云计算等方方面面都是主流的编程语言。跟着主流走,肯定错不了。
什么人适合学习JAVA?
如果作为兴趣来学编程,什么人都适合。毕竟,现在小学生都开始学习编程了。如果要作为职业来说,你到底适合不适合确实是个问题。我教过的学员里面从初中生到博士生、甚至50多岁的企业高管都有,怀着不同的目的来学习JAVA。 我记得教过一个北大的数学硕士,人家过来学习不为职业就为科研,希望通过培训节省时间,一个暑假就迅速突破了编程这个坎。
这里,我们只探讨作为职业适合不适合你?这里有六个现实的硬性指标,可以作为参考。
1. 兴趣度
兴趣是基础。如果你完全没有编码的兴趣,敲键盘就头大。那就完全屏蔽掉程序员这条路,不要强求,天无绝人之路,另一条路也许更适合你。作为程序员的基础,至少不讨厌敲代码的感觉,这是最基本的。 越喜欢敲代码这种感觉,你以后的路走的越顺。
很多人说:“xxx有天赋”。我想,这里的天赋换成“兴趣”也许就是事情的真相。人家有兴趣做这个事,做着开心,自然就会花越多时间研究,成长自然就越快;成长越快,比起常人自然就有“天赋”。
2. 有没有更好的其他发展路径
既然为职业发展而来,必然要现实一些。如果家里有很好的背景、父辈有很好的资源。强烈建议,依托父辈资源发展也许是最优的路径。写程序可以作为业余爱好,而不要作为主业。
当然,如果是我等普通屌丝群众。学IT,仍然是逆袭最好的途径。毕竟,这是一个凭技术、凭本事吃饭的职业。技术能力到位年薪百万的大有人在。
3. 逻辑思维能力
这是作为程序员最基本的要求。逻辑思维能力差的人,完全不适合学编程。当然,对于一般理工科的学生来说,逻辑思维不存在问题。对于文艺青年,喜欢跟着感觉走跳跃思维的人,一般不适合程序员这一条路。
4. 英语
对于初级程序员英语要求不高,事实上,高中英语水平足矣。如果想往顶尖技术发展,英语能力有必要提高。毕竟,很多技术源自美国,能熟读原汁原味的英文,将会让你如虎添翼。
个人建议是:英语高中以上够混初中级程序员阶段。想往顶尖混,至少要英语四六级以上。
如果您英语不好。可以去尚学堂官网下载1800个常用的JAVA开发英文词汇。这是尚学堂学员孙波整理汇总,秉持“见一个背一个”的原则,整理4个月完成。
5. 数学
被数学折磨的我们,学编程有个好消息就是“数学并不重要,除非搞科研”。对于企业里面开发软件,数学知识初中水平足矣。
如果要搞人工智能、大数据等开发,一些高等数学、线性代数、概率等知识还是有很多用处的。当然,等你用到时再翻书也来得及。
6. 职业发展稳定
JAVA历经十多年,都是稳居第一位,可见的未来也是非常稳定的开发语言。JAVA行业的一大特点就是稳定,发展空间大。
作为JAVA程序员工资从:4000月薪,10万月薪都有。不像前几年火爆的IOS,火了3年,现在断崖式的下跌。JAVA就像一列火车,行驶非常稳定。
JAVA程序员分为:初、中、高、架构、总监,5个修炼档次。足够我等普通屌丝奋斗终生了。
按年限划分的话,大体是这样:
1). 初级程序员工作年限:1-3年月薪:4K-15K
2). 中级程序员工作年限:3-5年月薪:10K-20K
3). 高级程序员工作年限:5年以上月薪:15K-30K
4). 架构级别工作年限:5年以上月薪:25K-40K
5). 总监工作年限:5年以上月薪:40K以上(年薪百万也大有人在)
【注】:上述年限标准只是参考。总是有些“牲口级别”的人物,很快就能达到别人很多年的高度。去年,我们一个学生从尚学堂学完JAVA和大数据双专业就是50万年薪(之前有两年测试工作经验),立刻跨入“总监”级别收入。也有比较厉害的应届生,一毕业就年薪20万以上。当然,也有很多“懒猪型”的,干3年、5年,水平不见长,薪水不见长的。还是那句话,“师父引进门,修行靠个人”。
怎么学习JAVA?
JAVA编程的学习分为:入门、初级、中级、高级、架构几个阶段。
入门
入门所需要的时间较短,几小时、几天即可。重在形成良好的编程习惯、引发足够的兴趣。大学编程课最失败的地方就是一开始就打消了很多人编程的兴趣。 编程是最容易引发成就感的事情,完全可以和游戏一样有意思。
入门大家需要掌握的JAVA知识有:JDK的安装和配置、eclipse开发环境的使用、变量、控制语句等基本知识的掌握。
入门大家可以学习一下本人录制的一小套视频(未完,最近太忙了),不过,作为入门是相当适合的。
有兴趣的朋友,可以进入速学堂学习这个课程。只需要看完第一章即可,一共约1小时的课程。大家就能完成一个台球小游戏的制作。目前,需要大家注册速学堂,只需打赏1元钱就能观看这一套视频。只需1小时,入门足够了。
初级
JAVA的初级我们需要学习JAVASE基本知识,这是我们以后工作的基础。在这个阶段,学会使用API、理解面向对象将是初学者首要面对的问题。
JAVASE中需要熟练掌握的有:面向对象、异常、常用类、数组、容器、IO流、多线程、网络编程。 这些都需要大家熟练掌握,都是以后工作必须用到的内容。
JAVASE中唯一不会在工作中使用的就是GUI编程,具体就是:AWT/SWING。桌面软件开发是JAVA语言的短腿,很少有企业使用。当然,如果时间充裕,学习一下也无妨,毕竟可以通过SWING做出漂亮的界面。而且,技术都是相通的(天下文章一大抄,呵呵),对于学习其他GUI技术也有帮助。
如果需要学习资料,推荐大家学习高淇出的《JAVA300集视频教程》。对于大家来说,学习前200集足矣。后100集的内容涉及较深,可以作为参考。
中级
中级面临的学习任务比较庞杂,不只学习JAVA, 还需要学习其他技术。通常,中级学完就可以参与企业项目的开发了,可以自己做出漂漂亮亮的项目。
我们需要学习三块知识:
1. SQL查询和1-2种数据库(通常是:oracle、mysql)
2. 网页技术:HTML5、CSS、JavaScript、Jquery
3. 服务器编程JAVAEE:Servlet、JSP、数据库操作技术:JDBC、Tomcat服务器
中级是非常重要的阶段,跨过这个门槛,理论上你就具备了开发项目的能力啦!中级阶段的学习,经常成为很多初学者的拦路虎,毕竟内容太多,一个问题就可能让你郁闷一天。 最终,检验你中级是否过关的标准就是“能不能独立完成一个企业项目的模块开发”。
记住:“实战是检验实力的唯一标准”,“没有实战的学习,是假学习;没有实战检验的能力,是假能力”。
高级
高级阶段是大量框架的学习和使用,毕竟这是在企业中实际使用的。目前需要掌握的有:Spring、Spring MVC、Mybatis、Struts2、Hibernate、Maven、shiro、lucene等技术。
这些技术的学习一定要结合具体的项目,不然你的学习会有种无力感。结合时下流行的SSM架构,做几个项目,自然就能把Spring、Spring MVC、Mybatis框架使用熟悉。不做项目的学习是“低效的学习”。
高级阶段表面看来是一些框架技术的学习和使用。对于“有潜力的高手来说”,实际上你会发现这只是“JAVA基础的升华”而已。只是JAVA+算法+设计模式的组合而已,我们深入这些框架底层架构就会发现这一点。 当你的学习能意识到这一点的时候,已经达到了非常高的高度。这就是武侠小说里面说的“从无招到有招,再从有招到无招”。
架构
作为JAVA程序员学到高级课程已经完全具备初中级程序员的基本素质,和真正有3年开发经验比的人,你缺的就是经验,技术的广度已经足够。
如果想从程序员更进一步,那就是架构师和总监。这个时候,你必须要有深厚的技术功底、丰富的项目经验、丰富的行业经验。
从技术上来说,你需要深入学习如下技术:
并发编程、ActiveMQ技术、ZooKeeper、Netty通信框架、JVM虚拟机底层优化、Redis、Nosql、数据库底层优化、RocketMQ、Dubbo分布式服务、Storm、Kafka、Nginx、FastDFS等。
(如果看花眼了,就收藏一下,这是你几年需要学的内容,不是几天。本文只负责指路)
从项目经验来说,一般需要3个大型项目经验。这种经验的累积不是一天两天的,罗马不是一天建成的。保持足够的耐心,坚持就能达成。
如果,你能走到架构阶段。基本上算进入JAVA程序员的高端行列。此时的收入应该在50万-100万之间(注意:这是北上广深杭一线城市标准,二线乘以系数0.6,三线乘以系数0.5)。 当然,对于我等普通屌丝来说,也算是完成了逆袭了,过个有房有车的小康生活应该是绰绰有余。
如果,你的情商、市场能力、管理能力到位,此时可以尝试创业当老板了(如果不到位,千万不要尝试,不然会死的很难看)。扎实的技术实力、丰富的行业经验,应能让你实现腾飞。我的很多学生创业成功,年如数百万的N多,时代总是年轻人的时代!
JAVA培训适合你吗?
培训重要吗?对于有的人很重要,对于有的人完全可以无视。要理解这个问题,我们首先要明白培训的核心优势是什么?其实就两点:
第一、 节省时间、有老师带、有学习气氛,快速提高,快速就业
第二、 形成圈子
“节省时间”是很多人考虑是否培训的首要因素。毕竟,5个月脱产、没日没夜的学习,可以抵得上松松散散学习两年的效果。 把节省下的1年半去工作赚钱,其实更划算。 但是,对于时间不是特别敏感的人群,培训不会特别重要。比如:大一、大二的学生。
“形成圈子”是很多优秀的人比较在意的。清华的学生为什么厉害?除了自身厉害,很大程度也因为同学厉害、老师厉害,他所处的圈子厉害。当然,清华的学生不会来参加JAVA培训,他的圈子本身就足够强大,不太需要通过JAVA培训形成圈子。但是,对于普通大学生来说,参加JAVA培训,你在5个月时间形成的同学资源也是非常重要的发展资源。这些同学毕业后,都是一个行业,保不齐有什么机会互相拉扯一把。
如果你有“三强”:自学能力强(不需要老师指导)、自控能力强(不需要学习气氛自己也能控制)、本身周边圈子较强(比较好的大学),那么完全不需要参加培训,找几个好伙伴自学能起到一样的效果。 如果你没有这些条件,参加培训将会给你带来非常好的效果。
最后
最后,为尚学堂做一点小小的广告,望读者朋友担待。尚学堂秉持的理念是“真正的实战教学”。我们相信“实战最有效”的课程设计理念,让我们的学员在培训过程中接触大量的实战项目案例。通过培训也能积累真正的项目经验,而不是简单的“三脚猫功夫”。虽然,几乎所有机构都有项目案例教学。我们的不同在于,我们把他当做核心、当做最重要的事情落实。我们鼓励“实战”,也希望“实战”两个字能进入学生的心里。
记得有个学生问我:“老高,我喜欢一个女孩。但我不会追女孩,怎么办?”。我说:“实战!实战追一次,一星期就会了”。 这也是为什么我们的学生进班不到一个月就能开始写项目的原因。这也是为什么我们的学生可以进入百度、阿里、京东的原因。