先介绍下我的情况:通信背景,工作一年多不到两年。之前一直在做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. VMware中虚拟机与主机不能ping通解决办法

    先去看看服务全部启动了没? VMware相关服务启动关闭脚本     启动了还报错,接着往下看......     一.如果是桥接模式,那么 可能性1:虚拟机防火墙禁ping,请关闭虚拟机防火墙重试: ...

  2. HashSet代码分析

    HashSet (jdk 1.7)的继承关系如下: HashSet是使用HashMap实现的一个没有重复元素的集合.HashSet用法如下: HashSet<String> hashSet ...

  3. 海外VPS

    缘由 国内从ISP拿到的只能是内网IP,当然如今IPv4地址紧张导致的也能够理解,使用免费DDNS能够同样也能将内网通过端口映射将服务发布外网.但是千万不要小瞧了ISP的觉醒,通过限制上行带宽(ADS ...

  4. 开源中文分词工具探析(七):LTP

    LTP是哈工大开源的一套中文语言处理系统,涵盖了基本功能:分词.词性标注.命名实体识别.依存句法分析.语义角色标注.语义依存分析等. [开源中文分词工具探析]系列: 开源中文分词工具探析(一):ICT ...

  5. vim:放弃hjkl

    vim放弃使用hjkl,可以加快文本的编辑速度,不信,看我摘录的文章:http://vimcasts.org/blog/2013/02/habit-breaking-habit-making/ Wor ...

  6. James 如何作为服务在后台启动

    james 启动后是在前台运行的,就像你跑一个微服务,前台运行显然不合理,关闭ssh后就会断开,所以我们得配置在后台,使用service配置即可 配置 james/bin 下的phoenix.sh,配 ...

  7. 【宣讲】德州科技职业学院宣讲关于IT领域趋势分析

    12月25日,AICODER马伦老师受德州科技职业学院校领导的邀请,到德州科技职业学院青岛校区洽谈新型的校区合作,创新现有的职业教育的传统模式的束缚,探索新型的职业教育直接跟企业实习实战结合的新型职业 ...

  8. python输出有色记录

    一.第三方模块coloredlogs # Create a logger object. import logging logger = logging.getLogger('your-module' ...

  9. 搭建hbase1.2.5完全分布式集群

    简介 有一段时间,没写博客了,因为公司开发分布式调用链追踪系统,用到hbase,在这里记录一下搭建过程 1.集群如下: ip 主机名 角色 192.168.6.130 node1.jacky.com ...

  10. C语言 · 礼物盒

    礼物盒 分值: 20 小y 有一个宽度为 100cm,高度为 20cm,深度为 1cm 的柜子,如下图. 小y 还有 36 个礼物盒,他们的深度都为 1cm. 他们对应的宽度和高度如下,单位(cm). ...