前一阵子,关于Python被纳入高考等一系列关于编程的讨论,让我们想到在工作中学习SQL、SAS、R、Python等不同「语言」的经验,勾起早期学习「外语」的记忆与经验,发现这当中相似的地方还不少,所以今天要和各位分享这位TOEFL iBT 111/120的数据分析师学习不同「语言」这一路的心得,利用跨界的思维与方式,在新的一年中更有效的学习编程!
我很喜欢语言,因为它在完整的逻辑中夹带了一丝浪漫的转折。而我的英文,与爸爸脱离不了关系。因着他的计划,从小学开始每天早上上学前他会陪我阅读一些英文小说与杂志。在手机尚未普及的年代,查询英文单词只有两种办法:实体字典与电子词典。现在家中柜子里还躺着那台当时将近要与iPhone同个价格的黑白电子词典,记录了我和爸爸一起学习英文的那段日子。
因为他对英文的热爱与坚持,养成我阅读英文的习惯,因此我高中、大学,甚至到现在工作闲暇之余,还是喜欢拿起小说(Matilda是我第一本读完的小说)杂志,徜徉在每位作者精炼后的智慧结晶中。
回想起过去早起念英文、背单词的日子,对照现在每天码代码、学习新编程语言的日子,想想都叫做语言,其区别是什么呢?好奇心驱使我转身在Wiki里面搜索「形式语言 Formal Langauge」,发现其定义为一组遵守特定规则的符号,当中恰巧包含了数学、语言以及计算机这些类别。于是决定从学英文的角度出发,分享我是如何跨界应用,利用学习外语的经验学习编程语言:
1背单词
从最基本的单位开始向上累积,英文是字母、单词与词性:A for Apple, B for Bird. 编程则像是String, Integer, Float, Variables, Function, Package这类基本的元素与操作。在一开始没有一定的单词量,不仅难理解一个完整句子或是一串编码的意思与目的,更别提要从自己口中说出完整的句子或写出有用的代码了。英文就是多查字典,编程则可以利用该语言的文本(documentation)、搜寻引擎或是一些经典的书籍与网站帮助入门。
2了解规则
文法就是语言的规则,它负责告诉你什么样的词性应该出现在句子中的什么位置。在个人学习的经验中,主要透过广播、文章、完整的编码直接认识完整的句子与背后的规则,文法书作为辅助。这样做是因为语言是活的,如果一直把它当成一种静态的学科来学习,会是一件很沮丧的事情。
但一些基本规则还是从文法书可以最快认知到,例如知道动词后面可以接名词,对编程而言则像在SQL里面要先写创建的表或是取的变量,再说要从什么母表里面以什么条件来取之类的。
3从句子中了解单词的意思
当你已经累积了一些对语言基本的know-how,看的懂"Hello World!"是什么意思之后,就可以一面继续累积单词量,一面练习从句子中透过上下文的方式了解单词的意思。为什么这很重要呢?因为不仅一种语言的单词数量远远超过我们想像(例如第20版的牛津英语辞典中收录了将近25万的单词),代码或是单词、文法都不是独立存在的,再加上人类对于语言的灵活使用,使得在语境中学习语言成为非常有效的方式。练习在下次看到生词或是不懂的代码时,多阅读整段文本几次,这缺失的一块会越来越清晰。
以下面这句话为例:The complex houses married and single soldiers and their families. 虽然每个单词的各自意思不难理解,但合并一起若不透过上下文字来理解,是很难了解的(真正意义需要将Complex作为名词、houses作为动词、married作为形容词)。
又例如下面这串Python爬虫的代码,从整段代码看来,即使不知urlopen是什么,也可从当中的url猜测这是一段与读取网址有关系。
这样的学习方式,不仅可训练对语言的敏感度,更可以提升创意:看懂了其他大牛写出来的文章或是编码,常常可以联想到自己适用的场景,加以调整之后马上可以应用出来。例如看了网站上用R来做情感分析的文章,结合了不同的数据导入方式,我就可以分析我自己想要分析的文本。
4反复不断练习
格拉德威尔在《异类》一书中指出的1万小时定律:
"人们眼中的天才之所以卓越非凡,并非天资超人一等,而是付出了持续不断的努力。1万小时的锤炼是任何人从平凡变成世界级大师的必要条件。"
我认为这背后持续努力、不断练习的做法,对于学习语言特别重要。肯定大家都听过这样的说法:「在国外学英语更有效,因为环境使然」,但就算你出国,整天与说中文的同学混在一起,怎么可能进步?还是要靠自己不断的练习,让自己在听说读写所有的面相都浸泡在想要学习的语言环境中(例如看电影把中文字幕遮起来或是利用IDE不断写代码),久而久之,会慢慢的用新的语言思考与沟通(或是说梦话),跳脱每次看到单词或是代码就要回头查定义的阶段!
5
我自己的编程水平,远远比我理想中的程度要差的许多,但利用这些方法,我相信可以慢慢朝目标前进。另外,语言终究是沟通的工具,更重要的是拿着工具解决问题而不是一直擦亮刀剑。无论是用以外语沟通解决问题,或是利用编程解决商业、科技等问题。
最后,不聪明的人如我持之以恒并保持热情是很重要的。前些日子,陪父亲在医院散步,他依旧不改的问着我墙上写的医学单词是什么意思,谢谢他。希望各位读者不仅在新的一年中,而是每一年里,都怀抱像他一样的热情与坚持,学习未知。
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved