随着高级编程语言(如C#、Java等)的发展,许多人声称它们将取代汇编语言和C/C++等语言,使您可以访问和控制计算机硬件,因为程序员应该专注于创建程序和解决问题,而不是浪费时间来处理计算机。随着硬件的不断改进,C/C++和Java之间的性能差异不会很大,大型游戏可以用Java这样的语言编程。
这就是我在互联网上看过这个话题后,简要总结的一般想法。你认为它在不久的将来会变成现实吗?这是否意味着我们学到的关于低水平的东西不再适用于软件行业了?这是否意味着汇编语言和C/C++将只与电气工程师相关,因为他们将是唯一需要为其电气部件编程的人?
多少学习就足够了?如果我们学到太多低水平的东西,我们最终会变得更倾向于电子工程,或者如果我们学了太多的数学,我们可以学习成为数学家,而不是程序员。我只想知道我学到的数学知识(我修了一门数学课程,涵盖了与这本书类似的材料(他们使用了不同的课本):离散数学及其应用)是否与我们的编程技能集一样有用。很多数学练习可能花我们大部分时间来做,如果你认真的话,你就没有时间去学习编程了。在我们的gamedev论坛上,即使是数学和物理也只有一个部分,因为它与编程部分相比。
现在我刚开始读“计算机编程的艺术”。数学只占书的四分之一,但对我们这些非数学家来说,这个练习是很难的。即使是这样的“初等”数学,我们在职业生涯中也使用过它吗?有些人可能会告诉我,读TACOP是在浪费时间,而且应该花时间在其他更实用的东西上,尽管这本书都是关于编程的(比起书中解释类似的东西来说,更多的是学术上的比较)。但我认为作者花了很大的时间和精力来制作它。他甚至可以写完整的5本书,而我们--观众--只有读它的使命。为什么不行?
发布于 2011-03-25 16:10:09
有趣的问题。我是一个很长时间的C++程序员,现在在C#中工作(在性能关键方面有一些非托管C++ ),而且历史上不得不添加偶尔的汇编代码,通常是因为性能方面的原因。
在准备对问题的答复时,应注意以下几点:
好的-关于你的主要问题:软件工程师真的需要知道低水平的东西吗?
我的回答是:是
原因:
问得好--但我不认为非托管语言会在短期内消失。
发布于 2011-03-25 14:48:00
与任何工程学科一样,到最终产品有许多步骤,所有这些步骤都很重要,需要专业知识,而且很有价值。特别是在软件工程中,我们有许多抽象层。所有这些都是必需的,没有人能成为所有这些问题的专家。
也就是说,我们需要更多的C#/Java/Ruby开发人员,而不是Assemby/C开发人员。对于我们“更高层次”的开发人员来说,更多地了解“幕后”发生的事情是有帮助的,并将使我们更好地开发人员。但是很多其他的事情也是如此。作为一名.NET开发人员,对于exmaple来说,我可以学到的东西太多了,这将使我更有效率,学习我们的中间语言 (更不用说C++/C/Assmebly),尽管它非常有用,但常常不得不靠边坐。
发布于 2011-03-25 15:01:07
今天,你可以作为一名程序员谋生,而不知道低水平的东西。我认为这只会让你成为一个更好的程序员。
然而,用低水平的东西来保持高水平的能力变得越来越不重要了。我的意思是,我已经有20年没有在装配中做任何事情了,在我重新开始工作之前,我可能需要一个认真的复习,但是关于在这个层次上工作的总体概念仍然是我意识的一部分,我发现它不时地帮助我,即使是在更高层次的语言中工作。
https://softwareengineering.stackexchange.com/questions/61936
复制相似问题