换一个问法:你学Python花了多久。
等等,先别回答。It doesn’t matter.
这个问题我曾问过自己。网上查资料的时候正好看到一位使用Python超过20年的博主分享了这个问题,编译了一下原文,呈现如下:
1
这个问题常见于初学者在面临挑战不安时提出,他们也许希望快速获得一个有效的答案,一种经验,以便评估难易;但是往往,大多数的答案会让提问者觉得,自己的进展并没有想象中的快。
每一个人的学习方式是不同的,学习资源也好、学习效率也罢。若果有人回复你「一个月」的时候,你会不会因为自己已经学了6个礼拜而感觉不好?如果他们说的是「十年」,你又会怎么想呢?
其实,这个问题在某种程度上是没有意义的。
2
我们所谓的「学」是什么意思?原文中使用的是「Learn」。如果你已经会用 Python编写一个猜数游戏,算是学过Python吗?「Learn」说的是基本的熟悉,还是深刻的记忆?有些东西必须熟练,还是可以查阅文档获得详细信息?
“Learned” is not a binary state. 会与不会,也不是一瞬间的事情。
我们所说的「Python」又指什么?讨论的是基本语法,还是需要能够写一个元组、描述或者装饰器?它只是一种编程语言,还是标准库?我们又需要熟悉200多个标准模块中的哪些个?而常用的第三方库有哪些?其中是否也包括了 Python编写大型程序(10k行)所需的技能?
Python大而宏观,你会发现它不断迭代,年复一年。
也正是因为它一直在「改变」!Python不会一直在原地,所以你似乎永远也结束不了「Learning Python」这个过程。作者在文中举例说自己使用 Python 20多年了,而且至少有一半的时间深耕其中。他以为他很了解 Python,直到后来加了「async」。然后悠悠地说了一句 “I will have to figure that out one of these days...”
3
Python已经渗入很多不同的领域,因此你需要学习的东西可能与他人完全不同。现在,很多人都在学习 Python来进入数据科学。若又是不从事这个应用场景呢,可能就会包含有更多没有接触的内容,例如下面的几个模块:TensorFlow、Scikit Learn、Numpy、Keras、PyTorch、SciPy、Pandas、Matplotlib、Theano、NLTK... 大家是否都熟悉、了解他们做什么用。不同的领域很难用相同的标准进行评价。
不过,还是有这么小伙伴正在路上!
对于初学者的建议是:不要把你的学习与他人比较。
每个人学习的方式不同,使用的材料不同,速度也不同。每个人对「
学习thon」和「Python」都有不同的理解。了解你自己的目标和学习风格、找到适合自己的材料。用自己的方式去学习,然后做到它。
Study, and learn in your own way. You can do it.
文章主体内容来源于 Ned Batchelder的博客,笔者编译。有兴趣可以点击原文查看。
如果你也在路上,不妨进来看看我的学习笔记,走的不快也不远,别介意。点击图片可到达专辑。
推荐阅读
使用Python实现基本初等函数可视化
要想真正入门生物信息学建议务必购买全套书籍,一点一滴攻克计算机基础知识,书单在:什么,生信入门全套书籍仅需160 。如果大家没有时间自行慢慢摸索着学习,可以考虑我们生信技能树官方举办的学习班: