Java的前景如何,好不好自学?(1)

简介: Java的前景如何,好不好自学?

作为一名拥有十年编程经验的老鸟,我觉得还是很有资格来回答这个问题的,毕竟刚下飞机。


首先来回答,Java 的前景如何?


在我眼里,Java 绝对是世界第一编程语言啊,PHP 表示不服,那也没办法啊,来看 TIOBE 这个编程语言排行榜吧。




上面这幅图是几个热门编程语言(Java、C、Python、JavaScript 等等)近些年来的增长趋势。可以看得出,Java 霸占这份榜单很多年,并且还会持续更久。


这主要得益于以下几点:


1)简单易学,老少咸宜。Java 继承了 C++ 语言面向对象的核心技术,舍弃了容易引起错误的指针,移除了运算符重载和多重继承等难以理解的概念,增加了垃圾回收机制,这些大大简化了程序员的开发成本。


2)跨平台。任何平台只要安装了 JVM(Java 虚拟机),就能运行 Java 程序。真正实现了“Write once, run anywhere”。


3)丰富的类库。全球约有 900 万名 Java 开发人员,创造了一个充满活力和积极进取的 Java 社区,开源类库非常丰富。借助这些类库可以让开发者避免重复造轮子,不用去关注 Java 底层的开发,只关注业务的实现。


4)广泛使用。据估计,全球范围内有超过 30 亿部设备运行 Java,超过其他任何一种语言。Java 被用于众多全球知名的网站中,包括 eBay.com、Linkedin.com、Amazon.com 和 Facebook.com。这一点应该是 Java 屹立不倒的深层次原因吧,大家都在用,才是真的强啊。


5)薪资可观。很多企业都需要 Java 方面的人才,这是一个非常现实的原因,为了生计着想,学习 Java 这个方向不会有错!


接着来回答,好不好自学?


可以肯定地回答,绝逼好自学,尤其是按照下面我给出的这些建议来自学,绝对给力。


建议一:哪些 Java 知识不需要再学了


1)AWT 和 Swing


真不知道为什么,有些书籍还在介绍 AWT 和 Swing,这就好像不知道大清朝早已经亡了几百年一样。已经 9102 了,谁还会用 AWT 和 Swing 去开发桌面应用呢?


就我所知,C++ 程序员会用 MFC,C# 程序员会用 Winform 和 WPF。甚至还可以用一种更时髦的技术(比如 Electron)把 Web 网页裹一层华丽的外衣,变成可执行文件。


2)Applet


作为网页插件技术,Applet 压根就没流行起来,就连曾经的热门 Flash 也要淘汰了。


3)XML


XML 还没有被淘汰,应用的地方还有不少。但是作为一种数据传输格式,它正在被 JSON 替代。


4)JDBC


我个人不建议再学习偏底层的 JDBC 了,尤其是对于时间宝贵的自学程序员来说。与其花这点时间,不如把精力投入到 MyBatis 的学习上。


5)Struts


Struts 是早年一个优秀的 MVC 框架,单从技术的角度来看,还是蛮不错的。但是自从有了 SpringMVC 后,Struts 就被拍死在沙滩上了。


6)Hibernate


在我刚参加工作那会(2010 年的时候),持久层框架用的正是 Hibernate。但时过境迁,Hibernate 太重量级了,学习成本太高,取而代之的是轻量级的 MyBatis(支持定制化 SQL、存储过程以及高级映射)。


7)JSP


说起来惭愧,我现在维护的一个项目,视图层用的依然是 JSP。但如今流行的是“前后端分离”,JSP 就显得不合时宜了。


建议二:有哪些优质的 Java 学习网站


首先,你必须要学会谷歌,这个真的是超级有必要。


2)Stack Overflow


Stack Overflow 可以说是解决问题的杀手锏。下面这些问题是不是都很常见?




如果英语能力不太好的话,可以借助一下 Chrome 浏览器的自动翻译功能。


3)GitHub


GitHub 是一个拥有数十亿行代码的网站,每天有数百万开发者聚集在一起,研究开源软件中存在的问题。


对于普通的程序员来说,如果不想重复造轮子,就必须要站在巨人的肩膀上,那么巨人是谁呢?就是 GitHub。那些牛逼的开源软件库,99% 的情况下会在 GitHub 上找到它。


对于成功的程序员来说,如果想要被别人膜拜,最好能在 GitHub 上贡献一个开源库,如果星标超过 1W,那可是相当的牛逼,在业界应该算是响当当的人物。




然后,我再推荐一些 Java 程序员必须要关注的网站。


4)IBM Developer


IBM developerWorks 提供了中文版,里面的文章都属于非常高质量的。




5)Java SE 技术文档,https://docs.oracle.com/javase/8/docs/api/


即使是 Java 编程的大牛 , 也离不开这份文档。中文版的 API 可以参照:http://tool.oschina.net/apidocs/apidoc?api=jdk-zh


6)Java World


这个网站包含了大量的 Java 教程 , 涉及各种各样的话题。其中很多文章都写的很好 , 并且有图片、插图进行说明。它可以被用来当作深度学习的教科书。英文能力有限的话,可以使用谷歌翻译。




7)Program Creek


Program Creek 在维护方面做的很好 , 文章读起来也比较有趣。在这里 , 你可以找到其他任何网站都不曾涉及到的话题 , 而且几乎每篇文章都包含漂亮的插图或者示例代码。




8)LeetCode


备战技术面试?力扣提供了海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。




刷题的话,还有一个牛客网值得推荐,里面各个公司的面试题和面经分享,找工作前认真刷一刷,一定会大有所获。这里强调一下刷题的重要性:


可以让思维保持活跃

强化对基本知识的理解

要想找到工作,就要过面试,不刷题怎么能行

建议三:有哪些优质的 Java 书籍


第一本,《Head First Java》




在我遇到《Head First Java》之前,如果你要我推荐 Java 技术书,我会毫不犹豫地推荐《Java 编程思想》和《Java 核心技术卷》,因为大家都说好嘛,我只能“同流合污”了(强颜欢笑);但换成是现在的话,我会优先推荐《Head First Java》。


尽管《Head First Java》也非常的厚,至少比我的脸皮后,但趣味性就要甩前面两本好几条街了。这年头,大家都没时间读枯燥的技术书,尤其是厚的。上一张图大家感受一下《Head First Java》的调皮吧。




就冲着这张图,我觉得《Head First Java》的作者就足够的大胆。作者挑选的图片可以说张张经典,真正实现了“图文并茂”的需求,搞得你感觉有点不好意思,仿佛不是在读一本 Java 技术书,而是在读一本《知音》。


不止是图片,还有游戏、拼图、解谜题以及意想不到的内容。真的是一点都不“正经”,正因为如此,阅读起来才感觉兴趣盎然。


相关文章
|
安全 前端开发 JavaScript
Java精品视频全套资源汇总,自学Java人手一套!
发现有很多粉丝是学java的,为了大家能够快速成长,所以我今天精心挑选了一些java相关的视频资源分享给大家,大家一定好好利用起来,这些技术学会之后,进大厂指日可待,加油。
746 0
|
6月前
|
消息中间件 设计模式 分布式计算
大厂招聘重点全在这!GitHub置顶Java基础-高级面试库+自学路线
最近几年经常会听见这样一种声音:“程序员是吃青春饭的,年龄一大就不吃香了”,在当下这种互联网产业增速放缓,甚至隐约展现出疲态的时刻,此类言论就很有市场。
|
8月前
|
前端开发 JavaScript Java
Java自学之路(新手一定要看)
Java自学之路(新手一定要看)
75 0
|
11月前
|
Java
Java 自学 - 接口与继承 接口
Java 自学 - 接口与继承 接口
|
Java 数据挖掘 数据库连接
简单讲一下 python,Java,C++,C#,Go,Ruby 语言的优势和前景
python,Java,C++,C#,Go,Ruby 语言的优势和前景
简单讲一下 python,Java,C++,C#,Go,Ruby 语言的优势和前景
|
XML 前端开发 JavaScript
JAVA最全面的一条自学路线
JAVA路线 🍅 这是一条路线非常清晰的自学java路线,该路线清晰的标明了怎么学,那些是重点,那些东西目前可以不学,为想自学的小伙伴指明了方向
224 0
JAVA最全面的一条自学路线
hadoop3自学入门笔记(3)-java 操作hdfs
hadoop3自学入门笔记(3)-java 操作hdfs
108 0
|
Java
0基础自学java——if语句结构
0基础自学java——if语句结构
102 0
|
机器学习/深度学习 负载均衡 网络协议
SpringCloud+Alibaba微服务教程,Java自学/进阶程序员必看
Spring Cloud是目前市面上最火爆的Java微服务技术栈,因其功能丰富涉及微服务管理全面,并且在高可靠、高可阔以及在应对复杂业务和承受并发的能力上发挥出色,使其受到众多互联网公司的青睐。 很多公司逐步转型到微服务架构风格,所以springcloud是成为进阶Java开发高级工程师的必备技术栈。 本套课程将带你深入学习SpringCloud相关技术,学成之后可以去手动去搭建一个项目,相当可以主导一个项目开发,让你在技术上有一个质的提升。
271 0
|
前端开发 NoSQL Java
自学Java半年多,我掌握了这些技术!!!
自学Java半年多,我掌握了这些技术!!!
自学Java半年多,我掌握了这些技术!!!