学C++还是学Java?做软件研发还需掌握哪些知识和技能?

目录

1、是学C++好呢?还是学Java更有前途?

1.1、Java和C++都很有前途

1.2、Java的应用领域与使用场景

1.3、C++的应用领域与使用场景

1.4、如何选择

2、需要掌握的知识和技能

2.1、掌握一些基础的网络知识

2.2、熟悉一些常用的SQL语句

2.3、了解Linux系统,掌握常用的Linux命令

2.4、学习汇编语言相关的内容

2.5、学习一些其他的专业课程

3、最后


        最近和一些高校的学生朋友交流,他们打算毕业后从事软件研发的工作,但目前有些困惑和迷茫,他们不太确定今后的学习方向,他们想了解一下软件研发的一些领域的现状及发展前景,想知道应聘软件研发岗位要掌握哪些具体的知识和技能。今天我们就来讲一下从事软件研发工作需要学习哪些主要内容,需要做好哪些方面的技能储备,给高校同学们和中途转行的朋友们提供一个参考。(C/C++学习路线的B站视频教程已上线,具体信息见本文的评论区!!!

VC++常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)icon-default.png?t=N7T8https://blog.csdn.net/chenlycly/article/details/124272585C++软件异常排查从入门到精通系列教程(专栏文章列表,欢迎订阅,持续更新...)icon-default.png?t=N7T8https://blog.csdn.net/chenlycly/article/details/125529931C++软件分析工具案例集锦(专栏文章,持续更新中...)icon-default.png?t=N7T8https://blog.csdn.net/chenlycly/article/details/131405795C/C++基础与进阶(专栏文章,持续更新中...)icon-default.png?t=N7T8https://blog.csdn.net/chenlycly/category_11931267.html

1、是学C++好呢?还是学Java更有前途?

ff8cac4a91b24d579a4a03f8d55e2618.png

       这是一个很经典的话题,相信很多人都有这个疑问,很多人都谈论过。众所周知,Java和C++是两门主流的热门开发语言,一直名列世界编程语言排行榜的前几位。在TIOBE2022年5月最新的世界编程语言排行榜中,C++和Java依然稳定在前几位,如下所示:

b2498afcf6444736b1b7a57f79067776.png

不管是从世界范围来看,还是从国内来看,Java和C++的受欢迎程度都名列前茅,所以毋庸置疑,选择这两种开发语言中的任何一种,都很有前途。

       此外,从上图的排行榜中我们可以看到,Python和C依然高居前两位。从我们了解到的实际工作中的情况来看,Python作为全球首屈一指的脚本语言,已经达到无所不能的境界,但Python依然是作为工具来使用,主要来编写一些工具和脚本;C主要用于底层的开发,比如用于Linux操作系统和底层驱动程序的开发,做C开发的门槛要稍微高一些。

1.1、Java和C++都很有前途

       从我们实际工作中接触到的内容以及多年积累起来的认知来看,Java和C++都比较有前途,都有着很好的就业情景,具体选哪一种语言作为自己的主攻方向,需要在了解这两种语言的应用领域和使用场景之后结合个人的兴趣去做选择。

d222f3cd84654ac68b47af7a439d630a.png

        一个完备的大型软件系统,从前端到后台,几乎都离不开Java和C++。比如安卓客户端APP和后端的Web服务器是用Java开发的,Windows客户端程序和后台的很多业务服务器是用C++实现的。此外,Java还是大数据、云计算、云原生(微服务)的主流开发语言。

       我们日常生活中使用的各种手机APP,在安卓手机上的,都是Java开发的。我们PC机上常用的QQ、桌面版微信、腾讯会议、企业微信、飞书、钉钉、阿里旺旺客户端、Chrome浏览器等Windows客户端软件都是用C++开发实现的。所以,无论是选择C++还是Java,肯定都是有用武之地的。

1.2、Java的应用领域与使用场景

       随着近些年移动互联网的迅猛发展,移动APP已经成为各个IT厂商争夺市场的主战场之一,这给作为安卓APP开发语言的Java带来了新的生机和活力。目前,Java也是大型web系统处理后台web业务的首选语言,像淘宝和京东这些大型电商系统的web服务器都是用Java实现的。

82cfa19577d14a78893b041b4650cffa.png

       常用的Hadoop、Spark、OpenStack等大数据与云计算开源框架,都是用Java开发的,所以在大数据与云计算领域Java有着天然的优势,Java已经成为大数据开发人员最喜欢的开发语言之一。近年来涌现出来的云原生、微服务等新兴技术与框架,也都是Java的主战场。

       Java运行于虚拟机之上,有着特有的跨平台特性,Java中有完善的异常处理机制。作为C++开发人员的我们(我本人是做C++开发的),有时真的很羡慕Java如此完善的异常处理机制,一旦程序中发生异常,Java就会抛出异常,这些异常的提示信息会输出到运行日志中,通过这些输出的信息就能知道是什么异常,快速地定位到有问题的代码。此外,Java有着近乎完美的封装(封装了很多常用的功能类,以Jar包的方式提供),以及多种成熟的Java框架(比如Hibernate、MyBatis、SpringMVC、SpringBoot、SpringCloud微服务框架等)

ea00b6d069a348b793989fe5d5de4718.png

       此外,大数据与云计算领域中的Hadoop、Spark、OpenStack等框架也都是Java实现的。特别是在大数据、云计算和云原生领域,Java的新技术和新框架更新的很快,Java始终站在技术的最前沿,这是Java最吸引人、最有魅力的地方。所以,Java绝对是很值得学习、很有前途的主流开发语言。

       相对于C++,Java有着更完善的内存管理机制,有别于C++中复杂的指针操作,Java的学习门槛要稍微低一点,这也是很多人选择Java的一个重要原因。从现在在校学生选择现状来看,确实大部分人都选择了Java,选择C++的同学相对要少不少。这也导致了一些问题,比如我们在招聘C++开发时应聘的人明显比几年前少了,比Java开发人员难招了许多。

1.3、C++的应用领域与使用场景

       C++语言不仅能开发PC端的客户端程序,还可以开发服务器程序,后台的很多业务服务器出于性能和效率的考虑,都需要使用C++来开发。C++也有着良好开源生态,有各种功能的开源库可供选择,但在软件框架这块,C++要比Java要逊色一些,Java有很多成熟通用的框架可以使用。

f7d3317c2a724d41b8633a953f090122.png

       Java语言是一种运行于虚拟机上的一种解释性语言,正是通过虚拟机实现了跨平台的特性,开发出来的程序可以运行不同的操作系统上,但同时因为Java是一种解释性语言,边解释边运行,其运行效率上,和C++相比要差一些。C/C++的运行效率是最接近汇编语言的,所以在服务器侧,执行各种高效率代码或算法的业务都会选择更高效的C++。现在PC端的客户端程序基本都是用C++或者其他语言开发的(比如C#等),基本不用Java来开发客户端程序了。在人工智能、机器学习、计算机视觉与图像识别、自动驾驶等新兴技术领域,对运行性能有着很高的要求,都会首选效率更高的C++来开发。有朋友可能会问,这些领域能不能使用python去实现呢?答案是否定的,因为Python的运行效率在这些场景下达不到要求。

       所以在当前各种大型系统中,从前端到后台,都有C++语言的大片用武之地。所以,C++也是一种很有用途、很有市场的主流开发语言。

1.4、如何选择

       其实对于一个大型的系统,后台的服务器或模块,有部分是用Java开发的,有部分是用C++实现的,两种语言交织在一起,彼此没有明确的界限,它们相互通信,相互配合。

       最终选择哪门开发语言作为自己的主攻方向,要看对语言本身的兴趣,也要看对语言所侧重的技术领域的兴趣,需要综合考虑一下。此外,在大学学习期间我们去主攻一门语言,但找工作时拿到的是另一门语言的开发岗位,或者是校招时以A语言应聘进来的,但进入公司后可能因为人员变动会把你调到另一个项目组做B语言开发的岗位上。这些情况我们在公司都见到过,比如去年有个以Java开发岗位应聘进来的同学,到公司后因为我们C++项目组缺人,就调到我们这边来搞C++了。

这位同学在校期间一直学习Java,甚至参加了一些Java的开发项目,在Java开发方面积累了一定的经验,刚开始学C++感觉很不适应,但熬过了最开始那段最难熬的时间后,也逐渐适应了,做的也越来越好了。语音是想通的,学会一门开发语言,再去学另一门语言就不会那么难了!


       在这里,给大家重点推荐一下我的几个热门畅销专栏,欢迎订阅:(博客主页还有其他专栏,可以去查看)

专栏1:(该精品技术专栏的订阅量已达到430多个,专栏中包含大量项目实战分析案例,有很强的实战参考价值,广受好评!专栏文章持续更新中,预计更新到200篇以上!欢迎订阅!)

  • 154
    点赞
  • 232
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 116
    评论
评论 116
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dvlinker

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值