編者按:原文作者James Hague是一位修復性程式設計師(recovering programmer),從上世紀80年代起開始設計視訊遊戲,屬於發燒友級別,用匯編語言編寫過任天堂的遊戲。
當有人問我“要教我的兒子/女兒/其他沒有程式設計經驗的人,哪種程式語言是首選?”,我的回答在最近五年多都沒有改變,那就是:Python.
這個回答也許有點意外,它是屬於某些人談論的非主流的程式語言,但是我支援Python。
Python廣泛地適用於那些簡單有趣,但用C語言做起來卻很費精力的問題。(認真的講,一個基礎的拼寫檢查程式可以用幾行Python程式碼來實現。)有些關鍵點非常容易解決,但是與核心語言特性之間卻有棘手的不匹配問題。Erlang有兩大特性。例如,根據適當的陣列更新來嘗試所有演算法是最自然的表現。在Python中一帆風順。陣列、字典和配置佔據了很大一部分。
使用Python作為入門程式語言有一點需要注意:避開它的物件導向特性。你不可能完全避免,因為會關聯基本資料型別中一些有用的方法,不過沒關係。只要利用已經提供的方法,並且不要談論如何建立類,尤其要避免任何把資料包含在類中的物件導向設計思想。
從程式導向到物件導向的變化,帶來了從思考問題與解決方案到思考架構的改變。看起來似乎只是程式導向的Python程式和麵向物件的程式那麼簡單。但後者總是更長,充滿了額外的介面、縮排和註釋。而魅力就是要把零散的程式碼放進類中,加入所有的小方法,並且預先設計好那些不知道什麼時候能用得上的方法。
當你試圖幫助某人去學習如何從一個問題出發,去編碼實現的時候,你最不想看到的就是他們在人造工程作業上折騰。有些人守著物件導向知識的殘羹,建立瘋狂的類體系,卻不專注於他們該學習的東西。另外一些人因為一個額外的層讓程式變得更復雜而失去興趣。
從某些方面看,確實是這樣,你需要討論如何在Python中建立物件,但是要儘可能的忍耐。
原文作者:James Hague 翻譯:伯樂線上 – 魏哲
【如需轉載,請標註並保留原文連結、譯文連結和譯者等資訊,謝謝合作!】