设为首页收藏本站

EPS数据狗论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1398|回复: 0

如何处理 Python 入门难以进步的现象?

[复制链接]

171

主题

398

金钱

605

积分

初级用户

发表于 2016-7-4 15:22:57 | 显示全部楼层 |阅读模式


问题:
如何处理 Python 入门难以进步的现象?
看视频看呀看呀看, 看完了,基础的都懂了 然后就想写点东西 可是无从下手呀,我以为基础不扎实,又去看视频 好了 视频看完了 想网上找点习题来做,结果简单的习题做不出来,又怀疑基础没学好呀 又看视频和网上的文章 如此的循环着 学习有一个月了 我困惑的是,很难把知识点结合起来写个简单的东西 比如说目录遍历都写不出来 我知道站在岸上学不会游泳 你们可能会叫我多练 , 可是我想知道怎么去练 如何练 不能没有目的的去练, 其实我PHP也是如此的,能看懂代码就是难下笔 一身劲,不知如何用…… 我不懒 我把每天安排满满的 除了吃饭 不玩游戏 不看电影 很少上Q。


作者:陈裕皓
回答:
   
想想你是怎么学会骑自行车的?你是把自行车组成原理,空气动力学,牛顿经典力学啥的都精通一遍才上车的么?
just do it

我一直觉得,编程在某种程度上和写作无比类似。编程语言的意义和纸笔类似,是写东西的必要条件,但不充分。学会了编程语言,不过是有了在用笔在纸上写字的能力,离能写出好的文章差的可远着呐。


能理解题主的困惑,也写给曾经有过相似困惑的初学者。我认为主要原因有这几个:

1. 学习动机不明
你学习Python最初的目的是什么?总不能是为了应聘、为了考试、为了炫耀吧?

我一直认为学习一样东西,一定是需求驱动的。因为我想实现某个东西,而去学习了某项技术。而不是因为我会了某样技能,我再去想想它还能做些什么。

拿自己举例子,我决定学习Python的时候是为了用它写爬虫。因为听说Python写起来比java便捷很多。由于这个兴趣的驱动,去学习python的网络库的使用。一开始用自带的urllib,后来发现用起来麻烦,就想自己封装一个使用简单的库。后来发现总是用split分割字符串已经不能满足对网页元素提取的需求,去简单了解了正则表达式,去学习了HTMLParser……爬虫爬下来的数据要存起来啊,有没有方便的存取数据库的框架?然后学习了SQLAlchemy。爬下来的数据光我自己看还不够酷炫,我想做个网站,就去学习了django……

你看看为了实现我自己提出的需求,我每一个加粗的字体标出来的都能单独写一个开源项目了,如果对任何一个感兴趣都可以去深究下去。所以说并不是你写不出来,而是没有找到自己感兴趣的“需求”去驱动自己朝着这个方向钻研下去。

2.  知识面不够宽
解决一项需求不止要掌握一门语言就可以。就比如题主说目录遍历都写不出来。如果你去搜索引擎搜索:“Python 目录遍历方法”我不相信搜不出来关于“递归”、“深搜”、“宽搜”等等的关键词,如果你连这些都不懂,就得去学习学习相关的算法了。

觉得某一个需求很难实现,往往不是因为组合不出技术路线,而是你还不了解这条技术路线上的技术点。有些技术点,比如写目录遍历要用到python 的os库里的函数,并不需要你会用所有关于路径、文件操作的所有的函数怎么用。你只需要看着函数的简要说明,知道它们分别能干什么我可能需要用到哪一个就够了。同样,也不需要把整本算法书啃一遍,每种都会写,只了解它们各自特点,我目前需要掌握哪一个,就够了。以后用到的时候,能想到,再具体去看。

一年前我在知乎提了一个问题——[url=]如何写一个网页刷票器之类的东西?[/url],半年前自问自答了一下。现在想想当初的提问,就是因为了解的太少。想做一个刷票器,连HTTP请求都不知道,却问用什么语言实现,这不是很可笑吗?

3. 思维方式
有人说,我自认为自己需求很明确,掌握的知识点够宽,还是想不出技术路线怎么办?

最初人类梦想飞上天空,用了风筝、火箭筒、巨型鸟翅膀,虽然最后都失败了,但最起码能飞行几秒钟到几分钟吧。有些问题,想不到简洁而有效的办法,但我不相信花两三天时间,苦思冥想,画画思维导图,写写思路,还写不出一个笨拙但可以解决问题的代码。我也不相信你再花一周时间闭门造车地自己试着优化,不能把这堆烂代码做些许优化。更加不相信一周之后,你和大神讨论、在网上搜索更好的方式、阅读别人的源码,还没有豁然开朗的收获。

人类能够把一些看似不相关,实则充满内在联系的事物结合在一起,碰撞出火花,这就是创造力。这种能力也是需要锻炼的,也是从量变到质变的过程。很多人说,“要多读别人的代码”、“多写项目”、“一开始只是借鉴,慢慢就懂了”、“一开始只会用轮子,后来就会造轮子”,说的是没错,但他们没说自己独立思考的过程。从独立思考,到参考借鉴,到自己创造。

总结起来就是:明确需求和动机,拓宽知识面,锻炼思维方式。

我认为正确和理性的学习方法还是有所目标,也就是究竟想学会Python来做什么。比如你想用来做个网站,那学完Python基础语法后就应该研究研究Flask,那些爬虫、数据分析、数学模型等可以放一放,等到主线的学习任务要用到其他方面的工具时,可以回过头来再学。相应的,如果你学习Python就是用来做数据工作的,那么一些Web框架和搭建网站的小练习应该先放弃不学。

我很喜欢Python,一开始学习时也是看了一些书和很多教程,会让你接触到GUI、爬虫、数学、WEB等一系列Python可用的方面,各式各样依赖不同包的小练习搞得我手足无措,挫败感很强,我大致回想了一下,大概能做出来里面练习题的三成不到,剩下的七成完全下不了手。

好在我本身学习Python还是目的性很强的,就是为了搞网站,不为别的。所以在我基本了解Python的语法后,开始读Flask的相关文档,并动手做网站。这之中会遇到各种问题,然而有赖于我一直就把全部的精力学习这一个方面,所以比分散精力去研究各种不同的包更容易获得一小步一小步的成功,每一小步的成功,解决一个小问题,我很有成就感,进而有足够的动力继续前进,最终因为我总是在一条路上前进,因而我能走的更远

所以,我建议就是,我相信你有足够的能力学习好Python的基本语法知识,之后你所要做的,就是选择Python应用的一个方面,在这一个方面不断的学习、研究和动手做更多的事情。相应的,放弃Python在无关你所选择的方面的那些应用,暂时远离其他方面的练习。
            我天资愚笨,唯有术业专攻。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

客服中心
关闭
在线时间:
周一~周五
8:30-17:30
QQ群:
653541906
联系电话:
010-85786021-8017
在线咨询
客服中心

意见反馈|网站地图|手机版|小黑屋|EPS数据狗论坛 ( 京ICP备09019565号-3 )   

Powered by BFIT! X3.4

© 2008-2028 BFIT Inc.

快速回复 返回顶部 返回列表