学习一门编程语言或者编程技术的方式基本上是这样一个流程:
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里面多帮人解答解答问题,试着多写写自己对于这门语言的使用经验,分享一些相关问题等等,就此走向“破碎虚空”的高手之路。
好了,就这样吧!
分享到:
相关推荐
小霸王学习机上的G-BASIC是BASIC语言的一个变种,保留了基本的语法结构和命令,同时针对硬件特性进行了优化。 2. **G-BASIC语法**: - **变量声明**:在G-BASIC中,变量名由字母开头,可包含数字和下划线,如`VAR1...
《C#编程语言设计与开发》是一门深入探讨C#编程技术的课程,涵盖了C#的基础语法、高级特性以及在.NET框架下的应用。这门课程旨在帮助开发者掌握C#的核心概念,提升在实际项目中的开发效率。课程内容包括但不限于循环...
对于零基础的小白来说,学习Python编程既是一个挑战,也是一个机遇。本文基于作者在教育平台“uband友班”上对300人进行的两个月教学实践,旨在为初学者提供一份入门指南。 首先,我们要明确学习编程的两种不同模式...
Fortran语言编程指南,作为一门适合初学者的编程语言,它有着悠久的历史,源自IBM在1954年至1957年间开发,是首个广泛使用的高级编程语言。随着技术的发展,Fortran经历了多次更新,如FORTRAN 77、FORTRAN 90和...
Python是一种高级编程语言,以其简洁、清晰的语法著称,尤其适合初学者入门。在中小学编程教育中,Python被广泛选用,因为它能够帮助学生快速理解和掌握编程的基本概念,培养他们的编程思维。 【编程的概念】 编程...
2. **编程学习方法**:有效的学习方法对于快速掌握一门编程语言至关重要。这包括理论学习、实践操作以及不断解决问题的过程。 3. **计算机学生专业课程本质讲解**:计算机科学专业的课程不仅涵盖了编程技能,还包括...
"PERL编程24学时教程.rar"则提供了一个24小时的学习计划,适合希望在短时间内掌握Perl基础的读者。这个教程可能被划分为24个独立的课时,每个课时涵盖特定的主题,并可能包含实例和实践项目,以促进理论与实践的结合...
随着学习的深入,可以尝试完成一些综合性项目,例如制作一个简单的温度控制系统、遥控小车、简易的智能仪表等。这类项目能够帮助学习者将学到的知识进行综合运用,加深对单片机编程的理解。 编程方面,要注重培养...
【标题】中的“精品--️李沐 【动手学深度学习】课程学习笔记”指的是由李沐教授的深度学习课程,这是一门旨在帮助学生通过实践掌握深度学习理论和技术的课程。学习笔记通常包括课程的主要概念、关键算法以及编程...
《高教类课件:单片机与可编程控制技术》是高等教育领域内关于电子工程和自动化技术的一门重要课程,旨在深入理解并掌握单片机与...对于有志于从事电子工程、自动化或者相关领域的学习者来说,这是一个宝贵的教育资源。
首先,C语言作为一门经典的编程语言,它的教学具有广泛的代表性,对于理解计算机编程课程的普遍教学问题与解决策略具有重要意义。C语言因其接近硬件的特性、高效的执行速度以及在操作系统和嵌入式系统开发中的广泛...
这样可以帮助你了解编程的基本概念和技术框架,从而为后续深入学习打下坚实的基础。同时,在具备了一定的基础之后,选择一个或几个方向进行深入研究也非常重要。例如,如果你对前端开发感兴趣,可以专注于HTML、CSS...
- **第一步**: 选择一门编程语言开始学习,比如C或C++。这两门语言都是编程学习的优秀起点。 - **第二步**: 找到合适的教材和教程。互联网上有丰富的免费资源可供选择。 - **第三步**: 动手实践。理论知识结合实践...
《C语言编程技术实践》是一门专为软件技术、计算机应用技术、电子制造技术与设备等领域设计的专业基础课程。这门课程旨在培养学生掌握模块化、结构化编程的基本思想,运用C语言解决实际问题的能力,同时提升他们的...
随着硬件技术的飞速发展,尤其是多核处理器的普及,传统的编程语言逐渐暴露出其在多核并发编程上的局限性。这些语言往往要求开发者手动管理线程和同步,这不仅繁琐,还容易引发各种难以调试的并发问题。因此,GO语言...
在“GPU编程与CG语言之阳春白雪下里巴人”这个主题中,“阳春白雪”可能指的是CG语言的高级特性、复杂的算法和艺术级别的渲染效果,这些可能需要深厚的理论知识和技术才能掌握。而“下里巴人”则可能指的是更易于...
本电子教案涵盖了微处理器结构、汇编语言编程、以及计算机接口技术等多个核心主题。 1. 微机原理: 微机原理主要涉及微型计算机的基本构造,包括CPU(中央处理器)、内存、外存、总线等关键组成部分。学习这一部分...
- **掌握一门编程语言**:推荐从C语言开始,如果对该语言掌握不够熟练,建议先加强学习。 - **了解计算机基础知识**:如数据结构、算法、操作系统原理等。 - **熟悉软件工程流程**:包括需求分析、设计、编码、测试...