先介绍下我的情况:通信背景,工作一年多不到两年。之前一直在做C++的MFC软件界面开发工作。公司为某不景气的国企研究所。(喏,我的工作经验很水:1是方向不对;2是行业有偏差)。然后目前是在寻找Python后端开发这一块的工作,使用的框架为django;

之前一直通过CSDN以及其他几家技术博客/论坛吸收大家的经验,在感激之余,也想输出点什么,造福大家,因此就有了这篇水文,希望大家能够多多吸取我的经验教训,早日找到一份自己满意的工作!


面试的几家:北京的两家创业公司,规模均在40-50人之间;果壳(止步于电话面,拉钩投的);知乎(止步于电话面,论坛发帖后的内推);爱奇艺(拉钩上投的);杭州的网易(同学内推)。

面试这一轮下来,最大的感受就一个:平时一定要坚持每天都码点代码。就算再烂的项目,也要坚持上传github。。真的,只要你能坚持一周有5天以上都能持续上传Git,半年下来,面试官绝对对你刮目相看。

其他感受:不同的公司着重点都不一样,不过真的就如这篇博文的博主所说,木桶原理,哪块都不能少。我就是因为平时只关注做自己的小博客系统,而没做其他的部分,导致爱奇艺倒在了手写代码上面…哎,忧伤。。平时多刷刷leetcode,看看剑指offer/面试金典,都是套路啊~~

面试这几家公司所遇到的面试/笔试题,目前还能记住的如下。虽然可能绝大部分都是基础,但希望大家不要只是看看就过去了,最好还是假装你被问到这个问题,你来把答案说出来或写出来:(不按公司分了)

python语法以及其他基础部分

可变与不可变类型; 
浅拷贝与深拷贝的实现方式、区别;deepcopy如果你来设计,如何实现; 
__new__() 与 __init__()的区别; 
你知道几种设计模式; 
编码和解码你了解过么; 
列表推导list comprehension和生成器的优劣; 
什么是装饰器;如果想在函数之后进行装饰,应该怎么做; 
手写个使用装饰器实现的单例模式; 
使用装饰器的单例和使用其他方法的单例,在后续使用中,有何区别; 
手写:正则邮箱地址; 
介绍下垃圾回收:引用计数/分代回收/孤立引用环; 
多进程与多线程的区别;CPU密集型适合用什么; 
进程通信的方式有几种; 
介绍下协程,为何比线程还快; 
range和xrange的区别(他妹的我学的py3…); 
由于我有C/C++背景,因此要求用C来手写:将IP地址字符串(比如“172.0.0.1”)转为32位二进制数的函数。

算法排序部分

手写快排;堆排;几种常用排序的算法复杂度是多少;快排平均复杂度多少,最坏情况如何优化; 
手写:已知一个长度n的无序列表,元素均是数字,要求把所有间隔为d的组合找出来,你写的解法算法复杂度多少; 
手写:一个列表A=[A1,A2,…,An],要求把列表中所有的组合情况打印出来; 
手写:用一行python写出1+2+3+…+10**8 ; 
手写python:用递归的方式判断字符串是否为回文; 
单向链表长度未知,如何判断其中是否有环; 
单向链表如何使用快速排序算法进行排序; 
手写:一个长度n的无序数字元素列表,如何求中位数,如何尽快的估算中位数,你的算法复杂度是多少; 
如何遍历一个内部未知的文件夹(两种树的优先遍历方式)

网络基础部分

TCP/IP分别在模型的哪一层; 
socket长连接是什么意思; 
select和epoll你了解么,区别在哪; 
TCP UDP区别;三次握手四次挥手讲一下; 
TIME_WAIT过多是因为什么; 
http一次连接的全过程:你来说下从用户发起request——到用户接收到response; 
http连接方式。get和post的区别,你还了解其他的方式么; 
restful你知道么; 
状态码你知道多少,比如200/403/404/504等等;

数据库部分

MySQL锁有几种;死锁是怎么产生的; 
为何,以及如何分区、分表; 
MySQL的char varchar text的区别; 
了解join么,有几种,有何区别,A LEFT JOIN B,查询的结果中,B没有的那部分是如何显示的(NULL); 
索引类型有几种,BTree索引和hash索引的区别(我没答上来这俩在磁盘结构上的区别); 
手写:如何对查询命令进行优化; 
NoSQL了解么,和关系数据库的区别;Redis有几种常用存储类型;

Linux部分

讲一下你常用的Linux/git命令和作用; 
查看当前进程是用什么命令,除了文件相关的操作外,你平时还有什么操作命令; 
(因为我本人Linux本身就很水,只会基本的操作,所以这部分面试官也基本没怎么问。。反正问了就大眼瞪小眼呗)

django项目部分

都是让简单的介绍下你在公司的项目,不管是不是后端相关的,主要是要体现出你干了什么; 
你在项目中遇到最难的部分是什么,你是怎么解决的; 
你看过django的admin源码么;看过flask的源码么;你如何理解开源; 
MVC / MTV; 
缓存怎么用; 
中间件是干嘛的; 
CSRF是什么,django是如何避免的;XSS呢; 
如果你来设计login,简单的说一下思路; 
session和cookie的联系与区别;session为什么说是安全的; 
uWSGI和Nginx的作用; 
(我发现基本不问django实现细节相关的东西。。或者问也问的很少,哎,之前准备的方向完全错了)


洋洋洒洒写了一个小时,发现还是有很多细节问题都已经忘了。。哎,自己的笔记做的还是不行。不过这些问题如果你能都答上来,起码我觉得你应该可以去试试面试初级web后端了。。good luck!

AyoCross

2016.02.22晚,于杭州,风雨中被网易虐后写成。

转载关于Python Web后端开发面试心得的更多相关文章

  1. 杂记:腾讯暑期实习 Web 后端开发面试经历

    今天面试(一面)腾讯暑期实习 Web 后端开发,一言难尽. 第一部分,常规的自我介绍. 介绍完,面试官问我对人工智能有什么理解?深度学习和机器学习的区别?对调参有什么见解?语音识别中怎样运用了机器学习 ...

  2. (java web后端方向)如何让你的简历为你争取到更多的面试机会,内容来自java web轻量级开发面试教程

    我们在做培训时,会发现一个不合理的情况,一些程序员能力不错,在公司里也是技术牛人,但发出去的简历往往会石沉大海,没有回复.对于刚毕业的大学生或工作年限在2年之内的程序员,这个情况会更严重. 这种情况下 ...

  3. java web轻量级开发面试教程

    最近面试java后端开发的感受:如果就以平时项目经验来面试,通过估计很难——再论面试前的准备 在上周,我密集面试了若干位Java后端的候选人,工作经验在3到5年间.我的标准其实不复杂:第一能干活,第二 ...

  4. java web轻量级开发面试教程内容精粹:哪些简历得不到面试机会

    看到一本较好的实践性比较强的书,java web轻量级开发面试教程,里面的一些内容很有实践意义. 问题点 很难获得面试机会的原因 学历不符,比如要求是本科以上,但学历是大专 学历是硬指标,所以达不到学 ...

  5. 从事务角度粗窥架构的可扩展性和可维护性:内容整理自java web轻量级开发面试教程

    大家多少了解过架构,也听说过使用架构后,代码和可维护性和重用性能大大提升.这里我们来通过一些关于事务的实例,来感性地体会下架构带来的在可维护性方面的便利.本文来是从 java web轻量级开发面试教程 ...

  6. 根据实践经验,讲述些学习Java web能少走的弯路,内容摘自java web轻量级开发面试教程

    在和不少比较上进的初级程序员打交道的过程中,我们总结出了一些能帮到合格程序员尽快进阶的经验,从总体上来讲,多学.多实践不吃亏.本文来是从 java web轻量级开发面试教程从摘录的. 1  哪些知识点 ...

  7. 2015腾讯暑期实习生 Web前端开发 面试经历

    [2015腾讯暑期实习生 Web前端开发 面试经历] 好吧,首先声明,我被刷了,应该是跪在二面 微信查到的面试状态一直呈现复试中 .. 整整四天了.. 看来是没希望了 不过也是一次经历,记录一下还是可 ...

  8. java web面试技巧,数据库面试,java web轻量级开发面试教程

    我最近看到一本比较好的讲java web方面面试的书,java web轻量级开发面试教程. 其中不仅用案例和视频讲述了Spring MVC,Hibernate, ORM等方面的技巧,而且还实际讲到了面 ...

  9. java web方面的面试问题,Spring MVC方面的面试问题,摘自java web轻量级开发面试教程

    本文摘自java web轻量级开发面试教程: https://baike.baidu.com/item/Java%20Web%E8%BD%BB%E9%87%8F%E7%BA%A7%E5%BC%80%E ...

随机推荐

  1. Centos7中离线安装DockerCE最新版

    一.简述 离线在Centos7中部署DockerCE. 二.步骤 (1)在有外网的计算A上执行: 1.配置安装源存放路径 mkdir -p /root/docker-ce-local &&am ...

  2. Python实现多进程

    Python可以实现多线程,但是因为Global Interpreter Lock (GIL),Python的多线程只能使用一个CPU内核,即一个时间只有一个线程在运行,多线程只是不同线程之间的切换, ...

  3. RabbitMQ 学习专栏

    RabbitMQ 官网:http://www.rabbitmq.com/ 原创博文 1.揭开消息中间件RabbitMQ的神秘面纱 2. RabbitMQ 服务器之下载安装 3. RabbitMQ 之修 ...

  4. vue 实站技巧总结

    多个页面都使用的到方法,放在 vue.prototype上会很方便 刚接触 vue的时候做过一件傻事,因为封装了一个异步请求接口post,放在 post.js文件里面,然后在每个需要使用异步请求的页面 ...

  5. Python 简单入门指北(一)

    Python 简单入门指北(一) Python 是一门非常容易上手的语言,通过查阅资料和教程,也许一晚上就能写出一个简单的爬虫.但 Python 也是一门很难精通的语言,因为简洁的语法背后隐藏了许多黑 ...

  6. 【翻译】Apache Shiro10分钟教程

    本文为翻译文,原文地址:http://shiro.apache.org/10-minute-tutorial.html 介绍 欢迎来到Apache Shiro的10分钟教程! 通过这个教程,你会明白一 ...

  7. 关于网站中引用COM组件的部署问题

    网站中引用了(PPT V14.0,即部署的服务器需要安装Office2010的)COM组件, 因此该功能对服务器有一定的环境要求: 1.安装Office2010,并激活. 2.配置: 1)开始-运行- ...

  8. windows下telnet命令不好用解决方案;

    1.按网上说的windows下打开功能,telnet客户端打钩是必须的: 2.如果还不行,找到telnet.exe:然后把此路径添加到环境变量path下即可: ps:telnet的退出:quit命令:

  9. C语言 · 8皇后问题改编

    8皇后问题(改编) 问题描述 规则同8皇后问题,但是棋盘上每格都有一个数字,要求八皇后所在格子数字之和最大. 输入格式 一个8*8的棋盘. 输出格式 所能得到的最大数字和 样例输入 1 2 3 4 5 ...

  10. 【OSPF】防环机制详解

    我们在提到OSPF的时候,时常喜欢说的一句话就是,OSPF能够计算出无环的路由,那么OSPF究竟是如何规避路由环路的呢?OSPF与距离矢量路由协议不同,运行OSPF的路由器之间交互并不是路由信息,而是 ...