要回国了,写个简单的总结吧。

一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
码农求职神器Triplebyte:
不用海投
内推多家公司面试
坐标湾区
Games Startup
招聘游戏开发工程师
游戏初创公司招聘工程师、UIUX Designer和游戏策划
把贵司招聘信息放这里
系统
16分钟前
系统
17分钟前
系统
23分钟前
系统
26分钟前
系统
26分钟前
系统
27分钟前
系统
31分钟前
系统
32分钟前
系统
1小时前
全站
Warald 说: MemorialDay大礼包之七:【新功能】每日答题,答对了有大米奖励!加上每日登陆和每日签到,每天可以拿3颗大米!
1小时前
系统
1小时前
系统
1小时前
系统
1小时前
系统
1小时前
系统
1小时前
系统
1小时前
系统
1小时前
系统
1小时前
系统
1小时前
全站
Warald 说: MemorialDay大礼包之五:【新功能】高级模式发帖,图片框里添加“大图片上传”,upto20张X10M
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
全站
Warald 说: MemorialDay大礼包之五:【新功能】小喇叭可以点击“发布”,可以在全局、板块或者帖子里发
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
系统
2小时前
全站
Warald 说: MemorialDay大礼包之四:【新功能】主题列表页显示图片,欢迎上图
2小时前
系统
2小时前
系统
2小时前
系统
3小时前
系统
3小时前
系统
3小时前
系统
3小时前
系统
3小时前
全站
3小时前
系统
3小时前
系统
3小时前
系统
3小时前
系统
3小时前
系统
3小时前
系统
3小时前
全站
Warald 说: MemorialDay大礼包之二:【新功能】论坛开启用户全局威望值,每楼右上方均可投票。
3小时前
全站
Warald 说: MemorialDay大礼包之一:【新功能】发帖后,可以邀请朋友参与讨论(自动功能)
3小时前
查看: 3231|回复: 17
收起左侧

Google尴尬电面

[复制链接] |试试Instant~ |关注本帖
我的人缘0
冰川之狐 发表于 2016-8-26 04:22:22 | 显示全部楼层 |阅读模式
  此人很可信:
 
0% (暂未有人投票) 【我投】
  此人瞎逼逼:
 
0% (暂未有人投票) 【我投】

2016(7-9月) 码农类General 硕士 全职@Google - 网上海投 - 技术电面  | Other | 在职跳槽

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?Sign Up 注册获取更多干货

x
我投了好几个software C++的职位。然后电话里和recruiter聊的时候他说看你embedded的背景不够强,要不刚好他这里有几个需要embedded的,可惜了。但是后来给我安排的电面的时候,发了一个sample job description过来,我一看里面写的是C,然后还是需要linux和embedded相关知识的。我就发邮件给recruiter问不是说是C++的吗,而且不是说embedded背景不强吗?他解释说这是general的job description,到时候还是用C++的,不过也会问linux和embedded的问题。既然这样说了那我只好照他说的准备了。 接着8月24号下午电面,感觉悲剧了。
一上来接通电话就感觉声音不好,一个是因为他说话口音比较浑浊(不是三哥),第二个是他开speaker和我说,我说一句话还能听到很清晰的我的回声。我和他说声音有问题,于是他拿起电话和我说,感觉好多了。然后他先让我自己介绍technical背景,我就照简历逐个说了一下。不知道他什么时候有用speaker了,虽然回声没这么大,但是他说话我就不太能跟上了。我也不好意思和他继续抱怨声音问题,就只好硬着头皮继续。 题目是和hardware相关的,说有两个32位寄存器int32_t *hi和int32_t *lo,存放着clock。现在要用int64_t clock() fucntion读取realtime clock然后返回。我就问有没有传入参数,他说可以有,我就把hi和lo两个pointer放到了参数里面。然后问他输出的int64_t有没有什么特殊格式(我的意思是需不需要转换成HH:MM:SS的格式),他说没有(这题目关键不在这,所以他没做要求)。那我就写了下面的代码。
int64_t clock(int32_t *hi, int32_t *lo) {
     int64_t ans; 来源一亩.三分地论坛.
     ans = (*hi << 32) | *lo; return ans;
}
一开始紧张还忘了在pointer前面加*号,他提醒了一下我就加上了。 然后他问我,这样会有什么问题?我一下没搞清楚,于是他就引导我,说如果时间是3:59,然后你读取了min是59,然后再读取hour的时候是4,有什么问题?我说因为处理第一个register需要时间,所以处理第二个时候时间就不是当初的时间了。然后他问题怎么改,我就改了一下,成下面这样:
int64_t clock(int32_t *hi,int32_t *lo) {
    int64_t ans;
    int32_t hiBits, loBits;
    hiBits = *hi;
    loBits = *lo;
    ans = (hiBits << 32) | loBits;
    return ans;
}


. 1point3acres写完了他说你这样只是缩短了之间的差距,但是还是有时间差,前后不consistent,怎么办? 我说能不能用mutex,interrupt或者同时read两个register什么的,他说都不行。然后我说能不能compensate,记录一下第一次读取hi所用的时间,然后在读取lo的时候加上?他反问我觉得这样准确吗?我想了一下觉得还是不太准确,就没往这方面想。后来纠结了很久还是想出其他什么办法,他说就这样吧,然后问我对他有什么问题,我说你问的这道题平常工作中会遇到吗?他就解释了一下。他解释完之后我问那遇到这样的情况你们一般怎么解决?他说这个他就不告诉我了,让我自己去想想,不算难的...然后就说两句挂电话了.... 感觉这个面试官态度比较一般,不太supportive,估计有可能是因为我不太能跟上他说话的原因,面了大概40分钟,感觉要悲剧了。
哪位大神帮忙解释一下到底要怎获取realtime的clock time?我确实没怎么做过硬件底层的,不太懂
.留学论坛-一亩-三分地

评分

2

查看全部评分


上一篇:recruiter直接联系我,算是内推吗?
下一篇:G家店面
我的人缘0
 楼主| 冰川之狐 发表于 2016-9-1 03:44:01 | 显示全部楼层
  此人很可信:
 
0% (暂未有人投票) 【我投】
  此人瞎逼逼:
 
0% (暂未有人投票) 【我投】
follow up一下上次的面试:-google 1point3acres
今天recruiter打电话过来,先问我感觉面试怎么样,我就把我面试的时候出现的noise的问题说了,说我因为noise的问题没能catch up面试官的point,然后面试的题目是偏向embedded的,不是data structure和algorithm,不是我的强项,所以感觉面试不太好。然后recruiter听了之后说面试的人给他的feedback也差不多,主要是说communication有问题,需要重复多次,然后我没明白问题是什么,决定不move on。recruiter看了feedback觉得和我聊的时候没什么communication problem,所以来问问我,然后说可能把我分到不太合适的embedded的组了,决定给我再set up一轮电面,关于data structure和algorithm的。
我本来都不抱希望了,今天听recruiter这么一说高兴坏了,再次在地里面发帖攒一下人品,求大家保佑&#128591;!
回复 支持 1 反对 0

使用道具 举报

我的人缘0
say543 发表于 2016-8-26 13:22:15 | 显示全部楼层
  此人很可信:
 
0% (暂未有人投票) 【我投】
  此人瞎逼逼:
 
0% (暂未有人投票) 【我投】
好难啊 没什么除了compensate 的想法?
回复 支持 反对

使用道具 举报

我的人缘0
666666fl 发表于 2016-8-26 14:00:55 | 显示全部楼层
  此人很可信:
 
0% (暂未有人投票) 【我投】
  此人瞎逼逼:
 
0% (暂未有人投票) 【我投】
难道所有的cpp岗位都要这样么. from: 1point3acres
回复 支持 反对

使用道具 举报

我的人缘0
ytsr 发表于 2016-8-26 14:27:10 | 显示全部楼层
  此人很可信:
 
0% (暂未有人投票) 【我投】
  此人瞎逼逼:
 
0% (暂未有人投票) 【我投】
读三次,时,分,时,如果第一次和第三的时不一样,就按照整点算。
比如  读的 3 40 3, 就是3:40
读的 3 59 4 就算 4:00

我也没啥经验,纯粹蒙的答案
回复 支持 反对

使用道具 举报

我的人缘0
frozencookie 发表于 2016-8-26 14:58:55 | 显示全部楼层
我只能说你运气不好,进了奇怪的招聘组吧,谁说的c++工程师要embedded经验的...我工作N年都没写过底层的东西。
回复 支持 反对

使用道具 举报

头像被屏蔽
我的人缘0
小老成都人 发表于 2016-8-26 15:09:26 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

我的人缘0
leonardcohen 发表于 2016-8-26 15:36:11 | 显示全部楼层
  此人很可信:
 
0% (暂未有人投票) 【我投】
  此人瞎逼逼:
 
0% (暂未有人投票) 【我投】

.本文原创自1point3acres论坛
硅谷有1年的 cs或software engineering 且是STEM吗? 纯属为了工作去读个书。
Mobile Apps Category (English)728x90
回复 支持 反对

使用道具 举报

我的人缘0
 楼主| 冰川之狐 发表于 2016-8-26 21:14:35 | 显示全部楼层
  此人很可信:
 
0% (暂未有人投票) 【我投】
  此人瞎逼逼:
 
0% (暂未有人投票) 【我投】
666666fl 发表于 2016-8-26 14:00
难道所有的cpp岗位都要这样么

估计不是,我估计是recruiter看我简历上有些arduino的经验,就分到了这个组...但是我其实是想要纯software coding的职位的...
回复 支持 反对

使用道具 举报

我的人缘0
 楼主| 冰川之狐 发表于 2016-8-26 21:18:17 | 显示全部楼层
  此人很可信:
 
0% (暂未有人投票) 【我投】
  此人瞎逼逼:
 
0% (暂未有人投票) 【我投】
ytsr 发表于 2016-8-26 14:27
读三次,时,分,时,如果第一次和第三的时不一样,就按照整点算。
比如  读的 3 40 3, 就是3:40
读的 3 ...

这样应该不行。首先存在寄存器里面的应该是millisecond甚至更小的单位,不能直接读取出时分秒。第二,你这样是人为产生误差,估计误差比直接读的还要大...
回复 支持 反对

使用道具 举报

我的人缘0
 楼主| 冰川之狐 发表于 2016-8-26 21:19:13 | 显示全部楼层
  此人很可信:
 
0% (暂未有人投票) 【我投】
  此人瞎逼逼:
 
0% (暂未有人投票) 【我投】
frozencookie 发表于 2016-8-26 14:58. From 1point 3acres bbs
我只能说你运气不好,进了奇怪的招聘组吧,谁说的c++工程师要embedded经验的...我工作N年都没写过底层的东 ...

我估计是recruiter看我简历上有些arduino的经验,然后他刚好这个组需要人,就分到了这个组...但是我其实是想要纯software coding的职位的...
回复 支持 反对

使用道具 举报

我的人缘0
 楼主| 冰川之狐 发表于 2016-8-26 21:33:38 | 显示全部楼层
  此人很可信:
 
0% (暂未有人投票) 【我投】
  此人瞎逼逼:
 
0% (暂未有人投票) 【我投】
在网上问了一下,有人给出了一个相对比较合理的solution,可以避免shift,也比较快。

int64_t clock(int64* time, int32_t* hi, int32_t* lo) {
      int32_t *hiBits = (int32_t*) &time;
      int32_t *loBits = ((int32_t*) &time) + 1;
      (*hiBits) = (*hi);
      (*loBits) = (*lo);
      return *time;
}
回复 支持 反对

使用道具 举报

我的人缘0
ynos1155 发表于 2016-8-26 22:57:07 | 显示全部楼层
  此人很可信:
 
0% (暂未有人投票) 【我投】
  此人瞎逼逼:
 
0% (暂未有人投票) 【我投】
冰川之狐 发表于 2016-8-26 21:33
在网上问了一下,有人给出了一个相对比较合理的solution,可以避免shift,也比较快。

int64_t clock(int ...

感觉这个答案和lz第二个解差不多呢:
1    hiBits = *hi;
2    loBits = *lo;
3    ans = (hiBits << 32) | loBits;
如果面试官指的“时间差”是1和2之间的话。当1执行完,如果突然来一个interruption把这个程序挂起,回来再执行2,还是会有时间差。单独执行3耗时应该远小于millisecond,是不是可以忽略不计呢。但是这两个reg不能同时读取,实在是费解。网上的答案好像没有必要把time作为parameter传进来这个函数,直接在clock函数里面declare一个time就可以,反正最后要return的。
回复 支持 反对

使用道具 举报

我的人缘0
 楼主| 冰川之狐 发表于 2016-8-26 23:20:22 | 显示全部楼层
  此人很可信:
 
0% (暂未有人投票) 【我投】
  此人瞎逼逼:
 
0% (暂未有人投票) 【我投】
ynos1155 发表于 2016-8-26 22:57. more info on 1point3acres
感觉这个答案和lz第二个解差不多呢:
1    hiBits = *hi; . from: 1point3acres
2    loBits = *lo;

你说的有一定道理,我当时面试的时候也是这么想的...至于bit shift的时间成本的话我就不太清楚了。
不过好像这个问题还可以有其他一种解释。比如说lo就像second,hi就像min或者hour,lo变化快而hi变化慢,所以应该先读取lo然后再读取hi。或者读取hi,接着读取lo,然后再次读取hi与之前的hi对比看看是不是不同的,如果是不同的那就在此读取lo的值,这样的话有可能最终结果不是最终想要的第一次读取的时间,但是至少保证了相对的consistency。
回复 支持 反对

使用道具 举报

我的人缘0
ytsr 发表于 2016-8-27 00:59:08 | 显示全部楼层
  此人很可信:
 
0% (暂未有人投票) 【我投】
  此人瞎逼逼:
 
0% (暂未有人投票) 【我投】
冰川之狐 发表于 2016-8-26 21:18
这样应该不行。首先存在寄存器里面的应该是millisecond甚至更小的单位,不能直接读取出时分秒。第二,你 ...

我那是举个例子而已,这种设计主要是针对读的间隙中的跳变。只要没有跳变就用读的值,有跳变就用修改的值。不管怎么读误差都小到忽略不计了,但是跳变的误差大了一个单位。

补充内容 (2016-8-27 01:18):
不对,跳变那不是误差,是错误。
回复 支持 反对

使用道具 举报

我的人缘0
ytsr 发表于 2016-8-27 01:03:46 | 显示全部楼层
  此人很可信:
 
0% (暂未有人投票) 【我投】
  此人瞎逼逼:
 
0% (暂未有人投票) 【我投】
冰川之狐 发表于 2016-8-26 21:18
这样应该不行。首先存在寄存器里面的应该是millisecond甚至更小的单位,不能直接读取出时分秒。第二,你 ...

而且面试官举例子都举到这么明确的份儿了,三次读取至少能解决他例子中的那个bug。至于误差,只要在设计要求范围内就行,至少不能是错误。面试官那个corner case把3:59读成4:59那就不是误差的事儿了
回复 支持 反对

使用道具 举报

我的人缘0
 楼主| 冰川之狐 发表于 2016-8-27 02:04:47 | 显示全部楼层
  此人很可信:
 
0% (暂未有人投票) 【我投】
  此人瞎逼逼:
 
0% (暂未有人投票) 【我投】
ytsr 发表于 2016-8-27 01:03
而且面试官举例子都举到这么明确的份儿了,三次读取至少能解决他例子中的那个bug。至于误差,只要在设计 ...
. visit 1point3acres for more.
恩, 你说的有道理。当时面试的时候没有往这方面想,只想着怎么解决误差的问题,而他举的那个例子应该指的是错误而不是误差,现在想起来确实没想的这么复杂。
回复 支持 反对

使用道具 举报

我的人缘0
BlackPen 发表于 2016-9-7 06:12:50 | 显示全部楼层
冰川之狐 发表于 2016-9-1 03:44
follow up一下上次的面试:
今天recruiter打电话过来,先问我感觉面试怎么样,我就把我面试的时候出现的no ...

祝好运啊!
回复 支持 反对

使用道具 举报

游客
请先登录

本版积分规则

提醒:发帖可以选择内容隐藏,部分板块支持匿名发帖。请认真读完以下全部说明:

■隐藏内容方法: [hide=200]你想要隐藏的内容比如面经[/hide]
■意思是:用户积分低于200则看不到被隐藏的内容
■可以自行设置积分值,不建议太高(200以上太多人看不到),也不建议太低(那就没必要隐藏了)
■建议只隐藏关键内容,比如具体的面试题目、涉及隐私的信息,大部分内容没必要隐藏。
■微信/QQ/电子邮件等,为防止将来被骚扰甚至人肉,以论坛私信方式发给对方最安全。
■匿名发帖的板块和方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2018-5-27 16:41

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表