原文: http://alexparker.me/you-know-nothing-about-code/


本文译自〈You Know Nothing About Code〉,作者为Alex Parker。

你知道吗?你那些年收入15 万美金的工程师朋友们,也不是每天都在写程式。

The more you know, the more you realize how much you don't know — the less you know, the more you think you know. 
- David T. Freeman

懂得愈多,就会理解其实自己知道的事物宛如沧海一粟。懂得愈少,就会产生自己什么都知道的错觉。
-David T. Freeman

几乎每一天,我都会发现某些我从来未知的事物。

今天,我就会坦白,我压根不知道什么rails plugins,面对Rails,我根本像个三岁婴儿。

每个人都是从一无所知开始的。

如果插根电线,就能自动灌输某种科目的知识到我们的脑子里,那真的是再好也不过了。但是现实当然并非如此,我们需要付出心血、勤勉努力才能牢牢掌握知识,而这,永远始于全然无知。

所以,习惯这件事吧,别想当天生全知的上帝。

最初我靠接案维生,习惯「无知」让我无所适从。我的骄傲咽不下无知的感受,我的自尊筑起防御墙,打了一场场看似胜利的仗,我服膺「装久了就是你的(fake it 'til you make it)」这句名言,即使不懂, 还是硬要装懂。

但是有一天,假装累了,我与无知的感受妥协了。从此之后,如果有人问了什么我不懂的问题,我会努力压抑自尊,马上承认「我不懂」,通常接着我会说「但是我很确定我可以试着解决」。

对自己诚实

对于自己「其实懂得不多」的事实,我采取了新的态度。其后,我快速而且敏锐地感知到自己学习的速度正在疾速前进。

我不再盲目追赶那些我本来应该要知道的知识,现在我意识到,我愈常说「我不是很清楚,但我会想办法搞懂它」,我就愈能真正弄明白本来不知道的事物。

这远比你预期得收获还要多。

我的网站架设生涯始于1998 年,我从其他网站汲取资源、尝试理解HTML、剪贴拼凑成一个仿佛可以运转的网站。

不信吗?有图有真相:

coding

是的,这是14 岁的我,我正在架设任天堂游戏Zelda 传说时之笛的粉丝网站。我从各式各样的网站「拷贝」过关秘技,从cooltext.com 复制超炫的字体(15 年了,上面的字体始终如一)、黑色背景、闪烁的绿色文字,一堆杂七杂八的东西。

如果我打算从今天开始学写程式,我究竟该从哪里开始?

很多人都问过我这个问题,有兴趣的话可以订阅电子报,以后我会陆续提供更多指引与资源。

现在我想分享的是,那段我刚开始学习程式的岁月中,我所作出的正确与错误的事情。

正确

  • 我从不跟那些比我强的人比较,或者强逼自己跟上他们。我专心在那些我已知道的事物上,我可以怎么运用我的知识,以及我想知道的新技术。

  • 我设法在当下的专案中运用新的知识,或者创立一个新的专案,好用上我新学到的东西。

  • 我总是试着解决问题,这些问题都是稍稍超出我目前程度、但又处于可以掌控的范围之内。

  • 我享受学习的旅程,不设终点。

  • 我学着爱上学习的过程。

错误

  • 错误多得数不清。

  • 我没找到志同道合的朋友。

  • 我没找到可以一同学习的社群或组织。

  • 我没及早开始从书中撷取知识。

  • 我没有在开源社群中贡献一己之力。

结语

首先,承认并且意识自己并不是什么都知道,拥抱它们,就像掌握机会一般,而不是错误。

从简单有趣的事情开始做起,将它培养成一种嗜好,别想太多,别做不切实际的计划,学着喜爱并且享受过程。

设定专案目标时不要好高骛远,但是也请保持得以鞭策自己的难度。

这个专案也许简单如在HTML 页面中打出静态的「Hello World」,也可能复杂到为自己的多重执行实体网站应用建立一个负载测试与基准系统。

这是由Code.org 制作的影片,点出程式之所以迷人的原因:

https://www.youtube.com/watch?v=nKIu9yen5nc