V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
LongMaoz
V2EX  ›  程序员

C#打底,简历写了前端 Angular,TS,Ionic,后端会 Node,Mq,WbSockt,能开发 Exe,Apk 程序,结果被面试官公开处刑。。。

  LongMaoz · 2019-07-17 16:54:31 +08:00 · 14316 次点击
这是一个创建于 1954 天前的主题,其中的信息可能已经有所发展或是发生改变。

前几天面试某公司的时候,简历上密密麻麻的一片还是让我十分膨胀,在那跟面试官疯狂吹🐮🍺,前面的部分都差不多,自我介绍,公司职务,项目分析。


由于之前是小公司实习的,所以还假装作随口一说的样子提了提自己在 GitHub 上写了个 Angular+AntDesign 整合的通用后台模版,但是他并不 care。
自我吹🐮🍺结束后,我就像个待宰的羔羊一样到了被他任意解剖的环节。
“你简历上说项目都是独立开发,并且前后端分离,使用了 MQ 处理聊天消息,为什么要这样做呢?”
“因为使用前后端分离可以让前后端开发进度不需要受到对方进度的限制,分工更明确,使用 MQ 是考虑到大量聊天消息同时发往处理器的场景下产生高并发问题的解决方案。”
“那你说说为什么选用 RabbitMQ,RabbitMQ 相对于其他 MQ 的优缺点是什么?”
“ RabbitMQ 并发能力强,性能好,延迟低,社区活跃度高,出了问题比较好解决。”
“那你详细说一下 MQ 做了什么事情,为什么可以解决高并发问题?”
“ MQ 相当于一个信息交换器,有出口和入口,在信息交换的过程中,生产者和消费者不需要进行直接接触,只需要通过 MQ 进行信息交换,生产者的变更或消费者的变更完全影响不到整个业务的流程,同时在高峰期间可以多个服务器进行读取 MQ 的数据以保证信息不会因为某台服务器挂掉直接 GameOver。”
“那你再说说 MQ 工作原理,它的底层是怎么工作的。”
“......呃....应该是类似于一个单向链表的结构?遵循先进先出原则.....”

这尼玛不对劲啊,怎么跟以前的面试官不一样,一个 MQ 问这么深进去我知道个🔨啊???
“那你说说 MQ 的底层实现是怎么做到的?”

我突然意识到了不对劲,平常咱面试一说不行,或者面试官发现你对这块不了解,那必须得跟你换个问题让你不太难堪,结果他居然体贴的盯着死穴一顿猛攻毒打,我顶不住啊。。。。
“。。。。。。不太了解。。。”

我从刚开始面试的十分膨胀到现在像个被戳破的气球一样耷拉着头挤出一句话。我看见了他嘴角微微一抽,可能这就是恶魔的微笑吧。 我狠狠地深呼吸了一下,喝了口‘亲切’的面试官倒给我的斐济矿泉水,等待着面试官的狂攻猛打。。。
“ Angular 的 AOT 编译跟 JIT 编译有什么区别? AOT 的坏处是什么? AOT 底层是如何实现的?为什么 AOT 编译不支持箭头函数?”
“ Observables 和 Promises 的差别是什么?分别是如何实现的?底层原理是什么?”
“ TypeScript 中的泛型和接口最后会转化成什么? TS 是强类型语言吗?怎样把 JS 库转化为 TS 库?命名空间和模块的区别是什么? TS 的重载和 C#的重载有什么区别?是如何使用 JS 实现的重载?”

我脸绿的像个比克大魔王,憋了半天把我仅有的一些知识挤了一丢丢出来,当然,我相信他并没有得到满足,继续在追问。
“ Ionic 是如何跟手机交互的? Ionic 作为一个 UI 库底层做了什么东西?为什么可以打包出一个 APK 文件?”
“呃,应该是调用了 AndroidSdk 对 Angular 项目进行打包,通过调用 Angular 内的 Cordova 库的 API 跟手机进行交互?”

我猛地一个激灵,这玩意我看过啊!赶紧答上来不要显得我太 LOW !然而,我看到了他微微一笑,坏了!要出事了!
“ Cordova 作为一个 JS 库是怎么对 Android 的 API 进行调用的?为什么可以对 AndroidAPI 进行调用?如何在不使用 Cordova 的情况下页面调用 AndroidAPI?”

果然,素质三连又开始了,怎么用?是什么?为什么?我尼玛面的是.NET 后端,我为什么会被问到这种问题啊???我不就写到简历撑撑场面???? 就算我内心一万匹羊驼奔过,但我的舌头已经开始自我运转了,连续的说出了大量危险词汇“嗯。。。我感觉。。啊。。我认为。。。可能。。。。” 每当我开始自闭三连的时候,我都能看到面试官脸上由内而外散发出的憋笑面庞(参考美人鱼报警的场景)(跟我以前叼我那学习太不好的朋友是一样的快感,TONY🐴)
“那这样吧,给你道算法题,你来手写解法吧”
“彳亍....口巴....”

我已经被一顿闷棍打的头晕脑胀直接懵逼,看了看手上的题目,两眼无神,瞳孔涣散,脑细胞已经开始拒绝运算这道题了....
“我出去上个厕所,等会回来”

面试官看我生无可恋,可能是想给我个冷静的机会,便开门走了出去。 30 秒之后我的听觉神经似乎听到了门背后面试官传来的欢快笑声,大概是在跟同事吐槽 HR,找的都是些什么谐星憨憨来面试。。。
“做完了吗?”

面试官进来后盯着我看了 30 秒,让我好不容易运转的脑细胞再度罢工。。。 我双手一摊,用了三种方式表达我写不出来这道题。。。
“好吧,这边面试结束了,我们会在 3 个工作日内通知您的面试结果。。。。”

我走在广州的街道上,感受着 36°的太阳,却感觉比空调房内舒服无数倍。。。。而在极度的舒爽下,我开始思考起了人生的哲学。我是谁?我在哪?我为什么会走在大街上?刚才我是在面试吗?好像不知道要做什么了,要不抽根烟?等下去干啥呢。。。。。
124 条回复    2020-02-28 09:26:44 +08:00
1  2  
lolizeppelin
    101
lolizeppelin  
   2019-07-18 13:09:33 +08:00
@karllynn

原理这两字怎么理解....?
是底层实现原理?还 AMQP 协议?
jmk92
    102
jmk92  
   2019-07-18 13:11:37 +08:00
你该不会是伪造了简历,期望工资也高,不得不吹牛装逼,结果被别人怼了。
如果你跟他说,你之前是小公司实习的,也没有吹牛装逼,期望工资更不高。
他一直有意为难你,除非他看你不爽,当然也不缺乏有其他可能性,但,事出有因嘛。
其实吧,为人处事,低调一点不好吗?合理的要薪资,这家不欢迎你,换一家就是了。
wly19960911
    103
wly19960911  
   2019-07-18 13:36:00 +08:00
@lolizeppelin #101 我也对所谓的原理有所不懂,一个前端 promise 远离还好,这个不是很难。但是谈 rxjs 的原理,还真的以为观察者模式就能混过去?各种操作符怎么实现的,怎么中断订阅的。这不是一个实习生能回答得水平吧。

我是不懂动不动问原理的人他自己到底懂不懂什么是原理。
zuosiruan
    104
zuosiruan  
   2019-07-18 13:49:50 +08:00
@jmk92 感觉应该是这种情况.
bonfy
    105
bonfy  
   2019-07-18 13:54:47 +08:00
看你投啥吧,如果是 工资比较高的 这么面也是可以的
如果就一般性的,那么就是面试官不爽你吹牛了

(一般你说的这些应该不会引起面试官一种挖到宝的错觉吧??)
W1angMh
    106
W1angMh  
   2019-07-18 14:14:03 +08:00
yuyiwas
    107
yuyiwas  
   2019-07-18 14:16:45 +08:00
老哥你就不会找一个在行的公司项目来面试吗?非得找这些不符合你的
a5401017
    108
a5401017  
   2019-07-18 14:22:43 +08:00
@guolaopi 表面滑稽,暗地里 卧槽 这谁啊,哪来的,我咋不认识
willJE
    109
willJE  
   2019-07-18 14:46:46 +08:00
哈哈,文笔不错,有画面感了,别做开发了,写小说去吧
xwhxbg
    110
xwhxbg  
   2019-07-18 14:50:18 +08:00
angular aot 不支持箭头函数?为啥啊,没听过这种说法啊,大家不都是 ts 或者 js 编译一发吗?你浏览器就算不支持我给你编译一下成普通函数一样的啊
encro
    111
encro  
   2019-07-18 15:02:28 +08:00   ❤️ 1
面试官之所以追问,是在于看你十一个怎样的人,是不是去想了了解了背后的原理,因为好的程序员都喜欢追根究底,掌握实物的本质和不是停留在用的层面。

比如 RabbitMQ 问题:其实就是看你的深度,MQ 既然你知道那么好,他是怎么做到的,你说你选择 MQ 是因为它好,当是你只是听说,看别人说,没有自己去了解,这就是不深入。

面试的重点是发现你是一个怎样的人,另外就是压价格(一部分想学技术的,不希望老大技术菜的人会选择吧)
encro
    112
encro  
   2019-07-18 15:04:00 +08:00
开始就选择你熟悉的 MQ,一下就能考察你的深度,后面只是给你补救的机会,看你还有没有其他可取之处,你没有把握好。
swulling
    113
swulling  
   2019-07-18 15:05:01 +08:00
有种面试方式就是深入面试,在各个问题上探索到面试者的能力限制,从而获得一个客观的评价
fhsan
    114
fhsan  
   2019-07-18 15:17:16 +08:00
面试基本上都会遇到这种,直接拿简历撕你。
version
    115
version  
   2019-07-18 15:44:12 +08:00 via iPhone
应该是面 mq 就知道你技术深度低,而且之前小公司也是半成品,上线也没人用那种,人不太虚心,所以面试官已经不打算要你了,出了算法只是走过场而已
mzdblsw8
    116
mzdblsw8  
   2019-07-18 16:23:40 +08:00
写小说去吧。做开发太屈才了。
LongMaoz
    117
LongMaoz  
OP
   2019-07-18 17:28:48 +08:00
@version 今天又被安排了,实属诛心
chniccs
    118
chniccs  
   2019-07-18 17:32:30 +08:00
我也觉得可能是前面可能有点显得过于自信了,面试官就故意想压一压你,享受一下快感
guolaopi
    119
guolaopi  
   2019-07-18 20:01:59 +08:00
@a5401017 是啊卧槽这谁啊我怎么不认识(继续滑稽
Austaras
    120
Austaras  
   2019-07-18 22:16:09 +08:00   ❤️ 1
前端来尝试回答一下
>“ Angular 的 AOT 编译跟 JIT 编译有什么区别?
JIT 发的是模板+编译器,AOT 发的是编译结果
> AOT 的坏处是什么?
慢, 所以开发一般不开
>AOT 底层是如何实现的?
这问的太大了,ngc 是个完整的编译器,从 parser 到 code generation 都有好好做
>为什么 AOT 编译不支持箭头函数?”
[doc]( https://angular.io/guide/aot-compiler#no-arrow-functions)
>“ Observables 和 Promises 的差别是什么?
最简单的回答是 Observables 是可以 resolve 多次的 Promise
> 分别是如何实现的?底层原理是什么
看看 RxJs 代码就懂了
> “ TypeScript 中的泛型和接口最后会转化成什么?
会被编译器去掉
> TS 是强类型语言吗?
是静态类型
> 怎样把 JS 库转化为 TS 库?
加 typing
> 命名空间和模块的区别是什么?
这俩都别用了
> TS 的重载和 C#的重载有什么区别?
没有 static dispatch
> 是如何使用 JS 实现的重载?”
直接用就好了?
SingeeKing
    121
SingeeKing  
   2019-07-18 22:49:09 +08:00
我怎么觉得和三级狗面头条的那篇文章这么像……
vkhsyj
    122
vkhsyj  
   2019-07-18 23:26:31 +08:00
不要在意这种事情,你要相信下一家会被你忽悠住
Minson
    123
Minson  
   2019-07-19 13:57:46 +08:00
简历法则第一条:跟面试职位无关的不要写,不知道原理的不要写精通
epkT6QJ3RSaz6AnJ
    124
epkT6QJ3RSaz6AnJ  
   2020-02-28 09:26:44 +08:00
@LongMaoz 帖子没法改,后面应该是 Ionic 考查混合应用和主流浏览器特性。其实不管任何面试,核心点就是用你的经历证明你的聪明程度、耐心程度、以及勤奋程度。技术面只是工具,关键还是看人。
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   991 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 28ms · UTC 20:18 · PVG 04:18 · LAX 12:18 · JFK 15:18
Developed with CodeLauncher
♥ Do have faith in what you're doing.