一般来说,有人应该学习哪些编程语言?

时间:2013-12-19 00:09:03

标签: language-agnostic programming-languages

TL; DR

我在专业水平上了解C和C ++。我最近被告知,对于我的学习(物理和工程),我必须学习Python。 (教授要求)

为了掌握计算机编程的一般背景并准备好解决大多数问题,是否还有其他语言需要学习?

注意:非常感谢图书或在线资源!

(P.S。我拒绝学习的唯一语言是BASIC)

背景

我是一名计算机工程师和理论物理专业的学生,​​我已经用C / C ++编程了五年多,但我是自学成才的。这对计算物理学很有帮助。我16岁时就在一家大公司找到了一份工作,目前我在一家小型媒体设计公司工作,担任服务器管理员和内部经理。 (由于大学接管我的生活,我离开了大公司。)

我最近了解到,对于我的学习,我将在大约两周内学习Python ......很有趣。

我想如果我要分支到另一种语言,我应该成为一个全面的多语言程序员,能够用最好的语言解决大多数问题。虽然这是一个不可行的管道梦想,但我仍然希望学会成为一名优秀的程序员,我有4.5年的时间去做! (我的学位是合作社6。5年......如果我不做大师的话)

如果这些信息有帮助:我运行GNU / Linux作为我唯一的操作系统,我通常使用Eclipse IDE。 (虽然我可能很快就会转向OSX / XCode)


我担心这个问题会引起很多仇恨,所以我想捍卫我的疑问:

我不是一名专业的程序员,但作为一名计算机工程师和物理学家,编程在这一天很重要,我必须在简历中列出我所知道的语言。 当我这样做时,我想看非常好,所以我想在编程方面有一个令人印象深刻的背景。 由于时间和精力都是有限的资源,我想把注意力转向语言和范例,这些语言和范例将在现实世界中为我提供最大的帮助,也为我自己的爱好提供帮助。

2 个答案:

答案 0 :(得分:7)

成为一名优秀的程序员并不是说你知道多少种语言 - 这只是成为优秀程序员的副作用。对我来说,一个优秀的程序员应该能够自己学习新的语言。因为根据我的经验,雇主提供的培训几乎为零。

行业本身必须经历这一点。学术界没有,现在还没有任何javascript课程,所以专业人士必须从头学习。因此,从1999年到2010年的javascript代码主要是意大利面条代码,有很多盲复制粘贴编程。从2010年左右开始,随着AJAX和网络应用程序的出现,人们开始认真研究javascript并开发最佳实践并编写可维护的代码 - 我们作为一个行业必须实际学习一种语言。

因此。学习一些语言,让您快速学习其他语言。

  • C为您提供90%的编程语言功能。所以你现在就好了。
  • 学习函数式编程语言。由于熟悉的语法,Javascript是对C程序员的函数式编程的一个很好的介绍,但是如果你有空的话,可以看看Scheme或其他Lisp变体。
  • 学习面向对象的语言。如果您选择Java或C ++,那么学习另一种OO语言 - Perl,Python,Ruby,Javascript - 只是为了看看OO的重量程度。
  • 学习事件驱动语言,其中内置事件循环并从视图中隐藏。我知道的两个是Javascript和Tcl。如果您选择学习javascript,请查看node.js,因为与浏览器编程不同,它会让您进入异步编码的深层。
  • 学习一些非常奇怪的东西。我不是指像Brainfuck这样的笑话语言,而是像APL或Tcl或Lisp方言那样真实的东西(是的,已经在上面提到过)。如果你有空闲时间,我强烈建议你去看看Forth并写一个小的非平凡程序。

完成上述所有操作后,您将成为一名相当称职的程序员。能够胜任,因为您将能够学到任何东西来完成工作,并且您将更加了解为工作选择合适的工具,并且您将开始在C代码中看到其他语言的模式,这将使您走向成功:“啊哈!他正试图实现这个功能”。

要成为一名优秀的程序员,就像做一件好事一样 - 一个优秀的钢琴家,一个优秀的滑板手,一个优秀的数学家。这需要时间和实践。有轶事10000小时的规则,大致相当于10年的经验。一个好的程序员会对良好的代码和坏的东西产生本能的感觉。这些天我们称它为代码味道。一旦你了解了什么是好的代码,你就会发现自己编写了可读,可维护的代码。

答案 1 :(得分:3)

Bruce Tate在7周内阅读7种语言。您将体验其他类型的编程语言。包括像Haskell这样的纯函数式语言。

http://pragprog.com/book/btlang/seven-languages-in-seven-weeks