本文缘起于和一位同事交流Python中,希望我能开个课程分享下心得和经验,正好我也想整理下自己所学的资料和代码工具,就决定梳理几篇文章。
我毕业于厦门理工学院数学与应用数学(统计方向)专业,大一下开始接触编程,相当于花了一年学习C语言,一年学习C++,一年学习算法,有参加过ACM算法竞赛,最好成绩是在上海和队友拿到亚洲区域赛铜奖。大学毕业后在中国铁塔做了半年Excel,用VBA做数据自动化处理。2016年回到母校和计算机学院的王大寒老师一起做模式识别方面的科研工作,主要是使用C++,有时候也要用到Matlab,2017年上半年在北京中科院自动化所访问学习。因为很多原因,退出科研领域,2017年8月来快乐学习做LaTeX。
很快我就发现LaTeX工作中存在非常多可以自动化的地方,就边学Python3边做起相关自动化工作,持续到现在。
我自认为技术水平介于初级与中级之间吧,还有英语等等方面不足,在撰写本文时很多也是现学现卖。在ACM和中科院,见识过很多大牛,真的是人外有人,天外有天,我们还是要stay hungry stay foolish。也正因为一个人的力量是渺小的,经历和见识总是有限,经常会有思维盲点的存在,旁观者清,在这里也欢迎大家对文章的各种补充、建议和批评。
故不登高山,不知天之高也;不临深溪,不知地之厚也;不闻先王之遗言,不知学问之大也。
因为我的主要工作是LaTeX的原因,潜意识里会比较偏向文档处理方面的技术介绍。围绕Python相关技术,也会分享一些普适性的学习方法理论。文章仅代表个人观点,后文不再累述强调,会直接描述见解,不再加词缀“我认为”。
作者:陈坤泽
我的学习观:
凡事皆有因缘,有的人是对Python有兴趣,想了解不同语言之间的区别,感悟编程之美而来学习Python,用来做一些自己觉得有趣的事情;有的人是看好Python的前景,为了事业,更广阔的发展出路而来学习Python;有的人只关心某个具体问题,想用Python尽快写一个自动化脚本解决问题。
动机不存在分别,大家的目的不同罢了。但基础、目标不同,适合的学习资料和方法,是有区别的,不存在最好的资料和方法,就像不存在最好的编程语言,适合自己的就是最好的。就算是同一个人,在不同的时间点目标也可能会产生变化,具体问题具体分析,我们要学会与时俱进,灵活变通。
区别和分别:万事万物都是有区别、差别的,这是缘起上的不同;分别是指人内心增加出来好坏高低等观念、概念。
任何选择都有得失,Python有优点也有缺点,我们要做的不是要把Python变完美,而是通过对Python充分的了解,发挥其特长,避开其不足。
选择的过程,可以把眼光放长远一些。有些事情半衰期很短,例如打游戏,可以很快就得到收益,非常爽,但是过几天这种感觉就消逝了,并不能带来长远的利益。而学习Python,当下的收益并不大,但这种收益会持续很久,不断的在你的人生中给你的工作学习带来便利。(参考文:你做了多少高收益值、长半衰期的事?)
半衰期短收益低的事让别人做,例如把一张图片的文字公式内容录出来。半衰期短收益高的事自己找兼职做,例如排版其实比录入容易的多,相对市场价录入一页13元排版一页6元,排版性价比太高了。而我们自己,应该是把精力放在管理决策,技术研发上。一件事情手动做可能只要3个小时,写自动化程序要一周,但以后所有类似的问题都可以通过程序解决了,远比一直都花3个小时去解决,长远累积效益高的多。我们也不要小看一些半衰期长但收益低的事,多了解一些学习方法、人文素养,看起来没有直接带来什么利益,其实长远的潜移默化所带来的价值是不可估量的。
主要途径有:
总之,只要动机足够强烈,方法总比问题多,总能找到解决问题需要的资源的,不要轻易说“没有资料,没办法”。
吾尝终日而思矣,不如须臾之所学也;吾尝跂而望矣,不如登高之博见也。登高而招,臂非加长也,而见者远;顺风而呼,声非加疾也,而闻者彰。假舆马者,非利足也,而致千里;假舟楫者,非能水也,而绝江河。君子生非异也,善假于物也。
这里的学习方法主要是指一些工具、以及固定的套路、学习模式,跟第2步的“获取资料”和第4步的“整理分享”有一定重合,介于“信息输入”和“信息输出”中间的“信息处理”。不同的学习任务,需要的工具神器不同(Python编程需要给力的IDE开发调试工具,LaTeX需要文本差异对比、文件整理工具),就不展开,简单说一些较通用的。
资料收藏误区:只囤不用,久积成病。还不如重新上网搜索。
一定要对资料用自己的语言重新组织。有个非常好的锻炼自己知识归纳,语言组织,记忆力的方法,就是每半天和朋友吃饭的时候,互相分享这半天在做什么,讲到能让对方听懂。朋友职业没有限制,只要对方愿意听,都不是障碍。
学习工作中遇到的问题,好似是独立零散的一个个点,其实都是有逻辑因果关系的,用线串起来,就会形成一个很有条理的面、立体,这就具备了宏观、系统思维。
借助思维导图软件进行系统分类整理,可以参考知乎该问题个人知识管理如何做好分类管理,便于后面的学习利用?中李石的回答。
通过分类、归纳整理,虽然看似没有原创的新发现,但博采众长,我们就能做到:
青,取之于蓝,而青于蓝;冰,水为之,而寒于水。
这个我就不多说什么了,刘未鹏大大下述两篇文章总结的非常详细了,强烈推荐很多不喜欢写笔记、分享笔记的伙伴认真读一下。刘未鹏有一本《暗时间》,是讲学习方法的,也十分推荐一读。
整理归纳,并写笔记分享后,似乎这个知识点就学完了。其实我们要真正理解一个概念,往往是螺旋式上升,反复迭代的一个过程。一本好书,每一次读都会有新的收获。不要想着什么东西都只学一遍就够了。
另一方面,当我们解决一个问题后,往往会发现背后蕴含着更多的问题和疑惑。这是一个循环,我们又再次回到第1步的“学习动机”。一个好的问题,可能会让我们与更多志同道合的朋友相遇,会发现更多优质的学习资料和工具神器,会发现这个世界更多的美。科技不是线性发展的,未来不会在过去的延长线上,而是技术爆炸,我们人的学习能力、技术能力、精神世界又何尝不是“爆炸”式地成长呢?
我并不算很有天赋,用了一年来学C语言,一年学习C++基础。但是我大四学LaTeX的时候,只用一周读完了刘海洋的书,工作的时候又用一周学会了Python的基本语法。
所以,我们也不用畏惧问题,学无止境,活到老学到老。稍事整顿,思考我们为何选择这条路,回归初心,踏上新的旅程。