干货|大厂程序员来讲一下互联网公司技术面试的流程以及注意事项

企业一般通过几轮技术面试来考察大家的各项能力,一般流程如下:

一面机试:一般会考选择题和编程题

二面基础算法面:就是基础的算法都是该专栏要讲的

三面综合技术面:会考察编程语言,计算机基础知识 ,以及了解项目经历等等

四面技术boss面:会问一些比较范范的内容,考察大家解决问题和快速学习的能力

最后hr面:主要了解面试者与企业文化相不相符,面试者的职业发展,offer的选择以及介绍一下企业提供的薪资待遇等等

并不是说一定是这五轮面试,不同的公司情况都不一样,甚至同一个公司不同事业群面试的流程都是不一样的

可能 一面和二面放到一起,可能三面和四面放到一起,这里尽量将各个维度拆开,让同学们了解 技术面试需要做哪方面的准备。

我们来逐一展开分析各个面试环节面试官是从哪些维度来考察大家的

一面 机试

一面的话通常是 选择题 + 编程题,还有些公司机试都是编程题。

选择题:计算机基础知识涉及计算机网络,操作系统,数据库,编程语言等等

编程题:一般是代码量比较大的题目

一面机试,通常校招生的话,BAT的级别的企业 都会提前发笔试题,发到邮箱里然后指定时间内做完,一定要慎重对待,机试没有过,后面就没有面试机会了

机试通常是 选择题 + 编程题,还有些公司机试都是编程题

选择题则是计算机基础知识涉及计算机网络,操作系统,数据库,编程语言等等,这里如果有些同学对计算机基础心里没有底的话,可以去牛客网上找一找 历年各大公司的机试题目找找感觉。

编程题则一般是代码量比较大的题目,图、复杂数据结构或者一些模拟类的题目,编程题目都是我们这门课程会讲述的重点

所以也给同学们也推荐一个编程学习的网站,也就是leetcode

leetcode是专门针对算法练习的题库,leetcode现在也推出了中文网站,所以更方面中国的算法爱好者在上面刷题。这门课程也是主要在leetcode上选择经典题目。

牛客网上涉及到程序员面试的各个环节,有很多国内互联网公司历年面试的题目还是很不错的。

建议学习计算机基础知识可以在牛客网上,刷算法题可以选择leetcode。

二面 基础算法面

更注意考察的是思维方式,这一块和机试对算法的考察又不一样,机试仅仅就是要一个结果,对了就是对了不对就是不对。

而二面的算法面试面试官更想看到同学们的思考过程,而不仅仅是一个答案。

通常一面机试的题目是代码量比较大的题目,而二面而是一些基础算法

面试官会让面试者在白纸上写代码或者给面试者一台电脑来写代码,

一般面试官倾向于使用白纸,这样更好看到同学们的思考方式

应该用什么语言写算法题呢?用自己最熟悉什么语言,但最好是JAVA或者C++

如果不会JAVA或C++的话,那更建议通过做算法题,顺便学习一下。

如果想在编程的路上走得更远,掌握一门重语言是十分重要的,学好了C++或者Java在学脚本语言会非常的快,相当于降维打击

反而如果只会脚本语言,工作之后在学习高级语言会很困难,很多东西回不理解。

所以这里建议特别是应届生,大家有时间就要打好语言的基础, 不要太迷信用10行代码调用一个包解决100行代码的事,

因为这样也不会清楚省略掉的90行做了哪些工作。

这里建议大家 在打基础的时候 最好不要上来就走捷径。

简单代码一定要可以手写出来,不要过于依赖IDE的自动补全 。

例如写一个翻转二叉树的函数, 很多同学在刷了很多leetcode 上面的题目

但是leetcode上一般都把二叉树的结构已经定义好了,所以可以上来直接写函数的实现

但是面试的时候要在白纸上写代码,一些同学一下子不知道二叉树的定义应该如何写,不是结构体定义的不对,就是忘了如何写指针。

总之,错漏百出。所以基本结构的定义以及代码一定要训练在白纸上写出来

三面 综合技术面

综合技术面 一般从如下三点考察大家。

编程语言:这里是面试官考察编程语言掌握程度,如果是C++的话, 会问STL,继承,多态,指针等等 这里还可以问很多问题。

计算机基础知识:考察计算机方面的综合知识,这里不同方向考察的侧重点不一样,如果是后台开发,Linux , TCP, 进程线程这些是一定要问的。

在项目经验中 面试官想考察什么呢

项目经验主要从这三方面进行考察 技术原理、 技术深度、应变能力

考察技术原理, 做了一个项目,是不是仅仅调一调接口就完事,之后接口背后做了些什么?这些还是要了解的

考察技术深度,如果是后台开发的话,可以从系统的扩容、缓存、数据存储等多方面进行考察

考察应变能力,如果面试官针对项目问同学们一个场景,最为忌讳的回答是什么?“我没考虑过这种情况”。这会让面试官对同学们的印象大打折扣。

这个时候,面试官最欣赏的候选人,就是尽管没考虑过,但也会思考出一个方案,然后跟面试官进行讨论。

最终讨论出一个可行的方案,这个会让面试官对同学们的好感倍增。

通常应届生没有什么项目经验,特备是本科生,其实可以自己做一些的小项目。

例如做一个 可以联机的五子棋游戏,这里就涉及到了网络知识,可以结合着自己网络知识来介绍自己的项目。

已经工作的人,就要找出自己工作项目的亮点,其实一个项目不是每一个人都有机会参与核心的开发。

也不是每个人都有解决难题的机会,这也是我们在工作中 遇到难点,要勇往直前的动力,因为这个就是自己项目经验最值钱的一部分。

四面 boss面

技术leader面试主要考察面试者两个能力, 解决问题的能力和快速学习的能力

考察解决问题的能力,面试官最喜欢问的相关问题:

1. 在项目中遇到的最大的技术挑战是什么,而你是如果解决的?

2. 给出一个项目问题来让面试者分析?

3. 如果你是学生,就会问在你学习中遇到哪些挑战?

这些都是面试官经常问的问题。

面试官可能还会给出一个具体的项目场景,问同学们如何去解决。

例如微信朋友圈的后台设计,如果是你应该怎么设计,这种问题大家也不必惊慌

因为面试官也知道你没有设计过,所以大家只要大胆说出自己的设计方案就好

面试官会在进一步指引你的方案可能那里有问题,最终讨论出一个看似合理的结果。

这里面试官考察的主要是针对项目问题,同学们是如何思考的,如何解决的。

考察快速学习的能力,面试官最喜欢问的相关问题:

1. 快速学习的能力 如果快速学习一门新的技术或者语言?

2. 读研之后发现自己和本科毕业有什么差别?

3. 在具体一点 面试官会问,如果有个项目这两天就要启动,而这个项目使用了你没有用过的语言或者技术,你将怎么完成这个项目?

换句话说,面试官会问:你如果快速学习一门新的编程语言或技术,这里同学们就要好好总结一下自己学习的技巧

如果你是研究生,面试官也喜欢问: 读研之后发现自己和本科毕业有什么差别?

这里要体现出自己思维方式和学习方法上的进步,而不是用了两三年的时间有多学了那些技术,因为互联网是不断变化的。

面试官更喜欢考察是同学们的快速学习的能力。

五面 hr面

终于到了HR面了,大家是不是感觉完事万事大吉了,这里万万不可大意,否则到手的offer就飞掉了。

要知道HR那里如果有十个名额,技术面留给通常留给HR的人数是大于十个的,也就是HR有选择权,HR会选择符合公司文化的价值观的候选人。

这里呢给大家列举一些关键问题

为什么选择我们公司?

这个大家一定要有所准备,不能被问到了之后一脸茫然,然后说 就是想找个工作,那基本就没戏了

要从技术氛围,职业发展,公司潜力等等方面来说自己为什么选择这家公司

有没有职业规划?

其实如果刚刚毕业并没有明确的职业规划,这里建议大家不要说 自己想工作几年想做项目经理,工作几年想做产品经理的

这样会被HR认为 职业规划不清晰,尽量从技术的角度规划自己。

是否接受加班?

虽然大家都不喜欢加班,但是这个问题 我还是建议如果手头没有offer的话,大家尽量选择接受了

除非是超级大牛手头N多高新offer,可以直接说不接受,然后起身潇洒离去

坚持最长的一件事情是什么?

这里大家最好之前就想好,有一些同学可能印象里自己没有坚持很长的事情,也没有好好想过这个问题,在HR面的时候被问到的时候,一脸茫然

憋了半天说出一个不痛不痒的事情。这就是一个减分项了

如果校招,直接会问:期望薪资XXX是否接受?

这里大家如果感觉自己表现的很好 给面试官留下的很好的印象,可以在这里争取 special offer,或者ssp offer

这都是可以的,但是要真的对自己信心十足。

如果社招,则会了解前一家目前公司薪水多少 ?

这里大家切记不要虚报工资,因为入职前是要查流水的,这个是比较严肃的问题。

其实HR也不会只聊很严肃的话题, 也会聊一聊家常之类的,问一问 家在哪里?在介绍一下公司薪酬福利待遇,这些就比较放松了

总结

这里面试流程就是这样了, 还是那句话 不是所有公司都按照这个流程来面试,但是如果是一线互联网公司,一般都会从我说的这几方面来考察大家

大家加油!

如果感觉有所收获,欢迎关注我的微信公众号「代码随想录」,BAT一线工程师记录自己对技术的见解和思考

好文要顶 关注我 收藏该文  

原文地址:https://www.cnblogs.com/youngyangyang04/p/12702281.html

时间: 2024-10-03 01:37:42

干货|大厂程序员来讲一下互联网公司技术面试的流程以及注意事项的相关文章

干货!程序员进好公司的面试技巧

经过一个多月的面试求职,终于获得了一个非常满意的工作机会.作为一个有着两年多iOS开发经验的程序员,第一次裸辞跳槽,对面试求职可谓有一番全新的体会. 技能好不一定就保证你能进入好公司,有时候也需要很多技巧和方法的!最后我能够顺利进入广东地区比较出名的互联网公司,并获得相当可观的待遇,其实是花了很多心思去准备的. 下面是我对这段时间以来求职经验的总结,也包括我此前整理的技巧攻略,希望能帮在寻觅好岗位的程序员同胞们,早日找到最满意的公司. 一.写好简历是拿高薪offer的敲门砖 一个优秀程序员的思维

大厂程序员的一天是如何度过的?

阅读本回答大概需要 5 分钟. 小李是一位大公司里的程序员,虽然已经在公司上班一年了,但也只能算是个新人,毕竟 title 摆在那里. 小李做的项目不算核心项目,但是至少在技术栈上还是比较有有深度的,所以小李对现在的工作还算满意,就是工作压力大了点. 这一天早上,小李照常准时起床,因为家里离公司有半小时的车程,所以他不得不在七点多就匆忙地从床上爬起来,很熟练地完成了洗漱.吃早餐.换衣服等动作,然后踏上挤地铁的上班之路. 每天这个时候,小李都要从熙熙攘攘的人群中穿过,直到最终的目的地,那就是公司.

Warning!程序员们小心被技术绑架

通常我们说程序员需要在某个技术方向上积累到一定的厚度,要能够运用技术有效地解决实际问题.可是当程序员在某一项技术上浸淫时间长了之后,却经常会出现另外的问题,那就是:看待问题时受限于自身的技术积累. 我打算从几个方面来谈这个话题. 一定有某一项技术最适合解决某个问题 有的人对 C++ 比较熟悉,在开始一个新产品或新项目,比如做一个 Android App ,就会考虑怎么用 C++ 来实现目标,于是就会去找可以用在移动端的 C++ 框架,比如 Qt ,比如 NDK + Native Activity

PHP入门培训教程PHP程序员要掌握哪些技术

总有那么一群人,学个半吊子就急着找工作,面试题做不出来,吹牛都吹不来所以你只能低工资.PHP程序员要掌握哪些技术?那么兄弟连PHP培训 就来小结一下. 面试前请参考:(前三阶段完成80%在北京月薪5k+) 第一阶段: (PHP+MySQL核心编程) 面向对象编程 MySQL数据库, MySQL的优化细节. HTTP协议,http也是我们web开发的基石.对我们了解PHP底层机制有很大帮助,做到知其然,还知其所以然. 数据库编程(mysql mysqli pdo), MySQL扩展库.MySQLI

阿里资深技术专家:在各阶段中,3年经验的程序员应该具备哪些技术能力(进阶必看)

3年工作经验的Java程序员应该具备哪些技术能力,这可能是Java程序员们比较关心的内容.我这里要说明一下,以下列举的内容不是都要会的东西,但是你掌握得越多,最终能得到的评价.拿到的薪水势必也越高. 1.基本语法 这包括static.final.transient等关键字的作用,foreach循环的原理等等.今天面试我问你static关键字有哪些作 用,如果你答出static修饰变量.修饰方法我会认为你合格,答出静态块,我会认为你不错,答出静态内部类我会认为你很好,答出静态导包我会对你很满 意,

五年C语言程序员,是深耕技术还是走管理?

从进入程序员行列开始(2013年6月),到现在为止(2019年2月),已经有五年半了.    一路波折,已经从无知菜鸟走到了意识觉醒的老鸟了.    薪资变化情况如下: 2013年:2000元/月 (荆州沙市),数据库软件开发,开发了一套数据库管理软件,可以像Excel表格一样编辑数据表.2014年:3000元/月(汉口江岸),数据库恢复软件,用于解析文件系统和恢复数据.2015年:4000元/月(深圳龙华),图像算法,识别和自动处理公安证件.研发出了一套识别软件,自动裁切头像.2016年:80

程序员不能错过的技术知识图谱,进阶路上必备神器。

本文转载自李亚鹏 本文是鹏哥多年来积累和收集的技术知识技能图谱,有的是鹏哥原创总结的最佳实践,有的是小伙伴们的分享. 其实,每个秘籍图谱里面的内容都是互联网高并发架构师应该了解和掌握的知识.鹏哥索性就把这些图谱都收集在一起,并且进行了归类,便于大家查找和学习. 暂把标题定为:"史上最全的技术知识图谱秘籍",暗含着鹏哥的一个小目标:想把更多的技术图谱和思维导图汇集在一起,成为互联网上"最全的技术图谱". 这份技术知识图谱秘籍真的很棒,场主极力推荐分享给身边的技术人儿.

程序员的口头禅:技术上无法实现

「技术上无法实现」这句口头禅,我在过去多年的程序员职业生涯中经常听见,甚至我自己就曾说过很多次.最近当我再次听到有人说出这句话时,就不禁思考起来,为什么程序员爱说这句话呢?为什么曾经我也时不时说这句话呢? 不知 当我刚开始工作的第一年,我在一家银行客户现场工作.当时要给银行的出纳管理部做一个系统,这个系统有个功能就是上传各个国家的高清真假币鉴别对比图片,然后银行的出纳和柜员就可以在系统上学习各国家纸币的鉴别方式了. 针对这些高清纸币图片,客户为了怕别人盗取乱用,就要求必须对对图片做加背景水印的功

中高级PHP程序员应该掌握哪些技术?

本文出处:http://www.jb51.net/article/93317.htm 本文把php程序员划分为中.高级程序员两大类程序员,并针对这两大程序员应具备的技能进行分类探索. 中级PHP程序员  1.Linux 能够流畅的使用Shell脚本来完成很多自动化的工作:awk/sed/perl 也操作的不错,能够完成很多文本处理和数据统计等工作:基本能够安装大 部分非特殊的Linux程序(包括各种库.包.第三方依赖等等,比如MongoDB/Redis/Sphinx/Luncene/SVN之类的