编程语言的选择,一直是一个有争论的话题:
Java :已经被唱衰了很多年,但现在依然发展的还行。网络上都嘲讽选 Java 就是 49 年加入国民党,现实中一个个的都偷偷学。确实很卷,但国内也确实岗位多。 C/C++ :虽然岗位少,但是学的人也少,门槛相对较高!相比较于 C++,个人还是更推荐 C,C++ 定位一直挺尴尬的。 Go :发展势头很好,目前的岗位主要集中在大厂。岗位不如 Java 多,但比 C/C++更多,且竞争激烈程度远小于 Java 。相比较于 C/C++,我更推荐 Go。
如果是就业的话,个人还是推荐 Java 和 Go。这几年国内吹 Rust 的也很多,但这语言目前也就只适合出于兴趣学一下。
国内的趋势是,任何领域只要还可以,能赚点钱,门槛不是特别高,未来都会变卷。
星球一位本硕 985 软工的球友,有 Java、C/C++、Golang 的基础,目前在阿里云某写 C 的组实习。他目前比较纠结到底是坚持 C/C++ ,还是走 Java,还是回到暑期实习之前的 Golang?
如果是你的话,你会怎么选择呢?为什么呢?
读者提问如下:
Guide 哥你好,我今年实习和秋招,学历是本硕 985 软工,有一定的 Java 后端、C/C++ 和 Golang 的底子,目前在 阿里云 一个比较硬核的写 C 的组实习(两段实习经历,除了阿里云,另一段是导师横向安排的,写 TypeScript 的……感觉我突出一个全而不精)。
我目前遇到的问题是:
实习几乎没有产出:这个组不是做业务的,而我本身适应得不好,导致没有什么可写在简历上的,转正也几乎没什么指望。 方向迷茫:我暑期实习用的简历主要技术栈是 Golang(找得非常挣扎),而我在阿里云写 C 底层,现在我就完全不知道该走什么方向,C/C++ 和 Go 感觉可以投的公司都太少了(暑期实习的时候,身边 Java 的同学面试都很顺利,而我基本没几个 Golang 面试,只能说心有余悸),Java 没有项目基础。 项目选择困难:我暑期实习的项目经历都很水,现在想找新的项目也由于问题 2 无法抉择,而且不知道该用什么项目好(比如 Java,我是去做后端项目呢,还是中间件、轮子项目呢)。
Guide哥,您觉得我该怎么办呢?是坚持 C/C++ ,还是走 Java(后端或者中间件?),还是回到暑期实习之前的 Golang?(主要就是项目的问题吧,我的项目几乎算是要从零开始突击了,面经和算法我本身底子还可以,暑期实习其实就有三种面经都背……痛苦……)
下面简单分享一下我的看法:
C/C++、Golang 和 Java 这几门编程语言的选择,个人建议综合考虑市场需求、个人兴趣以及转语言成本(重点考虑,优先擅长的语言)这几个因素。
Java 后端开发目前市场需求量大,特别是在企业级应用、互联网业务、央国企系统等领域。虽然竞争激烈,但机会也多,生态成熟,资源丰富,入门相对容易。 如果你对底层开发有浓厚兴趣,喜欢研究系统内核、性能优化等,可以继续深入学习 C/C++。尽管 C/C++ 岗位相对较少,但在系统软件、嵌入式开发、游戏引擎等领域仍有需求,且技术深度高,具有挑战性。并且,相对应的,虽然岗位少,但是学的人也少!相比较于 C++,个人还是更推荐 C,C++ 定位一直挺尴尬的。 Go 是一种兼顾底层开发和业务开发的语言,既可以用于系统编程、网络编程等底层开发,又可以用于开发后端服务和微服务架构等业务应用。国内招聘 Go 岗位的做业务开发还是相对多点,然后就是中间件开发。相比较于 C/C++,我更推荐 Go,大厂招聘 Go 岗位还是挺多的。并且,Go 的发展前景也不错。
考虑到你的项目经验和时间成本,建议你选择一个自己擅长或感兴趣的方向深入研究。
针对简历产出少的问题,可以从实习和项目经历这两个方面进行优化。尽量把实习期间做的事情详细描述出来,适当润色,可以找一些合适的内容包装成自己的项目。项目经历这块建议至少有一个和目标岗位匹配的,尽量要有一些亮点。你可以通过参与开源项目、开发个人项目或通过线上课程和比赛来丰富自己的项目经验。
面试除了项目经历,算法和面经也是非常重要的。你提到算法和面经底子还可以,可以继续巩固和提升,继续刷题,保持手感,特别是高频题目。同时,多看一些大厂的面经,了解面试流程和常见问题。通过反复练习和总结,可以提高自己的面试通过率。
📌Java 后端技术面试准备强烈推荐《Java 面试指北》 和 JavaGuide ,400 多人参与维护完善,质量非常高。另外,目前的面试趋势是场景题变多,可以参考《后端面试高频系统设计&场景题》(20+高频系统设计&场景面试题)进行准备!
⭐️推荐阅读:
专属面试小册/一对一交流/简历修改/专属求职指南,欢迎加入我的知识星球 ,和 3w+球友一起准备面试!