我会那么多语言,刷算法到底选哪个呢?

1,863 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第2天,点击查看活动详情

前言 📚

最近在准备面试,面试过程中算法肯定是必不可少的环节,我会那么多编程语言,那刷算法时候用哪个语言比较好呢? 我不禁的犹豫了良久,综合过往的刷算法经验和不同角度来分析下这个问题。

这里我先说下 我的语言背景

  • C
  • C++
  • Java
  • Go
  • Python

这里说下我对各个语言的掌握情况

  • C 语言是大学里边儿科班的必修课,但是由于当时学习ta做开发时候,感觉太麻烦了,也就没有深入去学习。
  • C++ 这门语言是因为当时 用c语言写算法时候感觉特别麻烦,后来接触的到了c++的 STL 库,(😄感觉像发现了新大陆),太方便了,一些对数据结构的封装真是太香了,后来就一直用 c++ 来刷算法,c++ 写算法 也是我目前的主要选择,但是我想走的开发岗,可不是c++ ,想走 Go,这时候我就陷入了两难,以后刷题是使用 Go 呢 ,还是使用 c++ 呢?这个问题 我们一会儿 再分析。
  • Python :因为这个语言极简的一些特性,也是我最喜欢的一门语言,他真的太方便了,代码结构极其简单,以至于在的算法题目中,对于一些简单的题目,python 甚至可以一行代码闯天下,简直是所向披靡,但是因为一些性能方面的原因,我不太走python的开发岗,所以这门语言,我只是在平常生活中,用来实现自己的一些小想法,做一些小工具🔧。
  • java : 这个太卷了 ,我也没有深入学习。 这个不再考虑范围之内。(因为我想走go 开发,可以和我的主语言Go 做类比)
  • Go:后来学的,没有做过项目,没有python 熟练,但是以后想从事 Go开发岗的工作 ,所以Go 是我的主语言。

下面我们从个角度 来分析一下,到底我们该怎样选择语言。

  1. 面试官是怎么想的,他在意我用什么语言吗?
  2. 在日常练习时候 ,python 很方便写题很快,但是我希望找的是Java/Go 的开发岗位,我该怎么选择?
  3. 我想走 Go/Java 语言为主的开发岗位,但是因为一些教育背景原因,我对c++的语法糖或者STL库用着更顺手,我该用哪个写题?

面试官是怎么想的, 面试时候他希望你用什么语言?

其实在大部分开发岗的JD中都是这样写的,熟悉GO/Python/Java/C++中的一门语言, 在面试时候也是这样的,大部分面试官应该是不会对你的语言做一些要求的,只要他能看的懂你的逻辑就行,但是最好使用和你应聘岗位相符合的语言,比如说你面试的岗位是Java 开发那就最好选用java来实现,如果面试的是Go开发,那最好选用Go 来写,如果你经常用C++来刷算法,防止万一哪个面试心血来潮,给你指定了呢,但是又面试的是这些岗位的开发,这时候算法的接口如果不熟悉就很尴尬了。那你可以征求下面试官的意见,如果可以就OK👌。

🥁:面试官这里一般是不卡你语言的,但是为了保险起见,最好在日常练习时候选用,与你将来期望岗位相符合的语言。

在日常练习时候 ,python 很方便写题很快,但是我希望找的是Java/Go 的开发岗位,我该怎么选择?

python 的确写题比较快,因为它是一个动态语言,没有固定的数据类型,所以在语法编码层面上带来了很大的便捷,但是也带来了一些性能上的问题,这个语言,适合在一些网络比赛中(只要求题目正确与否,不卡runtime的比赛)下极力推荐

之前刷题 一直用c++已经熟悉了,其中算法的套路模版了,要不要换主语言刷算法?

其实这个问题,也是目前我焦虑的一个问题,c++ 目前刷算法,已经熟悉了一些模版了,换一门语言来写可能觉得代码结构 很生疏,因为不熟悉模板,可能又要从头开始练习了。这个时间成本很大,前期也很折磨,但是 面试时候万一被要求使用开发岗的语言 ,就尴尬了。

🥁:如果之前练习用的语言跟开发语言不符合,还是极力推荐使用要找岗位的语言。

总结

总而言之:推荐与面试岗位相符的语言来刷题!!! 最后祝大家 找工作顺利 !!!😄