学习python很久,却感觉什么都不会,这或许是很多人所面临的困境。从最开始的雄心壮志,渐渐变得不再有激情,似乎学得了一些技术,却什么也做不出来。
问题究竟出在哪?
在教过一些初学者之后,我对这个问题,有了我自己的答案,接下来,我从以下几点来解答这个问题,希望能带给你一些思考和启发:学会python不等于学会编程
编程既是知识,也是手艺
知识体系不完整
最后,我会给出我认为可行的应对之策。
1. 学会python不等于学会编程
看到这个标题,或许你会有些沮丧,但这的确是个事实。以一个软件工程专业的学生来说,学习编程语言的课程,仅仅占到了全部课程的三分之一,那么剩下的课程都教什么呢?高数,概率论,物理,计算机原理,编译原理等等,这些课程一方面锻炼着学生的思维逻辑能力,一方面加深学生对计算机的理解,这些知识共同组成了编程技能。
而对于外行的朋友来说,缺少的就是那三分之二的课程知识。你会python了,甚至对每一个语法都很熟练,但是抱歉,你缺少分析问题的能力,缺少编写算法的能力。
2. 编程既是知识,也是手艺
编程既是知识,也是手艺,知识的部分,你可以通过看书获取,但是手艺的部分,大概率,你只能通过高水平的人言传身教,注意,我不是忽悠你报班学习python。
即便是科班出身的人,在刚参加工作的前两年,也主要是模仿学习前人的代码,通过阅读身边技术大牛的代码,来学习技术。身边有一个技术高手,你可以跟着他学习如何拆解问题,如何架构系统,如何划分模块,甚至学习如何编写函数。对问题的思考,对系统的设计,对技术难点的攻克,无时无刻不在影响着刚入行的菜鸟。
这部分就是手艺的传承,外行学编程,则恰恰缺少这个过程。
3. 知识体系不完整
这一条与第一条遥相呼应,但又不完全相同。一个程序员所掌握的知识,并非全部都是在大学期间获得的,在工作过程中,由于工作需要,程序员始终都在更新,补充,完善自己的知识体系。
对于初学者来说,还没有经历这个过程,知识体系自然不完整,这个不完整就导致你想用python做一件事情,总是困难重重。你想写一个爬虫,可你不知道怎么解析html网页,因为你连基本的html是什么都不知道。解析出数据后,你也不会存储,因为你不用mysql。 mysql解决了,性能又跟不上,你不会多线程。多线程解决了,网站又屏蔽你,因为你懂得如何绕过反爬机制。
4. 应对之策
学习python,可谓困难重重,难道就因此放弃么,就没有什么解决办法,应对之策么?
正所谓事在人为,怎可轻言放弃呢。至于应对之策,我有两条建议,第一条送给还在上学的学生,第二条送给已经工作的人。
如果你是学生,切莫着急,你有充足的时间来学习,因此,要走一条专业的路线,若是计算机相关专业学生,你只需学好学校开设课程即可,python作为一项技能,不必投入太多精力;非计算机专业学生,建议你学习了解一下计算机专业所开设的课程,基础要牢固啊
如果你已经工作,方式就要有所改变。首先要做到对python基础的掌握,我所说掌握,是熟记于心,不可以似懂非懂,以数据类型为重点,多做练习题,正所谓熟能生巧,专业知识差,就要靠熟练度来弥补。
知识体系所欠缺的,你现在补已经是来不及了,你想学web开发,那么你就专门补web开发方面的,你想学爬虫,那么你就专门补爬虫方面的。遇到了问题,以问题为切入点,去了解这个问题背后的专业知识,而不是去关心代码怎么写,代码怎么写,取决于这件事情怎么做,事情怎么做又取决于这件事情背后的专业性知识。
python这门语言的确适合入门,但是明显已经被培训机构带跑偏了,python只是降低了学习的门槛,但并没有降低编程的专业性,很多人因为门槛低学习python,却在面对编程的专业性问题上一筹莫展。希望本文能给你一些启发和帮助。