【python面试指北】8. 系统设计&总结

系统设计三大要素

使用场景和限制条件

  • 买这个系统是在什么地方使用的
  • 用户估计多少,至少要能支撑多少用户
  • 估算并发qps

数据存储设计

  • 按需设计数据表,需要哪些字段,使用什么类型
  • 数据库选型,是否需要持久化
  • 如何优化,如何设计索引,是否可以使用缓存

算法模块设计

算法解决问题的核心。程序= 算法+数据结构。系统=服务+存储

  • 需要哪些接口,接口如何设计
  • 使用什么算法或模型
  • 不同实现方式之间的优劣对比,如何取舍

面试经验

python就业

  • python就业面广:爬虫、运维、数据分析、后端、AI等,找准兴趣
  • 重视基础,淡化语言

面试准备

  • 复习基础(算法+数据库+网络),查漏补缺
  • 搜索意向公司面经,了解对方公司喜欢问什么
  • 重基础,没事都刷题,很多公司越来越重视算法数据结构

简历投递

广泛撒网,重点捕鱼

  • 多投递和面试一些公司,争取多拿几个offer
  • 从易到难,可以先从小公司开始面试
  • 了解对方所用到的技术和业务,了解面试重点

面试环节

坦然面对,友好交流

  • 一般技术可能有三面(基础+项目)
  • 很多公司基本都要手写代码
  • 引导交流,察言观色,尽量找自己擅长的话题聊,实事求是,防止挖坑

面试之后

总结问题,查漏补缺。多复盘,多总结经验

  • 总结经验
  • 合理定位,面试时候一件很看运气的事,面不过不代表能力不行
  • 扎实的基础+强悍的编码能力可以大幅提升面试成功率

居安思危

工作了就稳定了?

  • 关注经济环境,尽量进入公司的核心业务
  • 持续学习,保持职场竞争力
  • 算法题不能丢下,长时间不练习手生

指北总结

python基础高频考点

  • python特性:装饰器、生成器与协程、异常处理
  • 常用内置模块:collections灯膜
  • Cpython解释器:GIL,内存管理

算法和数据结构

学会手写算法题

  • 常用的内置结构:list/tuple/set/dict,collections模块
  • 常考算法:快排、归并、堆排序等高级排序算法
  • 常考数据结构:链表,二叉树,栈,队列

编程范式

  • 面向对象
  • 装饰器模式
  • 单例模式

操作系统

  • top/kill/ps
  • 线程和进程的区别
  • 操作系统内存管理机制

网络

  • TCP/UDP/HTTP
  • 多路复用和并发编程
  • python并发网络框架Tornado/Gevent/Asyncio

数据库

  • Mysql基础和索引原理
  • SQL语句编写
  • 缓存,redis的使用和原理

web

  • wsgi
  • 网络安全 SQL注入/XSS/CSRF
  • RESTful

系统设计

  • 三要素:场景限制、数据存取设计、算法实现设计

你可能感兴趣的:(【python面试指北】8. 系统设计&总结)