-
帮助自动化完成一些冗长枯燥的手工劳动;
-
学英语,编程的通用语言是英语,很多编程资料都是英文的;
-
训练逻辑能力,把报错的程序调试到正确的过程也是认知提升的过程;
-
训练产品思维,当你开始思考代码的易用性、健壮性等问题时,你就是在做一个虚拟产品,你也是一个产品经理;
-
当然,这里还能列举更多的好处。
前期准备
确定自己学编程的目标
是为了把自己从冗长枯燥的手工劳动中解放出来?还是毕业论文没数据要去晚上爬取数据?还是编程就是饭碗?
总之,要任务导向,要学以致用,学习编程要能创造有效生产力。
选择适合自己的学习材料
如何找教材?
如何选教材?
结构化学习
制定适合自己的学习路径
不同的学习者目标不一样,有的是为了数据分析、有的是为了网页开发、有的可能是网络安全等。
把编程要实现的大目标,拆分成一个个的小目标,先做什么,后做什么,难度一点点增加,就像登楼梯一样,技能一步步提高。
e.g. 我想用python 学习数据挖掘,那么可以试试检索“python 数据挖掘 学习路径”或者“python data mining learning path”,搜到的文章可以用来作为决策参考。
编程学习通用框架
以下分享自己总结的通用框架(大部分的教材的基本框架也是如此),通过4个步骤的学习路径来逐步提升。
编程学习通用框架:
1. 环境部署,即如何安装编程需要的软件、工具包、插件,以及配置编程开发环境等;
2. 编程元素,主要有以下3类:
-
变量,分为基本变量(e.g. 数字、字符串、日期等)和复合变量(e.g. 数组、列表、结构体等);
-
语句,逻辑判断(e.g. 大小比较、是否判断、集合归属、或且非等)、循环语句(e.g. for、while)等;
-
函数,即一组处理变量的语句,e.g. 统计函数、日期函数、字符串函数等;
3. 数据操作
4. 高级操作
多练习多思考
和已有的编程知识联系
不同的编程语言,底层逻辑基本是一致的,基本学习框架也是一致的。
多实操,做点有趣的事情
把习得的技能应用于工作和生活,一方面可以检验学习效果,另一方面实战演练遇到的情况往往比教材复杂,更有利于综合能力提高。
兴趣是最好的老师,可以尝试用编程来做点有意思的事情,e.g. 做一些自动化的小工具,用来提高效率,用爬虫抓取美女图片等等。
在寻求他人帮助前尽量自己先多尝试,工具就在手中,探索得到的知识印象更深刻。
不断迭代改进
第一次写出来的代码总不是最完美的,后面会发现一些bug(漏洞),这些都是开始没有考虑完备的情况,所以要不断修改完善。
完善程序的主要目标有两个:
-
提升健壮性(兼容性),即适应数据的变化;
-
提升运行效率,单位时间内能处理更多的数据;
养成好的编程习惯
学会正确定义问题和提问
注: 什么?都是英文?学好英文很重要,技术领域的很多好资料都是英语写的
尽量避免重复造轮子
充分利用网络资源,合理使用他人分享的工具。
个人会常去github上找工具包,或者找cheat sheet(作弊手册),e.g. 搜索一下“python cheat sheet”,python常用知识点的总结就到手了,这些核心知识基本覆盖了80%的应用场景,尤其是初学者,cheat sheet必备啊。
优雅地写代码
一个好的程序应该具有如下特点:
编程难学吗?
虽然编程有点抽象,但是远没有数学公式来得抽象,借用《为学》里的那句话——“天下事有难易乎?为之,则难者亦易矣;不为,则易者亦难矣”——如果你想学,那就开始动手咯。