爬虫小记
对于编程,我的阴影应该来自于大学的Fortain 77,一个听起来很古老的课程。编程课是大班教学的安排,最终就是让我一共只了解了排序有个冒泡的方法,其他便是空白,印象中考试是笔试,有题库的那种,从此对编程敬而远之。
Python是我到了同济之后才知道的一个词汇,但是,一旦接触到以后,频率增加了很多。无论我的选课系统中,还是在我英语口语课上,都会提到Python,我于是很好奇,到底这是一门什么样的语言。但是,阴影一旦存在,便很难说服自己。所以,在选课的时候,我放弃了。不过,有一天偶然看到一篇帖子,是玉树兰芝老师写的关于Python的科普文章,让我又有了跃跃一试的兴趣。
Python的学习方式也是一变再变,最初从传统的教材开始,根据玉树兰芝推荐的去图书馆借了《笨办法学Python》,发现这书上的内容是平面的,仅用了几天时间就顺利跑完了从“入门到放弃”的全过程;第二种尝试的是群学习的方式,有位同学组织了一个Python的学习群,感兴趣的可以加入,不过,好像加入之后也没有指导作用,还是放弃;第三种方法是看网课,还特地注册了Coursera平台的账号,寻找到一门非常好的MOOC课程——Programming for Everybody,然而还是无法与他的系统相连接,过了一段时间后,还是放弃了。看来按照传统的学习方式,我是坚持不下去了。
转机出现在1月底,我的朋友圈出现了一个广告《Python轻松入门》,里面有体验课,也就是参加了这个体验课之后,我开始了网络互动式的Python学习。一直以来,很多事情都是凭直觉做决定的,当我完成了体验课的时候,我能感觉得到这个团队背后的一种认真的态度,觉得是值得一试的。是的,就是在人机对话的过程中,你可以感受到背后的人是否是用心在做一件事情。
必须承认,在现代通信技术的帮助下,知识的学习途径出现了新的变化,人机对话+微信社群的模式是一种合适的途径,软件的学习其中一个难点就是编程过程中,需要一个随时能帮你解决各种bug的人,贵在随时;而群落里面,大家交流出现的问题,得到及时的解答,看到其他人的经验可以让自己学习的时候避开一些陷阱,当这两者结合在一起,学习的效率会提高很多。而我恰恰成了其中受益的一员。如果没有这样的课程的设计,我想我对Python的学习可能会一直停留在好奇阶段上,或者,在我尝试了上述几种途径被阻之后,我会停止继续这方面的学习,毕竟,不学Python,日子还是照过的。
对于网络上知识付费,我一直是持支持的态度。只要付费知识的产品足够好,或者能够满足我的需求,我便觉得付费就是是应该的。比如听喜马拉雅,可以付费;更倾向于买书而不是借书;付费的过程就是一种成本的支出的过程,那么在成本的付出之后,自然会考虑如何有所得的问题。
因为,自己也做过老师,看到他们蛮用心的做这个事情,有时候还会以过来人的口气给后台提一些建议。这也是一个很有趣的事情。这应该是老师的本性:对一个热爱学习的学生总是愿意给到额外的指导一样。
自然,学习的过程也不是一帆风顺的。2月份刚开始的时候正好疫情期间,相对事情比较少,我每天都可以花2个小时的时间去学习。课程设计一开始非常简单,每天2小时完成一关的难度不大。于是,鄙陋的线性思维开始了,掐指一算,两门课程一共30来关,一个月就可以完成了,就算稍微慢一点,40天应该也可以结束课程,满心欢喜。
事实上,从2月5日开始,到4月30日,用了三个月的时间,才把Python基础和爬虫基础两门课程学完了。因为后面有些关口的学习和练习,差不多要用到4个学时才能顺利完成一关。我有一次就忍不住抱怨起这个不合理的学时来。特别到状况基本正常之后,既要关注自己的学术,又要上课,还要参与导师的各个项目,时间的安排一下子就变得紧巴巴的了。于是,线性思维下的一个月的学习时间,活生生的被拉长到三个月。但是,不管这样,在4月30日,终于画上了一个句号。
另一个意外的收获是对于程序员有了不同的认识,我以前一直都觉得码农是一份超级无聊的工作,只跟计算机打交道,容易封闭自己。但是,在我上学期的《优化》课程上,遇到了梁老师,让我改变了很多看法,同样也多了一些好奇。在这次的课程中,有时候会聊一些程序员的世界。比如说“编程世界的创建,是基于人对现实世界的理解,编程能将对世界的理解投射到代码里”;“梦想即目标,目标即可被分析过程,分析清楚目标即可被实现”;这些用程序员的思维对于世界的表达是一种新的阐述方式;再如,分析步骤的时候,不是从第一步开始分析,而是从第“0”步开始,意味着从“0”到"1”的突破的困难,同时彰显“0”的与众不同;而把写爬虫代码的步骤总结为“确定目标——分析过程(获取数据——解析方法——提取数据——存储数据)——代码实现”,这样的抽象,其实,与人想要实现自己的目标是何曾相似。如此种种,让我对这一次的学习体验的评价是比较高的,而况,我对自己的目标也不是要成为一个码农,而是要知道它能为我提供什么。就好像,我不一定要自己会写工程造价软件的编码,但是对于它的逻辑顺序、与定额的关系以及如果我想要实现某种功能,程序是否能实现该功能了然于胸就可以了。
另一方面,也许,这也是预示着,智能化的时代,学习途径的多元化会进一步的增加,未来的新的学习方式和生活方式才刚刚开始。山顶洞人能够感知的最初是三维真实空间,然后在岩壁上留下印象画的二维表达方式,再演化到象形文字,最后到文字的文明时代。而如今从文字到图片再到视频,刚好就是一个逆向的过程。这种逆向的过程会给人类带来什么,真的很难说。这是一个全新的时代,也是一个“奇点”正在到来的时代!当真是生逢其时。