1
“编程是什么?是创造,是技术,是未来。HelloWorld!是世界上最浪漫的一句话。从第一个程序开始,你不再是一个被趋势裹挟着前进的人,你可以用充满未来感的语言和这个世界对话了,想想看,这是多么激动人心的事!”
这天下午,我的师弟二像素突然给我发了上面这段话。我还没反应过来,这小子的第二条信息也来了——
“我决定了!我!要!学!编!程!”
我差点把手机扔地上。
2
说起我这个师弟,那就不得不介绍一下他这清丽脱俗的外号。他为什么叫二像素呢?因为以前上数学课的时候,他经常把二项式说成二像素,怎么纠正都纠正不过来。
老师:“我再说一遍,这是二项式,你看这儿,还有这儿,有两个什么?”
二像素:“像素。”
老师:“……。”
所以各位,知道我在慌什么了吧?这样的数学底子,怎么学编程呢?
天真的二像素还不知道他即将面对什么。他在一条接一条的短信里兴高采烈地跟我介绍了他的老师。他有一位学霸大表哥,现在在J大教计算机。经过连续几天的纠缠,二像素终于打动了大表哥——大表哥愿意教他了。
“从今天开始,你就不再是我的表哥,而是我的教练了。”二像素认认真真地抱了个拳,“教练,我想学编程!”
“好的。”教练斯斯文文地点了个头,“不过在那之前,你要先学排列与组合、数理逻辑、概率论、微积分、线性代数……”
“哈?”
不出我所料,还没一个星期,二像素就倒起了苦水。
“你知道我现在什么心情吗?”二像素对我说,“这感觉就像好不容易去了少林寺,结果师父让我去当厨子做营养餐!我本来以为自己会打开硬核感十足的界面,使用独具美感的代码体,看着自己构思的一行行代码变成能够运转的程序,脸上云淡风轻,心里激动万分!
“可是现在我在干什么?你看我今天做的题——小红、小绿、小白、小*、小蓝坐成一排,小红和小蓝吵架了,所以这两个人不想坐一起,请问他们有多少种坐法……
“不是,你吵架了就干脆彻底别见面啊!都要坐一排了还不能挨着?而且干嘛要问有多少种坐法呢?难不成你们每种都要坐一遍,每五分钟换一个位子吗?手动旋转木马?
“还有什么抛硬币,什么搞个奇形怪状的东西算面积、体积,还有给数排队,横着排完竖着排,叫什么像素……。”
我忍不住打断他:“那个叫向量!”
“不管是什么吧,反正我是真看不出这些和HelloWorld!有什么关系。要我说这倒挺像GoodbyeWorld!”二像素一脸失落,不停地叹气。
3
我倒是能理解这种心理落差,但是别忘了,能当大侠的,可都是经历过刷锅扫院子的人。教练让他从当厨子做营养餐开始修炼,也不是没有道理的。
可是二像素好像很难理解教练的苦心。折腾了几个星期之后,他忍不住提出了自己的想法。
“我想试试不学数学,直接学编程……”
教练回答得很干脆:“不,你不想!”
“让我试一下总可以吧?”
教练看着二像素,二像素看着教练,两个人大眼瞪小眼,瞪了好久。
最后教练说:“那你说说看,到底想先学什么?”
“嗯……冒泡排序?”二像素来了精神,“我看过网上的动图,一直觉得这个东西很有意思。相邻数字对比换位,真的和冒泡一样。”
“都知道思路了,那就把它表示成代码呗。”教练说,“你可以假设要排序的数字放在一起是个数组。数组嘛,你可以理解为每个数字都有个标号,就跟an差不多,但是我们不用n,用什么呢?用i……”
“教练……”
“怎么了?”
“你说的真的是编程吗?我怎么觉得这还是数学呢?连数组都出来了。”
“数组在编程中很常见呀,还有函数也很常见。另外,排序算法有很多种,你知道怎么比较这些算法吗?要计算复杂度。复杂度分时间复杂度和空间复杂度,算法的时间复杂度记作:T(n)=O(f(n))。它表示随问题n的增大,算法执行时间的增长率和f(n)的增长率相同……”
二像素脑袋嗡嗡响。他只看到了程序员噼里啪啦地输入代码,没想到编程中的每一个元素都和数学有这么密切的关系。
“你知道计算机科学的第一批专家都是哪来的?”趁他现在能听进去别人的话了,我打算多说几句,“图灵得过史密斯数学奖,冯·诺依曼做过希尔伯特的助手,往特别早的年代回溯,艾达女士也是当过金牌数学老师的。你要绕过数学学编程,就像不用面粉却要蒸馒头一样,你品,你细品……”
“我品了,”二像素幽幽地说,“好苦......”
4
闹过这么一出,我以为二像素会放弃,没想到他还有几分韧性,想再坚持一下。“道理我都懂,”他是这么跟教练说的,“但是我就是想学最少的数学,编最靓的程!求你了,教练!”
教练说:“你别求我,你得求佛。”
“别这么说啊。”二像素不好意思地笑了笑说,“我已经知道数学的重要性了。我只是希望学数学的时候尽量捞干的学,最好只学和编程直接相关的内容。”
教练皱了皱眉:“你这听着倒是挺节约的,小心以后走不远。”
“哎呀,我也不是真的那么不想学数学。”二像素挠了挠头,“我是想早点入门,毕竟数学对我来说实在太枯燥了,如果能尽快上手编程,那我还能有些成就感,也比较容易继续往前走……以后我再回过头来把别的内容慢慢补上,算是两不耽误吧。”
“咦?”教练有点惊讶,“你这个思路居然还算有那么点逻辑……容我先想想。”
“教练还是很厉害的!”二像素说,“他真的想出了办法!”
“什么办法?”
“他让我来找你!”
二像素两眼放光:“他说你们这儿刚出了本秘籍,可以让我如愿……”
嗯?有吗?我转身看了看架子上最近出版的新书:《幽灵粒子》、《如何开会不添堵》、《机遇之门》、《摩登创客》……哪个是啊……
等等,我知道了!是这本——
程序员的数学第2版京东月销量好评率99%无理由退换京东配送官方店¥49.4购买史上最懂程序员之痛的“程序员数学系列”升级版来啦!第一版累计印刷32次,总销量达8万+,程序员大叔结城浩在新版中不仅保持了原来的风格,用大量例题配以张图表,还增加了“机器学习”等相关内容。
本文转自图灵教育,作者:喵头鹰同学,[遇见]已获转载授权。