建议在Matlab之后学习任何编程语言

时间:2010-07-07 13:58:21

标签: matlab programming-languages

我在本科一年级的时候上过C ++课程。然而,一旦它结束,我从未在任何项目或使用中使用它。在“链接列表”开始之前,我熟悉C ++中的一些平均主题。一旦我有机会在二年级之后完成我的第一个项目,我的教授建议我。学习Matlab,它广泛用于数学和工程项目。但我经常听到人们认为Matlab不是一种语言,它不能取代任何编程语言,如C ++,Java,Fortran等。我也担心它无法运行使用可执行文件,不像Fortran,C ++等

我想学习编程语言:

1)其中涉及上述以及Matlab在许多方面缺乏的其他问题。

2)在工业和研究中心广泛使用和提供。

3)编码相对简单快捷,功能强大。

还请:

1)为您建议的语言提供优势和劣势(通过Matlab)。

2)学习它的最佳方式。

3)知道我熟悉编程概念的正确主题序列。

4)一个简单,有趣,有趣的资源来源。

感谢您的建议。

11 个答案:

答案 0 :(得分:18)

从matlab,我会去python。

首先,我想消除一个神话。 Matlab 在工业中使用。但是,它并不常见,而且非常具体。它通常用于原型设计和数学分析,而不是将系统部署到客户。一旦聪明的数学家在Matlab中证明他们的想法,开发人员就可以用它来构建一个真实的系统。真正的系统通常用C,C ++,Java完成,并部署到客户手中。

但是,首先,问问自己为什么你想要学习这门语言。

  • 只是曝光吗?要了解有关编程的更多信息几乎任何语言都能帮到你。
  • 您是否希望能够快速启动某些脚本? Python会更好。
  • 您是否希望开发能够以牺牲开发速度为代价来利用每一盎司处理能力的大规模系统? C / C ++ / Java将是一条更好的道路。
  • 你想对招聘人员更具吸引力吗? Java可能拥有最多的“想要广告”,其次是C ++,然后是Python或C#。
  • 您想留在特定行业(例如科学计算)吗?挑选一些您感兴趣的公司,并找出他们在内部使用的内容。

请记住,语言本身并不是一个目标,它只是一个工具,可以让你到达目的地! :)

  

1)其中涉及上述以及Matlab在许多方面缺乏的其他问题。

是的,Python是一种行业可接受的编程语言,具有许多优秀的编程功能 - 列表推导,鸭子打字,强大的标准库。

  

2)在工业和研究中心广泛使用和提供。

它被广泛使用,并且在不断发展。特别是用于研究和原型设计。非常大规模的系统仍将主要使用Java或C ++,但这些语言难以学习。

  

3)编码相对简单快捷,功能强大。

简而言之,这就是python。

  

1)为您建议的语言提供优势和劣势(通过Matlab)。

Matlab有一些非常酷的功能,但作为一种行业编程语言,我不会把它称为最重要的。但是,语法可能最接近python。 Python可以为您提供真正的面向对象开发,并且具有更丰富的标准库,超越了matlabs墙。

  

2)学习它的最佳方式。

tutorial开始,继续编写小项目。从那里向上移动。边做边学。

我最近通过在http://projecteuler.net处理问题来学习Scala(只是'cuz),这很有趣! (对于有趣的非常讨厌的定义)

  

3)知道我熟悉编程概念的正确主题序列。

阅读代码,阅读StackOverflow上的问题。阅读有关编程概念的博客和书籍 - 如何构建代码,如何重构,如何设计等等。然后,只需解决遇到的问题。如果可以的话,找一位导师或在SO上提出很多问题。

  

4)一个简单,有趣,有趣的资源来源。

StackOverflow的。导师,如果你有一个可以访问。开源也很好。

答案 1 :(得分:17)

  

我经常听到人们认为Matlab不是一种语言

你听到的是胡说八道。 Matlab是一种非常好的语言,对于那些受过FORTRAN,C或C ++条件限制的人来说有点奇怪。此外,在工程和许多自然科学中被大量使用。你的问题如上所述给出没有充分的理由说明为什么你应该继续做其他事情,除了那些听起来像是有斧头的人的含糊不清的异议。

我强烈建议您继续使用Matlab,直到它停止有效为您。此时,您将遇到特定问题(规模,并行性,性能等),人们希望这也将代表您将来遇到的问题。在那时学习一门新语言会比你猜测哪种语言可以帮助你解决未来可能遇到的未知问题要好得多。


P.S。有很多关于将Matlab编译为包含本机机器代码的可执行二进制文件的论文。我不知道这项工作是否已经成功了。

答案 2 :(得分:5)

的Python。

语法与Matlab相似(不完全相同,但很容易习惯) 你还有matplotlib python库,它在尝试提供相同的API(即函数名称等)时提供了一些Matlab的功能。这可能是您开始使用Python的起点,同时保持熟悉的基础。

要学习Python,我建议Official Python Tutorial - 哪个IMO对初学者来说非常好。

答案 3 :(得分:5)

Matlab在工业中广泛用于科学和工程计算。当然它有它的缺点,但它为算法的快速开发提供了一个很好的平台。我和一个研究地球物理学家团队在石油工业工作;他们都一直使用Matlab,开发计算电磁代码。国防,汽车行业,越来越多的生物科学,以及许多其他人都是Matlab的重度用户。查看招聘广告。

因此,如果你唯一关心的是找到一份工作,我建议你的下一个编程语言应该是Matlab - 它会击中你的3个desiderata中的至少2个。我怀疑你对Matlab缺陷的理解部分是基于你对产品缺乏深入了解。

说了这么多,你想学习另一种编程语言?如果你想继续开发sci / tech / eng程序,那么Fortran是一个不错的选择,C和C ++也是如此。我会留下其他人来支持C和C ++,因为我们在这里使用Fortran进行繁重的工作。

Fortran对Matlab的主要优势是执行速度;我工作的地方很重要,我们的一些计算需要几天的处理器。这表明Fortran拥有的另一个优势,就是Fortran,通过OpenMP和MPI(以及类似的)是最易于并行化的语言之一。

为了学习现代Fortran,我建议使用Ellis 的“Fortran 90”和Metcalf的“Fortran 95/2003 Explained”一书。然后,在你的情况下,我开始将我的一些Matlab程序翻译成Fortran。这将使您很好地了解这两种语言的相对优势和劣势。您的Matlab程序还为您的Fortran程序提供了一个很好的规范,因此您已经编写了测试。

答案 4 :(得分:4)

Matlab在工业中被广泛用于模拟,特别是在R& D部门。当然在软件公司,如果客户端与Matlab无关,你就不会销售Matlab脚本。

我会选择Java:

1)平台独立,易于使用。正如您所说,Matlab是一种生活在软件中的脚本语言,因此任何语言优于Matlab的优势都应该是显而易见的。 (如果您正在考虑工程/模拟世界之外的应用程序)。

2)使用语言和程序!

3)做一个小项目并开始研究它。学习的最佳方式是做到这一点。

4)老实说,买一本好书并使用谷歌。最后,这就是我要做的事情,即使有人可以去讨论关于理论上最好的方式的页面和页面。

亲切的问候,

答案 5 :(得分:4)

  

我经常听到人们认为Matlab不是一种语言

如果是这样,那么你周围的人经常是错的。 Matlab是一种真正的编程语言。它永远不会取代C ++或Java,因为它们被用于不同的东西。但Matlab可以很好地完成它的设计工作。

当我获得物理学位时,我主要使用Matlab进行计算。现在我主要使用C#和ASP.Net进行基于Web的开发。但也许我的转变是非典型的。

我的建议是:找到您想要工作的行业,查看工作列表,看看他们要求的语言。然后学习其中一个。根据我的经验,学习入门级职位并不太难,然后在你的工作过程中你会学到更多东西。

答案 6 :(得分:3)

这里有一个对python的投票,来自Matlab和Python的重度用户。还没有人提到的是两种语言在一起发挥得非常好,并具有兼容的优势。

我经常使用python脚本来预处理将被提供给Matlab的数据(在我看来,python解析函数比Matlab更令人愉快)。或者我将使用python来模拟一个过程(因为我们的生产系统是C ++和python),并使用Matlab的图形和分析功能来处理视觉显示或统计分析。

另外,正如斯蒂芬所说,在业界,Matlab经常用于原型阶段。然后将这些概念翻译成另一种语言;在我的公司,其他语言是python,从一个到另一个的翻译通常非常简单。

Python也是一个很好的通用脚本语言,用于命令行自动化,文件管理等...(想想bash替换),所以它是一个很好的语言,可以在一个工具箱中使用。

答案 7 :(得分:3)

我只是将JavaScript放入混合中,因为它是世界上安装最广泛的语言。它在非浏览器安装方面获得了动力。我预测在未来几年内,优质的JS程序员将会出现真正的短缺。

答案 8 :(得分:2)

我个人推荐Java。

进阶:
1)与C ++相比更容易学习 2)功能强大且最新,具有大量库和多种功能 3)成熟稳定,适合研究 4)记录完备 disadv:
1)不是最快的孩子

学习它的最佳方式:
:读一本书,用它编程,也许改写你现有的一个项目

要知道我熟悉编程概念的正确主题序列:
:再次得到一本好书。它应该就在那里。

一个简单,有趣,有趣的来源,可供学习: :再次得到一本好书。和Google和Java的官方网站

你可以为初学者开始另一个好的Java书籍问题。我相信你会得到很多好的答案

答案 9 :(得分:2)

  

一个简单,有趣,有趣的来源,可供学习。

如果您选择Python,Dive into Python是一个很好的来源。许多例子都有实用的味道,你可以免费获得这本书的电子版。

答案 10 :(得分:2)

您应该学习的语言取决于您的研究需要什么。如果你正在做大量的数值工作,那么MATLAB,R和Python就是三种明显的语言。

在答案中已经提到了很多Python,所以我只是快速触及R. R是免费的开源软件,它是统计数据的事实上的语言。数据分析。它还有(imho)最好的数据访问工具。

您还可以选择学习网络编程,因为能够通过网络应用与他人分享您的研究报告非常有用。尝试一些基本的HTML编码,然后查看像jQuery这样的JavaScript框架。

如果您不是软件开发人员,那么请忘记Fortran和C变体(C ++ / C#/ Java)等编译语言。你不需要它们。

在学习编程方面,几乎总是值得一看Software Carpentry