不要用面向?qū)ο髞砻曰蟪绦騿T新手
當我被問及“哪種編程語言是教我[兒子 / 女兒 / 其他沒有編程經(jīng)驗的人的***]時,”我的答案這五年多來一直沒變:Python。
這也許會出乎你的意料,經(jīng)常有人會說這是非主流語言,但我堅持我的看法。
Python十分適合解決很多簡單的、有趣的問題,比用C語言要省力的多。(這是實話,幾行Python代碼你就能制作一個簡單的拼寫檢查程序。)你會發(fā)現(xiàn)這種語言里幾乎沒有任何復雜或讓人困惑的東西,用它編程簡單易懂,比如說數(shù)組更新你可以用固有的方法來實現(xiàn)任何的操作算法。在Python里,你學習的曲線很平滑。數(shù)組,字典,集合是最主要的東西。
把Python當作入門語言,有一點需要注意:避免使用面向?qū)ο筇卣?。你當然不可能完全的回避它們,有些基本?shù)據(jù)類型里一些有用的方法跟它們有關 聯(lián),問題不大。你只是使用它們已經(jīng)提供的東西,不要去創(chuàng)建什么類,要避免任何的面向?qū)ο笤O計里的聲明,否則的話,你一點點的數(shù)據(jù)都需要會打包成類。
從面向過程到面向?qū)ο蟮霓D移帶來后果是你從關注問題和解決方法轉移到關注架構。你通過對比面向過程的程序和面向?qū)ο蟮某绦?,很容易能看出這點來。后者的程序會更長,到處是多余的接口和縮進和標記。你也許忍不住想將一些小代碼移進類里,或往類里添加一些小方法,這些都沒必要,等日后你再做這些也不遲。
當你在幫助某人把一個有問題的語句改正確的時候,你要做的***一件事是給他們布置一些沒有實際用處的技術工作。因為有些人沒事時就喜歡玩能一些面向 對象的知識技術,做一些可怕的類繼承,最終沒有學到他們該學的東西。有些人在學習的時候慢慢的會失去興趣,因為他們看到了太多的這些沒有實際用處的繼承、 接口代碼,感覺程序越來越笨重、難以處理。
從某方面說,當然,你需要學習一下Python的面向?qū)ο蟮闹R,但盡可能的避免使用它們吧。