[转载]成为优秀的开发者无需数学技能,但成为卓越的开发者需要

原文:Alan Skorkin: You Don’t Need Math Skills To Be A Good Developer But You Do Need Them To Be A Great One 翻译:Xguru ,bearice:卓越开发者之道–成为优秀的开发者无需数学技能, 但成为卓越的开发者需要 我方才开始关于数学的思考。如你所知,我已经写了好几年的软件了,从实说来。我还没有找到在工作中有关数学方面的需求。有大量的新东西我必须得学习/熟练,比如语言、框架、工具、流程、交流技巧和在库上建立的库做你想到的任何东西。数学没有对其中任何一个起作用。当然这并不奇怪,这绝大多数我都是在一个又一个的模版上做建立,阅读,更新,删除(CRUD)的工作,这也是在我们这个互联网时代,多数的开发者在做的绝大多数的工作。你做的是专职顾问——你一般都在做网站,你在大公司内工作——一般都在做网站,你是自由职业者——你一般都在做网站,我深刻的意识到我逐渐精于此道,但是请忍一忍我,我跑题了。

图灵和图灵机

什么是计算?广义上讲,一个函数变换,把输入信息 x 变成输出信息 f(x)就是一个计算!如果我们把一个小球扔到地上,小球又弹起来了,你完全可以把小球的运动都抽象成一些诸如位置、速度、形状等等信息,而地面把小球弹起来就无非是对小球的这些信息进行了某种变换,因而地面就完成了一次计算! 自然中的一切过程都是在进行计算,碰撞的小球、流动的溪水、燃烧的火焰,大自然用自己的方式处理着大量的信息。如同在《黑客帝国》中一样,我们所生活的世界是计算出来的。著名的Mathematica 软件发明人沃尔弗莱姆(Wolfram)甚至宣称,整个宇宙就是一台大的图灵计算机。而美国ACM颁发的计算机领域最高荣誉是“图灵奖”。 究竟什么是图灵机?图灵又是何方神圣?本文先景仰一下天才图灵,再了解一下图灵机的基本思想,然后看看图灵机是如何工作的。

程序员能力评估矩阵:Programmer Competency Matrix

真正的程序员只用0和1来编程?当然不是,一个合格程序员需要掌握计算机科学、软件工程、程序设计等各方面知识,还有实践经验。 印度极客网(Indian Geek)列出了评估程序员能力的参照表:Programmer Competency Matrix(原文,中文翻译)。 本文转载中文版,并自我评价一下,绿色为达到的,红色为欠缺的,黄色介于两者之间,也就是需要学习和强化的阶段。