`
xpp02
  • 浏览: 1012537 次
社区版块
存档分类
最新评论

谈新技术学习方法-如何学习一门新技术新编程语言

 
阅读更多

学习一门编程语言或者编程技术的方式基本上是这样一个流程:

1,对学习这门语言或者技术的必要性进行评估。比如你是工作需要,或者兴趣所至,甚至是为了把妹。这个必要性关系到你要学多深入,需要学习多长时间。

比如我想学Lua,是想学它如何在万把行代码里面实现了一个如此精巧的编程语言,想学习它的GC机制,学习它如何设计VM,如何用纯C语言设计项目等等。

2,寻找相关资源。比较好的起始点是这门技术的官方网站以及维基百科。

比如Lua语言的官方网站是http://www.lua.org,维基百科地址为http://en.wikipedia.org/wiki/Lua_%28programming_language%29

一般在google.com里面敲入"lua wiki"之类就能直接搜索到相关维基条目。使用维基百科的好处是能够对编程语言有个概括了解,基本上看了以后,你都可以跟别人扯上几句一点问题也没有。另外维基百科在编程语言相关条目中有一个很有意思的特色就是:influenced by以及influenced列表。比如Lua条目中注明被Scheme、SNOBOL、Modula、CLU、C++所影响,影响了IO、GameMonkey、Squirrel、Falcon、Dao、MiniD这些语言,通过它可以了解到这门语言的祖先以及后代,相当的有意思。

而在官方网站,会有最新鲜的新闻、下载、文档帮助、论坛等相关内容。

image

3 找到官网以后,就要花上一段时间在官方网站好好浏览探寻一番。比如Lua官方网站的about栏目介绍了Lua是什么,为什么选择Lua,谁编写了Lua代码等等。在News栏目有关于Lua的最新新闻。Download栏目中有软件下载,学习一门语言,重要的是在练习中学习,大多数人都用Windows,就可以遵照下载栏目的推荐下载Lua for windows。

4 下载了软件(Lua for windows),安装成功以后,就可以看看文档document了。在Lua的文档网页中有在线参考手册(reference manual),大多数编程语言也都会在下载安装包中自带一份手册文档(就我所知Ruby Python都是如此)。

如何系统的学习一门语言?通过手册不是什么好办法,手册内容相对教条枯燥,读起来不容易。而且在线学习注意力不容易集中,很容易点着点着就跑偏了。最好的办法还是要买一本实体的参考书。

买实体书就要用到amazon或者douban了,你可以根据amazon以及douban上的打分来确定这本书的好坏,另外在Lua的document页面也有几本书推荐,像是Lua这种略微偏门的语言,其实选书很简单,因为就那么两三本,我个人推荐Programming in lua,国内有翻译版本,另外也可以下载到5.0的中文版。

image image

那么对于java、dotnet这类参考书乌央乌央的技术来说,该如何选书?这时候我会参考以下几个因素:一个是语言创始人写的可选择,一个是奥莱里oreilly出版的可以买,另外可以参考豆瓣或者amazon的书单功能,看看其他人都推荐什么。最不济的办法可以看销量,销量高的书未必就好,但是选了也不至于错的离谱。

买到书以后,最好花上几天时间通读一下,对于不理解的部分先标记略过,力争先对语言技术的整体有个了解,对于一些基本操作、命令有一些印象。

5 通读以后就要细读了,一般来讲,每个编程语言都力争相对完整,所以必然有一些你未必感兴趣的内容或者用不到的内容,这些都可以放在一边需要时候再捡起来。细读的过程最好准备个小本子,另外建议在github上注册一个账号,github有个gist.github.com页面可以保存代码片段,在做代码练习的时候很有用。

细读的过程力争完全理解,书上的示例代码也都尽量自己敲进去运行一次,另外可以对示例代码做一定的扩展,比如在第五章的代码中加入第四章的代码,让它们组合起来看看如何。

6 用一两个月时间细读以后就是熟练提高阶段。当你细读了感兴趣的章节,最好在一段时间内尽量用新语言完成自己的编程需求,比如写个网络爬虫,或者删除某个目录下的特定文件,或者做做文本处理,一定要经常用才不会忘记。这段使用过程可能需要两三个月的时间,力争达到常见的代码函数不怎么查手册就可以熟练写下来。另外可以有意的对自己已经完成的算法或者应用进行语言上的翻译,用新语言实现一下快速排序,实现一下正则表达式。编程其实就是个熟练过程,越练越顺手。

这个时候可以试着购买一些advanced级别的书籍,了解一些更深入的内容,书籍的好坏依然是到amazon或者douban上搜索。

提高的过程中可以订阅一些相关的博客内容,可以到blogsearch.google.com查找博客文章,或者到csdn、javaeye、cnblogs这样的技术相关博客站点搜索。看到好的文章,可以使用delicious.com这个书签网站保存起来以后慢慢阅读。

7 在这段期间包括以后的使用过程,如果出现问题怎么办?可以遵照以下顺序查找帮助:

a)书籍或者手册,在线文档,在线帮助等等

b)在官网的wiki或者stackoverflow.com上搜索相关的关键字。

c)使用google搜索相关关键字。

d)到stackoverflow或者官方邮件列表、官方论坛中提问。

一般来说最好订阅这门语言的邮件列表,比如Lua的邮件列表就是http://www.lua.org/lua-l.html 即使不提问,看看别人的问题也是很有意思的。

我不建议大家加入什么学习,QQ或者msn的即时通讯特性决定了它不是一个很好的学习方式,基本上只适合打屁聊天。

8 到了四五个月以后,按照前面步骤学下来的朋友应该已经算是中级水平了,不太可能问出什么“跪求、裸求”之类的弱智问题。这时候就可以往更深入的层次发展,比如试着读读源代码,试着写写相关编程库编程插件,在官方论坛、maillist、stackoverflow里面多帮人解答解答问题,试着多写写自己对于这门语言的使用经验,分享一些相关问题等等,就此走向“破碎虚空”的高手之路。

好了,就这样吧!


分享到:
评论

相关推荐

    从零学习编程技术-C语言编程的基础

    C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。 尽管C语言提供了许多低级...

    socket编程学习---python实现聊天机器人.zip

    人工智能是研究模拟和扩展人类智能的理论与方法及其应用的一门新兴技术科学。 作为人工智能核心研究领域之一的机器学习, 其研究动机是为了使计算机系统具有人的学习能力以实现人工智能。 那么, 什么是机器学习...

    如何上好一堂-python-编程课-.docx

    python 编程课 初中开设 Python 课除了政策原因外,主要是因为人工智能技术的首选语言就是 Python,并且 Python 号称是最最接近人类自然语言的一门计算机语言,非常适合非计算机专业人士以及中小学生学习。...

    机器学习编程作业:高斯混合模型 .zip

    人工智能是研究模拟和扩展人类智能的理论与方法及其应用的一门新兴技术科学。 作为人工智能核心研究领域之一的机器学习, 其研究动机是为了使计算机系统具有人的学习能力以实现人工智能。 那么, 什么是机器学习...

    2023年最新Python人工智能学习路线

    现如今,无论是机器学习、深度学习还是数据分析领域,python都已成为当今最热门的语言,在爬虫、网络编程等领域也深受开发者使用,python已成为使用人数最多的一门编程语言,在各个领域中发挥着作用。 因此,如果想...

    Python编程、python机器学习中实践.zip

    人工智能是研究模拟和扩展人类智能的理论与方法及其应用的一门新兴技术科学。 作为人工智能核心研究领域之一的机器学习, 其研究动机是为了使计算机系统具有人的学习能力以实现人工智能。 那么, 什么是机器学习...

    《模式识别与机器学习》课程编程作业.zip

    人工智能是研究模拟和扩展人类智能的理论与方法及其应用的一门新兴技术科学。 作为人工智能核心研究领域之一的机器学习, 其研究动机是为了使计算机系统具有人的学习能力以实现人工智能。 那么, 什么是机器学习...

    C程序设计语言(第2版·新版)习题解答.pdf

    单凭阅读和学习语法结构并不能真正掌握一门程序设计语言.必须进行编程实践——亲自编写一些程序并研究别人写的程序。您可以通过K&R教材学习C语言,独立地解答书中的练习题。再钻研本书给出的习题解答。K&R的原著是...

    【PYTHON学习教程】学习资料资源

    保持持续学习的态度:Python是一门不断发展的编程语言。因此,您需要持续学习,跟上最新的技术和标准。 参与社区活动:加入Python的社区,与其他志同道合的人交流经验和技术。这将有助于您更快地提高技能,了解最新...

    Python如何快速上手? 快速掌握一门新语言的方法

    找来了一篇广受好评的新语言学习方法介绍,供大家参考。 听说,你决定要为你的 “技能树” 再添加一门特定的编程语言。那该怎么办呢? 在这篇文章中,作者提出了 12 项关于学习技术的建议。记住每个人学习的方式都不...

    python 编程学习 机器学习代码.zip

    它是一门专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能的学科。大概在上世纪80年代开始蓬勃发展,诞生了一大批数学统计相关的机器学习模型。 ...

    ASP.NET深入编程

    C#是Microsoft专用在 .NET Framework平台上进行开发的一门新型编程语言。 .NET Framework由托管代码执行的运时环境和几乎可以完成所有编程任务的众多类库组成。虽然很多语言都能够编写NET 代码,但C#是惟一针对.NET ...

    Python语言程序设计习题答案.zip

    Python作为一门与计算机交流的编程语言,有着跟自然语言相似的特点:字、词、句、段落、篇章,以及相应的行文语法规则。学习本章,要理解程序行文的字词句,主要包括基本数据类型、常量和变量、运算符和表达式;理解...

    利用Visual C#处理数字图像

    微软的新的.NET平台为开发者带来了许多新的诸如GDI+、Globalization之类的编程机制,同时还发明了一门全新的类似Java的编程语言-C#。对于这些新知识,我们应尽快了解、掌握并试图运用到实践项目中去,而通过实例...

    高职JAVA程序设计-教案

    目前,Java语言不仅是一门正在被广泛使用的编程语言,而且已成为软件设计开发者应当掌握的一门基础语言,因为很多新的技术领域都涉及到了Java语言,国内外许多大学已将Java语言列入了本科教学计划,掌握Java已经成为...

    <机器学习算法原理与编程实战> 源码机器学习的实战书籍.zip

    它专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径。 随着统计学的发展,统计学习在...

    C_基本数字图像处理.doc

    .NET平台为开发者带来了许多新的诸如GDI+、Globalization之类的编程机制,同时还发明了一门全新的类似Java的编程语言-C#。对于这些新知识,我们应尽快了解、掌握并试图运用到实践项目中去,而通过实例学习的方法...

    EDA技术概述

    由于它是一门迅速发展的新技术,涉及面广,内容丰富,理解各异,目前尚无统一的看法。...直至完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术。

    Java编程入门:掌握基础,构建现代应用.zip

    Java是一门功能强大、应用广泛的编程语言。通过本文的介绍,你应该对Java有了基本的了解,并能够开始搭建自己的开发环境和编写简单的Java程序。...不断学习新的技术和最佳实践,你将成为一名优秀的Java开发者。

    Python语言程序设计PPT课件.zip

    Python作为一门与计算机交流的编程语言,有着跟自然语言相似的特点:字、词、句、段落、篇章,以及相应的行文语法规则。学习本章,要理解程序行文的字词句,主要包括基本数据类型、常量和变量、运算符和表达式;理解...

Global site tag (gtag.js) - Google Analytics