你真的能在JAVA开发这条路上面一直坚持下去吗?

JAVA为什么有前途?

过去的十多年,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. 英语

对于初级程序员英语要求不高,事实上,高中英语水平足矣。如果想往顶尖技术发展,英语能力有必要提高。毕竟,很多技术源自美国,能熟读原汁原味的英文,将会让你如虎添翼。

个人建议是:英语高中以上够混初中级程序员阶段。想往顶尖混,至少要英语四六级以上。

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服务器

中级是非常重要的阶段,跨过这个门槛,理论上你就具备了开发项目的能力啦!中级阶段的学习,经常成为很多初学者的拦路虎,毕竟内容太多,一个问题就可能让你郁闷一天。 最终,检验你中级是否过关的标准就是“能不能独立完成一个企业项目的模块开发”。

记住:“实战是检验实力的唯一标准”,“没有实战的学习,是假学习;没有实战检验的能力,是假能力”。

高级

高级阶段是大量框架的学习和使用,毕竟这是在企业中实际使用的。目前需要掌握的有:Spring、Spring MVC、Mybatis、Struts2、Hibernate、Maven、shiro、lucene等技术。

这些技术的学习一定要结合具体的项目,不然你的学习会有种无力感。结合时下流行的SSM架构,做几个项目,自然就能把Spring、Spring MVC、Mybatis框架使用熟悉。不做项目的学习是“低效的学习”。

高级阶段表面看来是一些框架技术的学习和使用。对于“有潜力的高手来说”,实际上你会发现这只是“JAVA基础的升华”而已。只是JAVA+算法+设计模式的组合而已,我们深入这些框架底层架构就会发现这一点。 当你的学习能意识到这一点的时候,已经达到了非常高的高度。这就是武侠小说里面说的“从无招到有招,再从有招到无招”。

架构

作为JAVA程序员学到高级课程已经完全具备初中级程序员的基本素质,和真正有3年开发经验比的人,你缺的就是经验,技术的广度已经足够。

如果想从程序员更进一步,那就是架构师和总监。这个时候,你必须要有深厚的技术功底、丰富的项目经验、丰富的行业经验。

从技术上来说,你需要深入学习如下技术:

并发编程、ActiveMQ技术、ZooKeeper、RabbitMq技术、Kafka技术、MongoDB、高性能、高并发、Mysql、Netty通信框架、JVM虚拟机底层优化、Memcached、Redis、Nosql、数据库底层优化、RocketMQ、Dubbo分布式服务、Storm、Kafka、Nginx、FastDFS等。

如果看花眼了,就收藏一下,这是你几年需要学的内容,不是几天。本文只负责指路

从项目经验来说,一般需要3个大型项目经验。这种经验的累积不是一天两天的,罗马不是一天建成的。保持足够的耐心,坚持就能达成。

如果,你能走到架构阶段。基本上算进入JAVA程序员的高端行列。此时的收入应该在50万-100万之间(注意:这是北上广深杭一线城市标准,二线乘以系数0.6,三线乘以系数0.5)。 当然,对于我等普通屌丝来说,也算是完成了逆袭了,过个有房有车的小康生活应该是绰绰有余。

如果,你的情商、市场能力、管理能力到位,此时可以尝试创业当老板了(如果不到位,千万不要尝试,不然会死的很难看)。扎实的技术实力、丰富的行业经验,应能让你实现腾飞。我的很多学生创业成功,年如数百万的N多,时代总是年轻人的时代!

原文发布于微信公众号 - Java架构经验交流分享(gh_7a02b59bd761)

原文发表时间:2019-03-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券