这个问题适合体验程序员。在接近您想要学习的新语言时,您是否有一个设定的过程?
我希望我有一个有效的方法或待办事项列表,我可以遵循以使学习过程更加简化。
你喜欢独自学习还是和哥们一起学习?有没有什么地方可以轻松获得新语言的语法?您是否制作了特定类型的备忘单,您可以快速记下控制结构和重要关键字?
你记得有什么特定的东西吗?
您确定要学习哪种图书馆?你怎么知道你已经学到了什么,你觉得你知道什么语言?
每当我选择一种新语言时,我大多浪费时间来摸索书籍,这些书籍对于初学者来说是一半而从来没有经验丰富的开发人员。
答案 0 :(得分:7)
我个人认为我需要一个实质性的项目来实现一种新的有趣的语言。你可以通过熟悉语法来阅读一本书,并接触到有趣的功能,但是没有什么可以让你在像项目这样的新语言中思考。
答案 1 :(得分:3)
我不打算仅仅学习一门新语言。我发现一个项目需要(或者非常适合)新语言并开始编码。
资源取决于语言,但是在线教程或好的“学习语言”一书都非常有用。我不试图记住任何东西,只需保持文档关闭,并搜索我需要编写的每段代码的解决方案。语言之间的算法变化不大,因此大多数时候只需要查找我需要的特定结构的语法。
另外,我可能永远都不知道语言的一切。我只是继续查阅我需要的东西的文档,最终我不再需要查看大部分内容了。然而,即使是我多年来每天都在使用的语言,我仍然有时需要查看,因为我以前从未使用过它们。
答案 2 :(得分:2)
这是一个疯狂的冲刺。
首先,我必须确保我知道如何以“旧”的方式做事,这意味着我习惯于其他语言。
但我不想陷入(例如)编写我的Python代码的陷阱,好像它是C代码一样,所以我读了新语言给我的所有东西,更熟悉的语言没有
答案 3 :(得分:2)
以下是我通常做的事情:
答案 4 :(得分:1)
我读了一本好的手册,并将它与我已经知道的语言进行了比较。所以我只是学习它们之间的差异。
答案 5 :(得分:1)
学习新语言的一种非常流行的方法是为自己创建一个简单的项目,并用新的目标语言实现它。
答案 6 :(得分:1)
我会创造一些我以前做过的东西,所以我可以专注于语言本身,而不是设计或项目的主题。
我也会花点时间寻找(这个地方是一个很好的首发;-)并阅读一本关于该语言的好书。
其余的是练习练习(就像所有的一切都没有)。
答案 7 :(得分:1)
我会阅读一些关于语言的重要概念的常见问题/书籍。
然后我会尝试找到我已经知道的语言之间的比较,以避免在语言X中使用langage Y中使用的概念。每个语言都是完成任务的方式,即使它们也不应该混合它们乍一看看起来很相似。
这将是第一步。
在较长的基础上,我会在论坛或SO上关注专门讨论这个问题的部分。我会阅读许多线程的答案,以便获取高级概念,技巧和最常用的库。这也有助于我注意到当我开始熟练掌握语言时:当你开始能够回答许多关于特定语言的随机问题时,这意味着你已经相当擅长。
答案 8 :(得分:1)
编程的基础知识只需要很少的结构 - 一个优秀的程序员只需要一小部分可用的语言功能就能编写优秀的代码。
一本书通常是学习新语言基础知识并获得概述的好方法,因此您知道该语言的哪些区域可以在以后需要时帮助您,但最好的方法是只编写程序做你需要做的事情,并随时了解你需要知道的事情。
关于这一点的好处在于,当你想要做一些新的事情,并且你做得很好的时候,你知道在哪里看,但你也懒得去学习那些你永远不会真正使用的垃圾。
答案 9 :(得分:1)
我通常从一些基本程序开始。通常是我正在阅读的书中的样本,然后稍微修改它们以使其变得更加复杂并使粗糙的边缘变圆。
之后,我前往Project Euler并开始解决问题。这是一种熟悉新语言和基本结构的好方法。
答案 10 :(得分:0)
我通常安装运行时。 然后我从编译器或解释器的命令行运行一些常用命令。 我在网上寻找论坛,以了解其他人的想法。 然后我研究如何在java中使用外部参数,如psvm(String [] args)。 我想总结一下,由于我在solaris中的系统管理员背景,我总是对命令行上的语言功能感兴趣。
答案 11 :(得分:0)
我假设您学习了一种支持OOP的新高级编程语言。这类语言的例子有:Java,Typescript,Perl,C#,C ++等。您也是一位经验丰富的程序员,因此您已经了解了其他一些面向对象的语言。
我希望我有一个有效的方法或待办事项列表,我可以遵循以使学习过程更加简化。
您应该创建一个涵盖以下主题的项目。
if else
switch case
include
/ import
/ use
类特异性:
您可以通过多种方式使用字符串进行操作:
分配运算符=
有时很棘手。如果它创建浅或深拷贝,您必须检查。
==
如何运作?也许还有像obj.equals(other)
这样的替代方案?
连接:s1 . s2
或s1 + s2
?
你能超载运营商吗?
read
,write
)什么是简单类型,例如int
,bool
,char
?他们一成不变吗?如果这是弱类型语言,则标量,数组和哈希表之间可能存在差异。
是通过值或引用传递的参数吗?
日期和时间
您应熟悉热门图书馆,例如Math
,algorithm
。
答案 12 :(得分:0)
如果您没有机会加入项目并学习并从头开始应用它。您可以通过开放式在线课程获得帮助。 " Edx.org"例如,这是一个很棒的平台。有很多关于计算机科学和软件开发的课程。即 Here是数据结构和软件设计的课程。