我希望我能有一个高效的方法或待办事项清单,以使学习过程更加顺畅。
你喜欢独自学习还是和伙伴一起学习?有没有什么地方可以轻松获取新语言的语法?你会制作特定的备忘单,在上面快速写下控制结构和重要关键字吗?
你有什么具体的东西需要记忆?
你一定要学习哪些库?你如何知道自己已经学会了某种语言?在什么时候你会觉得自己已经掌握了这门语言?
每当我学习一门新语言时,我大多数时间都在浪费时间翻阅那些既适合初学者又不适合有经验的开发人员的书籍。
个人而言,我发现我需要一个大型项目来实现以新的有趣语言。你可以阅读一本书了解语法,并接触到有趣的功能,但是没有什么比项目更能让你在新语言中思考。
这是我通常做的:
我通常从几个基本程序开始,一般是我正在阅读的书籍中的范例,然后稍微修改一下,使其更加复杂并去除粗糙的边缘。
之后,我会转到Project Euler,开始解决问题。这是一个熟悉新语言和基本结构的绝佳方式。
这是一场疯狂的冲刺。
首先,我必须确保自己知道如何按照“老”方法做事情,也就是我在其他编程语言中习惯的方式。
但我不想陷入例如将我的Python代码写成C代码的陷阱中,因此我研究了新语言给我的所有东西,这些在更熟悉的语言中并不存在。
你可以用多种方式处理字符串:
赋值运算符=
有时很棘手。你必须检查它是否创建浅层或深层副本。
==
如何工作?也许有一种替代方法,像 obj.equals(other)
?
连接: s1 . s2
或 s1 + s2
?
你能重载运算符吗?
read
, write
)int
、bool
和char
,是什么?它们是不可变的吗?如果这是一种弱类型语言,可能会有标量、数组和哈希表之间的差异。Math
、algorithm
这样的流行库。我阅读了一本好的手册,并将其与我已经了解的语言进行比较。因此,我只需学习它们之间的差异。
学习一门新语言的一个非常流行的方法是为自己创建一个简单的项目,并在你的新目标语言中实现它。
我会创建一些我之前已经完成过的东西,这样我就可以专注于语言本身,而不是项目的设计或主题。
我也会花点时间寻找(这个地方是一个很好的起点 ;-)并阅读一本关于该语言的好书。
对于其余的部分,就是不断练习(像其他任何事情一样)。
我会阅读一些关于该语言的大概念的FAQ/书籍。
然后,我会尝试寻找我已经了解的语言之间的比较,以避免在语言X中应用语言Y中使用的概念。每种语言都有自己的完成任务的方式,即使它们乍一看相似,也不应混合。
这将是第一步。
长期来看,我会关注论坛或SO上专门介绍这种语言的部分。我会阅读几天内许多帖子的回答,以获取高级概念、技巧和最常用的库。这也会帮助我注意到自己开始熟练掌握这种语言的时候:当你开始能够回答关于某种特定语言的许多随机问题时,那就意味着你已经相当擅长了。