随着“Polyglot”编程技术变得更加相关,几乎必须使用“正确”PL来解决问题。但是,学习新语言需要时间,这通常是大多数项目团队无法承受的。学习新编程语言的最佳方法是什么?有没有一套共同的问题可以解决,以达到一定的能力水平?
答案 0 :(得分:1)
嗯,这取决于你想做什么。 (网络,数据库,无论如何)。
一般来说,我想知道:
等等。
答案 1 :(得分:1)
真的,学习只是通过做 - 你需要一个可以使用给定语言的项目。
Project Euler是首先想到的一种常用的问题,即尝试使用新语言,即使这不是我曾尝试过的。
如果该语言是另一个JVM或CLR托管的语言,可以放弃学习环境的问题 - 您可以在Clojure / Scala / F#代码中使用所有熟悉的API - 并专注于语法和习语。
否则,您可能正在使用新语言,因为它非常适合您想要解决的特定问题(例如本机代码和功能 - > Haskell;分布式和并发 - > Erlang)所以适合功能集是事先已知的,但您有额外的学习标准API的负担。这就是原型制作的目的。
答案 2 :(得分:0)
本书Programming Challenges和associated website提供了大量的算法问题,并使用多种语言(Java,C,C ++)进行自动在线判断。任何算法教科书都可以为您提供大量基本数据结构和程序的示例,以便尝试和实现,这通常是一种使用基本语言语法和功能进行练习的好方法。我个人最喜欢的是The Algorithm Design Manual,它与语言无关,但也有很多优秀的语言专用书籍(例如Mastering Algorithms in Perl或Data Structures and Algorithms in Java)。
如果您对一组常见的数学问题感兴趣而尝试解决,Project Euler是一个很好的资源。
对于更多的日常问题,我发现食谱方法最有帮助。例如,Perl和Python都有出色的O'Reilly烹饪书以及online resources,它提供了很多常见和重要问题的简短例子。正如another answer中所提到的,这里的关键是找到您需要的基本功能的典型示例,特别是通过利用标准库中可用的功能。我经常尝试建立自己的小型示例库,例如:一个套接字示例,一个数据库访问示例,一个文件读取示例,一个简单的数值求解器等,然后在编写生产代码时我会想到这些想法。