本文翻译自 Ken Mazzika 在 Quora 的回答 Is it a waste of time to try to be a computer programmer if I am bad at math? ,本文标题即原问题翻译。建议有能力的读者直接阅读原回答。
答案是否定的。但可能不是你会想到的原因

看看下面这个问题熟悉吗?
「一辆火车在凌晨 3:00 离开纽约,平均速度 30 英里/小时。另一辆火车沿着同样的方向在早上 6:00 离开纽约,平均速度 60 英里/小时。经过多长时间第二辆火车能追上第一辆火车?」
你或许在中学数学课上看到过这道题。(中国的孩子笑笑不说话,译者注)如果你像我一样讨厌数学,那你一点也不会去关心答案。
(如果你真的关心,我会在这篇文章的末尾给出答案的。)
事情就是这样,在我接触编程之前,我的数学很烂
像这样的问题对我来说没有什么意义。成为一个程序员看起来如此不切实际,在找出答案的尝试中,我经历了一段艰难的时间。
但是当我沉浸到编程中,所有的事情都变了。它启发了我。它帮我理解了数学是如何应用到现实世界的。
举个例子。在一个健身 App 中,你想要用小时和分钟数来告诉用户他们锻炼的时间。而一次锻炼持续了 71 分钟。
71/60 = 1.18。 这是一整个小时。
那你怎么知道有多少分钟?
你使用了一个 modulo function (取余函数),用来找余数。
71 % 60 = 11
所以 71 分钟是 1 小时 11 分钟。
你把这个信息显示给了用户。
这只是一个小例子。但是把简单的数学应用到编程中有很多使用场景。事实上,只知道这 5 种相对简单的数学概念就足够你编程了:
加法
减法
乘法
整除
余数(就像我刚才给出的例子)
人们认为如果你要成为一个程序员,就要自始至终地喜爱而且精通数学。
事实远非如此。在我真正理解我需要数学的原因之前,我非常讨厌它。但是只要理解了这样一个事实:学习它其实是有目的性的,只学习成为一个程序员必需的那部分数学对我来说就很简单了———这些东西真没有那么多。
编程不像数据科学,需要你用复杂的微积分来为世界建模。你需要掌握的数学知识要简单很多。
我现在已经有了 4 个不同的编程工作,从像 Paypal 这样的大公司到创业的小公司。我也写了一个教程来帮助人们成为一个软件工程师。
我有 100% 的信心告诉你:如果你觉得你的数学很差,却想努力去成为一个程序员并不是浪费时间。为什么呢?
你的数学或许没有你想的那么糟糕。
编程对于数学水平的要求可能没有你认为的那么高。
现在你知道答案了,那么离开这里开始编程吧!如果你想要在网上开始学习,我做了一个清单,罗列了学习编程最好的地方。
PS:「火车问题」的正确答案是 3 小时。但是即使你不能解决这个问题,这也不意味着你不能成为一个程序员 :)
