后台选择Java还是C++的理解
今天看到一个热帖,禁不住发个文章谈谈我的看法,没有要争个对错的意思,只是想根据我的经历谈谈我看到的情况。
为什么在已经确定学后台的情况下,并且为了快速找工作,建议学 Java 而不是 C++,甚至完全不建议先学 Python 和 Golang。
完全不建议先学 Python 和 Golang
首先说下为什么完全不建议先学 Python 和 Golang,很简单:大部分面试官基本不面试这两门语言!去面试的时候基本就是 Java 和 C++二选一,这样做也是有原因的:
- Python 第一是动态解释语言,第二数据结构等细节被封装的太好了,所以真没什么好面试的。
- Golang 面的少原因是由于这门语言的发明本来就是被很多公司用来替代 C++写业务的,也就是说既然能面 C++何必面 Golang?
为什么建议学 Java 而不是 C++
然后说下建议学 Java 而不是 C++的原因:
0、首先给个语言定位,下面很多的问题都可以解释了
- Java 适合写 Web 开发业务逻辑、可以做大数据、生态和中间件相当的丰富
- C++适合写偏底层的实现,比如操作系统、存储、网络等,而 Web 开发业务等现在通常使用 Golang 来替代
1、C++岗位确实比 Java 少。不能光看大厂,还有数以千万计的小公司,少的原因很简单,大部分公司都是写业务逻辑的,没有几个需要自己开发底层工具库的,写业务 Golang 也很合适,但是 Golang 兴起在这几年的时间,大部分公司用 Java 好好地不会换技术选型的,尤其像是银行这种
2、从语法层面上来说,Java 比 C++容易入手。Java 不用管垃圾回收、不用管多继承,这些对新人来说很友好
3、从项目层面上来说,Java 比 C++容易入手。掌握技术最快的方式就是做项目,C++可以写编译原理、可以写操作系统、可以做底层存储,可是让一个刚接触计算机的开发人员来说,做这些第一时间维度太长、第二难度太大,而 web 开发一类的电商系统、管理系统这些恰恰是 Java 擅长的,所以 Java 的可选项目范围大大超过 C++
我身边的人
先说我自己,并不是因为我现在的工作是 Java 所以我就推荐 Java,几乎大部分流行的语言我都用过,所以我不是没有根据的偏向 Java。我的开源项目几乎都是 JavaScript 写的,本科的毕业设计是数据库测试相关的用 C++和 C#写的,研究生的毕业设计做的区块链相关领域使用了 Golang 和 Python。
所以从语言上来说,其实没什么好挑的,需要什么学什么,上面讨论的 Java 和 C++只是为了快速找工作的语言选择问题,长期来看都应该学
我介绍几位我研究生阶段的做后台的同学情况:
- A 同学工作语言为 C++,之前在实验室做云计算存储
- B 同学工作语言为 C++,之前在实验室做云计算网络
- C 同学工作语言为 Java,之前在实验室也是写 C++,做并行计算
- D 同学工作语言为 Golang,之前在实验室用 Java 做 Web 开发
基本能够反映出来我说的选择 Java 还是 C++的原因,欢迎大家多交流
#Java##C/C++#