前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >送命题,选 C++ 还是 Java?

送命题,选 C++ 还是 Java?

作者头像
程序员鱼皮
发布2021-05-20 15:02:26
3.9K0
发布2021-05-20 15:02:26
举报
文章被收录于专栏:鱼皮客栈鱼皮客栈

如果一定要二选一,你会选哪个?

大家好,我是鱼皮,前段时间看见一个问题:想学编程,是选 C++ 还是 Java?

看到这里,我直接脱口而出:小孩子才做选择, 我全都要!

但毕竟时间有限,如果我们无法同时深入学习两门编程语言,必须二选一,你会选 C++ 还是 Java 呢?

这真是一道送命题啊,不过还好题目不是选 PHP 还是 Java。。。

下面我聊聊自己的看法。

我的看法

首先,明确一点,C++ 和 Java 都是非常优秀的主流编程语言,编程语言和技术没有绝对的优劣之分,只不过在不同的场景下,有更优的选择。而且,像很多大神说的一样,语言只是工具,编程思想才是核心。不过,选择好的工具也是至关重要的,好的抓手才能带来更大的赋能。

读者:鱼皮,你能不能说人话?

好吧我错了,拽词上头。

如果大家身在校园、且时间充裕,建议先学 C 语言或 C++ 打基础,这也是大部分计算机专业学生在高校内学到的第一门编程语言,相对底层,能帮助你接触到更多计算机的概念,比如系统、网络等,从而为学习其他的高级语言做铺垫。

但最终你是要找工作赚钱的,因此我可以斩钉截铁地说,选 Java

我自己本科是计算机专业,如上所说,刚上大学时学的课程就是 C 语言和 C++,但是后来我果断转战 Java 了,坚定地朝着 Java 的方向深入学习,最终也拿到了腾讯等大厂的 offer。

很幸运的是,目前在腾讯做应用开发,使用的主后端语言正是 Java!没错,并不是说腾讯只招 C++!

那下面我会结合亲身经历,从以下几个方面来谈谈我选择 Java 的理由:

  • 市场需求
  • 语言特性
  • 语言生态
  • 应用场景
  • 学习成本
市场需求

在国内,Java 软件工程师的需求量非常大,就业机会多,薪资高,前景非常好!

这和近年来中国在移动互联网这块发展迅猛有很大的关系。如今创业成本降低,越来越多的创业公司和中小型企业加入市场,因此对于网站、安卓 APP 等应用开发的需求变大。而 Java 作为国内企业开发的首选语言,自然更受欢迎,优秀的 Java 工程师的薪水也是非常诱人的!因此,我们要思考如何成为优质的 Java 开发者,而不是只会 CRUD(增删改查)的工具人。

Java 在 TIOBE 编程语言排行也是非常高的!

编程语言平均排名表

我曾经也想过做一名 C++ 程序员,但是后来查阅了网上的一些招聘数据,发现如今互联网公司在后台开发方面招的 Java 程序员明显更多一些。虽然大公司也会招很多 C++ 程序员,但整体来看,Java 会有更多的就业机会。这一点,相信大家按照平时看到的培训机构课程数和广告数就能看出来了。

那为什么 Java 的市场需求如此之大呢?请接着往下看。

语言特性

Java 作为一门高级程序设计语言,拥有非常多的优秀特性,比如面向对象、简单性、分布性、解释性、健壮性、可移植性、高性能、多线程、安全性、动态性。当然,C++ 作为较底层的编程语言,也有众多优秀的特性,比如高性能、灵活等,但是在很多方面,Java 和 C++ 存在一定区别,使得 Java 更适合作为开发企业项目的首选语言。

  1. 简单性:Java 语言在继承了众多 C++ 语言的优点的同时,移除了 C++ 中学习成本高、易出错的指针、多重继承等概念,并且通过接口机制减少了类间关系的复杂度,学习成本更低。此外,Java 的语法结构和 API 也相对更简单、更丰富,使用更方便、开发效率更高。
  2. 可移植性:跨平台可以说是 Java 最大的优点,Java 通过虚拟机执行,并不依赖固定的平台,使用 Java 开发的应用程序可以运行到任何操作系统,这对于企业中复杂多变的需求和架构场景尤为重要,一定程度上降低了开发和维护成本。
  3. 健壮性:Java 语言的设计使得用它来编写高可靠软件变得相当容易,很多银行的电子交易系统、知名公司的大型电商系统、秒杀系统都是使用 Java 语言开发的。
  4. 安全性:这里不是说使用 Java 就能比 C++ 更安全,而是因为 Java 自带的一些机制(比如垃圾回收)以及限制,使得很多由于程序设计不合理导致的问题能够被规避。

虽然 C++ 的性能通常是比 Java 高的,但在大多数企业业务开发中,这些性能的提升对应用来说是微不足道的,当然,底层和基础架构另当别论。

我在学习一段时间的 C++ 后,主动自学了 Java。刚开始学习 Java 时,就被它更简单的语法深深吸引了。不需要自己去管理内存在应用开发中实在太爽太方便了,能够大大提升开发效率!

语言生态

由于 Java 具有的优秀特性、易上手、学习成本低等原因,使得 Java 的发展非常迅速,尤其是 Spring 等知名开发框架的崛起,进一步降低了企业应用的开发成本。

在国内,越来越多开发者选择 Java,也因此涌现了很多 Java 技术交流社区,很多的问题都可以通过百度和社区询问来解决。而阿里巴巴作为国内超一流互联网公司,也选择了 Java 作为主要的后端领域编程语言,进一步推动了 Java 在国内的发展。

阿里的开源 Java 项目

应用场景

Java 语言的优秀特性和繁荣生态,使得其非常适合企业级 Web 项目开发,在大数据分析处理、微服务、云计算、移动开发等领域也都处于领先地位。此外,Java 语言和 C++ 语言一样,也是可以应用到图像处理、桌面应用开发、分布式系统开发、嵌入式等近乎所有场景的。

学习成本

Java 的学习难度相对于 C++,以及其他的编程语言来说,算是很低的了。虽然 C++ 更底层、性能也很高,但是正因如此,涉及的系统层面的知识以及需要学习的概念也会更多,比如指针、内存管理、进程管理等,尤其是指针,对新手而言简直是噩梦!而学习 Java 时,你不需要自主管理内存,降低了很多出现 bug 的概率,即使没有对操作系统有深入的了解,也能写出比较健壮的程序。

当然,这并不意味着你不需要学习操作系统、指针等底层知识,但如果时间有限,当你能够熟练开发 Java 应用后,再来补课也为时未晚。

由于 Java 语言自身的优秀特性,再加上巨大的市场需求,使得学习 Java 的同学也非常多,促使越来越多的培训机构盯上了这块大蛋糕,像黑马、尚硅谷等等。因此,现在网上的 Java 教程非常非常多,关键还有超级多免费的优质学习资源。随便去 B 站一搜,就能找到一大堆。

我的 Java 就是利用网上的资源完全自学的。先跟着网上的视频教程或文档,看一节敲一节,上手是比较轻松的。然后通过看《Java 核心技术卷 I》打实基础,再学习 SSM、SpringBoot 等框架来开发企业级项目,学习过程中多跟着视频敲代码、发挥想象做一些自己想做的项目,帮助我顺利找到了实习。再学习 SpringCloud 微服务框架以及 Redis、Zookeeper 等中间件,学会设计技术架构,用技术解决实际问题。在找工作前,再深入学习多线程高并发编程以及 JVM 底层原理,最终帮助我拿到了大厂 offer。


大家主要学习哪门编程语言呢?对不同编程语言的学习有什么看法呢?欢迎评论区分享吧~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-05-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员鱼皮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 我的看法
    • 市场需求
      • 语言特性
        • 语言生态
          • 应用场景
            • 学习成本
            相关产品与服务
            云数据库 Redis
            腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档