想自己學計算機?
建議一:自學也需要看書
自學只是說沒有專門的老師手把手教你,并不是說連書本都可以不要了。有人天天來問我一些很基礎的概念問題,我問他:“這些概念書上不都寫得很明白嗎?”他回答:“我沒有書。”如果沒有書,那么你很難在腦子里形成一個較為整體性的認識,所有了解到的知識都是支離破碎的。且不說大多數人沒有精力回答你這些問題,即使回答了,很多東西也不是三言兩語就能說清的,很多高手說出來的都是他們自己的理解,這些理解或許很有意味,但也許費了你半天的腦子卻怎么也搞不明白。一本書,即使不是什么經典之著,它也可以向你提供一個大體完整的框架,成為你自學過程中的一個向導。這里要說的是:網上電子教程資源豐富,看看無妨,但手中至少應有一本印刷的書——畢竟網上的教程魚龍混雜,其作者也許并不精通此道,很難分辨其質量好壞。
建議二:學編程更需要實踐
書是有了,可是整天抱著書也不成。編程最怕的就是紙上談兵,我看到有的初學者,看完了大半本書,和我說起循環函數來頭頭是道,卻連編譯器長什么樣都沒有見過。真要他寫幾行程序,便是錯誤百出。我的建議是,無論你涉及編程的時間是多么地短,無論你目前學到的知識多么地少,你都應該不斷地盡自己所能去編寫一些小程序——即使是把書上的“Hello, World!”親手輸入進去運行一遍,都能讓你的編程能力有著極速地提高。
建議三:編程是創造,不是默寫
有人甚至打算用題海戰術來學習編程——這完全沒有理解編程的內涵。僅僅通過“欣賞”別人寫的代碼也無法學好編程。有一點需要明白:編程是一個創造的過程。編程的意義在于:通過程序的形式,教計算機如何去完成一項任務。寫代碼只是形式,真正重要的是如何完成特定的任務。學習別人的代碼固然是很有用的,可以學習別人的思想;但是如果僅僅是記憶了一些別人寫好的代碼,就希望能通過拼拼湊湊成為自己的程序,那是基本不可能的。我的建議是:在自己編寫程序,進行創造的過程中,借鑒前人程序中的思想方法——而不是整天處于復制粘貼的狀態中。
建議四:好習慣要從開始做起
所謂“不以善小而不為”,等壞習慣養成了,再改就困難了。因此,類似寫程序要注意縮進、為變量和函數起有意義的名字、大小寫的使用、行末分號的注意等等,要從一開始做起。很多人對這些善意的提醒不屑一顧,覺得多此一舉,浪費時間。其實,如果真的能嚴格地去做,它們反而可以幫你節省許多時間。
建議五:不必太刨根問底
“打破沙鍋問到底”確實表現了一種鉆研的精神,不過我還是建議初者學,有的時候,不必太刨根問底。編程的相關知識都是盤根錯節交織在一起的,大多數問題深挖下去會越說越復雜,對于知識掌握不多的初學者來說,只能是越來越糊涂。很多東西,時間長了,隨著知識了解得深入,自然而然會明白。就像剛剛學英語的時候,你知道“goodbye”是再見就足夠了,難道非要把這個good和再見的關系先弄個水落石出嗎?作為初學者,最重要的是盡快地能全面地了解整個知識的全貌,在單獨的知識點上,暫時不需要太深入。可以等知識經驗豐富之后,再回頭來研究