今年的春招已经开始了,很多小伙伴收获不错,有的已经拿到了心仪的 offer。
各大论坛和社区里也看见不少小伙伴慷慨地分享了常见的面试题和八股文,为此咱这里也统一做一次大整理和大归类,这也算是划重点了。
俗话说得好,他山之石,可以攻玉,多看多借鉴还是有帮助的,这次各互联网大厂在疯狂招人!
面试经历 (总用时1小时)
今天受约去美团复试了Python开发,公司主要的项目是做自动化测试系统。早上匆匆吃了早餐坐了20站地铁来到了瑞普大厦C1一楼,进去是有门禁的,拿身份证在一楼的机器上输入预约码,会给一张纸上面有二维码,刷二维码就可以进去。来到八楼还是有门禁,真的很无语,给美团品质部打了电话,她才给我开的门,工作环境是挺不错的。话不瞎扯上题才是最关键的,而且也可以给自己今天的面试一个总结。
1.首先做个自我介绍
2.自己做过的每个项目提一个问题,要求详细具体阐述
3.Python的内存管理机制和垃圾清理机制
4.MySQL数据库如何插入或修改一个字段
5.Python2和Python3的区别
6.Python3是用什么编码的,Python3转码的函数
7.Nginx如何用一个IP部署服务器
8.列举列表和字典中的所有方法
9.如何利用js写多线程
10.Django如何实现一个页面的跳转
11.socket编程有哪几种方式,具体如何实现的
12.这里有一支笔,请列举这支笔的10种用途
这里我自己做个自我总结吧,整体问的问题现在回头看也不是太难,我就不一一解答了。不过,问题问的大多比较笼统,导致一个问题就是一定要有自己答题的逻辑性,不要因为面试紧张或者问的问题很宽泛而无从下手,乱了分寸。
面试之前
市场环境
先说一下大环境,中国的互联网环境已经渐趋稳定成熟了,但初中级别的程序员依然很泛滥,高级程序员很缺失。所以想要在众多应聘者中脱颖而出,实力才是王道。
个人定位
我觉得,每一个招聘者都要对自己在市场上的位置做一个合理的评估,这样才能准确的知道自己想要找什么类型的公司,是大公司大平台呢,还是中小型企业呢,还是创业公司呢?评估的依据,取决于自己的实力,职业道路的方向,以及对市场的认识。
不过如果不清楚也没有关系,投递公司的时候可以各类公司都投一投,大中小公司都去面一面,总之,不要把鸡蛋放在一个篮子里,多给自己制造一些机会。面试是一个很好的去接触外界,了解自己能力水平的过程,可以帮助你对市场环境有一个更清晰的认识。面试结束后通常有反问问题的环节,也可以把握住机会,多去问一问对方公司在做的东西,使用的技术栈等等。
对于我自己来说,我就把面试当成一个很好的检验自己的机会,同时让我有机会去和别的公司交流技术。所以说,平时在工作过程中,也可以隔三差五的出去面试一下,看看自己的能力水平几何,避免自己和市场脱节太久,以及温水煮青蛙的情况。
简历
接下来就是制作一份简历,关于如何制作一份简历,网络上的教程也很多了。我觉得技术简历的关键就是要把自己的做的比较出彩的项目,以及个人技术栈讲清楚,这些都是面试中问的比较频繁的几个点。另外因为自己痴迷于markdown,第一次尝试了markdown风格的简历,效果还不错,蛮清晰的。
渠道
对于招聘渠道的选择,如果有小伙伴的内推那是最好的,另外建议多注册几个app,多管齐下的去寻找面试机会,比如拉勾、boss直聘、猎聘等等。一些想去的公司的官网的招聘页,也是一个不错的信息来源。
面试准备
作为技术面试,该如何去复习准备面试呢,我觉得可以从以下几点去考虑。
数据结构与算法
为什么把这一块放在第一个讲,因为这是技术面试里非常重要,但是平时工作中又最容易忽视的一块。都说「面试造航母,工作拧螺丝」,如果不是算法岗,程序员在日常工作中算法使用场景非常有限,但这就是面试考察的一个重点。
我大概面了十几家公司,基本每家公司都会考一些算法题,或者让你说一下思路,或者直接手写程序,如果没有事先准备过,会特别的不适应,尤其是白板算法那块。
所以,我的准备建议是,面试前至少前一周,就要花时间去练习算法题,保持手感了。
首先强推leetcode网站,中文站是https://leetcode-cn.com/。leetcode是非常有名的刷题网站,里面汇聚了各大企业的经典算法题,而且可以在线提交代码,自定义测试用例,查看其他人的题解等等。如果你觉得中文站上面的题解没有自己想要的,也可以看一下外文站https://leetcode.com/ ,他们的题目顺序都是一样的,只是中文站在本土化这方面更强一点。
如果因为时间紧迫,我建议你针对以下数据结构和算法的知识点进行重点复习:
-
各种排序算法,冒泡排序,堆排序,快速排序等,时间复杂度空间复杂度分析,能做到手写。
-
常用数据结构。链表、二叉树、堆、栈等等。
-
经典算法题。(待整理)
基础知识
任何一门技术面试,基础知识一定是重中之重。对于python程序员面试来说,我觉得下面三块内容比较重要,考察的频率也非常高。
- 语言基础
可变对象、不可变对象、装饰器、迭代器和生成器、线程和进程、魔术方法、动态解释性、元类等。
- web基础
http请求、状态码、网络安全、django处理请求的顺序、cookie和session
- 数据库
mysql的事务、索引、锁、性能调优,nosql数据库中redis考察的比较多。
项目经验
一般对应届生来说,基础知识很重要。对于社招来说,项目经验是非常重要的一块内容。
我建议可以从下面几个角度去准备自己的项目:
- 项目介绍
推荐STAR模型。
S——situation,项目是什么背景下产生的 T——task,你的任务是什么 A——action,你怎么做的 R——result,结果如何
- 项目中的难点、闪光点
我相信每一个真实做过自己的项目的人,肯定会对自己的项目有所思考。总结一下自己在这个项目里最难的地方,以及最精彩的地方,也可以使用上面的STAR模型。
- 项目框架
有的面试官会要求你在白纸上把项目的框架图或者设计图画出来,这个也可以提前准备下,做到条理清晰,临场画的话很容易乱。
入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


职业发展
作为一个代码打工仔,对于绝大部分程序员来说,想要成为牛逼的真正挣钱程序员的路还很长,一刻都不能懈怠。
我们无法从HR角度,或者技术leader的角度来臆测哪种状态的面试更能获取面试官青睐。但通过我们积攒的大量的面试经验,大家多少可以推断一些成为有竞争力的程序员的一些必要条件。
大佬云集、资料丰富
当初我在字节认识一个非常非常资深的前辈,他到字节比我早三年,但因为各种原因级别不是很高。我当时问他,既然你对现状如此不满,为什么不想着离开寻找更好的机会呢?
他沉思了片刻跟我说,他说我现在在这里虽然待着不顺心,但是我接触到的人都是非常优秀的。我遇到问题,还可以和你们讨论讨论。我如果出去了,我要是再遇到问题,可能连一个讨论的人都没有。
我当时听听只是觉得有道理,现在再回想起来,感受非常深刻。三观、格局、能力,能够进入大公司的,这三个方面一般都不会太差。别的不说,就拿个人能力而言,我曾出国出差过几个月,有幸见识了许多各种海外名校的同事,和他们学习交流人工智能,这真的让我AI有了更深层次的认识。
除了优秀的同事之外,大公司里往往还有丰富的内部文档和资料。我当时在字节内部看到了很多优秀的文章,也有很多优秀的技术沙龙和分享。现在想起来两年下来,也没有去过几次,文章和资料看得也不算多,现在想想颇为遗憾。别的不说,就拿推荐领域而言,近些年质量不错的论文往往都来源于大公司尤其是国内的大公司,以腾讯、华为和头条为主。除了公开的论文,公司内部还有很多技术相关的资料和文档,这些真的可以说是有价无市,非常珍贵。
文中所展示的资料全部都是免费分享,扫一扫下方CSDN官方认证微信二维码即可【保证100%免费
】
Python 知识手册
Linux 知识手册
爬虫查询手册
而且,这些资料不是扫描版的,里面的文字都可以直接复制,非常便于我们学习:
数据分析知识手册:
机器学习知识手册:
金融量化知识手册:
岗位内推、学习交流
我们大量需要前端岗位、python岗位、Java 岗位、Android 和 iOS 的开发岗位,工作地点:北京字节,欢迎校招社招扫描下方二维码找我内推
如果你觉得自己学习效率低,缺乏正确的指导,可以加入资源丰富,学习氛围浓厚的CSDN官方技术圈一起学习交流吧!