我先说下我从毕业后的工作内容吧

  • 用C++基于opencv做工业视觉算法,大约搞了一年半时间
  • 用C去写分布式存储,大约3年吧
  • 用C基于redis增加功能,几个月时间吧
  • 使用java、go、shell、python改过项目的bug,项目技术栈实在是太多

当然,除了前面提到的C/C++、go、java,还用到了tcl、shell、python。也就是说,除了题主说的rust外,其他都在项目中用过。

对此,我对题主的建议是这样的,优先级从高到低:

  1. C语言: 毫不客气的说,咱们现在的几乎所有计算机技术,都和C语言有关系;只要你写C程序,就会逼着你代码不能写的太差,只要代码写差了,崩溃问题、越界问题、内存泄漏、性能问题还有各种代码Review意见跑过来。C在我这里主要作用有两个:a) 提升代码功底,逼着你怎么写高质量代码、逼着你认认真真打日志、逼着你怎么代码Review;b) 定位分析各种诡异问题,比如操作系统、开源组件非预期现象。
  2. java/go:每个人都是要吃饭的,项目当中可能会要求java或者go,所以得会;
  3. shell:很多人瞧不起shell,但实际上,工作中使用的非常广的是shell,写一个程序启动、停止、编译、打包、测试脚本是非常常见的事情,不会真心说不过去,不仅仅运维要会,研发本身也要会。
  4. python: shell写一些复杂的东西,就力不从心了,如果你用python都写不出来的,那么说明你没找对库
  5. rust,无论是C/C++也好,java/go也罢,只要你写服务端程序都躲不过一个坎,就是程序的稳定性,这些问题是非常非常难定位的,如果你想少加点班解决线上问题,个人建议还是学学rust,至少rust有这个潜力的。
  6. C++:我本人是将C++排到最后,不是因为C++不好,是因为写C++的人水平残次不起;曾有个大佬戏称,C++写代码的人很爽,看代码的人特抓狂,线上出问题了,就更抓狂了。C++比C多出来的东西,像STL、面向对象、新标准的特性,类似的东西,我觉得可以参考java可能会更好点。

作为应届毕业生,我觉得在初期能多学点就多学点,优先学项目的要求,像rust这种小众的语言还是以后有空再说吧,如果想要未来的路走的更远,C这种语言还是要熟悉的。至于说C++,挑一些常见的特性用好、再把相应的实现原理看看我觉得已经够了。

个人观点,不喜勿喷。