編程同寫作,寫代碼只是在碼字
看到一篇文章《We Are Typists First, Programmers Second》,日期是 2008 年,好早的一篇文章。當(dāng)現(xiàn)在打算以一個新人的身份重新進(jìn)入編程領(lǐng)域的時候,或許是受《重來》的影響,或者是在重新思考——我們應(yīng)該如何如何去編程。
寫代碼只相當(dāng)于寫字
?這只是一篇軟文
編程這點東西實際上一點兒也不難,當(dāng)我們只是在用一個工具創(chuàng)造一些作品的時候,如同我們拿著電烙鐵、芯片、電線等去焊一個電路板的時候,我們學(xué)的是如何去運用這些工具。***雖然我們的電路板可以實現(xiàn)相同的功能,但是我們可以一眼看到差距。
換個好一點的比喻,如燒菜做飯,對于一個好的廚師和一個像我之類的門外漢,給我們相同的材料、工具,一段時間后便是一份是給人吃的,一份給豬吃,豬都不吃——即使我模仿著廚師的步驟一步步地來,即使***看上去差不多,但是一吃便吃出差距了。
我們還做不好飯,還焊不好電路,還寫不好代碼,很大一部分程度上并不是因為我們比別人笨,而只是別人比我們做了更多。有時候一種機緣巧遇的學(xué)習(xí)或者 bug 的出現(xiàn),對于不同的人的編程人生都會有不一樣的影響(ps:說的好像是蝴蝶效應(yīng))。我們只是在使用工具,使用的好與壞,在某種程序上決定了我們寫出來的質(zhì)量。
寫字便是如此,給我們同樣的紙和筆(ps:減少無關(guān)因素),不同的人寫出來的字的差距很大,寫得好的相比于寫得不好的 ,只是因為練習(xí)得更多。而編程難道不也是如此么,***寫代碼這點事就和寫字一樣簡單了。
剛開始寫字的時候,我們需要去了解一個字的筆劃順序、字體結(jié)構(gòu),而這些因素相當(dāng)于語法及其結(jié)構(gòu)。熟悉了之后,寫代碼也和寫字一樣是簡簡單單的事。
學(xué)習(xí)編程只是在學(xué)造句
?多么無聊的一個標(biāo)題
計算機語言同人類語言一樣
,有時候我們就會感慨一些計算機語言是多么地背離我們的世界,但是他們才是真正地計算機語言。
計算機語言是模仿人類的語言,從 if 到其他,而這些計算機語言又比人類語言簡單。故而一開始學(xué)習(xí)語言的時候我們只是在學(xué)習(xí)造句,一句話來概括一句代碼的意思,或者可以稱之為函數(shù)、方法(method)。
于是我們開始寫一句句話,以便寫出一篇文章。
編程是在寫作
?編程是在寫作,這是一個怎樣的玩笑?這是在諷刺那些寫不好代碼,又不好文章的么
代碼如詩,又或者代碼如散文??偟膩碚f這是相對于英語來說,對于中文來說可不是如此。如果用一種所謂的中文語言寫出來的代碼,不能像中國詩一樣,那么它就算不上是一種真正的中文語言。
那些所謂的寫作邏輯對于編程的影響
- 早期的代碼是以行數(shù)算的,文章是以字?jǐn)?shù)算的
- 代碼是寫給人看的,文章也是寫給人看的
- 編程同寫作一樣,由想法開始
- 代碼同文章一樣都可以堆砌出來(ps:如本文)
- 寫出好的文章不容易,需要反復(fù)琢磨,寫出好的代碼不也是如此么
- 構(gòu)造一個類,好比是構(gòu)造一個人類的性格,多一點不行,少一點又不全
- 代碼生成,和生成詩一樣,沒有情感,過于機械
- 。。。
然而好的作家和一般的寫作的人,區(qū)別總是很大,對于一個問題的思考程度也是不同的。而從一個作者要到一個作家,需要一個不斷寫作的過程。從一個普通的程序員到一個優(yōu)秀的程序員也是如此,需要一個不斷編程的過程。
當(dāng)我們開始真正的去編程的時候,我們還會糾結(jié)于"僧推月下門"還是"僧敲月下門"的時候,當(dāng)我們越來越熟練就容易去決定用哪一個。而對于這些的推敲在寫作,還是在編程中都是相似的過程。
寫作的過程真的就是一次探索之旅,而且它會貫穿人的一生。
編程只是在碼字
編程只是在碼字,難道不是么?
真正的想法都在腦子里,而不在于紙上,或者 IDE 里。
本文出自:http://www.phodal.com/blog/write-similar-program-just-typing/