学习 Python 的思路

不可胜任

人类的工作生涯,大概率会出现的两种情况:

  1. 会被提拔到自己所不能胜任的岗位 (无能);
  2. 若重新描述自己当前岗位的任职需求,会不自觉地过度拔高要求,导致后来者不可胜任 (资质性质疑)。

知道这些边界的存在,我们就可以在灵魂深处设置一个偏差的调整机制,以减少因为自己无能导致的破坏力,同时,在面对他人资质性质疑时,获得更多内在的自信。

不可胜任的 『编程』

当我们决定要真正学习一门编程语言时,Python 无疑是一个非常好的选择。
既然是 编程,对于完全的新手而言,会不自觉地打退堂鼓,还没有入门就给自己强加了不少负担。确实,这是一个全新的领域,计算机基础要不要学?算法要不要学?数据库结构要不要学?
每一个术语,从远处一看,都是一座山。
而『这些山』,就像是某种层面上的『不可胜任』。

我们所要探讨的并不是 不可 胜任的问题,而是去发现 胜任与否 本身就是一个边界的存在。
在本课程开始之前,你所有相关的所思所想,阻碍你的、激励你的,都可以视为一座山,也可能最终只是山上的雾。待上了山,拨开了雾,至于山高山矮、此中路是平是陡,都变得不再重要。

重要的是 放下,放下自己先前的各种预设,按照这个课程,继续走下去。
走到了山顶了,尔后捡起自己早先的想法,再看看,是否也发生了一些变化。
至于此路,好走与否,倒不用过于担心,虽不会太轻松,但走一走,总是能到达目的地。

学习『基础』,也是浪费时间

在《FirstWeb Pro》中,我们有讲过『基础』是什么概念:从某种角度来说,它代表了个体在某个领域,其思维模式的天然契合度。
技术领域,『基础』所涵盖的内容,经过这么多年的发展,已悄然发生了变化。
站在实用主义的角度,我们可以不用再学院派地要求从计算机基础开始;因为,它们在我们 (未来) 运用技术去实现产品的过程中,身影已显轻微。

基础不好,上层建筑就会歪掉。
如果,我们最终的上层建筑并非具体的技术,而是脑海中尚未成型的产品。从 产品 这个 去溯 的话,确实可以从 实用的 角度去学习编程,去进入这个技术的世界,这个过程就允许了一定程度上的 不求甚解
略有投机取巧的味道,但可以避免很多时间的浪费。

如何学习 Python

Python 的应用范围很广,只是一味地学习,是学不完的。
有意思的是,大部分学习 Python 的书籍中,会一块一块地内容分解,比如 文件读取、字符串、网络编程、图像处理 .etc,就像英语单词书,从 A 到 Z 排布单词。
写一篇英语文章,用不完所有的单词,也同样,使用 Python 完成一个产品,也用不完所有 Python 相关的技术。使用 Python 时,更像是开卷的考试,你随时可以查看各种资料。把 Python 的技术内容一块一块地分解,又不是官方的文档,这类书如此反倒不高明了。
而比『学习』更重要的是『怎么学习』 的能力。

归根结底,就是 解决问题 的能力。
如果你想用 Python 解决某个问题,且毫无经验的,此时最重要的是,怎么找到办法,至于最终解决方案有什么细节,不是最重要的。
最开始时,细节 有其价值,因为涉及到了 Python 最基础的编程语法,但很快,细节 就意味着 工作量,只要你花上时间,就都能完成。

数学,重要吗?非常重要!
但是,在你日常生活中,高等数学有用吗?且不说这个了,三角函数都几乎用不到。
不是说它们不重要,而是别不分场景,被看似的重要性裹挟了。
Python 的学习也是如此,应该是面向结果、面向场景,而不是面向过程
学习可以建立在一个场景上,知识本身拥有扩张性,解决了当下的场景,知识也就自然外延了。那么,就不用再担心换一个场景会茫然无所从的问题,一理通而百理顺。

举个简单的例子,随便拿一个有足够内容量、Python 相关的书籍、课程,里面可能就有好几节内容,是我都从未接触过的。但是,原作者使用 Python 解决问题的能力,会超过我吗?
并非托大,我甚知自己在更大的知识海洋中无知的模样。
这个例子真正有意思的是引出另外一个问题: Python 方面,连我都(还)不会的内容,作为初学者,你真的有必要在入门的时候,进行学习吗?