当前位置: 首页 > news >正文

C++和Java该如何进行选择?

曾经的自己与许多C++程序员都有着一样的盲目自信:认为掌握了C++,在去学习Java上手会容易很多。

到底是谁给了你这种勇气和自信?

很多人经常会说,Java这种通过虚拟机运行的语言,虚拟机本身就是C++开发的,根本就没有什么难度。

大家都知道TCP是位于IP协议之上的,但你没有听说过学了IP协议,在去学习TCP协议上手就很容易。

能够说出这种话的,无非就是他们认为做Java开发,就只需要学习Java语言就够了。

C++程序员需要折腾的有:C/C++、内存、网络编程、指针、进程、堆和栈、Debug、编译、链接、汇编、操作系统等等。所以你想要学好C++,必须要与操作系统的运行机制相结合,只有这样的学习,你才能够将C++学懂、学得更加通透,才能学以致用和投入生产。

Java程序员需要折腾的有:Java、Spring/SpringBoot/SpringMVC、JVM、Mybits、K8S、Netty、Dubbo、Docker、Jetty、微服务等等。

你会发现这就是两个维度,跟你想的完全不一样。

Java偏向于业务和软件架构编程,C++更偏向于计算机系统编程,或许它们之间有知识重叠区域,但绝对也不是你认为的学了一个,另一个学起来就很容易,这就是典型的在技术方向上的轻视和傲慢。

但是,学习了C++,在去学习Java会有优势吗?

毫无疑问,肯定会有优势,毕竟自己干了这么多年的C++,后来在去学习Java是有深刻体会。

你拥有C++编程经验,你对进程和线程、内存管理、同步和异步、操作系统等知识是非常了解;在学习Java时,你是站在全局的角度去研究Java语言背后的原理,与你直接学习Java相比,你比其他人学得更快、理解的更加透彻。

但如果你想要走Java这条道路,学习完Java语言,仅仅只是迈出了一步而已,大家口中的容易也仅限于此。

C++和Java的路线是完全不一样,与其纠结学那种语言,不如问问自己,是喜欢面向业务编程?还是面向计算机系统编程?

作为一个过来人,我给你的建议:

  1. 如果你是一名学生或空闲时间较多,你应该多学习C++,毕竟C++在程序员中被称之为九阳神功是有道理的。但这并不意味着学习C++很难,而是学习C++是要讲究背后一系列的原理知识,你学好了C++,这些背后的原理也就掌握了,之后在去学习其它编程语言就会轻松许多。
  2. 如果你着急找工作,或在编程方面兴趣不大,只为了混口饭吃,那你优先选择Java。将Java的八股文烂记于心,如果运气好,也可以找到一份好的工作。


http://www.mrgr.cn/news/59811.html

相关文章:

  • Android Kotlin 高阶函数详解及其在协程中的应用
  • WebSocket简单使用
  • 腾讯云视频文件上传云存储时自动将mp4格式转码成m3u8
  • MySQL8.0.40编译安装
  • 基本Linux命令
  • Java-图书管理系统
  • C++中获取硬盘ID的方法
  • 鸿蒙文本组件高级特性——富文本属性字符串
  • Python记录-字典
  • 设计模式(二)
  • ROM修改进阶教程------简单通过指令来修改系统安全设置中选项的的开启或者关闭 内置指令在rom中的应用
  • 从零实现数据结构:一文搞定所有排序!(下集)
  • 网络文件系统nfs实验1
  • 基于neo4j关系图谱的协同过滤科研推荐系统
  • 工具方法 - Omnifocus: 网页版基本操作
  • 软考:软件建模的抽象级别
  • 解读AVL树:平衡二叉搜索树的奥秘
  • hdlbits系列verilog解答(DFF8-8位D触发器)-81
  • android openGL ES详解——缓冲区VBO/VAO/EBO/FBO/离屏渲染
  • 高速大容量还自带原厂数据恢复服务,希捷睿翼4TB移动硬盘评测
  • Python酷库之旅-第三方库Pandas(170)
  • css-画一个三角形
  • JavaFx -- chapter05(多用户服务器)
  • 基于Python的B站视频数据分析与可视化
  • 什么是环境变量?如何安装JAVA环境变量,实现命令行(cmd)执行java命令?win11、win10、win7一篇文章带你全部解决!包教包会!
  • 【论文笔记】Perceiver: General Perception with Iterative Attention