面试一个一万左右的人,让他写冒泡排序,递归和一些基础 sql 题,会不会过于简单

2020-08-13 13:50:34 +08:00
 jiangfkyyy

我觉着题挺简单的,可是大部分写不出来... 去某些编程群问,发现很多人观点是工作几年会忘,不会写也比较正常 大伙提提意见

12386 次点击
所在节点    问与答
114 条回复
gps949
2020-08-13 16:45:35 +08:00
如果真如标题说的内容(递归、SQL 不是很复杂的那种)不会写的话,那真的太差劲。
我计算机本科毕业工作 9 年,前 4 年芯片验证,后 5 年售前,到现在投研发简历估计直接被筛,但我写标题这种层次的应该问题都不大。
loveToMy1
2020-08-13 16:50:18 +08:00
面试之前都不刷面试题吗 好歹也得说个大概啊
Airon
2020-08-13 17:05:06 +08:00
提主观题,模拟场景提问,感觉效果更好。至于基本的算法,各种基础,这些应该都是最基本的吧,没必要面试的时候一一考核(曾有培训出来的刷题背题面试者投诉 我不按套路面试😅)
fiypig
2020-08-13 17:15:08 +08:00
这个看公司的, 我面试的几家,都不考算法, 因为小公司的缘故吧
正常来说, 后端就数据库优化这块, 然后根据简历上面的项目去问...
isnullstring
2020-08-13 17:20:33 +08:00
实话实说,好久没写冒泡排序......
VoidChen
2020-08-13 17:22:18 +08:00
我面试那会手写单链表反转,因为没有复习这些没写出来,我真的觉得问这些不如问业务解决过的问题
aureole999
2020-08-13 17:33:27 +08:00
说实话这算是基本功吧,你不指定冒泡,你就说有个数组,不用库提供的函数,排下序。就算没学过算法的想想也能想出几种方法吧,然后实现一下也不难啊。还是说一看排序就放弃思考了?递归工作中也能用到啊,比如有时候需要很简单的反射 set get 的时候,又不想加个库,给一个 object,列出包括子类在内的所有属性,递归一下不是很正常。sql 如果用过的那简单的 select 应该就更不用说了吧。
oahebky
2020-08-13 17:35:57 +08:00
手撕一个(不就几行的事吗?):

```python
def maopao(nums, reverse=False):
'''in place'''
____for i in range(len(nums)):
________for j in range(len(nums)-i-1):
____________if nums[j] > nums[j+1]:
________________nums[j], nums[j+1] = nums[j+1], nums[j]
____if reverse:
________nums.reverse()
____return nums
```

经过测试没有问题(一次过):

```python
def test_maopao(times):
____from random import randint
____for i in range(times):
________nums = [randint(0, 10000) for _ in range(randint(0, 1000))]
________ret = maopao(nums.copy())
________cmpr = sorted(nums)
________assert ret == cmpr, f"test fail at {i} times;\n{nums}"
____print(f"pass {times} times test!")
```

10K 我不敢说。能在面试的时候说出冒泡思路 4K 应该是有的。然而现在应该也没有多少 4k 的岗位。能不出错写出代码,6K 起步我个人认为是应该有的。


8K 、10K 或再往上,当然肯定不止一个 coding 能力,还有 OSI 、LINUX 、具体编程语言了解程度 等等的基础知识呀。这方面基础有了,我觉得 8K 应该是有了。

10K 可能再多考察一点点 DFS,链表等,我个人觉得就 OK 了。

======

当然,以上都是我这个小几年经验的打杂菜鸟看法。
oahebky
2020-08-13 17:49:05 +08:00
当然,如果是行业专家,超过 5 年经验的,这种就没有必要问了。

应该问些具体的行业技术。
- 比如 WiFi 专家问 WiFi 标准的问题。
- 互联网搞高并发之类的问些同步啥的问题(这个我不懂)
- 数据库的问优化查询和具体项目问题的解决方案等等
- 前端有前端的什么问题
- 嵌入式驱动的有 Linux 内核等问题
- 通信方面的有 gpon,ipv4,ipv6,dns 等等协议问题
- 芯片设计自然是 arm mips 等等有关的问题(具体什么问题的我自然也不懂)
- 做桌面软件的肯定也有些桌面软件的技术
- 等等等。

具体情况具体分析,具体行业内的人去面试,人家要 10k,20k 往上,面试官问个冒泡排序,OSI 七层模型,那就没啥意思了。
php01
2020-08-13 17:54:30 +08:00
你可以试试,让这些人解鸡兔同笼问题。小学水平的。他们还能不能解出来,用纸。
可能你不去看的话也解不出来。
RadishWind
2020-08-13 17:57:57 +08:00
(假设前提是一线城市的话)个人认为:
1.这些题已经足够简单了(冒泡根本算不上什么算法,SQL 语句如果面试后端的话,也是平时用得到的技能)
2.即使真的不会,或者记不太清楚,也足以见得面试者在参与面试前,并没有进行什么准备(更不用说调优之类的知识点了)
---
综上所述,不认为这样的题过于简单,建议楼主思考其他方面的原因(比如招人的来源、公司定位、JD 是否匹配等)
supermoonie
2020-08-13 17:59:10 +08:00
算法复习了,到了面试还是会忘🤪
xxxyy2y
2020-08-13 18:15:02 +08:00
可能大部分都是你面试的都是培训出来的把都没教算法 一搬就算一时想不起来按自己逻辑也能写出来 这是最基础的东西
ishengge
2020-08-13 18:26:37 +08:00
我 30K,手写都写不出来。。怎么办
Volekingsg
2020-08-13 18:43:29 +08:00
分不清冒泡,选择,插入的路过_(:з」∠)_
Volekingsg
2020-08-13 18:44:59 +08:00
@Volekingsg #55 应该说记不清,不知道哪个对哪个,但说句原理就可以了
Jackeriss
2020-08-13 18:51:50 +08:00
面试问这些纯粹是浪费双方时间
trlove
2020-08-13 18:52:14 +08:00
说实话,这些很简单,除了递归和基础 sql 题目会在项目中用到外,一个业务程序员基本用不到冒泡的,久而久之就会忘,如果现在直接问很多人,很多人都不会写……但是,我觉得对于一个面试的人来说,如果也不会,那就是不合格的,个人人为可以直接 pass,连面试都不准备准备就出来,至少我觉得态度是有问题的……最后就是你面试 1 万的人,问这个问题太过于简单,问的问题都是面实习生都不会出的题目……面不出来面试者的水平,还是多整点实际开发上面出现的技术点,以及坑之类的去问比较好。
wangyzj
2020-08-13 19:22:06 +08:00
怎么没人说“内卷”这个词
wangyzj
2020-08-13 19:23:52 +08:00
算法题是刷出来的
只能说明他找工作准备比较充分

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/697948

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX