首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
V2EX  ›  Python

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

  •  2
     
  •   huisezhiyin · 103 天前 · 6975 次点击
    这是一个创建于 103 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如你面试一个三年的 python 后端 大概会问哪些问题 或者觉得哪些东西非常重要呢?
    69 回复  |  直到 2018-03-16 09:30:27 +08:00
        1
    chenqh   103 天前
    没有女朋友的都合格?
        2
    jakobliao   103 天前 via Android
    hr ?
        3
    xpresslink   103 天前   ♥ 1
    只问你三道题,如果不百度能直接答上来你就是合格的三年后端。
    ( 1 )协程优点和缺点是什么?
    ( 2 )类定义中使用了 __slot__属性能起到什么作用?
    ( 3 )什么叫弱引用?主要的用途是干什么?
        4
    IanPeverell   103 天前
    @chenqh 没有女朋友怎么面向对象编程?怎么写 python ?
        5
    Molita   103 天前 via Android
    @xpresslink 答不上来。。只有快一年。。
        6
    huntzhan   103 天前   ♥ 12
    问语言细节很没意思的,特别是 Python 这种瞎搞也不会爆炸的语言(

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

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

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

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

    * 基本的算法 数据结构 和解构问题的能力 大约等于能不能写一个棋类(随便什么棋类)的模拟
    * 对代码的重构能力 (写出好的变量名称 /提取常用的组件)
    * 代码的结构能足够的清晰 简洁 (从而能写出足够清晰简介的测试)
    * 对框架的熟悉 (python 特有) 其实你本来用的别的语言 学学怎么用框架也是分分钟的事情 看两个 example 就上手了
    * 学习能力
    * 沟通能力
        18
    TesterCC   103 天前 via Android
    @Mojy 同样,目前虽然做过各种各样的小项目,但是重复度很高,业务也不算复杂,在市场上几乎没有竞争力,现在因不可抗力出来面试被各种被鄙视,一首凉凉送给自己。
        19
    stonymoon   103 天前 via Android
    @xpresslink 我刚学一年半,因为有学 Android 和写过协程爬虫,感觉都能答上来。(然而我后端很烂,觉得问题和后端没什么关系)
        20
    di94sh   103 天前 via Android
    @xpresslink 初学者
    ( 1 )协程优点:相对于进程省资源,相对于线程,没有共享数据段,更安全。缺点。。。
    ( 2 )插槽,只能使用插槽里声明的变量,控制动态添加变量。。
    ( 3 )弱引用不会增加引用计数,用途。。。
        21
    di94sh   103 天前 via Android
    我觉得问问流畅的 Python 里的知识,和 python 最佳实践里的问题应该没错吧。。
        22
    wekw   103 天前   ♥ 1
    @tangyouze 对于 PHP 程序员来说独立实现一个登录系统是入门水平。。。。。
        23
    mario85   103 天前 via iPhone
    @okzpy9425 似曾相识
        24
    lolizeppelin   103 天前 via Android
    openstack 里没出现过__slot__ 所以这玩意没什么用

    弱引用 openstack 里单例模式里用来存锁 可以更快释放临时对象


    package 打包过程不是很熟 反正写好 setup 文件 就用 RPM 封包了


    metaclass 这种黑魔法用得少 一个是单例模式用到 还有就是接口类用到 继承接口类的就不能继承单例模式类了
    以前还在 saltstack 的类封装工厂里见过 完全没有可读性 233
        25
    shlyren   103 天前 via Android
    @okzpy9425 来,键盘给你,你来敲个 flask
        26
    zhangchioulin   103 天前 via iPhone
    3 年左右应该不限与 python 了,后端方向除了该注重本职工作的,也应该对服务器的常用软件配置熟悉,数据库的优化等都要会吧
        27
    bestkayle   103 天前
    @wekw #22 入门都谈不上吧,自己搭个框架才是入门水平,可以用第三方的路由和模板引擎。
        28
    MyDaLin   102 天前
    不敢吭声
        29
    Paddington   102 天前
    @di94sh 嗯嗯,这个回答很 general..

    其实这些就是概念,我想那位兄弟想问得不是这层
        30
    wcsjtu   102 天前 via Android
    py 的语法,也就元编程稍微难一点,其他都没什么好问的吧!后端主要不应该是除开语言之外的其他技能么?
        31
    huisezhiyin   102 天前
    @xpresslink 弱引用几乎没用到过 但是这三个问题大概都是语言上的问题吧
        32
    huisezhiyin   102 天前
    @tangyouze 难道不会问一些有关于设计和架构方面的问题吗
        33
    huisezhiyin   102 天前
    @huntzhan 肯定不限于语言的
        34
    shellbye   102 天前
    正好最近也在思考这个问题,看了一圈,@tangyouze 的回答和我面试时的考察基本一致。
    那种教科书上才会提到的知识点我是不会考察的。
        35
    bomb77   102 天前
    上面问的我都不会,瑟瑟发抖,我是不是要失业了
        36
    okzpy9425   102 天前
    @tangyouze 看了一圈回答就这个靠谱。。 具体的知识点都是可以很快学会的。重要的是解决问题,拆分问题的能力。 但是现实是您这样子的人很少,就算楼主去面试也同样有可能被不懂的人给毙掉(被那些不懂的在一面的时候拿俩那种百度的垃圾问题给干掉。。。。)。
        37
    okzpy9425   102 天前
    @shlyren 我是黑一下拉钩上的那些公司。。毕竟人家要求高的很。 让我搞个 flask 这样厉害的我是搞不出来,但是搞个可以用的还是可以搞出来的。
        38
    soulmine   102 天前
    给你一门新语言 比如 lua 你觉得多久能上手 一个星期够么 还是有任务只能闲暇看看的
        39
    wekw   102 天前
    @bestkayle 自己搭框架还是太难了,不过有人写了系列文章照着做就不太难了。
        40
    hasbug   102 天前
    想着学门后端,考虑过 go,但本地没机会;刚还看 Python 的,一看这么多 3 年的大佬只能干这些事,那么····
        41
    zhuyao   102 天前
    知乎即视感
        42
    assad   102 天前 via Android
    想问刁钻的问题,怎么都能问出来!问实用的,没几个能问
        43
    ioth   102 天前
    线程啊、内存泄露啊,必须的,人家 java 都这样。
    可惜没有 jvm
        44
    felinx   102 天前   ♥ 1
    __slot__ 真没见过几次实际运用的
        45
    BlockBlockBlock   102 天前 via iPhone   ♥ 1
    @hasbug 本该一个月学完的东西,一用用了三年,所以你懂的
        46
    hasbug   102 天前
    @BlockBlockBlock 好吧。。。
        47
    shlyren   102 天前 via Android
    @okzpy9425 可以可以
        48
    icheeringsoul   102 天前
    @xpresslink 这么说我合格了,,
        49
    scp055   102 天前
    mark
        50
    zhangsen1992   102 天前
    m
        51
    xpresslink   102 天前
    面试的问题必须理论和实践相结合,目的是为了快速了解对方的水平,所以问题要精练、典型、有实效性。
    我问的三道题,都是后端开发非常需要的技术点。你不能把后端狭隘地理解为用 Django 和 Flask 开发个 web 后端主要的工作就是 CRUD。比如让你用 socket 直接写个几万并发用户安卓音乐 app 后端呢?

    ( 1 )协程优点和缺点是什么? -----对于 Python 实现并发的重要解决方案之一
    ( 2 )类定义中使用了 __slot__属性能起到什么作用? -----海量的同类实例大幅减少内存占用的方案。
    ( 3 )什么叫弱引用?主要的用途是干什么? -----自己写缓存组件时常用的技术点,进而要理解 GC 的工作原理。
        52
    huntzhan   102 天前
    @huisezhiyin 那直接出算法题...
        53
    0Kelvin   102 天前
    emmm.才看过几天 python 的路过。我觉得面试官先问项目,然后根据项目问,项目是如何优化并发、如何优化的内存、如何优化缓存之类的会比较让人理解。毕竟大家使用的技术不会那么一致吧╮(╯▽╰)╭还可以一起讨论讨论有什么更好的方案什么的
        54
    ylmyyyy   102 天前
    mark
        55
    tairan2006   102 天前
    如果做业务,看工程能力…说白了大部分时候都是些业务代码,算法啥的知道就行了。语言细节也不重要,不记得不能搜么…

    好多人答题一把好手,写起代码气死人
        56
    tflimon   102 天前
    m
        57
    flowarmor   102 天前 via Android   ♥ 1
    我工作两年不到,年后开始找工作,遇到过的高频考察知识点主要这些吧:

    1.常见语法 GIL
    2.常用数据结构算法手写
    3.MySQL 索引 /锁 /事务实现原理,给查询会不会用到索引之类的问题
    4.Redis 数据结构的实现,持久化主从复制实现
    5.RPC ,这块接触很少,我只用过 Thrift,讲了一个自己实现的带有容错降级功能 Thrift 连接池,这部分基本就过了
    6.MQ ,Kafka 原理之类的
    7.上面说的协程考察过 gevent 的实现

    还有面试官问过服务发现相关的知识,没用过表示不知道。
        58
    noai   102 天前
    谢谢各位
        59
    quietin   102 天前
    @xpresslink 协程优点是相比线程更省资源, 因为不像线程切换会陷入内核态;缺点是学习有一定成本, 并且有些协和实现不好 debug
    __slot__用得比较少;
    弱引用的话, 以前缓存用过;
    已经 2 年不搞 py 了...
        60
    Eds1995   102 天前 via Android
    @flowarmor gevent 为啥用起来有点火葬场的感觉😄
        61
    Sherlocker   102 天前
    mark
        62
    l1093178   102 天前
    语言特性没啥好考的,反正 Python 语法规范也不详细
    元类可以考一考,用的机会不多,但是读 ORM 和其他框架源代码的时候有可能看到,理解元类的话能帮你更好地了解框架实现
    Decorator 可以考一考,这个在实际编码中还是用得很多的
    数据库索引设计和优化的一些基本原则得考,这个大部分情况下都会用到
    简单的算法得考一考,一点算法都不懂的工程师写出来的代码有时候会让人很无语
    如果是 Web 后端的话,HTTP 协议得熟悉吧,常见的头常见的方法的语义得能准确说出来吧
    还有就是给一些简单的函数让被试者说说如何应该实现的单元测试(其实这个问题很多人都答不好)

    剩下的就是根据被试者的领域来决定如何问问题了
        63
    ljcarsenal   102 天前
    看楼主头像 我想起了跑步机
        64
    iPhone8   102 天前
    m,都是大佬
        65
    rim99   102 天前 via iPhone
    @xpresslink 我能说我有点思路嘛?自学一年 python 的路过
        66
    Gatler   101 天前 via Android
    战略性 mark
        67
    zhaodashu   100 天前
    大神 请教个问题 django 项目中 migrate 更新数据库之后 出现 "'2018-03-15 07:25:44.306389+00:00' value must be either True or False." 如果您见过的话 请指点一下 感激不尽
        68
    bwangel   99 天前
    看到那个问 __slot__ 属性的,
        69
    bwangel   99 天前
    妈个蛋,习惯按 Ctrl + enter 换行了,又重复发了。

    ![]( https://imgs.bwangel.me/2018-03-16-012810.jpg)
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   1301 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 22ms · UTC 01:20 · PVG 09:20 · LAX 18:20 · JFK 21:20
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1