您的位置 首页 java

你真的能在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年开发经验比的人,你缺的就是经验,技术的广度已经足够。

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

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

透彻理解高性能架构的好处和优点

必然性,适应市场需求,能够去找一些更大的平台发展,提升自己的综合技术能力和薪资。

了解从传统架构到分布式架构演变过程所带来的技术变革,将理论和实战相结合,透彻理解分布式架构及其解决方案。

从分布式架构原理,到分布式架构策略,再到分布式架构中间件,最后在加上分布式架构实战,让程序员可以在技术深度和技术广度上得到飞跃的提升,成为互联网行业所需要的T型人才。

性能优化是程序员必定要考虑的。当系统架构变得复杂而庞大之后,性能方面就会下降,一名优秀的架构师,在性能优化上是必定是做的很好的。

所以性能优化专题从JVM底层原理到内存优化再到各个中间件的性能调优,比如Tomcat调优,MySQL调优等,让你洞悉性能本质,全面认识性能优化,不再只是旁观者。

很多人面试阿里失败就败在原理上,只知其一,不是其二,稍微问的深入一点就答不上来了。理解原理就是理解 SSM 框架的灵魂,这也是一个程序员从体力劳动进阶到脑力劳动的门槛。

不理解原理只能做写代码的工具,理解原理才能成为真正的开发工程师。多思考、多总结、多请教,保持好奇心,多问一句是什么、为什么,才能探索到框架的奥秘。

试着去写一个简化版的 spring,实现 IOC 功能,你就会发现真 TM 难。泛型、容器、反射、注解、设计模式、重构等都会用到,通过设计框架,能够深刻地理解这些 Java 特性和框架的设计原理。如果你还没有写过框架,尝试着写一个吧,边做边思考,好好体会下框架的秘密。

一名优秀的架构师必须有适合自己的兵器,也就是工欲善其事必先利其器,不管是小白,还是资深开发,都需要先选择好的工具。工程化专题的学习能帮助你和团队提升开发效率,让自己有更多时间来思考。

Git:可以更好地管理你和你团队的代码。

Maven:可以更好地管理jar包和项目的构建等。

Jenkins:可以更好地持续编译,集成,发布你的项目。

Sonar:一个开源的代码质量分析平台,便于管理代码的质量,可检查出项目代码的漏洞和潜在的逻辑问题(提升代码的质量,更加高效地提升开发效率)。

随着业务的发展,代码量的膨胀和团队成员的增加,传统单体式架构的弊端越来越凸显,严重制约了业务的快速创新和敏捷交付。为了解决传统单体架构面临的挑战,先后演进出了SOA服务化架构、RPC框架、分布式服务框架,最后就是当今非常流行的微服务架构。微服务化架构并非银弹,它的实施本身就会面临很多陷阱和挑战,涉及到设计、开发、测试、部署、运行和运维等各个方面,一旦使用不当,则会导致整个微服务架构改造的效果大打折扣,甚至失败。

并发编程、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多,时代总是年轻人的时代!

针对于上面涉及到的知识点我总结出了有1到5年开发经验的程序员在面试中涉及到的绝大部分架构面试题及答案做成了文档和架构视频资料免费分享给大家(包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术资料),希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习,也可以关注我一下以后会有更多干货分享。

资料获取方式:后台私信“资料”即可

文章来源:智云一二三科技

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

文章地址:https://www.zhihuclub.com/185499.shtml

关于作者: 智云科技

热门文章

网站地图