加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

与 30 家公司过招,得到了这章面试心法

发布时间:2019-03-08 12:04:31 所属栏目:建站 来源:编辑部的故事
导读:副标题#e# 笔者坐标上海,做技术开发,之前有几个月的时间,基本上都是在面试中度过的。我求职的职位是 Linux 服务器开发,最倾向的职位是服务器开发主程或技术经理。在那几个月的求职过程中,我面试了 30+ 家公司,包括腾讯、百度、阿里的蚂蚁金服和国际支

上海黄金交易所和喜马拉雅听书都问了 Linux 下 elf 文件的节结构,映射到进程地址空间后,分别对应哪些段。相关的问题还有全局变量、静态存储在进程地址空间的哪里。饿了么二面问了操作系统的保护模式实模式、中断向量表、Linux 下的 CAS。Linux 系统下可能还会问什么是 daemon 进程,如何产生 daemo 进程,什么是僵尸进程,僵尸进程如何产生和消除。

堆和栈的区别,栈的结构、栈的细节一点要搞得特别清楚,因为一些对技术要求比较高的公司会问得比较深入,例如京东的一面是让我先写一个从 1 加到 100 的求和函数,然后让我写出这个函数的汇编代码,Java 开发的同学可能会让你试着去写一点 JVM 的指令。如果你对栈的结构,如函数参数入栈顺序、函数局部变量在栈中的布局、栈帧指针和栈顶指针位置不熟悉的话,这题目就无法答对了。

栈的问题,可能会以常见的函数调用方式来提问,常见的有 __cdecl、__stdcall、__thiscall、__fastcall 的区别,比如像 printf 这样具有不定参数的函数为什么不能使用 __stdcall。

此外还有进程和线程的联系与区别,问得最多的就是线程之间的一些同步技术,如互斥体、信号量、条件变量等,Windows 上还有事件、临界区等,这类问题还可以引申为什么是死锁、如何避免死锁。这些东西你必须熟悉到具体的 API 函数使用的层面上来。这是实际开发工作中编码最常用的东西,如果你连这个都不能熟练使用,那么你多半不是一个合格的开发者。

进程之间通信的常用技术也需要掌握,Linux 常用的通信方式有共享内存、匿名和具名管道、socket、消息队列等等,管道和 socket 是两个必须深入掌握的考察点。

使用过的开源技术

考察使用过的开源技术,比如 Redis 与 MySQL 等项目。开源技术的使用一般不做硬性要求,但是这里必须强调一下 Redis,熟练使用 Redis 甚至研究过 Redis 源码,现在一般是对做后台开发的技术硬性要求。

基于 Redis 的面试题既可以聊算法与数据结构,也可以聊网络框架等东西。我面试的公司中基本上百分之九十以上都问到了 Redis,只是深浅不一而已,比如喜马拉雅问了 Redis 的数据存储结构、rehash,bilibili 问了 Redis 的事务与集群。

三、考察项目经验

只问一些做过的业务或者项目经验,这类公司他们招人其实对技术要求不高,除非是资深及主管级开发。只要你过往的项目与当前应聘职位匹配,可以过来直接上手干活就可以了,当然薪资也就不会给很多。比如游戏公司会关心你是否有某某类型的游戏开发经验、股票类公司会关心你是否有过证券或者交易系统的开发经验等。

业务开发哪里都能找到,真正重视技术的公司,应该是广大做技术尤其是初中级开发的朋友更为关注的。

不靠谱型公司

面试过程中,其实还会发现一些不靠谱的公司,我遇到的大致有四类:

装 X 忽悠型公司

面试过程冗长繁琐,我面试的有一家公司就是这个样子,先是一轮长长的电话面试,然后是五轮技术面试,前三轮是刷 leetcode 上的原题,然后后几轮面试官从基本的操作系统中断、GDT、LDT、分表分页机制问到上层高并发海量数据的架构。从外太空聊到内子宫,最后问具体职位做什么时,要么遮遮掩掩要么原型毕露,或者讨论薪资时,要么面露难色要么各种画饼,但是实际就给不了多少薪水的。

佛性公司

全程面试官面带微笑,问的问题你回答之后面试官也表示很赞同,但最后你就是没通过。我猜测要么公司不是很缺人,想观望一下是否有合适的人才,要么招聘信息上开的薪资给不到。

老奶奶裹脚布型公司

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读