Barack Obama 最近发布了一个鼓励美国学生学习编写程序的视频。近些年,很多人都在讨论这个话题,一个基本的共识大概是:并不是每个人都应该成为软件工程师。
我完全同意这个观点。写一个好的程序是一件十分困难的事,需要许多的经验,何况这里已经有够多的写得超烂的软件了。这个世界不需要更多的半路出家并且自认为他们了解他们正在做什么的软件工程师去制造更多的错误去浪费其他人的时间、金钱和生命。
对于超级聪明和有天赋的人来说,这个观点也适用。我常常碰到一些分享自己“资料”的科学家,其实他们的“资料”对于除了他们自己以外的人来说是毫无用处的。为什么这样说?因为他们还没有对相关软件和其他人的资料完全吸收,自然也不知道完成一个软件的正确途径或错误途径。更重要的是他们不在乎;研究才是他们的工作,而不是资料。对于工程师,这个结论依然成立:他们不关心如何生产可重复使用的测试框架,他们只关心如何把一个雏形投入到生产中。去除一个软件无足轻重的角落部分是他们的工作,即使会激怒相当一部分人(我的意思是,拜托,去看看Matlab吧!好的,好的,我会把我的不满保持在最小状态)。
所有关于学习编程的反对意见都是离题的。我们的目标并不是让每一个人都将自己的一生都奉献给计算机科学(尽管那会让我十分的开心)。要点甚至不是让人们去思考问题的解决方法或者学习计算机知识,即使这些都是学习一些编程知识的好理由。忘记正在改变的社会和经济思想。
美国总统感觉到必须在国家发展编程基础的原因是因为编程是新的美国梦。许多的回应都忽略了这个中心思想,或者完全误解了编程相对于旧的美国梦来说是多么的不同。
什么是旧的美国梦?只要有足够的力气和决心,任何人都可以从一无所有变得成功。这个真理在如今依然成立,但是是否每个人都能够做到是不确定的。因为有许多的东西都超出了直接的控制。可用的位置,供应链条,找到适合的雇工,自然灾难,有效的广告都是要考虑的大的方面。还有更多:你的种族,性别,年龄,社会经济阶级,还有移民身份都可能促成或者破环你的成功。
现在考虑编程。它并不在意你是低下阶级,有性别问题,初来乍到,或者是新纳粹。你今年10岁还是70岁,你是隐士还是交际王,或者你生活在城市还是乡村都无关紧要。如果你能够接触到电脑和网络(即使是在图书馆里)而且下定决心,你就能学习编程。你可能不会成为下一个Don Knuth,也许你只能开发出一个失败的iPhone程序。即使你处于短期监禁或者挣扎在贫困中只为了养活自己,机会对于每个人也是平等的。没有人说它是灵丹妙药。编程不能够解决无家可归或者犯罪问题,甚至不能让我们的议员更加聪明。但是它是一个机会,是美国梦。
编程不像“成为一个汽车修理工”,尽管一些并不熟悉软件的作家会这样宣称。实际上,成为一个汽车修理工更困难;软件更像是一台引擎,任何地方的一个微小的瑕疵都会暴露在整部车上。关于如何修理引擎的知识与能够设计和制造一个以前从来没有建造过的引擎的知识是不一样的。实际上,写一个好的软件更像是建筑学而且更加永恒。即使简单的程序都是由成千上万的元件和数十层的抽象组成的一个整体。尽管工业产品会改变,程序自身并不会随着时间褪色。那就是为什么银行依然运行50年代的Fortran代码的原因。飓风和经济危机不能够摧毁程序。政治不能够杀死你一生的作品。即使是一个建立在部分失败软件上的工作,你依然能拥有那个软件并且做你喜欢做的。
但是比较其他需要物理供给、训练和运气的行业,学习编程更加的容易,方便,而且相对于政治、电影或者其他的行业是一个更加吸引你的让你扬名的机会。像我一样喜欢计算机科学的人会因为个人目的而讨厌这个观点。这个充满逻辑,在朴素下包含着这么多惊奇美丽的东西,已经变成一场赌博或者金融成功的投机。但是,这就是世界本来的面目。
所以不要,为了我最喜欢的准则我想说没有任何人需要学习编程。但是那并不会改变这个事实,每个人都能够学习编程。编程是这个世界不得不提供的均衡器。因此,任何不推动计算机科学教育资源和网络的政客,都不是完全的美国人。
Jeremy Kun is a graduate student in Mathematics and Computer Science at the University of Illinois at Chicago. He’s the writer of the blog Math ∩ Programming, where he explores the interesting ways that mathematics and computer science interact.
我的第二篇翻译外文,望各位大神不吝指教!
原文地址:http://j2kun.svbtle.com/not-everybody-needs-to-learn-to-code-but-everybody-can-learn-to-code
我完全同意这个观点。写一个好的程序是一件十分困难的事,需要许多的经验,何况这里已经有够多的写得超烂的软件了。这个世界不需要更多的半路出家并且自认为他们了解他们正在做什么的软件工程师去制造更多的错误去浪费其他人的时间、金钱和生命。
对于超级聪明和有天赋的人来说,这个观点也适用。我常常碰到一些分享自己“资料”的科学家,其实他们的“资料”对于除了他们自己以外的人来说是毫无用处的。为什么这样说?因为他们还没有对相关软件和其他人的资料完全吸收,自然也不知道完成一个软件的正确途径或错误途径。更重要的是他们不在乎;研究才是他们的工作,而不是资料。对于工程师,这个结论依然成立:他们不关心如何生产可重复使用的测试框架,他们只关心如何把一个雏形投入到生产中。去除一个软件无足轻重的角落部分是他们的工作,即使会激怒相当一部分人(我的意思是,拜托,去看看Matlab吧!好的,好的,我会把我的不满保持在最小状态)。
所有关于学习编程的反对意见都是离题的。我们的目标并不是让每一个人都将自己的一生都奉献给计算机科学(尽管那会让我十分的开心)。要点甚至不是让人们去思考问题的解决方法或者学习计算机知识,即使这些都是学习一些编程知识的好理由。忘记正在改变的社会和经济思想。
美国总统感觉到必须在国家发展编程基础的原因是因为编程是新的美国梦。许多的回应都忽略了这个中心思想,或者完全误解了编程相对于旧的美国梦来说是多么的不同。
什么是旧的美国梦?只要有足够的力气和决心,任何人都可以从一无所有变得成功。这个真理在如今依然成立,但是是否每个人都能够做到是不确定的。因为有许多的东西都超出了直接的控制。可用的位置,供应链条,找到适合的雇工,自然灾难,有效的广告都是要考虑的大的方面。还有更多:你的种族,性别,年龄,社会经济阶级,还有移民身份都可能促成或者破环你的成功。
现在考虑编程。它并不在意你是低下阶级,有性别问题,初来乍到,或者是新纳粹。你今年10岁还是70岁,你是隐士还是交际王,或者你生活在城市还是乡村都无关紧要。如果你能够接触到电脑和网络(即使是在图书馆里)而且下定决心,你就能学习编程。你可能不会成为下一个Don Knuth,也许你只能开发出一个失败的iPhone程序。即使你处于短期监禁或者挣扎在贫困中只为了养活自己,机会对于每个人也是平等的。没有人说它是灵丹妙药。编程不能够解决无家可归或者犯罪问题,甚至不能让我们的议员更加聪明。但是它是一个机会,是美国梦。
编程不像“成为一个汽车修理工”,尽管一些并不熟悉软件的作家会这样宣称。实际上,成为一个汽车修理工更困难;软件更像是一台引擎,任何地方的一个微小的瑕疵都会暴露在整部车上。关于如何修理引擎的知识与能够设计和制造一个以前从来没有建造过的引擎的知识是不一样的。实际上,写一个好的软件更像是建筑学而且更加永恒。即使简单的程序都是由成千上万的元件和数十层的抽象组成的一个整体。尽管工业产品会改变,程序自身并不会随着时间褪色。那就是为什么银行依然运行50年代的Fortran代码的原因。飓风和经济危机不能够摧毁程序。政治不能够杀死你一生的作品。即使是一个建立在部分失败软件上的工作,你依然能拥有那个软件并且做你喜欢做的。
但是比较其他需要物理供给、训练和运气的行业,学习编程更加的容易,方便,而且相对于政治、电影或者其他的行业是一个更加吸引你的让你扬名的机会。像我一样喜欢计算机科学的人会因为个人目的而讨厌这个观点。这个充满逻辑,在朴素下包含着这么多惊奇美丽的东西,已经变成一场赌博或者金融成功的投机。但是,这就是世界本来的面目。
所以不要,为了我最喜欢的准则我想说没有任何人需要学习编程。但是那并不会改变这个事实,每个人都能够学习编程。编程是这个世界不得不提供的均衡器。因此,任何不推动计算机科学教育资源和网络的政客,都不是完全的美国人。
Jeremy Kun is a graduate student in Mathematics and Computer Science at the University of Illinois at Chicago. He’s the writer of the blog Math ∩ Programming, where he explores the interesting ways that mathematics and computer science interact.
我的第二篇翻译外文,望各位大神不吝指教!
原文地址:http://j2kun.svbtle.com/not-everybody-needs-to-learn-to-code-but-everybody-can-learn-to-code