如何快速学习一门新计算机语言

您的举报已经提交成功,我们将尽快处理,谢谢!
肯定是C语言啦
vb我觉得最简单又使用,百度下就有教程
这要根据程序语言的难易程度,个人理解能力,资料是否齐备而定。而且精通是没有一个标准的。如果是VB,从一点不会到能够开发小的实用程序,一般应该在1年左右的时间,如...
大家还关注我想学php,有没有推荐的php的入门书籍?我想学android,对java掌握到什么程度才能开始呢?我c/c++还没入门,能直接学python么?这些问题都是初学者常常萦绕心头的疑虑。在我们自己的现状和想要达成的目标间,总是横亘着一条名为「先决条件」的大河,似乎除了花费巨大的精力游过这条大河外,别无他法。很不幸,大部分人还没能够接近目标,便被湍急的水流冲走了。然而,还是有少部分人似乎坐上了阿拉丁的魔毯,毫无迟滞地直达彼岸,好像学什么技术都不那么费劲。这是怎么回事?学一门新的语言,或者新的技术,与其说是一种能力,不如说是一种方法。试问什么样的人,或者说人在生命的什么阶段,学习效率最高?效果最好?答案显而易见:婴儿期。我的不到两岁的女儿估计现在也就掌握了几十个名词,十多个动词,三五个形容词和介词而已,但每天从她口中蹦出来的话不下几百句。想想我们自己学了多少年英语,才能从口中完整地说出:"hello everybody, so glad to seeyou",初中?高中?抑或大学?想想我们单词量三千的时候能做什么程度的沟通,交流?如果你仔细观察,你会发现,婴儿的学习方法极尽实用之能。模仿,试错,练习,不管一切所谓「权威」的语法,词法,一切以用为主。还是以我女儿为例,她的表达是以短语和句子为主:说出的大部分的句子,她并不知道每个词的具体含义,但她知道这个句子的模糊的意思,而且从大人的反应中,她能知道她理解的意思是否正确,就这样,一次又一次模仿,试错,获得反馈,不断地累积自己直接能用的「知识」。这是实用主义者的学习方法:绕过障碍,直奔主题,专注那些你马上需要学的。几年前,我在开始学某样东西前,会上网搜罗几乎所有能找到的从入门到进阶再到专家的书籍,在看了一大堆各式各样的评论后,心满意足地筛选出所谓的「精品」购买回家,然后把他们垒在书桌前,仿佛这是学习之前必要的仪式。但这样的做法仅仅是成就了豆瓣和亚马逊,堆积的图书往往在我豪气万丈地看到第一本的第X章(X&=5)后便被束之高阁。后来我发现,我被所谓的「学习要先系统地打下扎实的基本功」坑了 ——我不断地陷入「基础知识」的泥沼,越陷越深,越学越苦,只能苦苦挣扎。这挣扎的结果,80%的情况变成了放弃。其实我大可不必去担心这些「基础知识」,把它们先放在一边,用到多少,便学多少。比如说,我要学rails,那就直接从rails开始,遇到有关ruby的语法障碍,回过头来看看ruby文档中相关的内容,扫清障碍立刻回到rails本身,而不是先从ruby啃起。要知道,rails里用到的ruby特性,可能占ruby总体语言和类库特性的20%都不到!从ruby学起,便是走了岔路。软件开发是个手艺活,它的学习不是各种可能很少用到的知识一股脑的堆积,我们没法在一切理论知识准备就绪以后再开始学习。scala的作者批评java的低效时曾经说过,java把写程序变成了做仪式,因此毫无乐趣可言。那么,当我们在桌前堆满了从入门到专家的各种书籍,是不是也把学习变成了一场盛大庄重的仪式?重要的不是堆砌了多少知识,而是学以致用。仅仅专注并直奔主题还远远不够。学习过程中你需要大量练习和获得反馈。婴儿并没有在累计了3000个词汇之后才开口说话,而是当身体和大脑准备好后的第一天就张口说话了,并且,尽管说得错误百出,他们依然越挫越勇,屡败屡战。同样的道理,当你学习python而不使用ipython在REPL环境下尝试各种使用技巧,当你学习django而没有从搭建一个可运行的web项目开始,那学习效率肯定不高,效果也必然马马虎虎。在健身房里,就算观摩教练的动作一百遍而不是自己亲自尝试,并接受对方的纠正建议,你还是无法掌握正确的动作要领。我见过有人把书中的例子一个个敲到编辑器中,全部运行正确,然后就心满意足地认为自己「掌握」这门技术了。殊不知,这种「练习」并非有价值的练习。我们需要试错,就像婴儿学步那样,模仿,迈步,摔倒,爬起来,再迈步。犯错是学习的一部分,当你看完教程掌握了里面所述的内容后,可以自己构思某个应用或者某个使用场景,然后从头写起。你会发现很多问题,也会加深对教程的理解。自己无法回答的问题,可以寻求社区的帮助,大部分和开发有关的问题都能在stackoverflow上得到解决。这样不断地练习和获取反馈,你的开发功底会很快提升。很多非系统的知识和能力(甚至洞见)就是这样通过不断练习和试错在下意识间学到的—— 它们来得如此悄无声息,以至于除你之外,别人都将其视为你的一种天赋。那么,什么时候需要系统地学习呢?当你有了实战所需的技术和经验,需要宏观上对自己所学的内容做一个升华时,或者当你的实战能力遭遇到了瓶颈的时候。有句话说得好:你不需要成为一个优秀的ruby工程师才能用好rails,但如果你想成为一个优秀的rails工程师,则你必须很好地掌握ruby。遗憾地是,很多初学者的问题是:想对一门技术快速入门,却使用了系统学习的方法,还未入门,便倒在了艰苦修行的路上。/p/b3fu
接触好多东西互相交流。我的群: ...
初学要入门,首先看目录对整个目标有大概了解,然后学最基本的语法,高级语法先略过。可以参照例子,自己动手做一个能完成一个功能的应用。最基本的就掌握了,然后完善这个应用,把用到的新东西都学了,再对高级的东西研究就行了。
你还没有登录,请先登录或注册慕课网帐号
30866人关注
64185人关注
55322人关注
Copyright (C)
All Rights Reserved | 京ICP备 号-2posts - 10,&
comments - 3,&
trackbacks - 0
毫无疑问,计算机行业的技术革新是当今全球所有行业中最迅速的。几乎每时每刻都会有新的技术被发明创造或应用于软硬件的设计、制造以及实施当中。迅速了解并掌握新的技术是计算机从业人员一直探索的方向和目标。作为一名软件开发人员,笔者和大家分享一下自己在开发语言学习方面的经验,希望能给各位同事一些启发。
曾经有一位技术专家和我讲过,提高程序设计水平和代码质量有很多方法,其中最具效率的就是学习另一门程序语言。相信任何程序员都有过相似的经历,当你学习了一门新的程序语言之后,无论程序的设计还是编码都会有不同程度的提升。这里所讲的学习并非以可以应用到开发之中为标准。我的一位朋友,他从来没有接触过Delphi,一次项目中需要用到相关的知识,他看了两个小时语法,用一天时间完成了这项工作。三天之后,他忘光了所有关于Delphi的知识。我认为这是一个典型的反面的例子。实际上对于有经验的程序员来讲,强记一门全新的语言并用它来开发一些功能并不是很困难,大部分人都可以做到,这种做法虽然能够迅速地完成工作,但对自己的技术提升收效甚微。个人认为,学习一门新的语言最好是从零开始,完全地去领悟其设计初衷以及编译解析的底层代码,并掌握其常用的开发方法。特别要注意的是,我不建议学习新的语言时和已经掌握的语言进行对比,这样不仅容易混淆,而且会破坏语言的连贯性,不利于对新语言的深入理解。从这一点来讲,计算机语言同自然语言十分相似,就像是我们会汉语然后要去学英语一样。举个例子,山上有一块石头,至于这块石头是叫&石头&还是叫&stone&,对于我们的大脑来讲只是一个符号,建立的也只是物质与符号间的对应关系。但是如果符号&石头&就是&stone&我们的大脑要建立的就是&物质石头-符号石头-符号stone&这样的关系,显然这比上面的关系要复杂。这也是为什么很多人不背单词却能学好英语的原因之一。回到正题上来,如果不对计算机语言间进行比较,只是认真的从最基础最底层的原理开始学习,那么对自己的提升才是最大的,语言掌握得也是最扎实的。
学习一门新的语言要学以致用。一门语言只有在应用当中才能加深理解,发现自己没有掌握的地方,进而融会贯通;一门语言在学完之后完全不应用,就只能随着时间的流逝渐渐被遗忘,同完全没有学过一样。这里所说的应用也同上面一样,最好脱离&母语&的语法格式。完全按照新语言的编码习惯和设计方式,让自己的思维去适应新的语言。等到完全掌握新语言之后再将二者进行对比,从语言所处的环境以及语言自身等特征中抽象出其技术特点。这样一来,定然可以从学习中得到更多的收获。
学习一门新的程序语言不能将其孤立出来仅仅学习程序语言本身,而是需要一个过程:先将语言融入到应用环境当中予以学习和理解,然后再将其抽离出来,在多平台上进行开发。打比方,javascript本身在最开始仅仅是运行在浏览器上用于制造一些特效的脚本语言,但是现在的很多桌面应用(包括360安全卫士、百度影音等)前端全部都是通过javascript进行开发。我们学习javascript的时候还是要先通过传统的浏览器框架进行编译,由浅及深逐步理解和应用,并学习语言所处的环境的各种知识,然后将语言本身进行剥离,应用于不同平台。
在飞速发展的计算机技术领域里,快速掌握各种技术是每个计算机从业者必备的技能。由于个人经历不尽相同,学习方法也不尽一样。无论以何种方法进行学习,只要能够适合自己,拥有自己对程序、对软件的领悟,那么就是一种优秀的学习方法。以上便是个人的一点拙见,欢迎各位同事探讨批评指正。
阅读(...) 评论()

我要回帖

 

随机推荐