【问题标题】:What represents the most mentally challenging form of coding? [closed]什么是最具挑战性的编码形式? [关闭]
【发布时间】:2009-02-28 20:39:22
【问题描述】:

我正在攻读有机化学的研究生学位。

现在,我所在地区的许多有才华的人都在走向纳米技术。

现代计算机科学中的等效领域是什么?

【问题讨论】:

  • 应该是社区维基
  • “纳米技术”是科学界最常被滥用的流行语之一。它可能与“面向对象编程”或“敏捷方法”相比较。
  • 可能这个标题确实有误导性:你问的是最新趋势,还是最具挑战性的领域?

标签: computer-science


【解决方案1】:

对我来说,这是线程。即使是相对“简单”的线程也具有挑战性,如果您深入研究无锁代码领域,它会变得更加棘手。确实有一些线程范式不会引起那么多的心理问题(参与者、消息传递等),但它们往往会有自己的取舍。

在我看来,这是一种“深度”复杂性,但还有其他编码领域以不同的方式具有挑战性。安全性、i18n 和日期/时间处理(或几乎任何与实际人类 特征相关的东西)都非常挑剔,需要学习和注意很多极端情况。这当然很难,但与并发的方式不同。

编辑:作为对 twk 的回答:是的,有很多人试图让并发更容易。虽然已经有各种平台可以很好地支持并发(例如 Erlang),但目前还有更多的举措来为已经成为主流的平台带来更简单的并发。从我作为 .NET 开发人员的角度来看(好吧,无论如何,一个业余/狂热的 .NET 开发人员;目前是专业的 Java)Parallel ExtensionsCoordination and Concurrency Runtime 是最近两个最有趣的发展。我不希望这会使并发容易 - 只是对于凡人来说是可行的

【讨论】:

  • Jon - 知道您还需要正确回答多少个问题才能购买飞行坐骑吗? ;)
  • @rism,这应该是个秘密。但是现在它被宠坏了,这些额外的功能可以在 75k 代表处获得。
  • 如果你认为你了解线程 - 你不了解;)
【解决方案2】:

“强”artificial intelligencequantum computing 将是我对纳米技术等效的投票。

【讨论】:

  • 强大的人工智能在另一个球场。弱人工智能更接近纳米技术。
  • 进一步思考,你是对的。弱人工智能和纳米技术存在,强人工智能仍然是理论上的。
【解决方案3】:

Natural language processing (NLP) 是另一个可能应该被提及的领域。

【讨论】:

    【解决方案4】:

    我同意 Jon Skeet 的观点,即线程/并行执行是一个热门话题,并且正在开辟新领域或思考开箱即用的技术,例如 Transactional Memory。这是一个新概念的开放领域。

    【讨论】:

      【解决方案5】:

      HTML / CSS

      好吧,它不完全是编码,但是这很头疼

      【讨论】:

      • @Welbog:嗯,不是很有成效的评论。您是否尝试过所有现代浏览器/操作系统组合都支持的复杂布局?如果你还没有,我建议你在尝试之前保持判断。
      • 他可能无能为力...阅读他的用户页面简介...
      • 呸,在某些情况下它也会让聪明的人头疼,特别是如果需要支持像 IE6 这样的旧版浏览器。最初的答案有点有趣,纳米技术 vs HTML/CSS
      • @Thomas - 我不确定编码的确切定义是什么,但它确实涉及一种由浏览器以某种方式“执行”的语言。就像我说的那样,它不完全是编码。
      【解决方案6】:

      我当然希望有人忙着让自动使用更多处理器内核变得容易。当然,有像 Intel Thread Building Blocks 这样的东西,甚至还有像 Erlang 这样的语言,但我希望我们在未来 10 年看到这方面的更多进展。

      【讨论】:

        【解决方案7】:

        至少在本地,热点领域是informatics,尤其是生物信息学。收集、组合、关联和分析来自许多来源的信息,并从收集中获得额外的信息,代表了计算机科学与其他活动之间最紧密的联系。这是我们 CS 系提供的最新学位,吸引了来自多个学科的最多研究生进入 CS 课程。

        我不知道这在心理上是多么具有挑战性,但作为新手,有很多想法没有被想到,更不用说调查了。提出原创想法非常具有挑战性,尽管它们背后的实际编程部分可能并非如此。

        【讨论】:

          【解决方案8】:

          什么是最具挑战性的编码形式?嵌入式固件开发。

          现在,我所在地区的许多有才华的人都在走向纳米技术。

          现代计算机科学中的等效领域是什么?再次,嵌入式固件开发。

          对于任何桌面或互联网开发人员,如果您不认为嵌入式编码比任何其他类型的编码困难得多,那么您就不知道嵌入式。我可以做任何桌面或互联网程序员可以做的事情,但大多数(如果有的话)桌面/互联网程序员能否做好嵌入式,或者根本不能做,这是非常值得怀疑的。

          举个例子,我现在正在处理一个错误,在串行通信端口(中断驱动接收)上成功接收到 4 个字节后,连续字节不会导致 UART 产生中断(他们应该这样做)。

          那么,Windows 和 Internet 程序员 - 您认为最可能的原因是什么?你会怎么办?哦,我忘了,Windows 和 Internet 程序员没有完全和直接访问硬件的权限——所以他们可能从未经历过这种情况。在嵌入式开发世界中,你不能说“它是硬件”就这样——你有责任让它自己工作,从 UI 一直到电源(软件、固件、硬件,它是嵌入式开发人员的所有责任)。这是任何 Windows 或 Internet 程序员都无法遇到的更大挑战。

          【讨论】:

          • @RogerD:它更大,除非他们在 Windows 之前的生活中遇到过它。在这种情况下,他们会建议您检查为什么在处理四个字节后没有在 UART 上重新启用中断。
          【解决方案9】:

          对我来说,很难说出最具精神挑战的人:我认为没有一个。

          系统和嵌入式编程是恕我直言的两个最难的领域。最接近硬件,最难(在你的生活中至少看一次real mode assembly:D)。

          Jon 完全正确地说并发编程非常棘手,而且很难做到正确。

          但对于加密、机器学习或数学编程的某些方面,我会得出相同的结论。我想区分 CS 基础和更高级别的任务是有道理的......

          不过,这是一个非常主观的问题。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-11-26
            • 2013-07-18
            • 2014-07-16
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多