JAVA为什么有前途?
过去的十多年,JAVA基本每年都是全世界使用人数第一的语言。全世界数百万的IT企业构建了庞大的JAVA生态圈,大量的软件基于JAVA开发。JAVA也被誉为“计算机界的英语”。JAVA的应用范围涉及所有行业、绝大多数IT企业,形成了庞大的生态圈。如下是智联招聘在一个月内、北京地区的JAVA人才需求量:
当月需求量25121个职位,我们以一个职位招聘3人,总量就是:251213=75363*人。这还只是光北京地区。可以想象全年、全国招聘的数量,以及由此形成的生态圈有多么庞大。
这个生态圈的影响力越来越大,需要的人才也越来越多。越多人会JAVA,就有越多软件使用JAVA编写,反过来促进需要更多的JAVA人才。这就是著名的“马太效应”,即“强者越强,弱者越弱”。
JAVA目前在:企业级软件开发、安卓开发、大数据、云计算等方方面面都是主流的编程语言。跟着主流走,肯定错不了。
什么人适合学习JAVA?
如果作为兴趣来学编程,什么人都适合。毕竟,现在小学生都开始学习编程了。如果要作为职业来说,你到底适合不适合确实是个问题。我教过的学员里面从初中生到博士生、甚至50多岁的企业高管都有,怀着不同的目的来学习JAVA。我记得教过一个北大的数学硕士,人家过来学习不为职业就为科研,希望通过培训节省时间,一个暑假就迅速突破了编程这个坎。
这里,我们只探讨作为职业适合不适合你?这里有六个现实的硬性指标,可以作为参考。
1.兴趣度
兴趣是基础。如果你完全没有编码的兴趣,敲键盘就头大。那就完全屏蔽掉程序员这条路,不要强求,天无绝人之路,另一条路也许更适合你。作为程序员的基础,至少不讨厌敲代码的感觉,这是最基本的。越喜欢敲代码这种感觉,你以后的路走的越顺。
很多人说:“xxx有天赋”。我想,这里的天赋换成“兴趣”也许就是事情的真相。人家有兴趣做这个事,做着开心,自然就会花越多时间研究,成长自然就越快;成长越快,比起常人自然就有“天赋”。
2.有没有更好的其他发展路径
既然为职业发展而来,必然要现实一些。如果家里有很好的背景、父辈有很好的资源。强烈建议,依托父辈资源发展也许是最优的路径。写程序可以作为业余爱好,而不要作为主业。
当然,如果是我等普通屌丝群众。学IT,仍然是逆袭最好的途径。毕竟,这是一个凭技术、凭本事吃饭的职业。技术能力到位年薪百万的大有人在。
3.逻辑思维能力
这是作为程序员最基本的要求。逻辑思维能力差的人,完全不适合学编程。当然,对于一般理工科的学生来说,逻辑思维不存在问题。对于文艺青年,喜欢跟着感觉走跳跃思维的人,一般不适合程序员这一条路。
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?
JAVA编程的学习分为:入门、初级、中级、高级、架构几个阶段。
入门
入门所需要的时间较短,几小时、几天即可。重在形成良好的编程习惯、引发足够的兴趣。大学编程课最失败的地方就是一开始就打消了很多人编程的兴趣。编程是最容易引发成就感的事情,完全可以和游戏一样有意思。
入门大家需要掌握的JAVA知识有:JDK的安装和配置、eclipse开发环境的使用、变量、控制语句等基本知识的掌握。
初级
JAVA的初级我们需要学习JAVASE基本知识,这是我们以后工作的基础。在这个阶段,学会使用API、理解面向对象将是初学者首要面对的问题。
JAVASE中需要熟练掌握的有:面向对象、异常、常用类、数组、容器、IO流、多线程、网络编程。这些都需要大家熟练掌握,都是以后工作必须用到的内容。
JAVASE中唯一不会在工作中使用的就是GUI编程,具体就是:AWT/SWING。桌面软件开发是JAVA语言的短腿,很少有企业使用。当然,如果时间充裕,学习一下也无妨,毕竟可以通过SWING做出漂亮的界面。而且,技术都是相通的,对于学习其他GUI技术也有帮助。
中级
中级面临的学习任务比较庞杂,不只学习JAVA,还需要学习其他技术。通常,中级学完就可以参与企业项目的开发了,可以自己做出漂漂亮亮的项目。
我们需要学习三块知识:
1.SQL查询和1-2种数据库(通常是:oracle、mysql)
2.网页技术:HTML5、CSS、JavaScript、Jquery
3.服务器编程JAVAEE:Servlet、JSP、数据库操作技术:JDBC、Tomcat服务器
中级是非常重要的阶段,跨过这个门槛,理论上你就具备了开发项目的能力啦!中级阶段的学习,经常成为很多初学者的拦路虎,毕竟内容太多,一个问题就可能让你郁闷一天。最终,检验你中级是否过关的标准就是“能不能独立完成一个企业项目的模块开发”。想学习交流HashMap,nginx、dubbo、Spring MVC,分布式、高性能高可用、MySQL,redis、jvm、多线程、netty、kafka、的加尉xin(同英):cgmx9880 扩列获取java进阶资料学习,无工作经验不要加哦!
记住:“实战是检验实力的唯一标准”,“没有实战的学习,是假学习;没有实战检验的能力,是假能力”。
高级
高级阶段是大量框架的学习和使用,毕竟这是在企业中实际使用的。目前需要掌握的有:Spring、SpringMVC、Mybatis、Struts2、Hibernate、Maven、shiro、lucene等技术。
这些技术的学习一定要结合具体的项目,不然你的学习会有种无力感。结合时下流行的SSM架构,做几个项目,自然就能把Spring、SpringMVC、Mybatis框架使用熟悉。不做项目的学习是“低效的学习”。
高级阶段表面看来是一些框架技术的学习和使用。对于“有潜力的高手来说”,实际上你会发现这只是“JAVA基础的升华”而已。只是JAVA+算法+设计模式的组合而已,我们深入这些框架底层架构就会发现这一点。当你的学习能意识到这一点的时候,已经达到了非常高的高度。这就是武侠小说里面说的“从无招到有招,再从有招到无招”。
架构
作为JAVA程序员学到高级课程已经完全具备初中级程序员的基本素质,和真正有3年开发经验比的人,你缺的就是经验,技术的广度已经足够。
如果想从程序员更进一步,那就是架构师和总监。这个时候,你必须要有深厚的技术功底、丰富的项目经验、丰富的行业经验。
这些东西可能你们平时在工作中接触过,但是缺少全面系统的学习,希望对正在面试的朋友或是遭遇技术瓶颈的程序员们提供一点思路。
1、开源框架解析专题: 站在巨人肩膀,收获不一样的视野。
2、架构筑基专题: 深入内核、直击故障、拒绝懵圈。
**3、微服务架构专题:**你还不知道微服务,怎么涨薪。
4、高性能架构专题: 成为互联网架构师,你要的都在这里。
5、团队协作开发专题: 让你团队开发效率提高十倍。
6、B2C商城项目实战: 撸起袖子干实事,项目经验那点事。
7、设计模式
以上资料是我结合自己和身边朋友的面试经历而整理的,希望对面试的朋友或者在找工作的程序员们有所帮助。