实习和校招,编程语言该怎么选择?

计算机面试知识学习网站https://www.csview.cn/

最近很多同学在准备面试,问的比较多的一个问题:

“自己一直跟着学校课程按部就班地学习,各类编程语言都学的半斤八两,找工作或者准备实习的时候,选什么作为主语言好一点?”

针对这个问题我浅浅谈一下看法,由于我的认知很有限,一切都是主观看法和经验论断,大家选择性拾取接收即可,也欢迎和我友好的交换观点。

01 编程语言是不重要的

先说结论:校招的时候,选择哪门语言反而是不重要的

招聘分为两个阶段:第一个阶段是你一点经验没有,正在找第一份实习;第二个阶段是你已经实习几个月,有了一定地经验,正式找工作。

针对第一阶段找实习:无论做的什么WebServer、秒杀系统、在线OJ平台、课设大作业,还是实验室做的种种水项目,绝大部分人的简历上东西在稍微有点经验的面试官眼里就是玩具。这里我说的是绝大部分人。

针对第二阶段正式找工作:我问了不少朋友,他们给我的反馈都是面试主要根据你的项目经验问,编程语言相关的八股问的蛮少的,这和我实际面试体验也是比较吻合的。可以理解为:项目有得聊,他问纯八股也挺没意思

我有一个朋友他主要学的是go,面的也是go,拼多多、阿里云、抖音、快手各个厂顶配offer都有,工资非常可人。他在22年招聘环境如此恶劣的情况下拿到这么多好的工作,跟学了哪门编程语言关系其实不大,因为有不少公司要求进去转。根本原因是他有一段腾讯核心部门一年的高质量实习+个人解决问题能力非常强

又比如我,在找实习和工作的时候一直都是用go来面试,面试中主要都是对着我的简历项目深挖,语言相关的问的很少。我在字节实习的时候,项目需求有什么就写什么,js、python、go都写;我的正式工作,进去之后也要更换技术栈,做的是底层,需要转C或者C++;未来要做什么,我自己也不确定。

所以我的建议是:花更多时间准备算法刷题、计算机网络、操作系统、数据结构、计算机组成原理、设计模式这些通用的东西,当你了解这些通用的东西之后,以后不同语言之间的技术迁移也会容易很多。

注意:这里说的不重要指的是面试内容占比不大,但是常见语言八股文该背还是要背:比如Java的HashMap底层原理、C++的虚函数、go的三色标记法和混合写屏障......

02 各类编程语言的对比

Java

Java是目前国内第一编程语言主要用于企业级应用开发、网站平台开发、移动领域的手机游戏和移动android开发,大数据生态也是Java的天下。几乎所有的交易网站(淘宝,天猫,京东等)和金融网站都是用Java开发的。

优点:稳,Java虽然被喷卷上天,但是岗位却仍然是最多的,生态十分完善。太多国内公司为其背书了

缺点:要学的真的很多,不仅仅有Java基本的语言基础,还有衍生出的各种生态: Java基础、Java并发、JVM、MySQL、Redis、Spring、MyBatis、Kafka、Dubbo啥的,面试基本都会问一问。

C++

C++主要用于游戏领域、办公软件、图形处理、网站、搜索引擎、图形界面层、关系型数据库、浏览器、软件开发、集成环境IDE等等。想学好不容易,市面上的岗位招聘数量仅次于Java,一般搞游戏开发的都要学,现在游戏公司的薪资不低所以这一块的收入也不差。嵌入式、底层这边用的C或者C++也很多。

优点:没Java卷,但是难学。虽然难学但是一通百会

缺点:学习门槛高,上手慢。因为比较难,不同程序员写的C++程序层次不齐,质量难以保证。

Python

主要应用领域是爬虫、数据分析、自动化测试和机器学习,但也有一些中小企业在做自研的网站和app应用的时候用Python做后端开发。

Python大多数是数据分析和测试岗位,这个语言学习难度本身是低的,但是如果你要搞人工智能那么机器学习领域的专业知识才是难啃的硬骨头,这一行对与学历的要求也会很高

注意:没有经验背书不建议把python作为自己后端的主语言,要求最低的其实是要求最高的

Golang

go主要应用于区块链技术和后端服务器应用,云原生、微服务、Web表现也很好,现在很多厂后端服务开始用go重构了。go好上手,学习起来比Java和C++简单,能写出什么样的代码还是取决于刚才提到的编程内功招聘需求数量比不上Java和C++。

优点:简单易懂,面试要背的八股文比Java或者C++少;面向未来的语言,需求会越来越大。

缺点:岗位少比Java或者C++少很多很多;按照专业对口的角度,去不上中大厂基本宣告着失业;短期内生态不是很完善。

03 校招生该如何选择

该怎么选择编程语言来面试呢?我的想法是:多多益善,技术永无止境很多人精力有限,学好一门都可能身心交瘁,还要打磨这门语言对应的生态和应用场景。学好指的是:对这门语言的底层有了解,会使用它解决实际问题。而不是停留于知道语法、输出个"Hello World"、写个IF-ELSE语句。精通一门比会用三门更有竞争力校招少选择几门,把该语言相关的技术往深度和广度学。

做后端开发方向,Java、C++、golang选一门作为自己的主修语言即可,或者类似于Rust、C#等语言也可以,都有市场和岗位。选择哪个编程语言,找工作的简历要有对应技术栈的项目作为支持

如果求稳,选C++或者Java,基本没有公司不要Java和C++的想去传统国企或者是银行之类就选Java,因为这些企业的上层应用基本都是Java开发。

如果确定自己想进大厂并且不想学的很多,go是不错的选择。腾讯、阿里、京东、百度、华为各个大厂都要go,还有深信服、快手、虾皮这些厂也要go,小型企业和各类国企基本对go没需要,虾皮22年秋招也没招人。

CSView校招指南 文章被收录于专栏

从面试准备到面试思想多方面介绍计算机校招,希望带给你不一样的见解。

全部评论
I'm sorry, I cannot understand your message. Could you please provide me with a clear question or statement that I can assist you with?
1 回复 分享
发布于 2023-03-03 15:31 AI生成

相关推荐

在评审的大师兄很完美:像这种一般就是部门不匹配 转移至其他部门然后挂掉 我就是这样被挂了
点赞 评论 收藏
分享
24 72 评论
分享
牛客网
牛客企业服务