关于语言和学习语言的地点的建议?

发布于 2024-10-07 12:50:20 字数 172 浏览 0 评论 0原文

我最后一门 Java 课的期末考试将在周一进行。什么是有很多免费资源(这里是贫穷的大学生)可以使用的好语言?我听说过有关 Ruby 和 Erlang 的好消息,但两者对我来说似乎都很陌生。

也许我应该先在 Java 中尝试一些东西,然后再转向另一种语言,比如某种框架或库,它们比这么快采用一种新语言对我有更多建议?

My final for my last java class will be Monday. What would be a good language with many free sources (poor college student here) to work off of? I've heard good things about Ruby and Erlang but both seem alien to me.

Perhaps there is something I should try in Java first before moving to another language like some kind of framework or libraries that would advice me more than adopting a new language so quickly?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

花之痕靓丽 2024-10-14 12:50:20

作为一名学生,我经常从许多教授那里听到这样的话:

“这不是关于语言,而是关于算法!”

经过近 4 年的尝试不同语言后,我发现这对说实话。
因为如果你学习如何用一种语言做某事......剩下的只是使用不同的语法应用你的知识。

我的建议是坚持你开始的内容(Java),在掌握基础知识后,然后处理:

  • 继承
  • 多态
  • 数据结构

因为你会在几乎每种语言中找到上述内容。

算法动画帮助我形象化和理解了很多。

另请阅读这篇文章

As a Student, i hear those words a lot from many of my professors:

"Its not about the language, its about algorithms!!"

Which after almost 4 years of trying different languages, i find this to be true.
Because if you learn how to do something in one language... the rest is just applying your knowledge using different syntax.

My advice is to stick with what you started (Java), and after you master the basics, then deal with:

  • Inheritance
  • Polymorpism
  • Data Structures

Because you will find the above in almost every language.

Algorithm Animations helped me visualize and understand a lot.

Also read this post.

妳是的陽光 2024-10-14 12:50:20

我肯定会推荐 Ruby - 作为一种有趣的语言来了解更多编程知识。 Java 是静态类型且严格面向对象的,因此您很自然地会感到 Ruby 陌生。

Ruby 在许多范式方面都很强大——尤其是面向对象、函数式和元编程。学习大量范例以及如何组合它们将使您成为更好的程序员,无论您未来使用哪种语言。

学习了 Java 后,JRuby 将是很好的 Ruby 实现 - 它是用 Java 编写并在 JVM 上运行。 JRuby 的另一个优点是您可以在 Ruby 代码中使用 Java 库。只需从包管理器安装 jruby 即可开始使用。

要学习 ruby​​,请查看以下资源:

I would definitely recommend Ruby - as a fun language to learn more about programming. Java is statically typed and strictly object oriented, so it is natural that Ruby feels alien to you.

Ruby is strong in a number of paradigms - especially object oriented, functional and metaprogramming. Learning lots of paradigms and how to combine them will make you a better programmer no matter what future languages you use.

Having learnt Java, JRuby would be good implementation of Ruby to use - it is written in Java and runs on the JVM. Another advantage of JRuby is that you can use Java libraries from your Ruby code. Just install jruby from your package manager and you should be ready to go.

To learn ruby check out the following resources:

伤感在游骋 2024-10-14 12:50:20

既然您已经了解 java,那么就尝试一下其他风格,例如 Python、Perl 和 Ruby。 PHP、Java 和 C++ 在风格方面密切相关。

Since you already know java, get a taste of other styles like Python, Perl and Ruby. PHP, Java, and C++ are closely related style wise.

浅听莫相离 2024-10-14 12:50:20

我建议查看 ScalaF#/SML/Ocaml 和 Haskell - 但特别是 Scala:

原因是 Scala 表明可以存在一种“有趣的”静态/强类型高级(真正意义上的)“面向对象”语言 。由于设计和实现的限制,有许多有用的编程结构在 Java 中不可能。 (Scala 绝不是一种完美的语言。)

即使只学习 C#3/4(虽然并非所有领域都重叠,但它的类型系统通常不如 Scala 强大),也会发现在 Java 中不容易实现的结构——简单地将“函数”作为对象传递,或者能够统一、轻松地对列表运行查询和操作,这些都是 Java 无法实现的。您可以在Java中伪造闭包/lambda(查看anon-inner类或Functional Java 库),但这并不漂亮:Scala 和 C# 添加了对这些构造的语言支持,因此它们是“自然的”。

我不会说 Ruby 或 Python(或许多其他语言,PHP 除外;-)的坏话——但是它们缺少的一件事是静态类型。有些人认为这是一种祝福,但我通常认为这是一种诅咒(好的静态类型系统可以证明不存在许多类型问题)——问题是,如果 Java/C/C++ 是只有您处理过静态类型语言,您才会认为静态类型一定很痛苦(并且意味着“太多类型注释”和“太脆弱/封闭类型”)——这根本不是在具有类型推断、视图边界、类型类等的更高级静态类型语言中,这是正确的。

学习 Haskell 确实会让你看到一种不同的方法——但它确实是一种不同的野兽,并且需要< em>忘记了 X 语言是如何工作的。你可以写“Java in Scala”,即使不建议/惯用,但你确实不能写“Java in Haskell”。

I would recommend looking at Scala, F#/SML/Ocaml and Haskell -- but Scala in particular:

The reason for this is Scala shows that a "fun" statically/strongly-typed high-level (in a real sense) 'OO' language can exist. There are many useful programming constructs that are not possible in Java due to design and implementation limitations. (Scala is by no means a perfect language.)

Even learning just C#3/4 (which generally has a less powerful type system than Scala, although not all areas overlap) will open eyes with constructs that are not easy to do in Java -- simply passing around "functions" as objects or being able to uniformly and easily run queries and manipulations over lists are something out of reach with Java. You can fake closures/lambdas in Java (look at anon-inner classes or the Functional Java library), but it is hardly pretty: Scala and C# add language support for these constructs so they are "natural".

I won't speak ill of Ruby or Python (or many other languages, excluding PHP ;-) -- but one thing that they lack is static typing. Some people find this a blessing, but I generally find it a curse (good static type systems can prove the absence of a number of type problems) -- the problem is that, if Java/C/C++ is/are the only statically typed language(s) you have dealt with, you will think that static typing has to be painful (and implies "too much type annotation" and "too brittle/closed types") -- this is simply not true in more advanced statically typed languages with type inference, view-bounds, typeclasses, etc.

Learning Haskell will really open your eyes up to a different approach -- but it really is a different beast and requires forgetting how language X works. You can write "Java in Scala", even if not advisable/idiomatic, but you really can't write "Java in Haskell".

不知所踪 2024-10-14 12:50:20

如果您正在寻找 Web 开发,我强烈建议学习 PHP(它是一种非常有趣且有用的语言)。如果您想进行桌面开发,请使用 C++,如果您想尝试 iPhone / iPad 开发,请尝试 Objective-C。

我学习了一门 Java 课程,我发现它为我转向 Objective-c 奠定了良好的基础,你只需要小心,因为该语言不管理你的内存使用(没有垃圾收集器)。所有上述语言都可以在互联网上免费获得大量支持。如果您正在寻找学习语言的技术,我发现查看示例代码是最好的方法。

希望这有帮助!

If you are looking for web development, I would strongly suggest learning PHP (it is a really fun and useful language). If you are looking to develop for the desktop, C++ and if you want to try iPhone / iPad development, try Objective-C.

I took a Java class and I found that it gave me a good foundation for moving to Objective-c, you just need to be careful because the language does not manage your memory usage (no garbage collector). All of the above languages have tons of support freely available on the internet. If you are looking for a technique to learn a language, I find that looking at example code is the best way to go.

Hope this helps!

不及他 2024-10-14 12:50:20

我完全同意克里斯所说的,确保当你开始学习时,在谷歌中寻找一切,有成千上万的资源可用于指导你选择使用的语言。

I Totally agree with what Chris said, Make sure that when you start learning, look for everything in Google, there are thousands of resources available for how-to's about the language you chose to go with.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文