三年左右的 Python 后端 , 大概要能到什么样到水平才合格啊

2018-03-12 19:57:42 +08:00
 huisezhiyin
比如你面试一个三年的 python 后端 大概会问哪些问题 或者觉得哪些东西非常重要呢?
19308 次点击
所在节点    Python
69 条回复
chenqh
2018-03-12 20:04:14 +08:00
没有女朋友的都合格?
jakobliao
2018-03-12 20:04:20 +08:00
hr ?
xpresslink
2018-03-12 20:29:22 +08:00
只问你三道题,如果不百度能直接答上来你就是合格的三年后端。
( 1 )协程优点和缺点是什么?
( 2 )类定义中使用了 __slot__属性能起到什么作用?
( 3 )什么叫弱引用?主要的用途是干什么?
IanPeverell
2018-03-12 20:45:14 +08:00
@chenqh 没有女朋友怎么面向对象编程?怎么写 python ?
Molita
2018-03-12 20:56:28 +08:00
@xpresslink 答不上来。。只有快一年。。
huntzhan
2018-03-12 21:08:07 +08:00
问语言细节很没意思的,特别是 Python 这种瞎搞也不会爆炸的语言(

如果实在要问,我大概会出这些题:
1. 描述一下 type 与 object 的关系。
2. 叙述以下 metaclass 的应用场景,给一个实现例子。
3. 描述以下 package 的打包过程以及常见的坑。
4. 谈一下你认为最好的 Pyhton based infrastructure 结构。
5. 如果要你设计 Tensorflow Python Client 的实现,你会怎么处理?
6. 谈一下 Python 的优势与劣势。
7. (现场看你答得怎么样再随机出题)
klgd
2018-03-12 21:51:01 +08:00
一个也不会,python 入门一个月
misaka19000
2018-03-12 21:58:05 +08:00
@xpresslink #3 已经背下来了 我现在已经是合格的后端了😊
welkinzh
2018-03-12 22:24:13 +08:00
马克一下
chenqh
2018-03-12 22:37:06 +08:00
@IanPeverell python 可是面向 pypi 编程啊
dreampython
2018-03-12 22:43:30 +08:00
非程序员,但也学了一段时间 python,说下自己的看法,针对有工作经验的面试,难道不是问你都做了哪些项目的哪些功能,然后根据你的回答去找一些知识点去考察这个人的技术水平?协程等 python 高级知识点,没有用到项目上,有考察的必要?
ilumer
2018-03-12 22:45:55 +08:00
@huntzhan 一题不会 gg
okzpy9425
2018-03-12 22:49:45 +08:00
@xpresslink 我应届。这几个都会。。。
okzpy9425
2018-03-12 22:51:05 +08:00
我看拉钩上面招聘的 python 向来都是要求精通的啊。。。三年怎么的也得能写出 flask 这种框架把。。 如果三年还搞不出来怎么好意思去大拉钩投简历呢。怎么好意思写精通呢。
Mojy
2018-03-12 22:57:49 +08:00
@xpresslink 2 年 python,表示一个也回答不上来
Mojy
2018-03-12 23:01:24 +08:00
我也在思考这个问题,工作快三年了,现在是 python django 方向,发现现在也就是一直增删改查,并没有什么提高,感觉这样下去迟早要被淘汰的,目前还没有想持续学习的方向,很着急,很害怕!
tangyouze
2018-03-12 23:24:04 +08:00
对于市面上普遍的 三年 python 后端 翻译一下大概就是能够实现一个比较抽象的任务 比如(独立完成实现一个登录系统)
同时写好完整的测试 在需求迭代的时候能够持续的发布 保证代码的质量~

对于这样的工作 语言的细节绝对不是考察的重点 换句话说 你百度 5 分钟就能搞明白的问题 都不会是我在面试的时候关注的重点 而且你的目的大约只是实现业务逻辑的话 其实用不到语言层面太多的特性的 (比如我们公司几十万行 python 后端代码 感觉从来都没用到过弱引用 __slot__ 连类的重载都很少用上~)

毕竟 大部分人的工作都不是写 Flask 框架 写 requests 库, 不过说回来 你得时刻保持一颗学习的心 万一哪天 CTO 拉你去写公司内部的 requests 库了呢

对于一个 3 年的后端, 我大致会考察以下这些点

* 基本的算法 数据结构 和解构问题的能力 大约等于能不能写一个棋类(随便什么棋类)的模拟
* 对代码的重构能力 (写出好的变量名称 /提取常用的组件)
* 代码的结构能足够的清晰 简洁 (从而能写出足够清晰简介的测试)
* 对框架的熟悉 (python 特有) 其实你本来用的别的语言 学学怎么用框架也是分分钟的事情 看两个 example 就上手了
* 学习能力
* 沟通能力
TesterCC
2018-03-12 23:53:36 +08:00
@Mojy 同样,目前虽然做过各种各样的小项目,但是重复度很高,业务也不算复杂,在市场上几乎没有竞争力,现在因不可抗力出来面试被各种被鄙视,一首凉凉送给自己。
stonymoon
2018-03-12 23:54:16 +08:00
@xpresslink 我刚学一年半,因为有学 Android 和写过协程爬虫,感觉都能答上来。(然而我后端很烂,觉得问题和后端没什么关系)
di94sh
2018-03-13 00:02:37 +08:00
@xpresslink 初学者
( 1 )协程优点:相对于进程省资源,相对于线程,没有共享数据段,更安全。缺点。。。
( 2 )插槽,只能使用插槽里声明的变量,控制动态添加变量。。
( 3 )弱引用不会增加引用计数,用途。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/437395

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX