阿里钉钉客户端C++一面(2023.4.14)
背景:阿里一志愿简历挂,二志愿二面挂,然后被三志愿捞起来了,4.11周二电话约面,加了钉钉,时间约到了周五下午17-18点。面试官感觉是中年男性声音,比较温柔,人也不错,整体下来像是在两个人闲聊天,不过事实上确实几乎都是在聊天。
面试前十分钟钉钉上给我发了一个笔试连接,说十分钟之后给我打电话,点进去是一道字符串翻转的题,如“hello world”翻转为“olleh dlrow”但是特别强调了要注意书写规范和变量命名,花了大概5分钟写完了,当时没太注意他的提示,就在那里等了一会儿,十分钟整后面试官电话打了过来。
- 面试官先自己介绍了下部门的情况,部门是做钉钉客户端的,包括ios mac windows linux等,他的小组是主要做windows下的客户端开发,顺便也做一些跨平台的开发。
- 让我做自我介绍
- 一起看刚写完的题,他看到我用的std::reverse说你这个是不是只能翻转每个单词的首位字母啊,没有实现要求,我说那是std::swap,reverse是翻转整个区间,他奥了一下,小声说没用过这个东西。
- 那你能不用reverse写一个翻转的功能吗(自从手里有了团子的offer以后有点摆了,也觉得这玩意也没啥意思不想写,就说了下思路,最后没写)
- 你看我也提示了要注意编码规范和变量命名,比如你这字符串是s,还有一些编码规范的问题,要不你修改下(把变量名字改成了单词,然后手动格式化了一下,比如等号前后加空格,逗号后面空一格等)
- 随便闲扯了几句变量命名和编码规范的东西,我说我没写过实际会上线的项目,也没实习过,所以这块不太了解。
- 如果这段代码写好了要暴露一个接口给别人,应该改成什么样子。(我问他是写成一个类还是一个函数,他说写一个工具类,就写了个类改了下代码)
- 那你把在主函数中调用这个代码的逻辑也写下。
- 生成的这个类的变量是在栈还是堆中的(写的是 class var的形式,回答在栈上)
- 那你看一般操作系统给程序分配的栈大小,你觉得够吗(意识到了以前看到好多代码即使不需要用指针也是通过new的方法生成的,所以改成了new一个指针)
- 你看你这个是不是有内存泄露问题(加上了delete,本来有点想说raii,但是怕他追问细节,噎了下去)
- 你说你熟悉c++11,那这个是不是有更好解决方法(用unique_ptr改了下,此时已经略微无语)
- 评价了下我的变量命名,说还是有点不直观,命名的不好。
- 我问是主动投的这个岗位还是流转过来的,我说是三志愿
- 问我的职业规划,想从事的方向。(本来想做后端,不过客户端也可以,都能接受)
- 闲聊了几句,他提到面的大部分人都是想做后端,我说一般可能想做前端的人会选择c++语言的人偏少,他说其实语言这块也不是很大的限制,比如java也有前端框架,js也能用来写后端。
- 前端方面的知识有学习过吗(没有)
- 你的这个项目是webserver,我感觉这两年好多人都写webserver,感觉是不是这两年流行这个,这个项目你是在什么情况下写的?完全自己写的?还是参考别人的?
- 研究生课题是什么?
- 你们专业学些啥?
- 你自己做的主要方向是啥?
- 。。。若干关于实验室的问题,接近于闲聊,记不太清了
- 你自己总的代码量有多少,有没有一个预估?
- 所以你就是自己学了很多东西,但是实际没有做过太多项目(是这样子滴)
- 数据结构学过吗(学过)
- 考虑这样一个问题,给一个数组和一个数,比如[3,4,5] 和2要求在每个数之间添加加号或者减号,是的组成一个算式最后结果是给的那个数,你用什么数据结构做?(有点蒙,只知道这题能用回溯做,想不到合适的数据结构,就说了回溯)
- 你想想,这个是不是能用二叉树表示(反应了过来,说了下二叉树实现思路,本质和回溯一样,前序遍历二叉树,枚举所有可能)
- 我看你简历社团还参加挺多,还做到了主席
- 。。。。大段关于社团的闲聊
- 你这几个奖项里面含金量最高的奖项是哪个
- 。。。。大段关于大学时参加比赛的闲聊,讲了比赛当时咋做的
- c++的书看过些啥
- 平时上github吗
- 喜欢那种学习方式
- 还有些记不清了,好像还扯到了他们想招什么人上面,说是想找那种踏实能静下心来的,反正也没啥有意义的内容。
最后是反问
- 作为面试官或者为这个岗位招聘时更看重什么?
他说虽然很多学生毕业时候也确实没啥代码经验,但是也有一些是写了很多工程代码的人,在相同情况下,肯定优先考虑代码量多,毕竟互联网这个变化很快,没有时间让你学习,马上就得上手。
- 评价一下我的面试表现?
第一句话就是“还是又优点的”让我感觉恨不痛快,然后他说了三点,第一点是看得出来沟通能力不错,第二点好像也是个优点,但是没听清也懒得问了,第三点是觉得实际写的代码量稍微有点少,因为这么短的面试时间也看不出来谁的智力啥的高低他觉得c++基础啥的面试前背背就能会,换而言之没有问的必要,他说多写写代码,参加一些开源项目啥的。
总结
不想总结了,有点小无语,不过面试官人还行,倒也没有很不高兴,从三次阿里的面试看得出来,阿里现在招人对实际项目经历很看重,想找那种项目经历丰富或者代码量很高能直接上手干活的人,非科班要想进阿里除非准备很充分,不然难度应该不低。
#软件开发2023笔面经##阿里##钉钉##c++#