這是一個經驗豐富的程式設計師和新手之間交流的片段:
老程式設計師:嘿,我聽說你在學程式設計。太酷了,你學的啥?
初學者:我用我 Mac 上的 TextMate(譯者注:Mac下的一款文字編輯器)學習PHP和HTML。
老程式設計師:哎呀呀呀,PHP 太差勁了。你應該學習 Ruby on Rails,在 HeroKu(譯者注:一個雲平臺)上配置,用 Vim 寫程式碼。TextMate 是給菜鳥用的。然後搞搞 Node.js,那特別特別棒,非阻塞 I/O 啊,太酷了。
初學者:額……好吧
每次我看聽說這種事我就想罵街。當初學者聽到他們瞻仰的人否定其努力,說他們努力學習的東西不像“真正的程式設計”的時候,會強烈地打擊初學者的信心。
如果你是一個程式設計師,請不要詆譭新手正在學習的東西…除非你確保你會投入大量的時間來確保他們學會你想要他們學的。僅僅是隨口諷刺一下他們選擇的語言和工具不像你的選擇那樣酷,這會讓他們洩氣。
我知道,忍住不去機智地吐槽PHP或是任何現在大家都喜歡黑的語言是很困難的(我懺悔,我曾經也是這種人)。尤其是,因為你打心底清楚,你給他們提供的語言、框架、庫、編輯器、主機環境、人體工學鍵盤、站立式辦公桌等等,比菜鳥們正在學習的任何垃圾都要好的多。但是請堅持住。
只要讓他們開始學習一些(任何!!!)能吸引住他們程式設計的東西就行了,隨後你可以給他們提供一點幫助。如果他們學的東西真的很糟糕,他們就總是會卡住然後問你是不是有更加容易的途徑。這時候,你就可以發洩出你準備好的在函數語言程式設計或 hygenic macros 或任何其他的論述。
你可能不是唯一一個這樣和新手說的程式設計師。許多程式設計師(特別是在網路論壇裡!)都會有相似的諷刺言論,除非是談論他們最喜歡的語言/包/框架/文字編輯器/主機環境。噢,現在初學者真的很困惑了。新人們一而再,再而三的被告知自己選的工具有多麼的糟,儘管他們可能也能做一些事情。但是更糟的是,每個說教的老手都會推薦不同的工具集讓他們學習。到底誰是對的?他們下一步該做什麼?關於永無休止的挫折的更多細節,請閱讀《一個很有借鑑價值的程式設計故事》。
好了,關於上面的對話,這裡有一個建設性的意見:
老程式設計師:嘿,我聽說你在學程式設計。太酷了,你學的啥?
初學者:我用我Mac上的TextMate學習PHP和HTML。
老程式設計師:很不錯,當你做完第一個PHP程式後,記得給我展示它有多麼的酷!當你更加熟悉基本的 Web程式設計以後,我給你看看我最喜歡的框架,Ruby on Rails。我們再來看看它和 PHP 的異同點。
初學者:謝謝你的鼓勵,希望能保持聯絡。
注意:看看這個CS Education Zoo的視訊,這是Mark Guzdial的一個訪談。如果視訊在14:16自動重放的話,跳過它。