Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

程序员面试金典笔记📒 #13

Open
jiacai2050 opened this issue Jan 17, 2016 · 4 comments
Open

程序员面试金典笔记📒 #13

jiacai2050 opened this issue Jan 17, 2016 · 4 comments

Comments

@jiacai2050
Copy link
Owner

http://careercup.com/

招聘主要查看四个方面:

  1. 工作经验
  2. 企业文化契合度
  3. 编程技能
  4. 分析能力

记住,一个被拒绝并不代表永远。一年内你还可以重新应聘,失败是成功之母。

十大常见错误

  1. 只在计算机上练习

  2. 不做行为面试题演练

    用心回顾以往的项目和精力,然后准备一些小故事。

  3. 不做模拟面试训练

    不要纸上谈兵

  4. 试图死记硬背答案

  5. 不大声说出你的解题思路

  6. 过于仓促

  7. 代码不够严谨

  8. 不做测试

  9. 修改错误漫不经心

  10. 轻言放弃

    面试题如果不难怎么能体现求职者的水平呢。迎难而上还是轻言放弃?态度很重要。碰到棘手问题不要慌张,也不要轻言放弃。

@jiacai2050
Copy link
Owner Author

面试揭秘

  1. 面试结果是怎么得出的?
  2. 面试官会不会互相交流?
  3. 公司最看重哪些方面?

微软

微软喜欢招聪明人,尤其青睐计算机极客。求职者必须对技术满怀热情。面试官不大会问你一些 C++ API 的个中细节,而是让你直接在白板上写代码。

最后一个问题:你为什么想要加入微软?

亚马逊

一般从两轮电话面试开始,使用共享文档工具写代码,技术问题五花八门,意在探测你究竟熟悉哪些领域。

电面过后,会飞到西雅图接受4到5轮面试,白板写代码是少不了的。

特别之处:

调杆员,顾名思义,主要负责把控面试质量。如果有位面试官风格迥异且要求格外严格,那么很可以就是调杆员了。在这一轮表现的磕磕绊绊并不代表整体就很差,面试官会对比其他求职者来评价你的水平,而不是只看你答对多少问题。

必备准备事项

扩展性,面向对象设计的问题。

中国技术岗位

谷歌

和上面两个差不多,也先是电面,之后是4-6轮的现场面,其中一轮为午餐面试。面试官之间不能偷懒自己的评价报告,因此每一轮面试都可以从零开始。通常,在决定录用与否时,比较看重打高分的情况。打个比方,3.6、3.1、3.1、2.6 的成绩要好过拿四个 3.1 。

必备准备事项

扩展性与存储限制,位操作

特别之处

面试官不是决策者,他们只提交评价意见供招聘委员会参考。

Facebook

面试问题主要分为算法、编程水平、软件架构/设计能力。

Facebook 很看重“忍术”(灵活应变)——也就说用任何语言快速构建优雅、可扩展解决方面的能力。

必备准备事项

除了基本技能,要展现自己热衷创造新事物的激情

特别之处

公司统一招聘员工,而不是专门针对某个团队。面试成功入职后,会参加为期6周的“新兵训练营”,帮你快速适应大规模的代码库

@jiacai2050
Copy link
Owner Author

简历要点

描述工作经历时,尽量采用“使用Y实现了X,从而达到了Z效果”。比如:

通过实施分布式缓存功能减少了75%的对象渲染时间,从而使得用户登录速度加快了10%。

申请美国工作时,简历中不要包含年龄、婚姻状况或国籍等。公司并不想看到这些个人信息,因为怕惹上不必要的麻烦。

@jiacai2050
Copy link
Owner Author

行为问题

在回答面试官的问题时,不只是在讲述一个与该问题密切相关的故事,更是在向别人展示自我。所以,请用心思索每个故事都能体现出自己的哪些特性。

1. 有哪些缺点

不要太空泛,应该提到真实、合乎情理的缺点,然后话锋一转,强调自己是如何克服这些缺点的。比如:

有时候,我对细节关注不够,好的一面是反应迅速,执行力强。有鉴于此,我总是会找其他同事帮忙检查自己的工作,确保不出错。

2. 应该问面试官问题,具体可分为三类:

  • 真实类
    • 每天有多少时间花在写代码上?
    • 一周开几次会?
    • 团队协作怎么样?
  • 有见地的问题
    • 我注意到你们使用了X技术,请问你们是如何处理Y问题的?
    • 为什么你们的产品选择使用X协议而不是Y协议?据我所知,虽然X有A、B等优势,但是存在C的问题,所以其他公司没采用
  • 富有激情的问题
    • 我对可扩展性很有兴趣,请问你从事过分布式系统方便的工作吗?有哪些机会可以学习这方面的知识?
    • 我对X技术不是很熟悉,不过听上去是个不错的解决方案,你能给我讲讲它的工作原理吗?

回答问题时,切忌

  1. 力求具体,切忌自大
  2. 省略细枝末节
  3. 回答条理清晰
常见问题 项目1 项目2 项目N
最难的部分
有什么收获
有趣的部分
最难解的bug
最享受的过程
与团队成员的冲突

@jiacai2050
Copy link
Owner Author

技术面试

1. 如何练习

  • 尽量独立解题
  • 在纸上编写算法代码
  • 在纸上测试代码
  • 将代码照原样输入计算机

2. 需要掌握的知识

数据结构 算法 概念
链表 广度优先算法 位操作
二叉树 深度优先算法 单例设计模式
单词查找树 二分查找 工厂设计模式
归并排序 内存(堆和栈)
队列 快速排序 递归
向量/数组列表 树的插入/查找等 O时间分析
散列表

上述各项主题,务必掌握它们的具体实现与用法,应用场景、空间和时间复杂度。

  • 数据结构与算法,要练习从无到有的实现
  • 面试题中经常出现散列表,冲突如何解决

3. 2的幂表

2的幂 准确值 近似值 X字节转化成MB、GB
7 128
8 256
10 1024 一千 1K
16 65536 64K
20 1048576 一百万 1MB
30 1073741824 十亿 1GB
32 4294967296 4GB
40 1099511627776 一万亿(trilion) 1TB

有了这个表,就能够做速算。例如:

一个将每个32位整数映射为布尔值的散列表可以把一台计算机的内存填满。

4. 需要知道C++、Java或其他编程语言的细节吗?

大公司不是特别注重,小公司会有要求

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant