计算机是否仍在以指数方式变得更好,还是我们正在接近极限?
计算机在许多领域都接近其最大速度限制。如果我们再调高时钟速率,芯片就会熔化,因为它们无法足够快地散发废热。我们将不得不从硅转向碳,以解除这一限制。到主存储器的带宽受到将电子注入相对广阔的铜电路板迹线然后将它们推到存储器芯片几厘米处的物理困难的限制。光学互连最终可能会缓解这一瓶颈,但距离商业化生产还差得很远。内存瓶颈限制了我们可以为多少个内核提供指令和数据,以及我们可以为单个内核提供多快的速度,因此它形成了计算能力的障碍。物理过程限制旋转磁盘存储器的旋转速度和磁头步进速率。这方面的进展一直不错,但我们可能已经到了极限。即使是完美的半导体磁盘存储器也会有类似于主存储器的带宽限制。目前还有很大的改进空间。传统的计算机建立在金刚石芯片上,在液氮中冷却并具有光学互连,在每秒指令数的基础上,它可能比现在可用的计算机快许多倍。但它会花费大部分时间等待主内存,而不是执行指令。
高端人工智能最流行的编码语言是什么?
Python ,但不是出于任何充分的理由。不快,这不是类型安全的,这不是一个好的 OO 语。使用 Python 是因为它很简单。人工智能研究人员不是软件工程师。他们不想成为软件工程师。他们不想学习如何写好软件。他们希望能够快速试用他们的解决方案和算法。Python 让他们这样做。Python 被用作将所有部分连接在一起的“胶水语言”,就像弹力绳一样。人工智能系统通常会使用 Python,然后使用通常用 C 或 C++ 编写的高速库来完成所有的数字运算。他们咀嚼数字并将结果返回给 Python 代码,然后 Python 代码用它们做其他事情。Python 是 AI 和 AI 研究中的关键语言。如果有人写一篇关于新 AI 算法的论文,一个例子几乎肯定是用 Python 写的。
每个开发人员应该尽早学习什么?
技术变革
人们并不总是站在你这边
易于阅读的代码很难编写但值得
隐藏实施细节
你永远不会得到所有的答案
估计有误
你得想很多
开发人员是部落的
很多“技术原因”只是变相的偏好
哪些是实时编程的最佳语言,它们之间的比较如何?
真的 – 你通常需要高性能 – 它介于 C 和 C++ 之间。由于 C++ 只是具有一大堆额外功能的 C,因此很容易选择 C++。然而,当您使用所有奇特的新 C++ 功能时,您往往会开始使用大量动态分配的内存 – 除非您非常小心,否则您可能会随机减速,这就是“硬”实时的终结编程。所以总的来说 – C 是最好的选择 – 它是在这种情况下绝大多数使用的。
什么是机器语言?为什么计算机只能理解机器语言?
这不是真的。如今,计算机无法“理解”一种语言,就像内燃机无法“理解”在正确时间操作阀门的凸轮语言,或者钢琴演奏者无法理解演奏音乐的孔型一样。计算机被构建为在呈现特定位模式时执行特定操作。在动物身上,我们会说它们的反应是本能,而不是理解。所以这个问题的“理解”部分是不正确的。“唯一”部分也不正确。计算机可以遵循任何语言的指令,您可以用机器语言为其编写程序,告诉它如何执行。一旦你开始,你就可以用语言 1 编写一个程序,解释如何处理语言 2,等等。这就是 – 许多抽象级别 – 你可以让 Siri 或 Alexa 播放你最喜欢的歌曲。你的语音波形被转换成一系列不同的表示,最终以一个被编程为启动音乐播放器的表示结束。
计算机编程的一些重要真理是什么?
大多数编程语言都可以自学。像程序员一样思考比语法更重要。你总是可以用谷歌搜索语法,但除非你练习到像程序员一样思考,否则你将无法解决问题。算法很重要,语言是次要的。无论您在解决编程问题和作业时在课堂上的表现如何,如果您脱离 6 个月或更长时间,您的技能就会生锈。最好的学习方法是做一个大项目,了解在实际生活中代码的用途,否则容易忘记。
程序员可以学习多少种编程语言?
如果你学习了四种角落语言,你会发现其余的 95% 只是以不同的组合重复相同的想法。
C – 用于命令式编程
Haskell – 用于函数式编程
Smalltalk – 面向对象编程
Lisp – 用于元编程(宏、代码即数据)
如果你想覆盖剩下的 5% 中的大部分,你可能需要另外一组四种语言:
Fortran – 堆栈驱动编程
APL– 数组操作代数
Prolog – 声明式编程
Brainfuck – 图灵机
不管怎样,我想表达的意思是学习语言几乎是微不足道的。他们从一个到另一个重复使用大部分功能集和语法。然而,学习编程的关键不是学习这些特性是什么,而是如何使用它们来解决问题。请记住,编程不是语言学,它与语言无关。它是关于问题、它们的解决方案以及描述它们的严格方式。
你怀念90年代的编程吗?如果是这样,为什么?
是的,我完全怀念过去的日子。80 年代和 90 年代初期主要是黄金时代。
1990 年代编程的好处:
在 1990 年代,每天工作 16 小时的文化还没有在很大程度上渗透出微软。你仍然有关键时刻,但不是每天都有。现在我们是 George Jetson,在两周冲刺的永无止境的跑步机上,直到我们倒下。
在 1990 年代,您销售的是打包软件。这意味着有一天它完成了,在你开始下一次死亡行军之前,你可以放松一下,举办一个盛大的发布派对,清理你的工作空间,也许做一些你一直在想但没有做的实验性编码没时间。现在什么都没有完成,因为您每天都可以部署新服务器。
在 1990 年代,人们成为软件开发人员并不是为了致富。他们之所以成为软件开发人员,是因为他们是聪明的书呆子。没有编码训练营。你的每个同事都有四年制大学学位,大部分是计算机科学专业。我并不是说这让他们成为更好的程序员,但它确实对你的同事的性格产生了影响。
在 1990 年代,C++ 是一种稳定的编程语言。这很好,因为整整一代开发人员都有时间学习如何不受干扰地使用面向对象编程,而且几乎花了整整十年时间。
在 1990 年代,软件开发人员仍被认为是专业工程师。他们被认为是稀有和有价值的雇员,并受到雇主的优待。10 倍开发人员的神话还没有被发明出来。你是一个 10 倍的人,只是因为你是一名软件开发人员。现在世界上充斥着软件开发人员,他们被视为可互换的部件,可以被破坏和替换掉,或者像自然资源一样被开发利用。
在 1990 年代,拥有 20 年经验的开发人员比拥有 2 年经验的开发人员更有价值。今天?没那么多。
人们曾经为了工作而盛装打扮。男士的休闲裤和正装衬衫,女士的裙子或漂亮的休闲裤。哦,是的,有女人。还有人记得女人吗?这是 1990 年代的一件好事,今天您看不到太多。
缺点:
薪水不错,但不像今天最好的职位那么好。
通宵软件构建。
在家工作意味着将您的软件复制到媒体上并将其带回家,或者拿起您的计算机并将其放入后备箱。没有数字用户线。没有电缆调制解调器。没有纤维。T1 的运行速度为 1.4Mbps,每月费用为 1,100 美元,这对于普通人来说是遥不可及的。
你必须维护一个装满关于枯树的技术参考的书柜。没有互联 。没有堆栈溢出。
今天可能很难记住带有 8MB(不是 GB)RAM 的 25Mhz 80386有多慢。
有些事情永远不会改变:
极客们仍然在同样的荧光灯下围坐在会议室的桌子旁,讨论设计方案。
编写软件的挑战仍然是一样的。人们对不同的实施想法同样充满热情地争论,这和以往一样有趣。
管理人员。哎呀!……
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!