Python 从业十年是种什么体验?老程序员的一篇万字经验分享
文章插图
文章插图
作者:laisky(基于 CC BY 4.0 授权许可)
原题:Python之路(内容略有调整)
来源:一、概述本文起源于我在 Twitter 上发布的关于 Python 经历的一系列话题 。
出于某些原因 , 想记录一下我过去数年使用 Python 的经验和一些感悟 。 毕竟算是一门把我带入互联网行业的语言 , 而我近期已经几乎不再写 Py 代码 ,做一个记录 , 也许会对他人起到些微的帮助 , 也算是纪念与感恩了 。
二、摘录推文地址:
最早接触 py 是 2010 年左右 , 那之前主要是使用 c、fortran 和 matlab 做数值运算 。 当时在做一些文件文本处理时觉得很麻烦 , 后来看到 NASA 说要用 py 取代 matlab , 就去接触了 py 。
python 那极为简洁与优美的语法给了当时的我极大的震撼 , 时至今日 , 写 py 代码对我而言依然是一种带有艺术意味的享受 。
首先开宗明义的说一句:python 并不慢 , 至少不够慢 。 拿一个 web 后端来说 , 一台垃圾 4 核虚机 , 跑 4 个同步阻塞的 django , 假设 django 上合理利用线程分担了阻塞操作 , 假设每节点每秒可以处理 50 个请求(超低估) , 在白天的 10 小时内就可以处理 720 万请求 。 而这种机器跑一天仅需要 20 块钱 。
文章插图
在学习 Python 以前需要强调的是:基础语法非常重要 。 虽然我们都不推崇过多的死记硬背 , 但是少量必要的死背是以后所有复杂思维活动的基础 , 就像五十音对于日语 , 通假字和常用动名词对于文言文 , 你不会就是不行 。
一般认为 , 这包括数据类型(值/引用)、作用域(scope)、keyword、builtin 函数等
【Python 从业十年是种什么体验?老程序员的一篇万字经验分享】关于 Python 版本的选择 , 很多公司老项目依然在用 2.6、2.7 , 新项目的话建议至少选择 3.6(拥有稳定的 asyncio) 。
- 从 2.7 到 3.4
- 从 3.4 到 3.5
- 从 3.5 到 3.6
- 从 3.6 到 3.7
另外一点就是 , 如果你想写一个兼容 2、3 的工具包 , 你可以考虑使用 future
最后提醒一下 , 2to3 这个脚本是有可能出错的 。
学完基础就可以开始动手写代码了 , 这时候应该谨记遵守一些“通行规范” , 几年前给公司内分享时做过一个摘要:
- 风格指引
- 一些注意事项
- 值得学习的内建包
- 值得了解的第三方包
import this
)建议应该有且仅有一个完美的方式做一件事 , 所以建议优先采用且完善既有项目而不建议过多的造轮子 。文章插图
一个小插曲 , 写这段的 Tim Peters 就是发明 timsort 的那位 。
(software_engineer)
有空时候 , 建议尽可能的完整读教材和文档 , 建立系统性的知识体系 , 这可以极大的提升你的眼界和思维能力 。 我自己读过且觉得值得推荐的针对 py 的书籍有:
- learning python
- 核心编程
- 改进Python的91个建议
- Python高手之路
- Python源码剖析
- 数据结构与算法:Python语言描述
- 8
- 3148
- 380
- 484 & 3107
- 492: async
- 440
- 3132
- 495 你甚至能学到历史知识
文章插图
以前听别人讲过一个比喻 , 静态语言是吃冒菜 , 一次性烫好 。 而动态语言是涮火锅 , 吃一点涮一点 。
那么我觉得 , GIL 就是仅有一双筷子的火锅 , 即使你菜很多 , 一次也只能涮一个 。
但是 , 对于 I/O bound 的操作 , 你不必一直夹着菜 , 而是可以夹一些扔到锅里 , 这样就可以同时涮很多 , 提高并行效率 。
- 丹丹|福佑卡车创始人兼CEO单丹丹:数字领航 驶向下一个十年
- 爱奇艺|连续亏损十年,爱奇艺收入不及快手,视频网站的出口在哪里?
- 直播从业者|高三老师监考时开直播,面对质疑还振振有词,怕困没有打扰学生
- 付费|谁在定义未来三十年?音频内容付费,60后人数同比增154%,00后增94%
- 悬空|华为Mate悲壮史十年逆袭,三轮打压,一朝悬空
- 告诉|阿里大佬告诉你如何一分钟利用Python在家告别会员看电影
- Python源码阅读-基础1
- Python调用时使用*和**
- 如何基于Python实现自动化控制鼠标和键盘操作
- 解决多版本的python冲突问题