- 这部分主要针对Python服务端面试和职业规划
- 后端知识是非常繁杂的,编程语言、数据库、算法、网络、架构等
- 当然,遇到菜的前端都得你自己写,写脚本、怼产品啥的就不用说了
- 基础主要分以下几篇:
- 面试技巧
- Python语言
- 算法和数据结构
- 编程范式篇
- 操作系统篇
面试技巧篇
- 得先有人面试你,去拉钩或者BOSS打听打听
- 岗位职责
- 职位要求
- 公司技术栈
- 字节和知乎用Python多,随便截个招聘看看吧:
- 看看上面的技术点你熟悉哪些?查漏补缺,针对不同公司技术栈编写不同简历(很真实)
- 如果你是应届,公司更关注的是你的学习能力和基础能力,工具的使用谁不能学呢?
- 平台决定成长,大公司体量大,遇到的问题多,成长快!
面试基础
- 应届问基础,社招看项目
- 一面问基础、二面问项目、三面问设计(高工)
- 目前,我个人是应届生,也面试过几次,基础知识这东西一定要经 常 回 顾
- 你别告诉我你懂了,你得能讲清楚,学第三遍的时候你有可能会发现第一遍的理解是错的,狭隘了、草率了!
- 要注重软实力,比如面试时先来个自我介绍,这在考察表达能力,平时可以组织好一个模板;沟通在开发过程中是很重要的,你需求都表达不清楚也太难顶了吧
- 总览一下Python技术栈
- 回答:你了解的Python后端技术栈都有哪些?
- 我们可以从web请求流程入手,侃侃而谈:
- 后面我们会先从基础部分开始,再按照上面的流程打牢技术栈,完美回答这个问题!
- 第一阶段的目标是:初级工程师
- 初级工程师基本要求
- 扎实的计算机理论基础
- 代码规范
- 能在指导下完成需求
简历内容
- 基本信息
- 姓名、学校、学历、联系方式
- 职业技能
- 语言、框架、数据库、开发工具等
- 关键项目经验
- 遇到的问题、技术难点等
- 自我评价
- 真诚为好,别吹别哭
- 简历加分项:
- 知名项目经验
- 技术栈匹配
- 开源项目(github、blog经常更新)
- 博客可以写读书笔记,技术总结
- 避坑:
- 内容精简、突出重点
- 注意格式:模板+PDF
- 信息真实不作假、无关内容少一些
自我介绍
-
主要内容
- 个人信息
- 掌握的技术,参与的项目
- 应聘岗位的看法和兴趣
-
行为面试技巧
- 行为面试:面对相似场景时人会倾向于重复过去的行为模式
- 评判语言表达、沟通、抗压能力
- 提问:说说你简历中的这个项目,回答可从四个方面:
层次 含义 情景 什么情况下发生的 任务 你是如何明确任务的,团队如何分工 行动 你做了哪些事情 结果 结果如何,带来了什么收获 - 伴随着还会有一些问题:建议自问自答自嗨,组织个表格:
- 最后一般都会问:你有啥要问我的吗?(这个必须有) ,我们要表现出兴趣
- 问工作内容(每天干嘛)
- 问公司技术栈
- 问团队结构(能不能开心工作学习)
- 问项目、业务(公司实力)
- 我好像以前都说没了,简直了,不能复吸…
-
面试技巧篇因为本人经历有限,不能吹不能黑,还是靠实践,最后摆出一道题目吧:
讲讲你觉得最有技术含量的项目(如果你项目太多只能这样)
Python语言篇
- Python是动态强类型语言
- 运行期确定数据类型(可以不指明类型,写代码爽)
- 不会发生隐式类型转换(是int不会变成str)
- 关于类型,有种说法叫鸭子类型
- 我们只关注功能,例如定义两个类,都实现同一功能(鸭子叫)
- 各类的对象自然是属于不同类型,但重要吗?鸭子能叫人也能叫
- 关于动态有两个概念
monkey patch
- 即运行时替换
- 例如gevent库需要修改内置的socket
- 自省
- 既然动态了,就要有运行时判断对象类型的能力
- python一切皆对象,可以用
type/id/isinstance
函数判断
ilist = [1,2,3] idict = dict(a=1) print(type(ilist)) # <class 'list'> print(type(idict)) # <class 'dict'> print(isinstance(ilist, list)) # True print(