宅男程序員給老婆的計算機課程之1:認清實際

男主角:Wuvist(新浪微博),真名翁偉,自稱胖程序員一個,幸好已婚。學習.NET出身,現常用Python做服務器端開發,曾任新加坡某創業公司主程。公司被techcrunch blog過後,覺得新加坡生活太過安逸,終於於去年辭職隻身回家鄉汕頭創業,活躍於珠三角技術沙龍,熱衷於與其他技術宅分享。

Wuvist

本文作者:Wuvist

女主角:Katze,Wuvist的老婆,女程序員,在某跨國投行任Unix系統管理員,常被Wuvist嘲笑技術太差。

“算法”、“數據結構”等,是本質;很重要,需要掌握,但一般開發時,很少需要自己去實現。

覺得多數開發,是“拚積木”。

即便是業務邏輯需要對一些數據進行排序,也不可能自己去實現一個quicksort算法;而是直接調用quicksort的現成類庫。

這也直接造成了2B ED窮其一生都不能掌握真正的編程能力。

他們認爲,能夠“解決”問題就好,至於問題是怎麼解決的,他們並不關心。

對於細節的認識、掌控能力,直接造成了水平的天淵之別。

以拍照爲例子,以前人們用傻瓜相機,現在人們用iPhone去拍照;很快,很方便,還可以加濾鏡。

但是,普通人們在不瞭解什麼是光圈、精深、背光等概念的情況下,是沒有可能成爲攝影師的。

即便他們放下iPhone拿起DSLR。

普通人跟攝影師拍攝同樣的東西;出來的照片也許會差不多,但如果深入去比較,景深、角度、光線、取景等等等等細節,則都會有差別,而這些差別積累起來,就造成了普通照片與攝影作品的差別。

畫家要畫好畫,必然要對畫筆、顏料、紙張的特性有深入的瞭解。

廚師要做好菜,必然要了解食材的特性,對調味料、廚具等有嫺熟的掌控。

ED的“解決問題就好”,跟沒有下過廚房的千金小姐拿着菜譜使用微波爐做菜沒啥區別。

在大廚手裏,微波爐也可以是神器;但:

“有的人,縱然神刀在手,亦無法成爲刀中之神。”

程序員要“拚好積木”,那必然需要對積木的種類、材質、特性,有深入的瞭解。

總得對quicksort的實現有認識,才能夠用好quicksort。在有的場景下,quicksort的性能反而是最差的。如果不瞭解,就無法去把quicksort用好。

程序開發中,有一個著名的 80 / 20 原則。

我想,這個原則也可以適用於ED。

程序員只要花20%的努力就可以成爲一個混日子的ED;80%的程序員均是如此。

但如果要成爲一個優秀的程序員甚至hacker,那麼,需要花多至少4倍的努力。

有什麼積木可以用?積木本身是怎麼做的?積木A比積木B好在哪裏?

這些,是需要花大量的時間去了解。

全部都是實在的經驗積累,沒有捷徑。

都是.NET語言,C# 跟 VB.Net的差別在哪裏?對於ED,他們偶爾也會對這樣的問題感興趣,然後,他們會去看介紹,看比較文章。。。。但其實,這事完全是木有用的。

他們看了別人的介紹,以爲自己懂的,但實際上,他們只是在復讀而已,完全木有懂。

作爲一個ED,要了解C#跟VB.Net的差別在哪裏,最好的方式,就是花時間去把兩種語言都學了。用這兩種語言分別去寫個幾萬行程序,然後就懂了。

當某天ED成爲Hacker的時候,那就反倒可以去看各種介紹,看一眼,然後瞬間就可以悟了。

這也就是爲什麼很牛程序員學習新語言可以那麼快,因爲有太多的知識可以複用;而這些知識的積累,必然是需要通過在實際中,無數行的實際編碼,無數篇的資料閱讀中得來的。

沒有捷徑。

很多初學者,或者說,編程的僞愛好者,他們,會熱衷於去四處請教大師,下載各種經典書籍,企圖讀一本編程聖經,然後一夜脫胎換骨。

這是,不可能的。

這種僞愛好者,永遠不可能成事;在學習的過程中,抱着去“走捷徑”的心態,本身就已經是入了歧途;最終會花更多的時間。

原來Ruby / 現在 Python的一個光頭大牛Zed A. Shaw,爲了表達“沒有捷徑”這樣的觀點,特意寫了本《Learn Python The Hard Way》:
http://learnpythonthehardway.org/

甚至有一個系列:http://learncodethehardway.org/

從長遠來看:The Hard Way Is Easier。

我完全同意。

作業:

1. 列舉10個Python Web框架

2. Python有多少種不同的解釋器?

3. Perl 跟 Python 有什麼不同?

51CTO系列:

  1. 宅男程序員給老婆的計算機課程之0:認清本質
  2. 宅男程序員給老婆的計算機課程之1:認清實際
  3. 宅男程序員給老婆的計算機課程之2:怎麼看待牛人
  4. 宅男程序員給老婆的計算機課程之3:架構比較
  5. 宅男程序員給老婆的計算機課程之4:SQL vs NoSQL
  6. 宅男程序員給老婆的計算機課程之5:設計模式
  7. 宅男程序員給老婆的計算機課程之6:模版引擎
  8. 宅男程序員給老婆的計算機課程之7:運維的重要性
  9. 宅男程序員給老婆的計算機課程之8:控制器
  10. 宅男程序員給老婆的計算機課程之9:數據模型
  11. 宅男程序員給老婆的計算機課程之10:做,就對了!
  12. 宅男程序員給老婆的計算機課程之11:域模型

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章