其实现在程序员学 Python 不是新鲜事,甚至不少人会把 Python 当作第一语言来学习。也难怪,Python 的优点太多了,它语言简洁、开发效率高、可移植性强,并且可以和其他编程语言(比如 C++)轻松无缝衔接。
而且,学好 Python,之后做 Python 程序员爬虫,往数据分析、数据挖掘、人工智能、深度学习等多个方向都可以顺利转型。
可谓条条大路通罗马。
不过尽管 Python 上手轻松,但精通却很难。看似语法记得滚瓜烂熟,但一进入实际项目,瞬间被打回了原型。比如这些问题,你能第一时间想到答案吗?
Python 中的协程和线程有什么区别?
生成器如何进化成协程?
并发编程中的 future 和 asyncio 有什么关系?
如何写出线程安全的高性能代码呢?
大部分初学者可能会卡在这里,包括自称 Python “老鸟”的我,也有分不清“列表”“元组”“字典”“集合”用法的时候,也曾苦苦钻研面向对象的理念,却在被要求设计一个稍复杂点的系统时束手无策……
说到底,还是方法不对。
想起之前我看到Facebook 资深工程师景霄的文章:他说他们公司刚入职的工程师,100 个里至少有 95 个,以前都从未用过 Hack 或者 PHP(Facebook 的主流语言是 Hack、PHP )。但是,这些人上手都特别快,基本上一两周后,日常编程便毫无压力了。
这是怎么做到的呢?景霄说这些工程师遵循的唯一原则,就是“从工程的角度去学习语言”。就拿学习 Python 来说,想要做到精通,必须真正理解知识概念,适当从源码层面深化认知,然后熟悉实际的工程应用,独立完成项目开发。
先分享一个景霄总结的「Python 知识框架图」,建议收藏