文-陈林林,优达纳米学位毕业生

一、明确学习编程的目的

因为学习编程会有调bug让人心灰意冷的时候,初学者也会有一段时间是瓶颈期,貌似付出了很多努力却没有看到明显的提高等等。每当这些让人沮丧的瞬间袭来的时候,很有必要回想起自己当时为什么出发的理由。我当时学习编程是被一句话打动了“用编程改变世界”,接触了编程之后,确实爱上了这个很酷的行当。并且这个行业的前景也十分好,因此更加有理由坚持下去了。

在这里可以给两个建议:

1.明确自己学习编程是兴趣还是就业。不一定要一开始就搞清楚这一点,实际上很多小伙伴是开始尝试编程之后才爱上这个行业的,但在学习过程中要关注这个问题,有助于你早日明确目标之后为以后的发展做好规划。

2.了解行业的最新发展和未来趋势。正如我所相信的那样:“用编程改变世界”,了解各个技术的最新应用,比如小爱音箱用到的自然语言处理,AlphaGo用到的强化学习,这些了解个大概,有一种很好的参与感觉。

二、制定自己学习编程的路径

每个人学习编程的规划并不会完全一样,但是大体上是相同的。在一开始就制定一个大概的路径有助于你总览大局,知道自己现在在地图的哪个位置,离下一个打卡点还有多远的距离,你可以顺藤摸瓜一直学下去而不会迷失方向。

总体来说,多年的学习经验告诉我,你可以尝试以下几个制定学习路径的方法:

1.跟进一门系统完整的课程

网上的课程都是课程经理经过很长时间打磨而成的,所以其优质课程的大纲都是非常值得参考的。如果你不上它的课,也可以用它的大纲去学习,我觉得这是一个非常好的切入点。当然,初学编程跟进一门课程还是很好的,它可以帮助你督促自己学习。

2.查看csdn博客贴出的一些导图

这些博客往往会贴出一些编程学习的进阶路径,先从哪里入门再往哪里走。

3.将“学习编程”这个项目进行分解到具体行动

当你大概有了个大纲以后,接下来就要把它分解到小目标,再到具体行动。具体行动可以让你切实有效地去执行,当你用一个个完成的行动积累成一个小目标的完成,小目标的完成积累成大目标的实现,你可以切实看到自己一步一步朝着既定的路线前进,可以感受到完成所带来的满足感。

关于项目分解,我推荐几款好用的工具:

幕布可以用大纲的形式非常方便地制作出你的学习路径。

• 奇妙清单

进一步对子任务进行分解,可以得到

就这样对每个任务进行分解直到该任务为可以执行的行动,然后做起来,做完一项勾选一项,以此不断推进项目进行,小编亲试过这个方法非常有效治疗行动懒惰者。

三、保持编程的热情

选择一门合适的编程语言

入门编程的新手最好选用一门简单、友好且具有发展前景的优点(可以参考每年stackoverflow对每种编程语言的统计)。在所有编程语言当中,Python是一门对新手很合适的语言,并且越来越多企业都将其作为招聘的要求。

Python具有以下这些优点:

• 语言友好。你很容易能够像读文章一样理解它所写的代码讲的是什么东西。

• 扩展性强。Python就像瑞士军刀一样,许多开发者为Python配备了很多厉害的工具包,用于数据分析的就有pandas,numpy和matplotlib,用于机器学习的就有sklearn,keras,gensim等等,很多工作都能在一个环境当中完成,十分完整和强大。

• Python发展势头十分迅猛,Python持续成为增长最快的编程语言,具有坚实的基础。

优化自己的工作条件

如果要好好学编程的话,一定要配备好相应的条件以优化编程体验和提高效率,编程的体验很大程度影响了你对编程是喜欢还是沮丧。

首先是编辑器,我可以推荐以下这几款,jupyter notebook可以集可视化,markdown,latex公式以及代码到一身的多功能编辑器,特别合适用来做交互式和生成分析报告;sublime和Pycharm也是很多人选择的一款编辑器。

github,github能够托管你的代码并且在以后的工作当中也会一直用,因此一开始作为开端去掌握还是很必要的。

查阅文档。dash可以集成各种工具包的文档,十分推荐。

掌握各种快捷键,如果不能掌握编辑器,以及其他软件的快捷键,以及加快打字速度,那你会觉得编程很多时候都是像在织毛衣一样,很慢很不爽。

四、采用合适科学的学习方式

有了硬件条件,我们看一下不要采用哪些低效的学习方式。

1. 不要一直看视频不动手

初学者有个问题就是买了课程,把时间都花在看视频上面,看完了一系列视频再动手会傻眼,什么都记不得。最好的方式是,一开始入门稍微看些视频,重点关注代码部分,如果不懂也没关系,照着敲一遍,运行看看结果。相信我,当你看到自己的代码成功被运行出来了,那种感觉可真美!那种感觉才是支持你一直学习编程的原因。到后面可以用倍速的方式去看视频,甚至拉进度条直接去关注代码部分。哪怕不看视频,学习编程都不能不动手。

2. 练习核心概念

对一些核心概念要多花时间去理解和练习。关于理解的方式,可以参考《一年内学完了MIT计算机科学全部33门课》里面提到的费曼学习法,可以通过自己总结文章的方式去解释一个概念,这样你就能从多个方面去了解这个概念。比如Python的生成器,装饰器,列表和元组的区别等等。

练手的方式,建议交互式练习,也就是摒弃传统的学完一堆再去练习的方式,而是学完一个知识点底下就有相应的练习。我了解的资源有datacamp的免费在线交互式练习学习python。另外还可以用jupyter notebook,上面用markdown写下你对知识点的理解,然后下面coding cell对照课程进行代码的练习。

3. 实现一个有意义的项目并总结

没有什么练习比做一个完整的项目更能全面锻炼你的各方面编程能力了。当对Python基础掌握之后,可以从kaggle或者github上面找到一些开源的项目去尝试一下,一步一步分析项目怎么去开展,时间多花一些都没有关系。在完成了整个项目之后,你还可以对整个项目进行总结,总结就是讲一个故事,以数据分析为例,关于你如何获得数据,数据有什么特点,如何处理数据,进行了什么分析,最终得到了怎么样的一个结果,其他编程方向以此类推,相差不大。总之,这个完整的流程在将来面试的时候hr也是会重点询问你的,所以要早点总结好。可以通过github,简书,csdn等博客发布你的总结,也可以为你积攒粉丝,给你持续学习编程的动力。

4. 增强自己的搜索能力

学习编程除了有系统的课程外,其实很大程度依赖自己的自学,所以历练出强的搜索能力也是很有必要的。常用的论坛和搜索引擎可以多去使用。

• 谷歌----不用说了,优质的搜索引擎

• 知乎----哪些概念不懂的时候去知乎搜搜答案,有很多有趣的回答

• 官方文档-----优秀的程序员遇到使用的问题总是先去查官方文档

• stackoverflow--------上面有很多前人踩过的坑和提过的问题,总能解决你的问题

其中,如果要持续学习编程的话,我觉得学好英语还是很有优势的,可以去接触更多优秀的国外资源。

5.持续跟进一门系统的课程

持续跟一门课程的好处有:

能够稳定学习下去

积攒成就感

适时的反馈

以上这些就是作者的经验分享,他是优达数据分析纳米学位毕业生,如果你也想开始你的编程之旅,成为改变世界的那群人,不如现在就行动起来,把握正确的学习路径,让自己学得更好更快!

人生苦短,我用 Python!简洁高效,新手友好!来自硅谷的「Python 编程入门」基石纳米学位课程,已经开放报名,限量课程席位!点击「阅读原文」,免费预览和体验课程。