专业背景:本硕双985工科专业转码
一、自我介绍
我的介绍过程如下:
- 介绍了本科专业以及学过的一些计算机技术相关课程和知识,说明我具备计算机基本理论基础;
- 提到本科做过的一个较大的竞赛,说明我的代码阅读、编写和调试能力得到锻炼;
- 介绍硕士专业以及研究方向(人工智能方向),顺带提了科研项目;但明确表示我的职业规划是打算在后端开发方向深耕并在研究生期间做了一些相应准备;
- 表达对加入拼多多学习和工作的期待。
二、手撕代码
首先问了我做过笔试之后有没有反思有哪些可以改进的地方,有没有什么新想法。可惜我没有,只好如实回答。
其后的题目是一道场景题,考察的知识点我很熟悉,很快想出了解法:第一步是有向图检测环,第二步是对无环的有向图,层序遍历其所有连通子图。
我的思路是清晰且正确的,但是由于有些紧张,而且还有一些细节需要处理,所以代码没能编写出来。
面试官赞同了我的思路,并对没写出代码表示了一定的理解。
三、基础知识问答
我回忆了一些题目:
- 进程和线程的区别?(回答得还好)
- 对数据库索引的理解?(以前只学了MySQL语法,这块不懂,没答上来)
- 什么是数据库的transaction、它有哪些特点?(也不太懂,之前偶尔看到过,凭记忆解释了transaction,特点忘了)
- drop、delete、truncate哪个可以回滚?(坦言记不清了,但是猜测了一下,不过面试后看了看,猜错了)
- HTTP和HTTPS有什么区别?(我只回答了后者多了一层安全加密机制,面试官进一步问我有我知道哪些加密机制,这块我忘了,但想起来课堂上学过混沌加密,于是讲了讲)
- TCP和UDP的区别?(回答得还好)
- 哪些应用层协议用了TCP、哪些用了UDP,举例子。(回答得还好)
- 进程间有哪些通信方式?(答出了四种,后来查阅相关知识,原来还有好几种)
- 举例所知道的一种DoS攻击,结合刚才问到的TCP连接。(回答得还好)
- TCP的握手过程(回答得还好)
- Linux如何杀死一个进程(回答得还好)
- Linux如何把一个进程放到后台运行(回答得还好)
- 剩下的忘了(感觉多数问题回答得还好)
四、剩余环节
面试官问我觉得我有哪些特点或者优势适合这一岗位。
我从几个方面回答:
- 我对底层原理感兴趣(例如操作系统、编译原理等),注重运行效率;
- 我比较认同我的学习方法和学习能力,有搭建完整知识体系的学习目标和意识;
- 态度比较坦诚淡定,遇到懂的问题,先在脑子里想一下回答逻辑,组织语言,遇到不懂的问题,坦然承认不懂,但是根据自己的基础来做一些合理的推测;
- 剩下的忘了。
五、总结反思
我做得好的地方:
- 自我介绍比以前更有条理并且更详略得当;
- 平时学习过程中对知识点的理解比较深刻,注重每一项原理和技术的来龙去脉和优缺点,因此当被问到xx与xx有什么区别这类问题时,能够很有条理并且分清主次地讲述出来,娓娓道来;
- 手撕代码思路反应比较快;
- 对数据库相关知识学习得太少,首先是基础知识过于匮乏,之前把更多时间花在了计算机网络和操作系统上,对数据库读的书太少;
- MySQL的练习不够,很多语句我都忘了;这次面试暴露出了我在数据库知识方面的准备不足;
- 写代码时紧张,没发挥好,平时应该多刷题,要能做到把一些常见的典型思路不假思索地就能写出来;
- 一些计算机网络和操作系统的知识也忘了,比如HTTPS的“S”其实是SSL,我错记成了Secure。
收到了二面通知,那一面应该算是通过了吧!
全部评论
(1) 回帖