6个学习编程时领悟的道理
这两天一直想做的客栈市场以及竞品消息搜集工具开始成型了。作为只在10年前学过一点C语言皮毛的我,这次学习python来实现自己的需求,领悟到了一些道理,和大家分享。
1.机器不会错,如果错了,一定是人的问题
2.思维定势,让人对错误视若无睹,比如:
1.page = request.GET.get('page',1)
写成get, Get,尤其是Get ,还完全意识不到自己的错误。
2.在使用爬虫时, 把 soup = Beautiful( *.text, 'lxml') 写成 *.txt,意识不到自己的错误。
把 web_data, 写成 wb_data, 意识不到自己的错误。
眼睁睁的看着实例都能写错,可见思维定势的强大。
那日常生活中,工作中,学习中,有多少是因为思维定势,而让你错失了了解真相的机会呢?
下图是一个很明显的例子。
少女或老妇?
为什么会这样?
在心理学上,定势又称心向,是指主体对一定活动的预先的特殊准备状态。具体地说,人们当前的活动常受前面从事的活动的影响,倾向于带有前面活动的特点。当这种影响发生在知觉过程中时,产生的就是知觉定势。
因此,你对现有事物的认知和反应,依据于你过往对类似事务的认知和经验。
当你去认知新事物的时候,是无法知道自己错在哪里了的。正如你不能提着自己的衣领把自己举起来。
怎么破?
结识和你有不同背景,具有高度自知之明的人,通过和他们的互相探讨,来逐步拼凑出事情更完整的面貌。
3-对于高门槛的新技能,付钱学习是最便宜高效的入门方法
Python 其实我15年初九嚷嚷在学,学到年底,也不过可以编一些计算类的(比如汉诺塔什么的)小程序自娱自乐。
11月份报了实战计划的爬虫入门班,包括过年,产品更新迭代上新版等等,到目前4个多月时间,我已经能够用Django搭建自己的简单网站,展示自己爬取的简单数据(搜狗数据还是不行,js控制的数据有部分不行),并从中受益。
如果早知道,我会早去花钱学习。而不是自己茫然地在网上导出寻找免费资料,浪费了近1年的时间。
为什么呢?
在入门的时候,我们其实还没有掌握寻找问题的方法,更不用说怎么去解决。而高门槛的新技能一般有复杂的初始要求,比如说配置电脑环境:python3.X升级, pip的安装,pycharm的安装,mongdo的安装,这些问题,随便一个都能让尚未入门的小白折腾一天,然后发现自己连生产工作都搞不定,更不要说学习生产了,只好绝望放弃。
所谓师傅领入门,是让你在碰到这些问题的时候,指导你该如何去寻找解决的办法。
然后,才有可能自学。
4. 刚需,是战胜任何困难的第一推动力
学习爬虫有个很关键的目标,是想做一个自己的信息搜集器。
把和客栈相关的所有信息,能够搜集到一个地方,自己每天可以阅读。
这是我作为产品的刚需:了解市场,了解竞品。
因此每次遇到困难的时候,也只能咬咬牙,然后到处查资料问人,知道最后完成。
如果只是玩玩而已的话,早放弃了。
5. 先整理思路框架,再开干
写程序的时候,先想清楚要干什么,比马上开始干重要。
比如我写36氪的爬虫的时候,第一次只想爬文章标题,链接。
爬完之后发现不够,于是改数据库,加上了品类;之后发现需要时间否则排序有问题,又改数据库,加上了时间。而在写知乎的时候,吸取之前的经验,一开始把所有需要的内容都整理列出来,然后再写,效率明显提高。
写完36氪一个品类的爬虫之后,写第二个品类的爬虫写到一半才意识到自己可以把品类作为参数每次输入,爬虫本身是一样的。
于是标准化了爬虫,增加了参数输入。
当然,这些问题其实都很菜鸟,通过这些菜鸟的步骤,我们才能慢慢学习成长。
6. 集中地长时间的反复练习,才有可能前进
年后因为要准备3.0新版的事情,忙到经常一周才学习一次,每次有60%的时间都在回顾之前学到哪里了,怎么做的。40%的时间来往前走一小步。对于学习而言,是效率很低的方式。
315这周,3.0上线了,于是恢复了早上学习1个小时,周末花半天学习的习惯。速度明显加快,第一版半成品的客栈舆情网也做出来了。
一般的编程(不涉及到高级的算法什么的),其实是门手艺活,熟能生巧。因此,手熟很重要。