如果必须从两者中选择一个,您会选择哪一个?
大家好,我是Yupi,前段时间看到一个问题:如果我想学编程,应该选择C++还是Java?
看到这里,我脱口而出:只有小孩子才会做选择,我全都要!
但时间毕竟有限,如果我们不能同时深入学习两门编程语言,而必须在两者之间选择其一,你会选择C++还是Java?
这真是一个致命的问题,不过幸好这个问题不是选择PHP还是Java。。。
下面让我分享一下我的想法。
我的观点
首先要明确一点,C++和Java都是非常优秀的主流编程语言。编程语言和技术并没有绝对的优劣之分,只是在不同场景下有更好的选择。而且正如很多专家所说,语言只是工具,编程思想才是核心。不过,选择好的工具也至关重要,好的抓手才能带来更大的赋能。
读者:Yupi,你会说人类的语言吗?
好吧,我错了,我只是夸大了。
如果你在校园,时间充裕,建议先学 C 或者 C++ 打基础。这也是大部分计算机系学生在大学里学习的第一门编程语言。它比较基础,可以让你接触更多的计算机概念,比如系统、网络等,从而为学习其他高级语言打下基础。
但最终你还是要找一份工作来赚钱,所以我可以绝对肯定地说,选择 Java!
我本科的专业是计算机,上面说过刚进大学时学的课程是C语言和C++,但后来果断转了Java,并且坚定的朝着Java方向学习,最终也进入了腾讯等大公司就职。
幸好腾讯应用开发的主要后端语言就是Java!没错,腾讯不只招C++!
现在我会结合我的个人经历从以下几个方面谈谈我选择Java的原因:
市场需求
在中国,Java软件工程师的需求量很大,工作机会多,薪资高,前景非常好!
这跟近年来中国移动互联网的快速发展有很大关系。如今创业成本下降,越来越多的创业公司和中小企业加入市场,因此网站、 app等应用开发的需求量也随之增加。Java作为国内企业开发的首选语言,自然是更加受欢迎,优秀的Java工程师的薪资也非常诱人!因此,我们要思考如何成为一名高素质的Java开发人员,而不是只知道CRUD(创建、删除、修改、查询)的工具人。
Java在编程语言排名中也很高!
编程语言平均排名
我曾经想过做一名 C++ 程序员,但后来在网上查了一些招聘数据,发现现在互联网公司招聘后端开发的 Java 程序员更多。虽然大公司也招聘很多 C++ 程序员,但总体来说,Java 的就业机会更多。相信大家从培训机构看到的课程数量和广告数量就可以看出这一点。

那么,为什么Java的市场需求如此巨大呢?请继续阅读。
语言功能
Java 作为一种高级编程语言,具有面向对象、简单、分布式、可解释、健壮、可移植、高性能、多线程、安全、动态等诸多优秀特性。当然,C++ 作为一种低级编程语言,也具有高性能、灵活性等诸多优秀特性,但在很多方面,Java 与 C++ 都存在一定差异,使得 Java 更适合作为开发企业项目的首选语言。
简单性:Java语言继承了C++语言的诸多优点,同时去除了C++中学习成本高且容易出错的指针、多重继承等概念,并通过接口机制降低了类与类之间关系的复杂度,使得学习成本更低。另外,Java的语法结构和API相对更加简单、丰富,使用起来更加简单,开发效率更高。 可移植性:跨平台可以说是Java最大的优势,Java通过虚拟机执行,不依赖于固定的平台,使用Java开发的应用程序可以运行在任何操作系统上,这对于企业中复杂多变的需求和架构场景尤为重要,在一定程度上降低了开发和维护成本。 健壮性:Java语言的设计使得使用它编写高可靠性的软件相当容易,很多银行的电子交易系统、知名公司的大型电商系统、秒杀系统等都是使用Java语言开发的。 安全性:这并不是说使用Java比C++更安全,而是由于Java自带的一些机制(比如垃圾收集)和限制,可以避免很多由于程序设计不合理而引起的问题。
虽然C++通常比Java有更高的性能,但在大多数企业业务开发中,这些性能的提升对于应用程序来说可以忽略不计。当然底层和基础设施又是另外一回事。
在学了一段时间C++之后,我主动自学了Java,刚开始学Java的时候就被它比较简单的语法深深吸引,在应用开发中非常酷而且方便,不需要自己去管理内存,可以大大提高开发效率!
语言生态学
Java由于其特性优秀、使用简单、学习成本低等特点,发展十分迅速,尤其是知名开发框架的兴起,进一步降低了企业应用的开发成本。
在中国,选择Java的开发者越来越多,也涌现出不少Java技术交流社区,很多问题都可以通过百度、社区查询得到解决。阿里巴巴作为国内顶尖的互联网公司,也选择了Java作为主要的后端编程语言,进一步推动了Java在中国的发展。
阿里巴巴的开源 Java 项目
应用场景
Java的优秀特性和繁荣的生态系统使得它非常适合企业级Web项目开发,同时在大数据分析处理、微服务、云计算、移动开发等领域也处于领先地位。此外,Java和C++一样,可以应用于图像处理、桌面应用开发、分布式系统开发、嵌入式系统等几乎所有场景。
学习费用
相比 C++ 等编程语言,Java 相对容易学习。虽然 C++ 更底层,性能更高,但需要学习更多系统级的知识和概念,例如指针、内存管理、进程管理等。尤其是指针,对于新手来说简直就是噩梦!学习 Java 时,不需要自己管理内存,减少了出现 bug 的概率。即使对操作系统没有很深入的了解,也能写出比较健壮的程序。
当然这并不是说你不需要学习操作系统、指针等底层知识,只是如果时间有限的话,等到能够熟练开发Java应用之后再去弥补也不迟。
由于Java语言本身的优秀特性以及巨大的市场需求,很多学生都在学习Java,这促使越来越多的培训机构把目光瞄准了这块大蛋糕,比如黑马、尚硅谷等。因此现在网上有很多Java教程,关键是免费的优质学习资源也很多,随便上B站就能找到一大堆。
我完全是自学 Java,利用网上的资源,跟着网上的视频教程或者文档,一节一节的看,一节一节的敲,入门很轻松。然后通过看《Java 核心技术卷一》打下扎实的基础,之后学习了 SSM 等框架,开发企业级项目。学习过程中,跟着视频敲代码,发挥想象力做一些自己想做的项目,让我顺利的找到了实习。之后学习了微服务框架、中间件等,学会了设计技术架构,用技术解决实际问题。找工作之前,深入学习了多线程高并发编程和 JVM 底层原理,最终帮助我进入了一家大公司。
你主要学习哪种编程语言?你对学习不同编程语言有什么看法?欢迎在评论区分享~