文档章节

12 个学习新的编程语言的方法

编辑部的故事
 编辑部的故事
发布于 2017/04/18 19:21
字数 1816
阅读 5108
收藏 109

Image by : opensource.com

听说,你决定要为你的 “技能树” 再添加一门特定的编程语言。那该怎么办呢?

在这篇文章中,作者提出了 12 项关于学习技术的建议。记住每个人学习的方式都不一样。其中一些可能对你十分有用,而其他的则可能无法满足你的需求。如果你开始担心一个策略,请尝试另一个策略并看看它哪里适合你。

1. 将其与类似的语言进行比较当你首次观看有关该语言的第一个教程或阅读代码时,请尝试猜测该语言的每个部分将会做什么,并检查你的判断是否正确。 如果记笔记可以帮助你整合信息,请拿起一张纸并记下三个列表:

  • 看起来很熟悉的东西,并且做了预期中的事
  • 看起来很熟悉的东西,但做了意料之外的事
  • 看起来完全是新的东西

例如,如果我用来自 Python 和 C 背景的 Rust 代码进行此练习,那么在第一个列表中,我会放上用于表示范围的花括号,!(看起来像是布尔类型的 非,但实际上是 Rust 中的宏定义)则放在第二个列表,类型签名语法(type signature syntax)放在第三个列表。

如果你保留着初始列表的副本,一旦你更熟练,可使用它通过语言反思你的进展,并提醒自己在尝试向其他人讲授该语言时,有哪些看起来不熟悉的概念。

2. 阅读语言的官方文档。如果希望在使用之前吸收大量信息,从阅读语言的参考资料中可能会受益。不用担心它们会对你催眠,参考文献通常是用于查找使用,而不是用来记忆。

3. 使用互联网搜索搜索网络是一个很好的方式,可提供有关特定错误和一般最佳做法的信息。当收到错误信息时,应搜索信息中看起来是错误的独一无二的部分,但不是代码唯一的部分。例如,如果错误提示 "Error on line 53: Invalid argument exception(错误在第 53 行:无效的参数异常)",以语言名称和字符串 “Invalid argument exception” 这样的组合搜索,以找到最佳的结果。记住要将错误信息中的所有引用内容都包含在内。

还可以在网络中搜索有关解决语言中特定问题的最佳做法的博文。评估搜索结果中显示的博客帖子的质量和决定认真采用他们的建议时,请查看作者的公共代码组合以及发布日期。

4. 与社区接触。虽然博客和新闻文章具有大量有用的信息,但是你尝试编写的特定代码片段总会有些微妙之处。不要害怕在邮件列表中发帖,或加入 IRC 和 Slack 频道以寻求帮助。

要提出有帮助的回复的问题,请确保在正确的地方提问。许多语言都有 “初学者” 邮件列表或聊天频道,专门针对可能会频繁询问的问题而建立。当提出问题时,请务必先总结准备做什么、已做过的东西以及发生的情况。尽量为专家提供足够的上下文来了解问题,但不需要无关紧要的细节。提出问题后,请务必坚持一段时间来听取建议或会回答你的疑问可能产生的后续问题。

5. 编写玩具程序。一次练习一个新的概念,很少有任务可打败只使用某个概念的玩具程序。你可以将重点放在尽可能让你的代码清洁和惯用性上。如果你将解决 Project Euler 或 Rosetta Code puzzle 作为玩具程序,则可以将你的解决方案与其他使用相同语言编写的解决方案进行比较。

6. 使用该语言编写 “生产就绪(Production-Ready)” 的代码。玩具程序是一个很好的第一步,但在更逼真的的环境中使用一门语言可帮助探索其现实使用中的优势和挑战。考虑将一个熟悉的、相对较小的、经过良好测试的程序移植到新的语言,以探索其在现实使用的应用。

7. 阅读一本关于这门语言的书籍。如果有好几本有用的书,比较它们的评论,并考虑哪位作者的背景和自己的最相似。现在有很多电子书可以免费在线阅读。

在购买有关该语言的书籍之前,请先查看书籍出版的日期以及其示例所涵盖的语言版本。如果使用的是较旧的书籍,请务必使用其所使用的语言版本的示例。还要在网上调查一下,以了解自出版以来语言发生了怎样的变化。

8. 观看讲座和课程。如果你学习的语言在在线课堂中有讲授,那么视频应该是公开的。除了学术讲座之外,还可以考虑寻找录制讲座、会议谈话和有关该语言的博客。当在看电视时,谈谈你的新语言是一个将学习融入日常生活很好的方式。

9. 阅读示例代码。大多数关于编程语言的书籍都会包含代码片段。你也可以在博客和 Rosetta Code 上找到示例代码。运行示例代码、修改它们,并尝试预测修改后会发生那些情况。

10. 阅读生产代码。查找有关该语言所有类型和大小的项目的一种方法是在 GitHub 上搜索它。按最受欢迎或最具影响力进行排序,你的热门搜索将包括最受欢迎的开源工具。如果想要了解开源项目的设计,可通过邮件列表或 IRC 来与社区进行互动。你甚至可能会发现一些 bug。

11. 寻找好的工具。当使用新的语言时,可向其更有经验的用户请教,询问他们的开发环境。你可能会发现,一个特定的文本编辑器或 IDE 对于新语言的支持比你习惯通常使用的要好。调查在新语言生态系统中管理依赖关系、格式化、模糊化和单元测试代码的选项。

12. 保持你的热情。入门新的语言很容易,但变得真正精通它通常是一个需要多年的旅程。庆祝一路上你的成功,并与追随你脚步的学习者分享你所学到的知识,保持着学习编程的兴趣。

还有其他学习新的编程语言的技巧吗?欢迎大家在评论区中交流。

编译自:opensource.com 转载请注明出处

© 著作权归作者所有

编辑部的故事

编辑部的故事

粉丝 1451
博文 264
码字总数 512489
作品 0
深圳
运营/编辑
私信 提问
加载中

评论(18)

milin
milin
没仔细看,看标题就知道瞎侃呢,没啥有用的,类库和框架才是重点,语法学会了照样不能开发
君子常当当
微软技术支持的风格
OSC_Ngoxge
OSC_Ngoxge
保持你的热情最难,也是最关键的。
haitaosoft
haitaosoft
语法、入门都简单,花时间的是 类库和框架,它们纷繁无比 且 各种坑 才是大头
LOALOA
LOALOA
并没有说到点子上
Daniel-01
Daniel-01
鬼唔知你老母系女人厄?
zuolicong
zuolicong
屁话
xaoyaoyaomm
xaoyaoyaomm
保持你的热情并付出行动~
不是simaguo
不是simaguo
一堆正确的废话
Flowf
Flowf
去NMD
你最喜爱的编程语言不够好

我的《Python is important》这 篇博客引来如此多的评论,让我颇为意外。大多数的评论是正面的,但同时多少也都带点不太积极的色彩。我发现,这些评论反映出的一个很突出的问题是,程序员 如...

景德真人
2012/03/27
5.2K
29
12 个有效的提高编程技能的方法

1. 永远不要停止学习和阅读 阅读 书籍,而不只是网站 阅读 只为自我提升,而不是为了下一个项目 阅读 提升你的基础,而不只是最新技术 2. 跟比你聪明的人一起工作 跟比你更聪明的人或者是更有...

oschina
2012/05/11
14K
58
转载-为程序开发人员量身定制的12个目标

对程序员们来说挑战自我非常重要,要么不断创新,要么技术停滞不前。新年伊始,我整理了12个月的目标,每个目标都是对技术或个人能力的挑战,而且可以年复一年循环使用。 01. 变得有耐心 02...

zray4u
2016/07/18
126
0
15个快速学习苹果Swift编程语言的入门教程

要说今年最火的编程语言是什么。那就非Swift莫属了。当然最主要还是市场炒的比较热,加上官方Swift教程《The Swift Programming Language》在北航的大三学生发起在github上进行协同翻译获得了...

欲思
2014/07/24
20.1K
7
转载-为程序开发人员量身定制的12个目标

对程序员们来说挑战自我非常重要,要么不断创新,要么技术停滞不前。新年伊始,我整理了12个月的目标,每个目标都是对技术或个人能力的挑战,而且可以年复一年循环使用。 01. 变得有耐心 02...

zray4u
2016/07/18
28
0

没有更多内容

加载失败,请刷新页面

加载更多

全面兼容IE6/IE7/IE8/FF的CSS HACK写法

浏览器市场的混乱,给设计师造成很大的麻烦,设计的页面兼容完这个浏览器还得兼容那个浏览器,本来ie6跟ff之间的兼容是很容易解决的。加上个ie7会麻烦点,ie8的出现就更头疼了,原来hack ie...

前端老手
7分钟前
3
0
常用快递电子面单批量打印api接口对接demo-JAVA示例

目前有三种方式对接电子面单: 1.快递公司:各家快递公司逐一对接接口 2.菜鸟:支持常用15家快递电子面单打印 3.快递鸟:仅对接一次,支持常用30多家主流快递电子面单打印 目前也是支持批量打...

程序的小猿
10分钟前
5
0
Yii 框架中rule规则必须搭配验证函数才能使用

public $store_id;public $user_id;public $page;public $limit;public $list;public $mch_list;public $cart_id;public $is_community;public $shop_id;public $cart_typ......

chenhongjiang
12分钟前
2
0
Flutter使用Rammus实现阿里云推送

前言: 最近新的Flutter项目有“阿里云推送通知”的需求,就是Flutter的App启动后检测到有新的通知,点击通知栏然后跳转到指定的页面。在这里我使用的是第三方插件Rammus来实现通知的推送,之...

EmilyWu
12分钟前
26
0
Knative 实战:三步走!基于 Knative Serverless 技术实现一个短网址服务

短网址顾名思义就是使用比较短的网址代替很长的网址。维基百科上面的解释是这样的: 短网址又称网址缩短、缩短网址、URL 缩短等,指的是一种互联网上的技术与服务,此服务可以提供一个非常短...

阿里巴巴云原生
28分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部