对于程序员初学者,或者稍微了解互联网行业的人,这几年最频繁地听到的两种编程语言就是 Python 与 Java 。
如果你问一名 Java 程序员,肯定会建议你先学 Java,因为他们认为Python像个乳臭未干的黄毛小子;但如果你问 Python 程序员,可能会得到一个完全相反的答案,他们认为 Java 是刻板啰嗦的老大爷,而人生苦短,我用 Python 。
所以,如果你是纠结于选 Python 还是 Java,说实话,我很难给一个明确的答案,但如果问的是,对于一般人是学 Python 好找工作还是学 Java 好找工作,我的回答很明确:Java !
首先我们分析对比一下这两种编程语言,先从下面几方面来讨论。
1、 Python、Java 都是干什么的?
2、Python、Java 的薪资待遇如何?
先说说 Python。Python是一门拥有简洁语法的高级编程语言。一个名为Guido van Rossum的荷兰大佬在1991年设计了它。
设计这门语言的初衷,就是为了让代码读起来更轻松,并且让程序员们比起用其他语言,可以写更少的代码,事半功倍。
所以,从语言本身来说,Python是出了名的简洁,容易上手,对于绝大部分工作了几年的程序员来说,花几天时间学习一下 Python,然后用 Python 来写写脚本公式化的辅助工作,提高工作效率,并不是一件难事。
近些年来,Python 最火热的应用在人工智能和数据分析这两个方向,得益于 Python 众多的高效率的第三方安装包,机器学习、深度学习、神经网络等高端领域都可以很好方便的使用 Python 来处理。
再来聊聊 Java。
Java 是一个典型化的编程语言,极好地实现了面向对象的理论,凭借着简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 ,允许程序员以优雅的思维方式进行复杂的编程。
Java 拥有最大的市场需求,属于常青树。大型网站的后端,比如电子商务交易平台阿里巴巴,淘宝,京东也都主要使用 Java 开发。
大型的企业级应用比如大型企业管理系统,CRM系统,ERP系统也可以用Java开发。
有关通信及网络的大型企业,比如移动、联通、电信、网通,有关金融行的大型企业,所有的银行、证券公司、互联网金融和大型管理系统,比如供应链,客户管理系统,物流系统主要的信息化都和Java息息相关。
不夸张的说,学 Java,你总能找到合适的工作岗位!
下图为 1988-2020年各大编程语言排行榜,可以看到 Java 语言都排在前几位。
这个应该是大部分人最关心的一点,根据拉勾招聘网的数据来看,Python 与 Java 开发人员收入之间没有明显的差异,低至几千,高至几万,都是有的。
但值得注意的一点是,Python 高工资的往往属于人工智能、大数据相关的岗位,而很多公司对人工智能的岗位要求是研究生起步。。。
所以回到开头说的,为什么我建议一般人去学 Java,虽然 Python 学起来并不比 Java 难多少,招聘要求摆在这,如果想要获取 Python 的高薪资,往往还得提升自己的学历。
Java 对于学历基础倒是没有太多的要求,毕竟岗位多,并且 Java 程序员的技术生涯提升也是很友好的,先初级,再高级,再架构,一步步提升。
所以,如果你是非计算机专业想转行当程序员的话,我是建议转 Java,因为,对于一般人(非科班程序员)来说,转 Python 有种不成功便成仁的样子,容易饿死在半路上。
最后,补充一下大家可能最关心的问题—— 我想学 Java,那 Java 如何从入门到就业呢?
关于 Java 的学习,互联网上有挺多的资料,但都比较零散,不成体系。
因为初学者是不了解 Java,也不了解行业需求的,Java 虽然说是一门编程语言,在不同的场景下,需要编译的内容,以及采用的逻辑也是不同的。
而且技术有新旧,每年都会有一些新的编码规则诞生,这样生硬的学习,最后往往出现,看了大半年,却发现这些内容过时,或者工作中用不到的现象。
但对初学者来说,他们不知道到底什么是自己今后工作中用得上的,需要学的,即便耗费了大量的时间与精力与收集整理,后面却没有时间,也没有动力去看了。
在这里也为大家准备了一份的学习线路,你能在公众号:【老黑说java】每天分享关于SSM、Spring全家桶、 微服务、MySQL、MyCat、 集群、分布式、中间件、LinUX、网络、多线程,偶尔讲点运维Jenkins、NexuS、Docker、ELK
那么多技术知识,我们到底要学习什么呢?既然选择Java为主要的技术路线,那么我们肯定首先需要学习Java相关的编程语言语法,Java程序是跑在计算机服务器上的,那么我们肯定需要熟悉计算机的体系结构,为了提升开发效率,一些重复的开发动作框架都帮我们做掉了,所以我们需要学习开发框架,为了提升我们的编程水平,我们需要通过设计模式模块化我们的代码,提升代码的扩展性。为了实现系统的高性能以及解耦,我们需要使用各种中间件。生产上会遇到各种问题,所以我们得培养问题排查能力。诸如此类,总之这些都是和我们实际工作息息相关,这些都在促使我们成为一个合格的Java工程师。