自学python需要注意的问题

Python确实容易上手,对初学者的门槛很低。

但是对于小白真正的门槛在于系统知识,这就和用什么语言完全没有任何关系了。

你不能让一个才会写print函数的同学用python写个图形界面出来,也不能让一个才知道网络协议是什么东西的同学写个多完美的爬虫出来。

因为他们学的再好,也只是先了解了已经学到的东西,他甚至可能还会卡在pip install xxx命令好久,原因可能是pip版本不对,又或者是没有正确的安装路径,

也可能会调试一个简单的程序很久,但是总会报错,这又是因为另外一些原因,这些,都是每一个初学者可能遇到的问题那么如何解决

1)空出时间补充理论知识

很多人会强调learn by doing,边做项目边学习,这也是我自己采用的方式。

在这种方式中,你不断犯错,改正……学习效率非常高。

但是,很多人走了极端,最后的结果就是不注意理论知识的学习。你会发现自己Google的能力越来越高,但是真实的编程能力并没有得到提升。

如果有这种情况,你需要反思一下。

一种可能是你太过于依赖各种成熟的框架,结果编程就变成了用「胶水」去粘合不同的框架完成需求。

另外一种可能是你完全沉浸在做项目中,忽略了学习理论知识。做项目虽然充满困难,但回报是强烈的成就感,很容易沉浸其中。

我觉得这是极其错误的。

首先半路出家的程序员都没有经过系统的学习,没有形成自己的知识体系,如果你不懂数据结构,算法复杂度,操作系统这些理论,那么你能达到的高度就极其有限。

你若不学计算机组成原理,你便不知道一个int型数据类型占4个字节是何物理意义,更不会透彻理解变量声明和变量定义的区别;你若不学数据结构,你便不知究竟该如何用最优的算法进行最优的深度优化。基础是重中之重,打好基础在工作后能让你甩开大部分同行一条街。

所以,在每天做项目的同时,一定要保证抽出一定的时间,恶补理论知识。这部分的书单在豆瓣和知乎上都有很多总结,可以自行搜索。

2)不要太纠结于无意义的问题,

换句话说,就是不要好高骛远,不要东想西想。

比如什么框架好,XX语言比XX语言好啦这种问题。

前期确定了练手项目,就去专心积累代码量,积累基础知识。那些你现在还看不懂的炫酷技术你慢慢也就能明白是怎么回事了,反而没有基础,再炫酷的框架对你而言都是天书。

3)少要用CV大法。

很多人认为python程序很简单,一看就懂,但是一写就蒙,其原因就是写的少了。

我曾经对照着书上代码敲这样的学习方式一度十分嗤之以鼻,自负地认为简直不可理喻,但事实证明,你老师终归是你老师,这种做法一定有其存在的合理性。你能看懂的和你能写下的绝非是同种东西,一旦落笔便能知道,你很可能连静态局部变量和动态局部变量都没有彻底搞清。

例如,

int fun(int n){  static int f=1;  f=f*n;  return f;}void main(){  int i;  for(i=1;i<=10;i++)  printf("fun(%d)=%d\n",i,fun(i));}

static会导致输出结果是通过阶乘还是单纯的乘法,如果不自己敲一遍,真的很难发现这些东西,

总而言之,少用复制粘贴代码(不是不用),尤其是在初学的时候。

4)学会发问。

好问题是建立在你自己已经实践或者思考的基础上问出来的,这是对自己的负责,也是对别人的尊重。

不要一遇到困难就直接询问别人:「这个问题是怎么回事啊?」,「我不明白你能不能帮我看看……」,结果Google的第一个就是解决方法思路甚至是步骤。

对于这一点可以参考著名的《提问的智慧》[1]

5)学好英语。(尤其是对于用python实现机器学习算法的同学)


THE END


关注【panda一块砖】,回复【python编程】,可获得经典python入门教程:《python编程:从入门到实践》PDF

长按二维码关注panda一块砖

学习方法、学习资料一站收入

References

[1] 《提问的智慧》: https://coding.laiczhang.com/2019-07-20/%E6%8F%90%E9%97%AE%E7%9A%84%E6%99%BA%E6%85%A7/

[2] 你们都是怎么学Python的?: https://www.zhihu.com/question/55493026/answer/163642949


你可能感兴趣的:(自学python需要注意的问题)