我的论文题目是NP难问题:我将对诸如划分、子集和、背包等问题实现各种算法,然后比较结果、运行时间等。此外,我还将看到当您修改问题时,算法会发生什么变化(算法在简化问题上的表现,等等)。
现在我选择这个主题作为我的项目,因为我对理论计算机科学感兴趣,但我也不确定我是否想继续作为一名学者/研究员,或者加入一个公司/初创公司,这个项目有一个理论和实践(实际编码)方面。
我的问题是,我应该使用哪种编程语言?我应该坚持自己更熟悉的东西(Java或者Python),还是应该使用web语言(HTML、CSS、PHP、RoR等),记住现在对web开发技能的需求很高?
编辑:、HTML和CSS显然只用于UI。
我希望我的项目能够在面试中给人留下深刻的印象(无论是工作还是硕士课程),我不相信“Java中的另一个项目”能够做到这一点。我知道,只要它的工作是好的,结果是令人满意的,我应该会没事,但如果,假设,如果使用Ruby可以给我一些要点,我完全同意这一点。同时,我明白决定使用哪种语言是项目的一部分,所以我不愿意为了看起来酷而把事情复杂化。
提前感谢!
编辑:,如果这改变了任何答案,这是一个本科生。论文项目,而不是PhD项目。
发布于 2010-11-01 21:45:28
首先,这是一个主观的问题,并不完全适合这样做,但我们原谅你:)
与这里的流行观点相反(查看前面的答案),如果您试图解决NP难题,我将绝对不是用C或C++编写程序。主要是因为动态编程方法在用低级语言编写时看起来像绝对的狗屎。例如,下面是某人对背包问题的动态规划解决方案:http://www.joshuarobinson.net/docs/knapsack.html。
它写得很好,格式也很好,但是由于您需要做大量的malloc、memcpy和free,所以很难读懂。使用Java或Python,这是毫无疑问的。你想让人们真正阅读(甚至是享受?)我想你的论文。
不要用PHP或Ruby编写它,因为这些语言并不特别适用于计算机科学理论。尽管如此,如果你申请的是一份web的工作,并且你试图用背包问题或动态编程NP-硬解决方案给未来的员工留下深刻印象,那就像用炮弹射麻雀一样。
发布于 2010-11-01 21:34:25
如果您的项目主题是令人印象深刻的,没有人会关心它是用什么语言。用你认为适合这项任务的语言去做。知道如何做出适当的语言选择和捍卫这个选择应该比"OMG我使用了RoR XSL ActionScript CSS!“更令人印象深刻。
另外,预计这个项目需要多长时间?如果你今天使用一种华而不实、时髦的语言,你知道当这个项目结束的时候它还会很酷很受欢迎吗?换句话说,受欢迎并不是选择这种语言的原因。
发布于 2010-11-01 21:35:35
如果您可以投入精力和时间,那么我建议您使用c/c++。这将是一个令人印象深刻的附加技能。
https://stackoverflow.com/questions/4073230
复制相似问题