编程就如同你学习开车,即使,你可以一口气,说出一辆车的全部零部件,以及内燃机进气、压缩、做功和排气过程,但你就是不去练如何开车,怎么上路。你确定,你敢开吗?你敢开,我也不敢坐。
同样地,学十几年的英语,应该也有10000 h+,按照一万小时定律,你我英语水平应该都不错,至少能和老外谈笑风生了吧!
实际呢?面对漂亮的金发女郎,你不敢说,缺乏自信,怕嘲笑,中式英语,说一句想十句。妹子撩不到,反而成为笑柄。
英语面试时,灵活的问题让你力不从心,之前的准备,全部成泡影。最终,专业面过,却死在英语上,不能得到心仪工作。多么可惜!
学习编程、开车和英语,都有一个共同特征:需要不断练习,练习,再练习。最终,达到,像卖油翁一样境界。我亦无他,惟手熟尔!
掌握一门新技能,上课只能吸收10%,与人交流吸收20%,大量练习才能掌握70%。这就是著名的721定律。
初识python
2018年某一天,python突然变得很火。媒体宣传学习python的巨大好处与前景。原因很简单,人工智能将python推向了顶峰。
一时间,全民编程的浪潮此起彼伏。python 列入全国计算机二级取代VB,部分城市试点,python引入高中。互联网时代,已经离不开编程。
爬虫、开发网页、开发游戏、数据分析几大用途映入眼帘。第一次听说爬虫,倍感好奇。曾猜想,编一个蜘蛛出来,什么鬼?查阅后才知道,通过程序,爬取网页数据,达到数据收集目的。
此时,脑洞大开,放只爬虫,游离于互联网,爬取最热图书、最热电影、批量下载图片和歌曲和招聘信息等等。
这是多么有意思事情。想到这个,不免会心一笑。但是,一想到,大一C语言的黑历史,就只能,呵呵!
大一编程学那么差,都挂科了,50分啊!时隔9年,你觉得,编程小白,能学会的概率有多少,别搞笑了,好吗?
这是充满否定和鄙视的挑衅。(我怎么可以这么说自己!)如果,换成以前的我,我会认怂。是的,我不敢跨越黑历史,我不敢揭开那伤疤,我不想被嘲笑,我怕失败。
但是,现在的我,却发生巨大变化。认知的提升,思维的转变,一个新的指南针,在迷茫中,给我方向。
感谢那些,曾陪我度过孤单岁月的鸡汤、励志、认知和思考类的书籍。
如果你对Python编程感兴趣,那么记得来小编的Python学习扣群:784758214 ,这里有资源共享,技术解答,大家可以在一起交流Python编程经验,与你分享Python企业当下人才需求及怎么从零基础学习Python,和学习什么内容。学习python有不懂的(学习方法,学习路线,如何学习有效率的问题),可以随时来咨询我,或者缺少系统学习资料。
保持学习新知识的能力,将成为今后快速迭代升级必备能力。多一个技能,多条路。用20%的时间,掌握一个技能的80%,就是胜利。记不清在哪,看过这样一句话,不管有多难,请把自己活成一支军队。
如何用有限的班后时间,做到入门爬虫这个技能,是我当前的主要目标。我清楚,我不需要花大量时间和精力,让它如数家珍。
因为,我不是专业出身,我已经不在年轻,能扛得住N年码代码的身心俱疲。毕竟,中年危机就在不远的5-6年。码代码,最后,拼的也是身体!
python学习之路
学习python最好方法,就是以练带学,不断思考和总结。
上课,过一遍基础知识点
对于小白的我来说,一定要先过一遍基础知识,了解这个语言的语法规则和结构,比如,常用的列表、字典等的用法。
建议通过视频学习,这样不但节省时间,而且效果很好。
上课,过一遍爬取流程
在熟悉基本基础后,就可以了解爬虫的基本模块,以requests和beautifulsoup为例。
Requests用来下载html 到本地,也就是网页源代码。Beautifulsoup用来解析html,使用css选择器,选取指定的信息(如:评论、阅读量等等)。
最后,将爬取信息,保存在txt和csv格式,用于后续数据分析。这份信息汇总,包含你需要的所有内容。
做项目,练习总结
在掌握流程和基本知识以后,就可以实战做项目。在做第一个项目时,问题一定特别多,不要急。这是一个快速爬坡的过程。能否回忆起那个陡峭的学习曲线?问题越多,学的越快。
我做的第一个项目,爬取豆瓣不同标签下最热书单,最终生成词云图(目前,阅读量2800+,感谢大家的支持)。
在本次实战中,问题真是,接连不断,非常打击自信心。自己问过了,无力。度娘问过了,无解。大神问过了,不理。
清晰记得,好几个晚上,毫无进展,停滞不前。对着闪动的光标发呆,写了删,删了写,不断报错,无法debug。
一晚上,碌碌无为,无奈、无助和无解,换来疲惫的身体和大脑。怀疑人生,似乎变得更加有意义。
这些问题,你是否也遇到过?
1)CSS就是选择不上需要内容,输出结果,不是空,就是空!html代码,看得云里雾里。2)爬下来html一堆乱码,csv结果无法识别,又是乱码,全是乱码,你大爷的,抓狂心都有了。
3)爬一半,报错,无法解码,index 出错,各种错,你错上瘾了,是吧!
4)爬取下来,列表里面数字,无法进行列表的乘除运算,已经int()过,怎么破!
5)代码没变,刚才还能爬下内容,过一会,一个毛也爬不下来,什么情况啊!一下午,就这么浪费了,砸电脑的心的都有。
第一个项目,往往是最难的,但也是刻骨铭心的。流程不熟悉,结构不了解,体系不全面,知识碎片,散落一地,没有形态,真是一地鸡毛。
但就在这种让人近乎绝望的情况下,各个知识之间的关系,逐渐清晰起来,一张知识网逐渐形成。加把劲,这才刚刚开始。
在此基础上,还需要做2件事情,会帮助完善,这张独一无二的知识网,并且越来越密,却来越结实。
出报告
每完成一个项目,总结报告,必不可少。一份报告记录这个任务的目的、分析过程和结论,其中,很多细节,将帮助你,加深对项目的理解,以及相关知识的应用。梳理框架,对后续类似项目都有指导意义。
先注重流程逻辑,再考虑设计,不断思考去完善。报告,教程,作品,它们之间的距离,会越来越模糊,你的个人品牌,会越来越显著。
总结,搭建知识网络
仔细回忆做项目的过程,拿出纸笔记录流程,几个项目下来,你的项目网络框架就基本搭建完成。
其中,高频知识点,将通过这张网有逻辑地链接起来,它们彼此之间,具有很强的相关性。
还记得初中化学,学过的化学分子结构吗?碳原子通过单键、双键和三键彼此连接,键越多,越难断裂。
知识点彼此连接,越紧密,越难忘记。这就解释了,为什么你孤立地学习一些知识,很容易忘记,真正用的时候完全想不起来的原因。
就拿爬虫为例,在爬取网页时,
(1)需要html中css的知识,找出对应内容的css选择器;
(2)需要列表的知识,将爬取下来的内容,分别存放在不同的列表中;
(3)需要字符串的知识,剔除爬取下来的无用信息等等。
孤立的学习这些知识,顶多让你知道它是什么,仅此而已。而不会知道,在什么情况使用,以何种逻辑关系相互连接。
结构化学习,才是你我需要真正培养的能力。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。