文/JamFF
最近在学Python,不是以开发为目的,只是为了给工作和生活,增加一种解决问题的手段。元旦期间,入手了人生第一台Mac,就在Mac OS环境下开始我的 Python编程。今天我就以这个为背景,说下我自己的学习方法。
为什么要学习
这么简单的问题就不说了,大家想一下就好了,我相信,每一个点进来的人,都知道自己为什么要学习,记住这个的理由,它将成为你不可磨灭的动力。
学习中的常见问题
1. 杂乱无章,不能持之以恒
什么都想学,看到什么好就要学什么,移动端火,跑去学几天;PHP火,跑去学几天;Python火,又跑去学几天,每天都很忙碌,到最后往往什么也得不到。这样你只是看起来很努力。
无志之人常立志,有志之人立长志。
我制订了一个学习Python的计划,在没有实现以前,不停止计划,不增加新计划。当然这并不表示,同一时间只能有一个学习计划,计划是可以并行的,比如我同时在读《资治通鉴》和备考PMP。Python优先级最高,每天都要学习;《资治通鉴》属于一个爱好,且周期较长,在放松时候去看;PMP考试是今年6月份的,每周末,拿出整时间去学习。
2. 选择了错误的方向
学习没有对错之分,但人生苦短,学习最适合自己的知识显得尤为重要。
图片来自网络比如一个Android开发,想要学Java EE,PHP,Python这些,并没有问题,但前提是要衡量机会成本。
如果想在Android上深挖,优先学习相关知识,目前大多数开发还停留在应用层,往下还有framework层、系统运行库层、Linux内核层,这些都是跟Android开发息息相关的知识。
如果为了以后走上CTO的角色,那可以补充服务端知识。而我学习Python目的很简单,为了帮我快速的解决工作和生活上的难题。最近很火的一句话,贫穷限制了我的想象力,与此相比,我更害怕知识限制了我的想象力。
3. 没有项目规划
项目管理里面提到两个概念过程和项目。学习是一个过程,没有开始也没有结束,只有将学习分为不同阶段,细化为项目,才可以把控进度。
项目是临时的、可测量的、渐进明细的。
- 项目内容:学习Python
- 项目验收标准:实现爬虫和自动化测试
- 项目绩效目标:每天2小时的学习时间
- 项目周期:预计一个月内完成。
4. 碎片化学习
碎片化学习有利有弊,我曾深受其害,对于知识要系统的、完整的学习。想想自己有没有过,游走在各个论坛、博客,看一些散碎的知识,仅仅是走马观花的了解,当未来需要用的时候,只是有一个模糊的概念,除此以外,再也想不到任何有用的东西。
- 系统学习,采取看书或者学习有系统知识体系的博客,放弃无用学习。我从网上找到了Python基础视频,以及Python完整教程。
- 实践出真知,闻者不如见者知之为详,见者不如居者知之为尽。看完视频和教程后,认为都明白了,只有当真正去敲代码时,才会发现各种各样的bug,解决问题的时候才是加深记忆的过程。
- 做笔记,看到有用的知识,又没有时间去系统的学习,那就用一些笔记软件记录下了,起一个描述性强的名字,方便以后快速查找。
学习无处不在
图片来自网络学习的方式多种多样,没有时间,不是阻止你前进的理由。
1. 计划型学习
上面提到的学习,都是有计划的学习,只是学习的一种方式。
2. 碎片化学习
这里又提到了碎片化学习,首先要了解哪些适合碎片化学习,例如听书,看新闻,只是单纯的获取信息量,丰富自己的知识面,这一类非常适合碎片化学习,可以在上下班的路上,睡觉前去做。而对于技术学习,我更愿意拿出整时间,去系统的学习。
3. 生活中学习
要有一双善于发现的眼睛,从周围人身上看到优点,观察他们的一言一行,并对比自己,从中学习。我很喜欢的一句话,知人者智,自知者明,知人和自知都是不可或缺的。
比如A很有人缘,身边总围着很多人,而自己并没有。这就要观察A,看他有着什么样的人格魅力,是说话亲和、幽默、眼界开阔,还是健谈等等原因。从而对比自己,找到差距,然后在沟通技巧、生活阅历方面下足功夫。从有意而为之,逐渐养成习惯,到无意而为之,最后形成自己的人格魅力。
4. 发散型学习
我学习目的是Python,但是从这一点发散出去的其他学习点有很多。
-
使用Mac OS系统,就会让自己去学习Mac上的一些使用技巧,快捷键、触摸手势等等。
-
自己搞Android的,当然先要装上Android环境,再去装Python了,在这过程中又学到一些冷知识。
-
Android Studio官方建议Mac OS使用Java1.7,使用Java1.8会有问题。
-
不需要像Windows那样去配置环境变量,就可以在任意目录调用Java,由此想验证下Python是否也一样。
- 发现Mac自带Python环境
- 安装Python解释器时,不论2.7还是3.4,会自动配置环境变量。
-
有些软件是需要JAVA_HOME的,Mac配置JAVA_HOME,方式有几种,类似Linux,然后就又顺便了解了一下相关命令。
- Terminal命令
- Vim命令
如此就形成了一个树状结构,还没开始学习Python前,就已经学习了一些其他知识,这里只是举个例子,其实在工作中有很多发散型学习的机会,只要多问自己一个为什么,就可以在不知不觉中提升自己了 。
有人会认为这不就跑偏了吗,和上面提到的杂乱无章,不能持之以恒相互矛盾。其实不然,上面说的问题是,不断变更学习目标,而这里讲的是一种,以点带面的学习方式。对于知识需要深挖,不然会错过很多细节,只是copy网上代码,没有理解每一行命令的含义,就不能真正的掌握它、记住它。
写在最后
之前一篇程序员职业规划的文章,很多人都留言说对未来很迷惘,这并不可怕,迷惘是常态、是进步,在每个阶段都有需要思考的内容,如何解决才是关键。还有一些留言说讲不够具体,这是由于在阅读时,人的注意力只有短短几分钟,我在有限的篇幅中,尽量在广度和深度上寻求平衡。针对这两个问题,才有了这篇文章,希望先从学习方法这一点出发,带给大家一些干货。
我是JamFF,希望今天的文章对你有帮助。
END.
网友评论