【Python】零、学习经验分享

0 序

本文缘起于和一位同事交流Python中,希望我能开个课程分享下心得和经验,正好我也想整理下自己所学的资料和代码工具,就决定梳理几篇文章。

我毕业于厦门理工学院数学与应用数学(统计方向)专业,大一下开始接触编程,相当于花了一年学习C语言,一年学习C++,一年学习算法,有参加过ACM算法竞赛,最好成绩是在上海和队友拿到亚洲区域赛铜奖。大学毕业后在中国铁塔做了半年Excel,用VBA做数据自动化处理。2016年回到母校和计算机学院的王大寒老师一起做模式识别方面的科研工作,主要是使用C++,有时候也要用到Matlab,2017年上半年在北京中科院自动化所访问学习。因为很多原因,退出科研领域,2017年8月来快乐学习做LaTeX。
很快我就发现LaTeX工作中存在非常多可以自动化的地方,就边学Python3边做起相关自动化工作,持续到现在。

我自认为技术水平介于初级与中级之间吧,还有英语等等方面不足,在撰写本文时很多也是现学现卖。在ACM和中科院,见识过很多大牛,真的是人外有人,天外有天,我们还是要stay hungry stay foolish。也正因为一个人的力量是渺小的,经历和见识总是有限,经常会有思维盲点的存在,旁观者清,在这里也欢迎大家对文章的各种补充、建议和批评。

故不登高山,不知天之高也;不临深溪,不知地之厚也;不闻先王之遗言,不知学问之大也。

因为我的主要工作是LaTeX的原因,潜意识里会比较偏向文档处理方面的技术介绍。围绕Python相关技术,也会分享一些普适性的学习方法理论。文章仅代表个人观点,后文不再累述强调,会直接描述见解,不再加词缀“我认为”。

作者:陈坤泽

邮箱:[email protected]

1 学习动机

我的学习观:
在这里插入图片描述

凡事皆有因缘,有的人是对Python有兴趣,想了解不同语言之间的区别,感悟编程之美而来学习Python,用来做一些自己觉得有趣的事情;有的人是看好Python的前景,为了事业,更广阔的发展出路而来学习Python;有的人只关心某个具体问题,想用Python尽快写一个自动化脚本解决问题。

动机不存在分别,大家的目的不同罢了。但基础、目标不同,适合的学习资料和方法,是有区别的,不存在最好的资料和方法,就像不存在最好的编程语言,适合自己的就是最好的。就算是同一个人,在不同的时间点目标也可能会产生变化,具体问题具体分析,我们要学会与时俱进,灵活变通。

区别和分别:万事万物都是有区别、差别的,这是缘起上的不同;分别是指人内心增加出来好坏高低等观念、概念。

任何选择都有得失,Python有优点也有缺点,我们要做的不是要把Python变完美,而是通过对Python充分的了解,发挥其特长,避开其不足。

选择的过程,可以把眼光放长远一些。有些事情半衰期很短,例如打游戏,可以很快就得到收益,非常爽,但是过几天这种感觉就消逝了,并不能带来长远的利益。而学习Python,当下的收益并不大,但这种收益会持续很久,不断的在你的人生中给你的工作学习带来便利。(参考文:你做了多少高收益值、长半衰期的事?)
[外链图片转存失败(img-cpcrvnO9-1565403240754)(http://i1.fuimg.com/582188/c3e0c52fcae3ae26.png)]

半衰期短收益低的事让别人做,例如把一张图片的文字公式内容录出来。半衰期短收益高的事自己找兼职做,例如排版其实比录入容易的多,相对市场价录入一页13元排版一页6元,排版性价比太高了。而我们自己,应该是把精力放在管理决策,技术研发上。一件事情手动做可能只要3个小时,写自动化程序要一周,但以后所有类似的问题都可以通过程序解决了,远比一直都花3个小时去解决,长远累积效益高的多。我们也不要小看一些半衰期长但收益低的事,多了解一些学习方法、人文素养,看起来没有直接带来什么利益,其实长远的潜移默化所带来的价值是不可估量的。

2 获取资料

主要途径有:

  1. 百度、谷歌:
    • 百度能比较方便地搜索到中文资料,学习门槛较低,对于英语不好的可以优先尝试,先对某个陌生知识点有基本了解,再用谷歌搜索英文资料,往往会更权威系统,而且很多偏僻技术问题,只有通过英文搜索才找得到答案。
    • 要注意使用一些搜索技巧,能大大提高精度:
      [外链图片转存失败(img-0EOS7mfK-1565403240754)(http://i1.fuimg.com/582188/dd21b5cb5ea22afd.png)]
    • 有个小技巧,大家可以先搜“图片”而不是网页,通过看图片来进入相关网页,往往找到的资料质量更高。很多知识其实一图胜千言 ,能画出一张高度总结归纳图片的文章,质量都不会太差。
      [外链图片转存失败(img-idQF4cJn-1565403240755)(http://i1.fuimg.com/582188/19dd349730faf5b9.png)]
  2. 垂直网站:一个行业发展成熟,一定会有相应的垂直网站,甚至APP。在相关网站上去找资料,会比百度谷歌效率高得多。
    • 虫部落快搜,包括找微信、知乎文章的功能。
    • 大数据导航,各种各样的统计数据、数据库。百度指数、谷歌趋势也是分析调查,为决策提供支持很好的工具。
    • 在线万能查询和在线工具,一些好用的网址工具,包括谷歌镜像网站,方便没有梯子小伙伴。
  3. 博客、书籍、官方文档:
    • 我们可能只是因为某个小问题而搜到一篇博客,如果发现博客质量非常高,一个作品体现了其作者的人品,可以试着去了解下作者的其他作品,往往也有很多非常优秀的内容值得一读。公众号、论坛、网站等等也是同理,这个道理看似简单,但我们大量的优质学习资料来源往往都是通过这种途径获得的。
    • 博客一般知识点比较零散,要系统的学习的话最好是看书,看书也比较容易制定学习目标,坚持下去,对知识点也有系统的认识。有些网站“博客”是有目录整理,体系规划的,也可以理解为是“书籍”类资源。
    • 官方文档:很多官方文档是开发者写的,他们对底层实现原理是最了解的,一些偏僻的bug、知识点,往往只有官方文档才有写。
    • Learn X in Y minutes,这个网站我翻译为“21分钟从入门到放弃”,有各种编程语言、软件的快速入门资料。
    • 伯乐在线github,有各种编程语言的扩展库、书籍资料大全。
    • 有些资料找不全、找不到,还可以尝试淘宝。
  4. 音视频等多媒体资源:
    • 音频:网易云音乐有些电台,平时听一些科普类、历史类讯息可以了解相关文化。IT工作人士平时眼睛用的比较多,可以睡前闭目养神听段音频。
      • 刘延栋 软件那些事儿,有相应同名公众号可以看文本。作者比较不正经,废话较多,不过这样更接地气吧~
      • 吴京平 科学史评话。
      • 风格非常多,你喜欢什么类型的基本都搜的有,不要局限于我推荐的技术资料。网易云课堂等很多网站也有音频学习资料,可以科学规划自己的时间,避免用眼疲劳
    • 视频:
      • 现在有很多收费教学视频,我的建议是先看一些免费视频,有需要再买一些百元的课程,千元的还是慎重,其实学习主要还是靠自己花时间下去,而不是投入了多少钱和收集了多少优质资料。
      • 推荐可以变速播放的网站,例如慕课网,B站。加速播放往往对我们的消化吸收没有太大影响,特别是基础好的,而且一个视频如果要重复看的话,加速功能会带来很大的便利。
      • 网易公开课、网易云课堂上面优质课程也是挺多的。
        • 朱丹 超级搜索术,怎么搜索资料、整理资料。
        • 谷小城, 表格之道,站在数据规范化的角度教Excel,很多Excel问题根源本质是数据格式不规范。
      • B站也有很多科技、学习类视频的,并不只是二次元~~B站的用户比较有趣,边学课程边看弹幕挺有意思的,让学习过程充满乐趣,而且无广告。同类资源B站有的话我都是优先在B站看。推荐一些不错的up主:
        • 木鱼水心,影评。
        • 李永乐老师官方,经常结合热点新闻,讲数学等相关科普视频,很涨知识哦。
        • Oeasy,Office各种软件使用方法的教程。
    • app:例如有很多英语学习的App,ipad也有一个“算法动画图解”的应用用来学习数据结构与算法,非常生动形象。
  5. 社交途径
    • 如果身边有牛人,直接向牛人请教要怎么学习当然是最快的~~不过要记住别人只会指导一个方向,具体的学习都是靠自己的。
    • 如果身边没有,可以了解该领域内的牛人,通过邮箱、知乎、微博等等手段去联系,一般真正的大牛脾气都很好的,只要你抛出的问题是有价值的,都会很热情的回复指导。
    • qq群等社交平台,也能询问一些比较偏僻网上很难找到资料的问题。一些qq群文件有些资料积淀也可以阅读了解。

总之,只要动机足够强烈,方法总比问题多,总能找到解决问题需要的资源的,不要轻易说“没有资料,没办法”。

3 学习方法

吾尝终日而思矣,不如须臾之所学也;吾尝跂而望矣,不如登高之博见也。登高而招,臂非加长也,而见者远;顺风而呼,声非加疾也,而闻者彰。假舆马者,非利足也,而致千里;假舟楫者,非能水也,而绝江河。君子生非异也,善假于物也。

这里的学习方法主要是指一些工具、以及固定的套路、学习模式,跟第2步的“获取资料”和第4步的“整理分享”有一定重合,介于“信息输入”和“信息输出”中间的“信息处理”。不同的学习任务,需要的工具神器不同(Python编程需要给力的IDE开发调试工具,LaTeX需要文本差异对比、文件整理工具),就不展开,简单说一些较通用的。

  1. OneNote,腾讯文档(有目录栏方便系统性文章书写),有道云(可以插入附件)等笔记软件。喜欢用markdown写笔记的,图床可以考虑贴图库。
  2. 找资料的时候,我一般习惯先在虫部落快搜找有没有相关的微信文章、知乎答案,这里的文章一般比百度出来的质量好些。以及搜关键词相关的图片,看到比较直观易懂的图片,再索引到对应网址,这类资料一般图文并茂,更便于理解。大概了解中文资料情况后,再搜索阅读英文资料和读官方文档。
  3. 百度翻译等翻译工具:能自动识别输入的是中文还是英文,还支持复制图片,自动识别里面的文本哦,也是一个很好用的OCR工具。还有有道词典软件,chrome浏览器可以扩展翻译插件等,都是阅读英文资料时的利器。
  4. 坚果云(免费版功能已经足够大部分普通用户的使用),可以在多人、多台电脑、手机、平板等实时同步数据。可以把桌面同步了,这样在不同电脑几乎可以无缝衔接工作。
  5. 学习一门新语言的时候,我会进行 对比学习,思考同一个功能在不同编程语言里面分别是如何实现的,例如用自己熟悉的c++去理解py代码:
    [外链图片转存失败(img-6yTumACH-1565403240755)(http://i1.fuimg.com/582188/00eee0f0a27fdbcb.png)]
    世间万物很多道理都是相通的,不仅是编程语言之间,其实语文、英语、数学符号、编程语言都是关于信息沟通传递的学问。我们学过的每一个技能都不会白学,抓住知识背后的本质规律,以不变应万变,通过类比能更好地理解新事物。有个TRIZ,是关于创造发明的内在规律和原理的方法学,有兴趣的可以去了解下。
  6. 最好的休息,不是睡觉,而是切换大脑。可以试着在学习与运动,理科和文科,输入和输出等不同的状态间切换。

4 整理分享

4.1 用自己的语言重新组织

资料收藏误区:只囤不用,久积成病。还不如重新上网搜索。
一定要对资料用自己的语言重新组织。有个非常好的锻炼自己知识归纳,语言组织,记忆力的方法,就是每半天和朋友吃饭的时候,互相分享这半天在做什么,讲到能让对方听懂。朋友职业没有限制,只要对方愿意听,都不是障碍。
[外链图片转存失败(img-gsrizi8T-1565403240756)(http://i2.tiimg.com/582188/17f511ced5efa872.png)]

4.2 分类整理

[外链图片转存失败(img-Mc4KK530-1565403240756)(http://i2.tiimg.com/582188/31bb81b9a705fa36.png)]
学习工作中遇到的问题,好似是独立零散的一个个点,其实都是有逻辑因果关系的,用线串起来,就会形成一个很有条理的面、立体,这就具备了宏观、系统思维。

借助思维导图软件进行系统分类整理,可以参考知乎该问题个人知识管理如何做好分类管理,便于后面的学习利用?中李石的回答。

通过分类、归纳整理,虽然看似没有原创的新发现,但博采众长,我们就能做到:

青,取之于蓝,而青于蓝;冰,水为之,而寒于水。

4.3 写笔记!写笔记!写笔记!分享笔记

这个我就不多说什么了,刘未鹏大大下述两篇文章总结的非常详细了,强烈推荐很多不喜欢写笔记、分享笔记的伙伴认真读一下。刘未鹏有一本《暗时间》,是讲学习方法的,也十分推荐一读。

  1. 刘未鹏,为什么你应该(从现在开始就)写博客,BetterExplained,2009.2
  2. 刘未鹏,书写是为了更好的思考,BetterExplained,2009.2

4.4 眼前的终点只是另一个未知的起点

整理归纳,并写笔记分享后,似乎这个知识点就学完了。其实我们要真正理解一个概念,往往是螺旋式上升,反复迭代的一个过程。一本好书,每一次读都会有新的收获。不要想着什么东西都只学一遍就够了。

另一方面,当我们解决一个问题后,往往会发现背后蕴含着更多的问题和疑惑。这是一个循环,我们又再次回到第1步的“学习动机”。一个好的问题,可能会让我们与更多志同道合的朋友相遇,会发现更多优质的学习资料和工具神器,会发现这个世界更多的美。科技不是线性发展的,未来不会在过去的延长线上,而是技术爆炸,我们人的学习能力、技术能力、精神世界又何尝不是“爆炸”式地成长呢?

我并不算很有天赋,用了一年来学C语言,一年学习C++基础。但是我大四学LaTeX的时候,只用一周读完了刘海洋的书,工作的时候又用一周学会了Python的基本语法。

所以,我们也不用畏惧问题,学无止境,活到老学到老。稍事整顿,思考我们为何选择这条路,回归初心,踏上新的旅程。

Reference

  1. 荀子,《劝学》,先秦
  2. 朱丹,超级搜索术,网易公开课,2018.5

你可能感兴趣的:(Python,心得分享)