热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

零基础Lua入门的方法与建议

对学习这门语言或者技术的必要性进行评估。比如你是工作需要,或者兴趣所至,甚至是为了把妹。这个必要性关系到你要学多深入,需要学习多长时间。比如我想学Lua,是想学它如何在万把行代码里面实现了一个如此精巧的编程语言,想学习它的GC机制,学习它如何设计VM,如何用纯C语言设计项目等等。

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

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这些语言,通过它可以了解到这门语言的祖先以及后代,相当的有意思。而在官方网站,会有最新鲜的新闻、下载、文档帮助、论坛等相关内容。

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的中文版。

那么对于java、dotnet这类参考书乌央乌央的技术来说,该如何选书?这时候我会参考以下几个因素:一个是语言创始人写的可选择,一个是奥莱里oreilly出版的可以买,另外可以参考豆瓣或者amazon的书单功能,看看其他人都推荐什么。最不济的办法可以看销量,销量高的书未必就好,但是选了也不至于错的离谱。买到书以后,最好花上几天时间通读一下,对于不理解的部分先标记略过,力争先对语言技术的整体有个了解,对于一些基本操作、命令有一些印象。

5. 通读以后就要细读了,一般来讲,每个编程语言都力争相对完整,所以必然有一些你未必感兴趣的内容或者用不到的内容,这些都可以放在一边需要时候再捡起来。细读的过程最好准备个小本子,另外建议在github上注册一个账号,github有个gist.github.com页面可以保存代码片段,在做代码练习的时候很有用。细读的过程力争完全理解,书上的示例代码也都尽量自己敲进去运行一次,另外可以对示例代码做一定的扩展,比如在第五章的代码中加入第四章的代码,让它们组合起来看看如何。

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

这个时候可以试着购买一些advanced级别的书籍,了解一些更深入的内容,书籍的好坏依然是到amazon或者douban上搜索。提高的过程中可以订阅一些相关的博客内容,可以到blogsearch.google.com查找博客文章,或者到csdn、javaeye、cnblogs这样的技术相关博客站点搜索。看到好的文章,可以使用delicious.com这个书签网站保存起来以后慢慢阅读。

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

  • 书籍或者手册,在线文档,在线帮助等等
  • 在官网的wiki或者stackoverflow.com上搜索相关的关键字
  • 使用google搜索相关关键字
  • 到stackoverflow或者官方邮件列表、官方论坛中提问

一般来说最好订阅这门语言的邮件列表,比如Lua的邮件列表就是http://www.lua.org/lua-l.html 即使不提问,看看别人的问题也是很有意思的。我不建议大家加入什么QQ群学习,QQ或者msn的即时通讯特性决定了它不是一个很好的学习方式,基本上只适合打屁聊天。

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

好了,就这样吧!

本文地址:http://www.nowamagic.net/librarys/veda/detail/788,欢迎访问原出处。


推荐阅读
  • 导读上一篇讲了zsh的常用字符串操作,这篇开始讲更为琐碎的转义字符和格式化输出相关内容。包括转义字符、引号、print、printf的使用等等。其中很多内容没有必要记忆,作为手册参 ... [详细]
  • 本文探讨了Go语言(Golang)的学习价值及其在Web开发领域的应用潜力,包括其独特的语言特性和为什么它是现代软件开发的理想选择。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何使用Python编写爬虫程序,从豆瓣电影Top250页面抓取电影信息。文章涵盖了从基础的网页请求到处理反爬虫机制,再到多页数据抓取的全过程,并提供了完整的代码示例。 ... [详细]
  • 探讨一个显示数字的故障计算器,它支持两种操作:将当前数字乘以2或减去1。本文将详细介绍如何用最少的操作次数将初始值X转换为目标值Y。 ... [详细]
  • YB02 防水车载GPS追踪器
    YB02防水车载GPS追踪器由Yuebiz科技有限公司设计生产,适用于车辆防盗、车队管理和实时追踪等多种场合。 ... [详细]
  • 深入分析十大PHP开发框架
    随着PHP技术的发展,各类开发框架层出不穷,成为了开发者们热议的话题。本文将详细介绍并对比十款主流的PHP开发框架,旨在帮助开发者根据自身需求选择最合适的工具。 ... [详细]
  • 精选Unity开源项目:UniRx实现响应式编程
    本文介绍了Unity中的响应式编程框架——UniRx,探讨了其在解决异步编程难题中的应用及优势。 ... [详细]
  • 如何在Notepad++中执行Python代码
    Notepad++是一款功能丰富的文本编辑器,不仅支持多种编程语言的语法高亮显示,还提供了便捷的代码执行功能。本文将详细介绍如何在Notepad++中配置并运行Python代码。 ... [详细]
  • Windows 平台 Ruby on Rails 安装指南
    本文详细介绍如何在 Windows 系统上安装 Ruby 及其开发框架 Rails,包括必要的环境配置和组件安装。 ... [详细]
  • 如何在Windows 10的Bash中排除系统PATH
    探讨了在Windows 10的Bash环境中,如何通过调整注册表设置来避免调用Win32程序,确保使用的是Bash环境下的工具版本。 ... [详细]
  • 本文实例为大家分享了Python实现代码统计工具的具体代码,供大家参考,具体内容如下思路:首先获取所有文件,然后统计每个文 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 离线环境下的Python及其第三方库安装指南
    在项目开发中,有时会遇到电脑只能连接内网或完全无法联网的情况。本文将详细介绍如何在这种环境下安装Python及其所需的第三方库,确保开发工作的顺利进行。 ... [详细]
author-avatar
mou377
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有