对于招聘渠道的选择,如果有小伙伴的内推那是最好的,另外建议多注册几个app,多管齐下的去寻找面试机会,比如拉勾、boss直聘、猎聘等等。一些想去的公司的官网的招聘页,也是一个不错的信息来源。
作为技术面试,该如何去复习准备面试呢,我觉得可以从以下几点去考虑。
数据结构与算法
为什么把这一块放在第一个讲,因为这是技术面试里非常重要,但是平时工作中又最容易忽视的一块。都说「面试造航母,工作拧螺丝」,如果不是算法岗,程序员在日常工作中算法使用场景非常有限,但这就是面试考察的一个重点。
我大概面了十几家公司,基本每家公司都会考一些算法题,或者让你说一下思路,或者直接手写程序,如果没有事先准备过,会特别的不适应,尤其是白板算法那块。
所以,我的准备建议是,面试前至少前一周,就要花时间去练习算法题,保持手感了。
首先强推leetcode网站,中文站是https://leetcode-cn.com/。leetcode是非常有名的刷题网站,里面汇聚了各大企业的经典算法题,而且可以在线提交代码,自定义测试用例,查看其他人的题解等等。如果你觉得中文站上面的题解没有自己想要的,也可以看一下外文站https://leetcode.com/ ,他们的题目顺序都是一样的,只是中文站在本土化这方面更强一点。
如果因为时间紧迫,我建议你针对以下数据结构和算法的知识点进行重点复习:
-
各种排序算法,冒泡排序,堆排序,快速排序等,时间复杂度空间复杂度分析,能做到手写。
-
常用数据结构。链表、二叉树、堆、栈等等。
-
经典算法题。(待整理)
基础知识
任何一门技术面试,基础知识一定是重中之重。对于python程序员面试来说,我觉得下面三块内容比较重要,考察的频率也非常高。
语言基础
可变对象、不可变对象、装饰器、迭代器和生成器、线程和进程、魔术方法、动态解释性、元类等。
web基础
http请求、状态码、网络安全、django处理请求的顺序、cookie和session
数据库
mysql的事务、索引、锁、性能调优,nosql数据库中redis考察的比较多。
Python基础视频
1-1 Linux基础
1-2 python基础
1-3 面向对象
1-4 项目飞机大战
这些都是在学习python基础过程中参考和学习的视频,如果你有需要我都可以分享出来!
一般对应届生来说,基础知识很重要。对于社招来说,项目经验是非常重要的一块内容。
我建议可以从下面几个角度去准备自己的项目:
项目介绍
推荐STAR模型。
S——situation,项目是什么背景下产生的 T——task,你的任务是什么 A——action,你怎么做的 R——result,结果如何
项目中的难点、闪光点
我相信每一个真实做过自己的项目的人,肯定会对自己的项目有所思考。总结一下自己在这个项目里最难的地方,以及最精彩的地方,也可以使用上面的STAR模型。
项目框架
有的面试官会要求你在白纸上把项目的框架图或者设计图画出来,这个也可以提前准备下,做到条理清晰,临场画的话很容易乱。
Python中高级视频(就业项目)
这些都是在准备面试过程中参考学习python项目实战demo和源码,如果你有需要我都可以分享出来!
面试是一场艰难的战役,我发现在那种紧张对弈的交锋氛围中,我从来没有体会过所谓超常发挥的感觉,准备了100分,能把60分发挥出来就已经非常不错了。所以,建议每一个面试者都要提前把一些必问的东西(个人介绍、项目经验等等)提前准备好,并且模拟表达一下,以防临场紧张而忘词。
面试真题
因为自己大厂和创业公司都会去面,给我的感觉是,大厂的考察深度会更深一点,比如问你怎么用python定位一些内存满、CPU满的问题,怎么做mysql性能优化等等。而小公司问的更多是一些基础问题,以及看你之前经验的一个匹配度。
我这里从我亲身的面试经历,精选出了30道面试常考题,涉及到了python面试的方方面面,大家可以自行测试。
python基础
-
python是什么样的语言,和其他语言的区别。
-
python中的线程和进程,以及使用场景,你知道协程吗?
-
GIL是什么,为什么会有GIL,去掉会怎样,有了GIL为什么还要给程序加锁?
-
迭代器、可迭代对象、生成器分别是什么?生成器的作用和使用场景?
-
python中的装饰器是什么?如何实现?使用场景?
-
python中的元类是什么?
-
python中的可变对象和不可变对象之间的区别。
-
python的魔术方法你知道哪些,new,init,call的区别是什么
-
django的中间件是什么
-
celery的原理,如何配置worker的权重
项目
-
如何定位内存过高或CPU过高的问题
-
画一下你的项目的结构
-
项目中你遇到的最大的困难是什么,是如何解决的?
-
项目中你最有成就感的地方是什么?
-
你业余是怎么学习编程的?看哪些书?有自己做过什么项目?
web
-
HTTP/GET/POST/PUT/PATCH之间的区别
-
状态码的含义以及出现场景,301,302,404,500,502,504等
-
cookie和session的区别和联系
-
从url请求到返回,中间经历了什么
-
HTTP和HTTPS的区别,HTTPS如何进行加密的
最后
不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~
给大家准备的学习资料包括但不限于:
Python 环境、pycharm编辑器/永久激活/翻译插件
python 零基础视频教程
Python 界面开发实战教程
Python 爬虫实战教程
Python 数据分析实战教程
python 游戏开发实战教程
Python 电子书100本
Python 学习路线规划
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!