V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
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
Kikomore
V2EX  ›  Python

Python 水平该怎么精进?

  •  
  •   Kikomore · 348 天前 · 2866 次点击
    这是一个创建于 348 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Python 写了也快一二年了,但是还是在比较基础的层次上。

    我的水平理解:

    实现装饰器,上下文管理器,能用一些第三方库完成一些需求。

    感觉很多地方需要提升,但是没有什么比较好的方向,望大哥们指点一二。

    本人是测开方向,Java 同样也需要学习,所以时常会学这学那的,精力不集中,学的也比较杂。
    24 条回复    2020-12-17 17:56:26 +08:00
    FreeEx
        1
    FreeEx   348 天前   ❤️ 1
    只学习语法的使用是不足的,需要了解操作系统和网络。
    例如测试开发是否需要经常调用接口? Http 协议是否了解? http 代理的原理? socks5 代理原理?
    接口测试是否需要做压力测试?如何在更短的时间内发送更多的请求?多线程 or 多进程 or 协程?如果一台操作系统的并发数量已经到达了上限能否使用多台操作系统来一起下发接口测试任务?
    建议根据自身的业务需求来扩展学习。
    AllRightReserve
        2
    AllRightReserve   348 天前
    看看第三方库的源代码,你能写成那样就算很精进了。
    111111111111
        3
    111111111111   348 天前
    把标准库过一遍,至少把目录看一看,会很有收获

    装饰器什么的,算是技巧吧,有帮助但不是非常重要
    Vegetable
        4
    Vegetable   348 天前
    我不是很了解测试方向,不过我个人体会,不建议在语言上追求精进。

    能否不开浏览器徒手实现一个装饰器,还是使用 wrapt,是徒手撸 class 还是用 contexlib,其实并不是真的关键。

    使用编程语言的确有一个及格线吧,达到及格线之后就应该脱离语言思考问题了。

    比如设计模式这种东西,也许不全适合 python,但是他能让你对编程这件事情产生很多新的理解,写出来的代码也会有一些变化。
    bnm965321
        5
    bnm965321   348 天前
    fluent python 。看完这本书会提高很多
    subpo
        6
    subpo   348 天前
    python 本身没啥好提升的吧,大家都是因为 python 简单才慢慢开始用起来的吧
    Kikomore
        7
    Kikomore   348 天前
    @FreeEx 感谢建议。
    业务层面的话主要是写一下测试框架之类的,想去实现一些效果往往实现不了,这是我比较头疼的地方。比如我想实现一个测试用例并发执行的功能,除了用 threading,想不到别的更优雅的解决方式
    Kikomore
        8
    Kikomore   348 天前
    @AllRightReserve
    源代码只能看的懂一些英文和字面的东西,深层的往往就看不懂了
    Kikomore
        9
    Kikomore   348 天前
    @111111111111 有想过读标准库的源码,但是觉得会比较枯燥,不一定能坚持下去
    Kikomore
        10
    Kikomore   348 天前
    @Vegetable 感谢回复。
    我觉得你说的可能就是我追求的一个方向,我可能自己不确定。看到 Python 有很多优雅的写法,我也会乐意把他应用到我的项目中去。

    语言上的精进的话我觉得我还是需要的,感觉还是个半吊子,根据网上的教程写了一遍,面试时同样的笔试题反而做不出来。

    对自身实力的估算错误应该是比较严重的问题。
    Kikomore
        11
    Kikomore   348 天前
    @bnm965321
    这本书确实不错,但是有点机器翻译的感觉,有的地方读的会感觉到很生涩
    d873139022
        12
    d873139022   348 天前
    目前测开半年,已经想转前端了。诶,对标开发工资,还是有差距
    levelworm
        13
    levelworm   348 天前 via Android
    @Kikomore 直接上英文吧
    levelworm
        14
    levelworm   348 天前 via Android
    我觉得最终还是大学的进阶课程。
    Kikomore
        15
    Kikomore   348 天前
    @d873139022
    一入前端深似海啊

    我也没这个勇气转
    Lemeng
        16
    Lemeng   347 天前
    买高阶的课程,腾讯,网易的视频。估计有点用
    jones2000
        17
    jones2000   347 天前
    语言什么的都不重要,工具而已。 就以测试为例, 你测试一个模块, 你需要把所有的边界,分支都测试到吧,起码你的测试代码覆盖率要 95%以上吧, 这就要看你测试用例如何写完整了, 这个跟编程完全没什么关系, 有了完整的测试用例文档, 你才能开始写自动化测试吧, 这个过程就是一个体力活了没什么技术含量了。测试其实是很庞大的工作,刚才我说的只是一部分。 好的测试没有 3,4 年经验积累是,根本搞不定的。
    lynn0977
        18
    lynn0977   347 天前 via iPhone
    @jones2000 你的回答跟楼主问的不是问题不是一回事啊,不管测试技能多重要,他现在问的是编程技能,而非测试技能。测试开发里面编程能力可能不是最重要,不代表不重要,还是看需求。
    skinny
        19
    skinny   347 天前
    造轮子,或解决实际需求。我的很多知识点就是造轮子时学会的,比如造 ORM 学会了很多元编程相关和以前从没用过的描述符。不要管造的好不好,能不能造完,你尝试的过程就会了解和学会很多“高级技能”。
    BuffDog
        20
    BuffDog   347 天前
    语言只是工具,尝试定一个目标,完成它
    重要是解决问题的思路,也可以称为手段,怎么解决这些问题是需要结合计算机知识的
    假如你能用 Python 写一个抢购的脚本,那么就算换成别的语言,你也能知道该怎么去实现。
    ykb8121
        21
    ykb8121   347 天前
    那就看 C 呗,磕 Cpython 源码,看异步机制实现
    karatsuba
        22
    karatsuba   346 天前
    fluentpy 和 pycookbook 过一过,数据结构算法瞧一瞧,官方文档翻一翻,剩下的就是造轮子呗,翻翻 requests 源码
    lsj8924
        23
    lsj8924   346 天前
    既然追求精进,那不如去读一读 python 的源代码。读完了应该收获会很大,最起码能知道很多 py 实现的原理,也很香吧。
    4everLoveU
        24
    4everLoveU   346 天前
    面向 KPI 编程就好,你又不是搞科学研究,绝大多数你不需要对一门语言很精进
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2307 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 11:37 · PVG 19:37 · LAX 03:37 · JFK 06:37
    ♥ Do have faith in what you're doing.