文/
@iGuo
首先插播一个广告~
今天收到了另外一个导师的邮件:
Hi Guo,
Will you be on campus during July 12-16?
WISE is organizing a summer camp. There will be 100+ undergraduate students who will attend our summer camp. You have been doing a lot of interesting data work.Could you come and give a presentation? You are also welcome to bring your teammates and do the presentation together.
Kent Zhao
另外一封回复说到:
A great project!
Thanks so much for your availability. Here is the information of our summer camp:
http://wise.xmu.edu.cn/xly/It will be great if you can talk about your project and provide students some interesting findings.
还有一封邮件说:
It will be great if you can also introduce some basic 爬虫技术 to our students.
我欣然答应了老师的邀请。所以!所以,今年小学期,我即将给参加我厦经院和亚南院的保研夏令营( http://wise.xmu.edu.cn/xly/)的小伙伴们详细介绍一下我们的项目相关研究和相关技术~希望你们能喜欢~
本文会持续更新~
注:非商业转载注明作者即可,商业转载请联系作者授权并支付稿费。本人已授权“维权骑士”网站(http://rightknights.com)对我在知乎发布文章的版权侵权行为进行追究与维权。
————————萌萌哒的分割线————————
这篇文章总结自己在初学编程的一些经验。
Step 1 明确学习编程的目的
不同的人学习编程的目的是不同的,有的是为了进入CS相关的行业,有的是为了进入编程需求比较高的其他行业,有的只是为了学习一些编程思想。因此,作为一个初学者的你,首先就要明确你是哪一种人。不同的人对于编程语言、对于计算机理论、对于软件开发知识的需求是有非常大的差距的。比如,如果你像我们一样用编程来获取数据、储存数据、处理数据、分析数据,那么就应该把重点放在数据相关的编程知识上面,在不必要的时候就暂时不去扩展其他知识。
Step 2 选择一条路径
注意,这里强调“一条”这个数字。初学者很容易陷入学什么语言、学Python2还是3、用什么教材、看什么视频或者教程的问题,或者看了很多大牛的建议而不知道怎么选择。最简单的方法是,看哪个顺眼就看哪个的建议。(其实随机选也差不多……)为什么呢?对于初学者,最难的事情就是克服“编程很难”的恐惧心理,而至于学的多深入多全面并不是重点。与其纠结哪扇门最接近终点,不如直接先踹开一扇门,然后再去找更好的路。当然,也许你还会疑惑,没关系,先进入下面的环节。
Step 3 学习基本语法
这个大家都懂。但是强调一点,学习一个语言的数据结构和控制语句等知识的时候,首先不要纠结于处理某一个数据结构(比如字符串)的方法或者函数,而是要先去了解都有哪些数据结构和循环语句,为什么要抽象出来这样的数据结构和循环语句。
Step 4 学习编程思想
无论是五行、五十行、五百行、还是五千行、五万行的程序,程序设计思想都是贯穿任何程序的诞生的始终的。所以,程序设计思想是学习编程的核心。从组织一个函数(function),到组织一个类(class),到组织一个模块(module),到组织一个工程(project),自顶层向下设计、模块化编程、三种编程范式(面向对象、面向过程、函数式)、可维护、可拓展性等等组织代码的思想,都是相通的,这也是一个全面提高人的设计思维、解决问题的能力的过程。
Step 5 实战
编程是为了解决需求的,那么最好的学习其实还是learning by doing。有了一定的基础以后,就去找一个可能解决的问题,然后在解决问题的过程中寻找问题,解决问题,优化方法。
这句话说的很简单,但是在真正做的时候,非常需要耐心和机智,更需要坚持。这个过程是最艰难的一步。
那具体要怎么做呢?
用好搜索引擎。把报错信息放在不同的搜索引擎里面反复搜索、反复尝试。
举个例子,我一边写专栏一边跑程序(Python2.7.9)的时候遇到这么一个问题:
Traceback (most recent call last):
File "E:\Programs\Eclipse\concurrency\multiprocessing.py", line 8, in <module>
from multiprocessing.dummy import Pool
File "E:\Programs\Eclipse\concurrency\multiprocessing.py", line 8, in <module>
from multiprocessing.dummy import Pool
ImportError: No module named dummy
前面主要是告诉你错误在哪一行。最后一行非常重要,这告诉了你错误类型和错误原因。然后把这个复制到搜索引擎里面去找解决方案。有时候可能不止一个方法,不知道用哪个,一个一个试验就好。实在不行就把所有配置卸载了全部重来。(嗯我第一个月学Python的时候每隔几天重新下载一遍Python)
PS:这个错误是Eclipse下出现的错误,有部分库(系统模块或者第三方模块都有)导入的时候会错误,但是直接在Python解释器下导入是没问题的。截止专栏发表,我还没有解决。
PS的PS:发表之后的一个小时,我根据这个step里面的套路,找到并解决了问题。
Step 6 深入系统学习
在解决了一系列问题以后,你对于你需要解决的问题已经有了一个比较清晰的认识了,那么再回头去系统的深入学习、寻找更好的方案就变的自然而水到渠成了。
总结
看起来是一个会走很多弯路的过程。然而,对于所有的学习,特别是自学都是一样的:与其去纠结哪条路最直,不如走下去。因为,那样的直路本来就不存在。一条断断续续的“直路”远远比不上一条蜿蜒曲折但是却一直延续的“弯路”更有价值。自己走出来的路,才是最适合自己的路。
更重要的是,去克服一个自己本来觉得解决不了的困难,那种喜悦和增加的自信心,会伴随今后的学习,学习能力的积累也会让后面的学习越来越容易。这才是来自自学的真正财富吧。
相信我,可以的。我也是在几乎没有人指导的情况下一点一点学出来的。Github主页为证: https://github.com/Guo-Zhang
加油,每一个想学编程的小伙伴。
————————萌萌哒的分割线————————
更多项目介绍,请关注我们的项目专栏:China’s Prices Project – 知乎专栏
项目联系方式: