技术面试的主题
1.简要自我介绍:
- 姓名、学校、专业
- 做过的项目与实习
- 个人主要成就
2.技术评估:
- 构建与开发算法
- 编程
- 计算机基础知识
- 数据结构
- 现实世界问题解决能力
- 设计问题(主要针对博士生)
没有脑筋急转弯问题(由于这不能反映你的编程能力)
3.你对面试官的问题
怎样准备技术面试
- 复习计算机基础知识-回忆你大一那年
- 复习算法和数据结构
- 练习写代码,特别假设你疏于练习;集中精力在你最强的语言上
1.练习在白板上或者白纸上写代码
2.我们须要的是实际的代码:高质量、高效率、高简洁、无打字错误
3.语言选择不是问题-面试官会让你自己选你最强的语言编程
技术面试中的要点
两条原则
1.谷歌并非在找那种已经精通某种技能、能够解决对应问题的project师。
2.谷歌要找的是那种有热情和能力去解决他们从未遇到的问题的project师。
相对于知识本身,谷歌更加重视你的系统思考、高速学习能力、口头表达能力和品格。
谷歌关心你是怎样解决这个问题的。把你想的说出来。并提出问题。
- 我们的问题是深入全面的。
我们想知道你是怎样思考复杂问题的。
- 能给出正确答案非常好。但不是必须的-你的思考过程是最重要的。
假设面试官问你的问题,你已经之前在网上看到过。应该怎么办?
诚实说出来。
面试官会转而考察你在已知方案情况下。解决这个问题的速度。
比给出正确答案更重要的是
当我们问了一个技术问题,我们希望你:
- 把问题分类
- 高速先提出一个简单的解决方式
- 优化你的解决方式
- 与面试官交流你的思路
1.你的解决思路与解决方式相同重要
2.提出如果并合理判断
3.提出多种多样的解决思路
两个技术面试样题
1.“Reverse the words in a sentence”
你可能非常快指出这是个逆序问题。给出了你的解决方式。
可是面试官关心的是,你真的看明确题目的要求了吗?是每一个字母都反过来,还是每一个词?你注意看了吗?这两者的处理方式同样吗?按词进行逆序,以什么作为分隔符呢?标点符号应当怎样考虑?这句话须要输入吗?怎样完整设计含有输入功能的逆序程序呢?
等等,问题会逐渐加深。
2.“Describe a good algorithm for sorting amillion numbers”
这题也是一样,你会记得问面试官数字的类型吗?是int还是float?你用什么算法?各自的时间、空间复杂度是多少?你的程序预计消耗内存是多少?million变成trillion应该怎么做?多线程应当怎样设计?若10台电脑一起跑,有1台死机了怎么办?假设是断网了怎么办?
由于是让你解决实际的问题,所以这些问题都要考虑进去。问题的深度会逐渐加深。
最后是关于在线測试的注意事项,如图1
图1
以及网申的渠道,如图2
图2
欢迎參与讨论并关注本博客和微博以及知乎个人主页兴许内容继续更新哦~
转载请您尊重作者的劳动,完整保留上述文字以及文章链接。谢谢您的支持!