如何从零开始学编程?

如何从零开始学编程?,第1张

在你学习编程之前思考一下你的目标,当你有最终目标时道路会更加的清晰。那么,你想要写什么?网站?游戏?iOS或者Android应用?或是你是想自动化完成一些乏味的任务让你有更多的时间看窗外的风景?也许你只是想更具有就业竞争力找个好工作。所有的这些都是有价值的目标,这些目标都是你编程学习推动力的一部分,没有推动力的人,是无法在略显枯燥的漫长学习之旅中走远的。

不要浮躁

BadprogrammingiseasyEvenDummiescanlearnitin21daysGoodprogrammingrequiresthought,buteveryonecandoitandeveryonecanexperiencetheextremesatisfactionthatcomeswithit

不管是在线下还是线上的书店,满目都是《21天学通Java》这种速成书目,它们都承诺在很短一段时间内就让你能够学会相关技术。MatthiasFelleisen在他的著作HowtoDesignPrograms,SecondEdition一书中明确指出了这种「速成」的趋势并予以了以上的讽刺。

所谓的「捷径」或者说「银d」是不存在的,智者说过,精通某个东西需要10年或10000个小时,也就是汉语中的「十年磨一剑」,所以不用着急,功不唐捐。

培养兴趣

Mostgoodprogrammersdoprogrammingnotbecausetheyexpecttogetpaidorgetadulationbythepublic,butbecauseitisfuntoprogram

_LinusTorvalds

沉醉于编程,编程更是为了兴趣。兴趣是推动力的不竭源泉,保持这种充满兴趣的感觉,以便于你能将其投入到你的10年/10000小时的编程时间中。编程很有趣,那是探索的喜悦。那是创造的喜悦。看到自己亲手完成的作品显示在屏幕上很有趣。有人为你的代码而惊叹很有趣。有人在公共场合称赞你的产品、邻居使用你的产品、以及在媒体上讨论你的产品很有趣。编程应该十分有趣,若并非如此,就找出导致编程无趣的问题,然后解决之。

在这里对于初学者有两个大坑:

如果初学者们只与预先构建好的「发动机和组件」接触(没有理解和思考它们构造的原理),这会严重限制他们在将来构建这些东西的能力,并且在诊断解决问题时无从下手。

第二个坑没有第一个那么明显:幼稚的「整体论」方法有些时候会显得很有效,这有一定的隐蔽性与误导性,但是一两年过后(也许没那么长),当你在学习路上走远时,再想回过头来「补足基础」会有巨大的心理障碍,你得抛弃之前自己狭隘的观念,耐心地缓步前进,这比你初学时学习基础知识困难得多。

但也不能矫枉过正,陷入还原论的大坑,初学时便一心试图做宏大的理论,这样不仅有一切流于理论的危险,枯燥和乏味还会让你失去推动力。这种情况经常发生在计算机科班生身上。

为了更好理解,可以将学习编程类比为学习厨艺:你为了烧得一手好菜买了一些关于菜谱的书,如果你只是想为家人做菜,这会是一个不错的主意,你重复菜谱上的步骤也能做出不赖的菜肴,但是如果你有更大的野心,真的想在朋友面前露一手,做一些独一无二的美味佳肴,甚至成为「大厨」,你必须理解这些菜谱背后大师的想法,理解其中的理论,而不仅仅是一味地实践。但是如果你每天唯一的工作就是阅读那些厚重的理论书籍,因为缺乏实践,你只会成为一个糟糕的厨子,甚至永远成为不了厨子,因为看了几天书后你就因为枯燥放弃了厨艺的学习。

总之,编程是连接理论与实践的纽带,是计算机科学与计算机应用技术相交融的领域。正确的编程学习方法应该是:通过自顶而下的探索与项目实践,获得编程直觉与推动力;从自底向上的打基础过程中,获得最重要的通用方法并巩固编程思想的理解。

作为初学者,应以后者为主,前者为辅。

启蒙

「学编程应该学哪门语言?」这经常是初学者问的第一个问题,但这是一个错误的问题,你最先考虑的问题应该是「哪些东西构成了编程学习的基础」?

编程知识的金字塔底部有三个关键的部分:

算法思想:例如怎样找出一组数中最大的那个数?首先你得有一个maxSoFar变量,之后对于每个数

语法:我怎样用某种编程语言表达这些算法,让计算机能够理解。

系统基础:为什么while(1)时线程永远无法结束?为什么intfoo(){intx=0;return&x;}是不可行的?

启蒙阶段的初学者若选择C语言作为第一门语言会很困难并且枯燥,这是因为他们被迫要同时学习这三个部分,在能做出东西前要花费很多时间。

因此,为了尽量最小化「语法」与「系统基础」这两部分,建议使用Python作为学习的第一门语言,虽然Python对初学者很友好,但这并不意味着它只是一个「玩具」,在大型项目中你也能见到它强大而灵活的身影。熟悉Python后,学习C语言是便是一个不错的选择了:学习C语言会帮助你以靠近底层的视角思考问题,并且在后期帮助你理解 *** 作系统层级的一些原理,如果你只想成为一个普通(平庸)的开发者你可以不学习它。

下面给出了一个可供参考的启蒙阶段导引,完成后你会在头脑中构建起一个整体框架,帮助你进行自顶向下的探索。

完成Codecademy的Python部分。这只是热身部分,尽快完成它,因为你永远只是在浏览器里,你不会学到如何搭建开发环境。在Codecademy这类的编程学习网站学到的那点儿东西,哪怕你只想做一个小的不能再小的项目,你都不知道该从哪儿开始。

完成MIT6001x(中文化)(如果你英语不过关,完成麻省理工学院公开课:计算机科学及编程导论。MOOC是学习编程的一个有效途径。虽然该课程的教学语言为Python,但作为一门优秀的导论课,它强调学习计算机科学领域里的重要概念和范式,而不仅仅是教你特定的语言。如果你不是科班生,这能让你在自学时开阔眼界;课程内容:计算概念,python编程语言,一些简单的数据结构与算法,测试与调试。支线任务:

完成Python核心编程

完成HarvardCS50(如果你英语不过关:完成哈佛大学公开课:计算机科学cs50。同样是导论课,但这门课与MIT的导论课互补。教学语言涉及C,PHP,JavaScript+SQL,HTML+CSS,内容的广度与深度十分合理,还能够了解到最新的一些科技成果,可以很好激发学习计算机的兴趣。支线任务:

阅读《编码的奥秘》

完成《C语言编程》

[可选]如果你的目标是成为一名Hacker:阅读Hacker'sDelight

PS:如果教育对象还是一个孩子,以下的资源会很有帮助:

5-8岁:TurtleAcademy

8-12岁:PythonforKids

12岁以上:MITScratch或KhanAcademy

入门

结束启蒙阶段后,初学者积累了一定的代码量,对编程也有了一定的了解。这时你可能想去学一门具体的技术,诸如Web开发,Android开发,iOS开发什么的,你可以去尝试做一些尽可能简单的东西,给自己一些正反馈,补充自己的推动力。但记住别深入,这些技术有无数的细节,将来会有时间去学习;同样的,这时候也别过于深入特定的框架和语言,现在是学习计算机科学通用基础知识的时候,不要试图去抄近路直接学你现在想学的东西,这是注定会失败的。

那么入门阶段具体该做些什么呢?这时候你需要做的是反思自己曾经写过的程序,去思考程序为什么(Why)要这样设计?,思考怎样(How)写出更好的程序?试图去探寻理解编程的本质:利用计算机解决问题。

设想:

X=用于思考解决方案的时间,即「解决问题」部分

Y=用于实现代码的时间,即「利用计算机」部分」

编程能力=F(X,Y)(X>Y)

要想提高编程能力,就得优化X,Y与函数F(X,Y),很少有书的内容能同时着重集中在这三点上,但有一本书做到了——StructureandInterpretationofComputerPrograms(SICP)《计算机程序的构造和解释》,它为你指明了这三个变量的方向。在阅读SICP之前,你也许能通过调用几个函数解决一个简单问题。但阅读完SICP之后,你会学会如何将问题抽象并且分解,从而处理更复杂更庞大的问题,这是编程能力巨大的飞跃,这会在本质上改变你思考问题以及用代码解决问题的方式。此外,SICP的教学语言为Scheme,可以让你初步了解函数式编程。更重要的是,他的语法十分简单,你可以很快学会它,从而把更多的时间用于学习书中的编程思想以及复杂问题的解决之道上。

PeterNorvig曾经写过一篇非常精彩的SICP书评,其中有这样一段:

Touseananalogy,ifSICPwereaboutautomobiles,itwouldbeforthepersonwhowantstoknowhowcarswork,howtheyarebuilt,andhowonemightdesignfuel-efficient,safe,reliablevehiclesforthe21stcenturyThepeoplewhohateSICParetheoneswhojustwanttoknowhowtodrivetheircaronthehighway,justlikeeveryoneelse

如果你是文中的前者,阅读SICP将成为你衔接启蒙与入门阶段的关键点

虽然SICP是一本「入门书」,但对于初学者还是有一定的难度,以下是一些十分有用的辅助资源:

UdacityCS212DesignofComputerProgram):由上文提到的Google研究主管PeterNorvig主讲,教学语言为Python,内容有一定难度。

HowtoDesignPrograms,SecondEdition:HtDP的起点比SICP低,书中的内容循循善诱,对初学者很友好,如果觉得完成SICP过于困难,可以考虑先读一读HtDP。

UCBerkeleySICP授课视频以及SICP的两位作者给Hewlett-Packard公司员工培训时的录像(中文化项目)

ComposingPrograms:一个继承了SICP思想但使用Python作为教学语言的编程导论(其中包含了一些小项目)

SICP解题集:对于书后的习题,作为初学者应尽力并量力完成。

完成了这部分学习后,你会逐步建立起一个自己的程序设计模型,你的脑子里不再是一团乱麻,你会意识到记住库和语法并不会教你如何解决编程问题,接下来要学些什么,在你心里也会明朗了很多。这时候才是真正开始进行项目实践,补充推动力的好时机。

关于项目实践:对于入门阶段的初学者,参与开源项目还为时过早,这时候应该开始一些简单的项目,诸如搭建一个网站并维护它,或是编写一个小游戏再不断进行扩展,如果你自己的想法不明确,MegaProjectList中选取项目。总之,务必在这时拿下你项目实践的第一滴血。

与此同时,别忘了继续打好根基。为了将来的厚积薄发,在下面这几个方面你还要继续做足功课(注意:下面的内容没有绝对意义上的先后顺序):

计算机系统基础

有了之前程序设计的基础后,想更加深入地把握计算机科学的脉络,不妨看看这本书:《深入理解计算机系统》ComputerSystemsAProgrammer'sPerspective。这里点名批评这本书的中译名,其实根本谈不上什么深入啦,这本书只是CMU的「计算机系统导论」的教材而已。CMU的计算机科学专业相对较偏软件,该书就是从一个程序员的视角观察计算机系统,以「程序在计算机中如何执行」为主线,全面阐述计算机系统内部实现的诸多细节。

如果你看书觉得有些枯燥的话,可以跟一门Coursera上的MOOC:TheHardware/SoftwareInterface,这门课的内容是CSAPP的一个子集,但是最经典的实验部分都移植过来了。同时,可以看看TheCProgrammingLanguage,回顾一下C语言的知识。

完成这本书后,你会具备坚实的系统基础,也具有了学习 *** 作系统,编译器,计算机网络等内容的先决条件。当学习更高级的系统内容时,翻阅一下此书的相应章节,同时编程实现其中的例子,一定会对书本上的理论具有更加感性的认识,真正做到经手的代码,从上层设计到底层实现都了然于胸,并能在脑中回放数据在网络->内存->缓存->CPU的流向。

此外,也是时候去接触UNIX哲学了:KISS-KeepitSimple,Stupid在实践中,这意味着你要开始熟悉命令行界面,配置文件。并且在开发中逐渐脱离之前使用的IDE,学会使用Vim或Emacs(或者最好两者都去尝试)。

阅读《UNIX编程环境》

阅读《UNIX编程艺术》

折腾你的UNX系统

数据结构与算法基础

如今,很多人认为编程(特别是做web开发)的主要部分就是使用别人的代码,能够用清晰简明的方式表达自己的想法比掌握硬核的数学与算法技巧重要的多,数据结构排序函数二分搜索这不都内置了吗?工作中永远用不到,学算法有啥用啊?这种扛着实用主义大旗的「码农」思想当然不可取。没有扎实的理论背景,遭遇瓶颈是迟早的事。

数据结构和算法是配套的,入门阶段你应该掌握的主要内容应该是:这个问题用什么算法和数据结构能更快解决。这就要求你对常见的数据结构和算法了熟于心,你不一定要敲代码,用纸手写流程是更快的方式。对你不懂的数据结构和算法,你要去搜它主要拿来干嘛的,使用场景是什么。

供你参考的学习资源:

《算法导论》:有人说别把这本书当入门书,这本书本来就不是入门书嘛,虽说书名是IntroductiontoAlgorithms,这只不过是因为作者不想把这本书与其他书搞重名罢了。当然,也不是没办法拿此书入门,读第一遍的时候跳过习题和证明就行了嘛,如果还觉得心虚先看看这本《数据结构与算法分析》

CourseraAlgorithms:DesignandAnalysis[Part1]&[Part2]:Stanford开的算法课,不限定语言,两个部分跟下来算法基础基本就有了;英语没过关的:麻省理工学院公开课:算法导论

入门阶段还要注意培养使用常规算法解决小规模问题的能力,结合前文的SICP部分可以读读这几本书:《编程珠玑》,《程序设计实践》

编程语言基础

DifferentlanguagessolvethesameproblemsindifferentwaysBylearningseveraldifferentapproaches,youcanhelpbroadenyourthinkingandavoidgettingstuckinarutAdditionally,learningmanylanguagesisfareasiernow,thankstothewealthoffreelyavailablesoftwareontheInternet

-ThePragmaticProgrammer

此外还要知道,学习第n门编程语言的难度是第(n-1)门的一半,所以尽量去尝试不同的编程语言与编程范式,若你跟寻了前文的指引,你已经接触了:「干净」的脚本语言Python,传统的命令式语言C,以及浪漫的函数式语言Scheme/Racket三个好朋友。但仅仅是接触远远不够,你还需要不断继续加深与他们的友谊,并尝试结交新朋友,美而雅的Ruby小姑娘,Hindley-Milner语言家族的掌中宝Haskell都是不错的选择。但有这么一位你躲不开的,必须得认识的大伙伴—C++,你得做好与他深交的准备:

入门:C++Primer

[可选]进阶:

高效使用:EffectiveC++

深入了解:《深度探索C++对象模型》;C++Templates

研究反思:TheDesignandEvolutionofC++;对于C++这个NecessaryEvil,看这本书可以让你选择是成为守夜人还是守日人。

现实是残酷的,在软件工程领域仍旧充斥着一些狂热者,他们只掌握着一种编程语言,也只想掌握一种语言,他们认为自己掌握的这门语言是最好的,其他异端都是傻X。这种人也不是无药可救,有一种很简单的治疗方法:让他们写一个编译器。要想真正理解编程语言,你必须亲自实现一个。现在是入门阶段,不要求你去上一门编译器课程,但要求你能至少实现一个简单的解释器。

供你参考的学习资源:

《程序设计语言-实践之路》:CMU编程语言原理的教材,程序语言入门书,现在就可以看,会极大扩展你的眼界,拉开你与普通人的差距。

Coursera编程语言MOOC:课堂上你能接触到极端FP(函数式)的SML,中性偏FP的Racket,以及极端OOP(面向对象)的Ruby,并学会问题的FP分解vsOOP分解、ML的模式匹配、Lisp宏、不变性与可变性、解释器的实现原理等,让你在将来学习新语言时更加轻松并写出更好的程序。

UdacityCS262ProgrammingLanguage:热热身,教你写一个简单的浏览器——其实就是一个javascript和html的解释器,完成后的成品还是很有趣的;接下来,试着完成一个之前在SICP部分提到过的项目:用Python写一个SchemeInterpreter

其他

编程入门阶段比较容易忽视的几点:

学好英语:英语是你获取高质量学习资源的主要工具,但在入门阶段,所看的那些翻译书信息损耗也没那么严重,以你自己情况权衡吧。此外英语的重要性更体现在沟通交流上,LinusTorvalds一个芬兰人,一口流利的英语一直是他招募开发者为Linux干活的的法宝,这是你的榜样。

学会提问:学习中肯定会遇到问题,首先应该学会搜索引擎的「高级搜索」,当单靠检索无法解决问题时,去StackOverflow或知乎提问,提问前读读这篇文章:Whathaveyoutried

不要做一匹独狼:尝试搭建一个像这样简单的个人网站,不要只是一个孤零零的About页面,去学习Markdown与LaTeX,试着在Blog上记录自己的想法,并订阅自己喜欢的编程类博客。推荐几个供你参考:JoelonSoftware,PeterNorvig,CodingHorror

小结

以上的内容你不应该感到惧怕,编程的入门不是几个星期就能完成的小项目。期间你还会遇到无数的困难,当你碰壁时试着尝试「费曼」技巧:将难点分而化之,切成小知识块,再逐个对付,之后通过向别人清楚地解说来检验自己是否真的理解。当然,依旧会有你解决不了的问题,这时候不要强迫自己——很多时候当你之后回过头来再看这个问题时,一切豁然开朗。

此外不要局限与上文提到的那些材料,还有一些值得在入门阶段以及将来的提升阶段反复阅读的书籍。ThePragmaticProgrammer就是这样一本程序员入门书,终极书。有人称这本书为代码小全:从DRY到KISS,从做人到做程序员,这本书教给了你一切,你所需的只是遵循书上的指导。

后记

如果你能设法完成以上的所有任务,恭喜你,你已经真正实现了编程入门。这意味着你在之后更深入的学习中,不会畏惧那些学习新语言的任务,不会畏惧那些「复杂」的API,更不会畏惧学习具体的技术,甚至感觉很容易。当然,为了掌握这些东西你依旧需要大量的练习,腰还是会疼,走路还是会费劲,一口气也上不了5楼。但我能保证你会在思想上有巨大的转变,获得极大的自信,看老师同学和csdn的眼光会变得非常微妙,虽然只是完成了编程入门,但已经成为了程序员精神世界的高富帅。不,我说错了,即使是高富帅也不会有强力精神力,他也会怀疑自己,觉得自己没钱就什么都不是了。但总之,你遵循指南好好看书,那就会体验「会当凌绝顶」的感觉。

首先要想学编程,选一门合适的计算机语言就十分重要了,怎么去选择就显得尤为重要了,这要根据自己的兴趣爱好及每个语言的特性来选择,比如说PHP适合做web开发,易学习,易上手,非常流行的一门计算机语言了,我个人比较推荐php语言。

java可以做web开发,做安卓app开发也用的是java,在学习程度上上可能比php稍微难上手一点,不过也是没问题的,如果对java感兴趣可以尝试一下。

python是目前比较火的一门语言了,比较适合做人工智能领域,另外写网络爬虫类的程序,用python也是非常合适的了,看个人兴趣来选择了。

c,c++,c#这些语言就不推荐给了,特别是c#,已经是比较过时的一门语言了,即使学习好了,也不太适合去找工作,c与c++并不是十分适合初学者来学习,因此也是没必要进行考虑了,还有一些更小众的语言,更是没有必要去考虑,因此关于语言的学习就从上面3种语言去选择一门自己所感兴趣的吧!

研发搭建环境

如果选择好计算机语言,那么接下来就是研发环境的搭建了,因为只有研发环境搭建好了,才可以进行后续的编程工作,比如说PHP,那么就从百度上搜一下如何安装PHP环境,能搜出一些简单的教程,初学者按照教程一步一步来,顶多半天时间就可以把研发环境装好了,如果是java,就需要先安装jdk,进行环境变量的配置等,网上也有相关的教程,也是十分容易的,相信大家只要按照教程来做,都可以很轻易的把研发环境搭建起来的

选好视频和书籍,辅助学习。既然是零基础学习,就需要进行系统的学习,而不是到处百度零基础的知识点进行学习。

代码练习

跟随教程一个一个章节的进行学习,需要注意的一点就是不能只是去看,那样不行,要对每一个章节的知识点要亲自用代码敲一遍,运行一下试试效果才行,这样才能提高自己的动手能力,才开始会觉得有一点生疏,慢慢的就会熟练起来,逐渐会增加编程的兴趣。这个过程就是需要反复的进行练习,大量的代码练习才行。这个过程是5步中最关键的阶段了,重在代码亲自练习,对编程中有的章节不明白的地方,千万不要放过去,可以在网上找一些相关的编程交流群,参加进去,在线上咨询一些过来人,也许就可以轻松帮你解决疑问了,对你的学习十分帮助,并且整个过程也都是免费的。

项目实战

如果说基础教程都按部就班的都实践过一遍了,那么你就有一定的编程的基本功了,那么自己就可以尝试着做一些小项目,把学到的知识给串起来,进入项目实战阶段,比如说自己设计一个学生管理系统,并把它完成,如果不了解怎么设计,可以去网上搜索。慢慢就有思路了。

我也在学习这方面,视频书籍看过不少,最推荐的还是北京尚学堂的学习资料,Java300集,Python400集,都是很经典的入门基础教程,而且是结合项目学习的,很有意思,干货满满,还都是免费的,推荐你可以去看看,相信可以带你走进变成的世界。

从零开始学编程,第一关就是要选择你所要学习的编程语言。面对着琳琅满目的编程语言,初学者常常一筹莫展,拿不定主意,不知该选哪

这里英语听力苦手前来报道,算是那种典型的听力很差的选手,别人高考听力往上拉分,我就是往下疯狂拉分;四级听力就对了一半多点,一个听力被学霸们疯狂甩在后面;第一次考雅思也砸在了听力上,后来花了一个月时间从60到了75,虽然也不算高,但是相比起以前必然是有很大进步了。

后来又经过了一些训练,达到基本可以无字幕听慕课的程度,虽然还是会有一些不懂的地方,但总体不影响上课。

这里 从一个听力一般的学渣角度,说一些自己一直以来摸爬滚打的血与泪经验 。我觉得这样也许也会有更意外的价值吧,真的是很实在的分享辽!

首先我需要强调一个概念,那就是 “听力有效词汇” 。听力有效词汇指的是,当你听到后,你可以立刻可以反应出来它的意思。 注意!不是中文直译意思,是它在句子中的意思 。可以想象一下,很多时候我们做题只是“听到了答案”而并没有“听懂”。我这里需要说,所谓真正的“听懂”,就是在不需要把一句话翻译成中文的情况下也可以理解句子的意思。

正如下图,如果你听到一个词汇后需要联想中文意思,无疑你会花很多时间。如果听到后可以立刻反应出来,那么这才是真正的听力有效词汇。再举个例子,当有人和你说“hello”时,你可以立刻反应过来,然后回应;但当他问你一句话时,相信很多人会在脑子里过一遍意思。那么这不能算作有效的听力输入。

Ok,这里世界观说完毕啦!然后再来讲下方法论,也就是我的经验所得啦。这里满满的干货要分享哟!

设定一个目标总是没有错的,为的就是 克服拖延症 。给自己一个考试目标可以相应地列出考试计划,然后告诉自己每天要花多少时间在听力练习上。事实上,听力练习如果可以每天坚持半小时,那么结果就会很好。但我们中很多人往往坚持不了,半途而废,这也就恰恰导致听力的后退。

就如我这样一个听力学渣,当时雅思挂在了听力后,决心在剩下的一个月疯狂练习,在这种压力中才产生了动力。

嗯,听上去很心灵鸡汤,但却是是经历所得。所以我jio的,不管你是想要四六级,还是雅思托福,给自己定一个目标分数,会很有效。

敲定目标后 一方面是刷题,一方面是课外练习 。

刷题的话自然是和你考试相关度最高的模拟试题。我记得我当时就是认认真真把剑桥雅思4-14刷完了,见自己听力成绩不佳,又刷了一遍听力,并且用精听(后面会讲)的方式完全地重刷了一遍。

刷题不算是提高听力素质最好的方式,但却是上分最快的方式,毋庸置疑。

这里附上Simon的听力课分享给大家,如果备考雅思可以看一波,利于技巧提升↓

链接: >

提取码:00ud

精听

嗯?一开始就搞精听?

嗯!先精听再泛听!

先前我也觉得精听好麻烦,根本坚持不了,而且好痛苦。那么我建议你由短的开始听,但是精听不可以少, 因为它会极大程度地帮你提升听力有效词汇,而且还能让你在听听力的过程中发现自己的很多问题 。

精听(Intensive Listening) 的要求如下:

1)  先把相关文章整体听一遍。 这一步是让你对相关文章的内容总体上有一个把握,毕竟到了真正的考试或者全英语课上,老师不会一字一句给你暂停然后做精听,所以先听一遍,可以把握一下总体情况。

2)  一句一句精听。 这里可以一边听,一边跟着读一遍,同时再在本子上写下来,而且是以尽可能快的速度。如果一次听不出来,可以选择每个句子听2-3遍。就这样一直一字一句写下来,直到听写完整篇文章。

3)  回头进行检查,按照给出的答案看一下自己哪些没有掌握。 这时候可以做一下分类,比如,哪些是因为连音的原因你没有听懂,哪些是因为你不认识单词而没有听懂,哪些是你听懂了但是拼写错了的。

4)  一天后再一次听。 这一次可以不再写,但是要跟着听力把一整段话顺下来,进行一次只是巩固。

嗯嗯,我知道这很麻烦,一字一句写真的很花时间,但是请相信我,这是非常锻炼自己的听力的。 因为你不写下来,你还真的不知道自己哪些东西不会。

举一个简单的例子,就是我做剑桥雅思时屡做屡错的 side effect 这一短语,我做过两遍那套题,做一遍错一遍,还都是写成了“defect”这个词(哈哈哈哈爆哭)。这就是在于对连音吞音的不熟悉,以及句子本身不够了解。

这还会锻炼你的是你 把一个句子放在整个语境中的能力 ,这可以使得你在无法通过发音判断清楚的情况下准确地明白对方在说什么,这里再举一个例子:

I love the mall

I love them all

可以说, 在连读的情况下,这两个句子的发音听上去是一毛一样的 。但是如果你结合上下文,你就应该可以判断出来到底哪个是正确的。

所以综上,精听利于你 提高单词敏感度、提高词汇在语境中的判断力、同时增加词汇量 。如此好用的精听方式,何乐而不为?

下面简单说一下我平日里常用的精听材料。

首先就是比较合适的新闻,类如老生常谈的BBC, VOA, CNN等,这些都是非常好的联系精听的资源。

首先是 每日英语听力 ,这个我已经用过好久了,真的非常喜欢。资源非常丰富,BBC, VOA, CNN的新闻精选,在里面都能找到。

此外,它的好处在于里面带有 精听、听写功能,很适合重复地练习一个句子 。同时,里面的跟读功能很适合用于经停步骤里最后的听力梳理和总结。

当然,BBC, CNN和VOA都有自己的网上资源和相关app,使用其中任何一种都是非常不错的选择。如果说你对自己的英语听力水平还没有自信,这里我先建议你使用 VOA慢速英语 。顾名思义,里面的新闻比较慢(当然也有倍速调节),而且相对比较简单,生僻词少。

然后再去选择VOA常速英语去听,基本算是正常语速,篇幅也一般要长一丢丢。

再然后再去尝试CNN,因为里面人说话语速更快一些,也有一些较长篇幅的文章,难度更大。 由简到难 很重要,因为有时候太难,会很影响你精听的节奏,让你没有办法把整句整句的话连在一起,从而影响你对整篇文章的理解。所以一定要由简单的到难的,循序渐进。

接下来就是泛听,这里并不是指“随便听听”,如刚才所说的一样,要有选择, 根据自己的能力选择合适难度的材料去听 ,不然你听的东西只是左耳朵进右耳朵出,并没有实质意义。但是依然记住, 精听为主,泛听为辅 。把一篇精听做到位,本身比泛听十篇有用。

这里的泛听建议有两条给大家,都是很锻炼听力的。这里要记住,听不懂是正常现象,很少有人能够一次听懂一段陌生材料。重点是要发现自己哪里不懂,并及时跟进。

看视频学习是一件很享受的事情,少去了只听不看的枯燥,但它对听力的锻炼是毋庸置疑的,甚至说,在你练习的过程中,视频锻炼甚至有超越mp3锻炼的诸多好处。

原因就是 我们人类获得外界信息83%是通过视觉实现的 ,从学习知识的角度来说,视觉的重要性大大超过其他知觉,自然也包括听力锻炼,视觉的工作作用与听力的练习是相辅相成的。

因此用看视频的方式练习听力,可以很好地激发兴趣,更快地理解和感知所听的内容。但是,并不是要盲目看视频就可以,试想一下,你是不是经常疯狂刷美剧英剧,但最后却没什么收获?

嗯嗯,首先,我们很多时候会习惯去看字幕,以至于对于听到的英语根本不在乎;其次,美剧英剧本身具有一定难度,对于一些基础薄弱的学生而言,是没有直接作用的,你听到的只是他们balabala说了很多话而已。

因此视频练听力最好要按照以下步骤↓

1)  不带字幕看视频。 先要通过盲听,大致猜测和懂得材料的意思,可以根据画面中人物的动作和表情来猜测,尽可能地去理解说话人所要表达的意思。

2)  看一遍带字幕的视频。 这时候可以查看不认识的词、以及关键句型,从而完整理解视频意思。

3)  再次不带字幕看视频,重复看 。直到自己能清晰地听出每一个词,并且不翻译成中文也能理解。直到可以听清每一个词,达到可以完全听懂的地步,很快就可以反应过来的程度。

看视频这方面的材料,我需要强调一下。

首先,选择适合你难度的材料。正如上面精听那一part我所说的,由易到难。这是因为你需要其中大部分内容(约80%)为 可理解输入 。

可理解输入是著名语言学家 史蒂芬·克拉申 提出的概念。就是你能听懂,且适合你难度的内容(至少通过说话人的表情和手势,根据场景或上下文你可以猜出来他在说什么)。

寻找的视频要保证我们可以在尽力思考的情况下理解大部分内容,然后再通过听力练习理解小部分内容,从而提高听力水平,这才是正确的方法。

视频材料我建议从短视频先看起,首先是 鲜榨口语 这个app。它是我偶然发现的一个小众应用,用了一段时间后发现特别好用,有很多很让我惊喜的地方。

这个APP主打的就是海量的英语短视频,有种英文版抖音的感觉,很重要的一点就是 把生活中的地道英语展示出来,训练你的听说能力,让你真正摆脱字幕 )。里面的分类很多样,包括日常生活、出门旅游、新闻话题探讨等等。

里面的视频第一遍是不带字幕的,为的是能够让人们真正通过听英语和看人们的表情动作来搞懂对方想表达的东西;第二遍的时候是可以选择打开字幕的,这时候就可以去核对一下自己听的对不对,以及记住里面的生词和句子。

当然,这个app还有个让我喜欢的地方,就是它有 模仿功能 :听完以及了解完知识点后,可以选择点击右下方模仿按钮,模仿外国人的语音语调来录制录自己的小视频,录制结束后可以带上自己的话题,参与进社区进行打卡,算是一种口语练习。

鲜榨口语在我看来是初学者进行英语听力口语很有用的一个软件,因为它视频短、表达日常,但是很地道,因为是老外拍摄的,所以 对听懂连音吞音非常有帮助 。

待这种短视频可以轻车熟路后,你就可以选择更长的视频了。这时候——就是大家喜欢的 美剧片段 了!

为什么是美剧片段?因为像我一开始所说,美剧本身很长,而且大概里都比较难,遇见这种情况很多人会松懈,忘记了一开始不要看字幕这一点,而忍不住去看中文字幕,那么这样对于听力的帮助就很小了。

这时我推荐大家去看美剧选段,这些在 Youtube和bilibili 都有很多。或者说是你以前看过的美剧,你自己寻找一小段来进行专门的听力练习。记住!按照我一开始说的!不要看字幕,一点点慢慢来,而且要重复看、重复听。我的建议是寻找诸如《老友记》和《摩登家庭》这种比较生活化的来看。

当然,如果你对动画有兴趣,那么去寻找《咱们裸熊》或者《怪诞小镇》这种动画来看,也是非常不错的选择。

视频练习的材料是多样的,同时带有看剧情的乐趣,但是还是要用正确的方式去看去听,才能真正达到效果。

泛听不像精听一样需要逐字逐句记录,但是也不代表可以远离纸和笔。

记笔记算是一个很特殊的形式,对练习听力尤其有用,这很突出在 理解能力的锻炼 。

试想一下你是不是经常做听力的时候,总是可以在填空题或者正对着选项的地方做出来,但是一旦问题换个方式问,或者让你最后选择一段对话的总结句时,你就会一脸懵圈?

还是如上面所言,英语听力的一个练习关键点还是在于听懂,这里的“听懂”不是在于知道全篇每个词汇的意思,而是在于弄清楚讲话者想要表达的东西。

这里推荐的记笔记方式就是大名鼎鼎的 康奈尔笔记法 。

这个风靡全球的记笔记法想必大家都不陌生,一个笔记本分为三部分,左边一栏叫做 线索栏(cue column) ,用于记关键词;右上大块区域名为笔记栏( note-taking area) ,是在听课时跟着记笔记的地方,最下面一栏叫做 总结栏(summaries) ,就是用于一节课后最后反思和总结的区域。

其实这很像是 模拟英文课堂 ,真的会给人一周英语教学、学以致用的感觉。

这种记笔记方法会使笔记很清晰明了,把每一个大块梳理得很利索,方法如下:

1) 听英语材料时,边听边把笔记点写在笔记栏里。

这就像日常记笔记一样,只不过平日里你听的是中文,现在换成英文而已。这里你需要把知识点用 bullet point 标好,或者用类似 头脑风暴图 的结构画好。

>need-to-insert-img

可以想想,平日里你听老师用中文讲课也不会把所有的话都记住、都写下来,所以很重要的就是抓重点。

2) 左边的线索栏用来 放生词 。

听相关材料的过程中遇见不会的词可以立刻快速在旁边记下来。不需要记住所有的,只是尽可能地记下来,要明白跟好别人讲话的进度才是最重要的。

3) 最后一栏是每次听完讲课后,用自己的英语写出总结。

如果你看的是演讲类视频的话,演讲者一般不会特意总结;但如果是课程或者讲座,老师一般情况下都会课程最后给你。但在此前,你可以用自己的话进行一下总结。为什么?因为这样可以让你更好地学会总结,测试你有没有真正听懂和明了老师讲的内容,也是锻炼了paraphrase的能力。

提取出重要的点来之后,最后再看看和老师总结的有没有区别差距,会更有利于你的进步。

材料方面,就是寻找适合自己兴趣以及能力的演讲和课程。演讲方面, TED 自然是一个很不错的选择。这个也不用我多赘述了,很多各行各业的人来演讲,不仅是提高 英语听力 ,对 词汇储备 的锻炼提高也很明显。

TED的演讲真的很多,时间依然如我所说,由易到难,由短到长陆续练习。从五分钟左右的到三四十分钟的视频慢慢来,可以很好地进行梯度训练,不至于因为没有耐心而中途放弃。

>

这里附加一个十大最受欢迎的TED演讲链接,不得不说,听演讲真的是很受用的一件事。

>

然后是Bilibili,小破站更是囊括了各种英文演讲以及讲座,也不乏一些英语课程资源。你会看到热心的up主帮你翻译和整理内容,还会有野生字幕君上线帮忙在线翻译,什么宝藏网友啊啊啊!

但还是记住,不要看字幕!要记住你是在模拟上课,上课是不能看字幕的!记住找个东西把字幕挡住再去看、听、记笔记。

下面加一下我自己喜欢的几个很好的链接↓帮忙整理好翻译的up真的太贴心啦。

TED演讲合集2018年TED英语演讲精选67篇高清版(中英文对照)

>

《English Speeches》合集 67位影响世界名人英语演讲 |

>

再来就是关于英文课程。这里我个人认为如果你是出于兴趣,选择和自己专业和兴趣领域相关的英文课程就好,但如果你纯粹是提高听力成绩,那么光是上面的那些演讲就很足够训练。

英文课程有很多,我上面提到的 每日英语听力 中就有不少课程,很适合拓展更高级的词汇,同时锻炼听力。此外还有一个就是 网易公开课 ,里面有来自世界各大学校的课程。

很值得的一点是,里面有中英文字幕,做笔记查资料相对方便。但是!还是记住不要一开始就看字幕,如果你是想要练习听力的话。英语课程是很利于模拟在外国上学的方式, 你就想象自己就在报告厅上lecture ,你的老师只能说英语,你要拿好自己的笔记本认真记,后续没有回放。用这样的模拟方式来练习听力,会很利于提高。

还有一些慕课资源,也不需要我去多说了,例如coursera等等,我有很多同学会跟着学,当然也是如果一开始说,你有专业需要的话就去学,没有的话多听听TED和b站的内容,按照我说的康奈尔笔记法来进行练习,就足够了。

以上就是我相关的经验啦,希望可以对你有所帮助。如果觉得有用的话求赞赞哟(嘿嘿码字不易),也欢迎在评论区进行交流~


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12723091.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-27
下一篇 2023-05-27

发表评论

登录后才能评论

评论列表(0条)

保存