如何進(jìn)入程序設(shè)計(jì)的領(lǐng)域
下方查看歷史精選文章
大數(shù)據(jù)測試過程、策略及挑戰(zhàn)
寫程序是很有趣的事,可以把自己的想法付諸實(shí)行。寫程序的工具很簡單,只要有一臺電腦,適當(dāng)?shù)拈_發(fā)環(huán)境,就可以上工了。這樣有限的工具卻可以創(chuàng)造無限的可能,這也正是程序 設(shè)計(jì)迷人的地方。只要你能力夠,你可以將你腦海中的創(chuàng)意寫成程序,變成一套軟件。
培養(yǎng)程序能力,不是一蹴可及的,下面提供我的一些建議,希望對有志進(jìn)入程序設(shè)計(jì)領(lǐng)域的你有所幫助。
培養(yǎng)興趣
把程序設(shè)計(jì)當(dāng)成興趣可以讓你學(xué)得更快樂,學(xué)習(xí)效果自然會更好。在我到一個(gè)單位面試時(shí),主管看了我的履歷之后問我:「你怎么有這么多時(shí)間學(xué)會這么多東西、做這么多事?」 我的回答是:「把工作、學(xué)習(xí)、和娛樂結(jié)合在一起,時(shí)間就會是別人的三倍。」
我承認(rèn)我很幸運(yùn),可以把程序設(shè)計(jì)當(dāng)作賺錢的工作,學(xué)習(xí)的題材,以及茶余飯后的休閑活動。不是每個(gè)人都像我這般幸運(yùn),但是我相信至少大家都可以把它當(dāng)成興趣。相信我, 調(diào)整你的心境,把它當(dāng)成是興趣,而非苦差事,你非發(fā)現(xiàn)你的「程序功力」與日俱增。
慎選程序語言
慎選程序語言很重要,一開始就學(xué)太難的程序語言很容易讓你遭遇到挫折而放棄。你可以挑比較容易且有趣的語言下手,從軟件測試從業(yè)者角度而已,建議您可以從下面的語言中擇一:
javascript/nodejs: 簡單,好用,書籍多。
Java: 比C/C++簡單,書籍多,用途非常廣,相當(dāng)有前途。
Python: 簡單,好用,各個(gè)平臺都支持(包括Windows,Linux,MacOS,BeOS,…)。
這三個(gè)語言只是我給各位的建議,你也可以多聽聽別人的意見。在選定一個(gè)程序語言之后,就要執(zhí)著,不可以很快放棄,又改學(xué)另一個(gè)程序語言,否則永遠(yuǎn)都只懂皮毛。有句諺語是 這么說的:「A jack of all trades is master of none」。如果你號稱會C++、Java、…等十種程序語言,只不過每種程序語言都停留在Say Hello的階段,相信面試時(shí)很快就會 對你 Say Goodbye。
當(dāng)你學(xué)精某程序語言,然后想再學(xué)另一個(gè)程序語言,你會發(fā)現(xiàn)有了前一個(gè)程序語言札實(shí)的根基,學(xué)任何新的程序語言都很快。
使用適當(dāng)?shù)拈_發(fā)工具
Visual Studio Code、PyCharm、Eclipse、IDEA。
都有免費(fèi)開源的版本,沒必要四處搞什么專業(yè)破解版,只需開源版即可
多讀好書,少上課
大量閱讀好書,是精進(jìn)自己的不二法門。
在這種快餐時(shí)代,許多人沒耐心讀書,反而喜歡到處上課,所以現(xiàn)在到處都是計(jì)算機(jī)班。如果遇到厲害的好老師,當(dāng)然上過他(或她)的課 會收獲很大,只是目前好老師的比例實(shí)在不高。我曾在網(wǎng)絡(luò)上看到有人說:「沒聽過補(bǔ)習(xí)班教 出什么程序高手」,這倒也有幾分真實(shí)性。不過一方面要?dú)w咎老師之外,一方面也要?dú)w咎學(xué)生,因?yàn)槲野l(fā)現(xiàn)通常上課的學(xué)生會在家里讀書和寫程序練習(xí)的比例不高。
相較于上課動輒花費(fèi)上萬元的高代價(jià),買書只需要區(qū)區(qū)幾百上千,劃算多了,更何況書上的內(nèi)容又比上課來得多且詳細(xì)。不過「買書容易,看書難」。怕自己偷懶的話,找志同道合 的朋友組織「讀書會」,彼此加油打氣,還可以互相切磋。最好是像我前面提到的:把它變成興趣。
加強(qiáng)英文閱讀能力
加強(qiáng)英文和崇洋無關(guān),而是有它實(shí)際的價(jià)值。許多信息都是要直接看英文的資料,因?yàn)闆]有中文版可看。
「可是我的英文很爛!」
這不是理由。沒人生下來就能閱讀英文,都是一點(diǎn)一點(diǎn)累積起閱讀能力的。給自己一個(gè)機(jī)會,找一本單字文法都比較簡單、且頁數(shù)又少的書籍下手,很快地,你會發(fā)現(xiàn)技術(shù)書籍的 單字就是哪幾個(gè)在重復(fù)出現(xiàn),閱讀這樣的書一點(diǎn)都不難。
請注意:原文書的寫作風(fēng)格也有相當(dāng)大的差異,有的書的確是不好讀。所以,如果你剛開始要嘗試閱讀原文書,不要挑到像 Bjarne Stroustrup 所寫的 The C++ Programming Language 這類難懂的書……盡管它是經(jīng)典。
問人之前,先問自己
遇到問題,可以到國內(nèi)外的程序設(shè)計(jì)相關(guān)討論區(qū)去請教別人,如果態(tài)度謙遜,且問題敘述清楚,相信許多有經(jīng)驗(yàn)的前輩會很樂于參與討論。不過,凡是遇到問題就發(fā)問,這不是好事, 因?yàn)槟銜虼嗽絹碓揭蕾噭e人,而失去了自我解決問題的能力。自己應(yīng)該嘗試著查書、寫程序測試、甚至閱讀原始碼,來找出答案。如此一來,真的沒辦法而請教別人時(shí),也才能 比較深入地討論。
多寫程序
學(xué)程序設(shè)計(jì)不可以只看書,將隨書光盤的程序執(zhí)行一次,就認(rèn)為自己已經(jīng)學(xué)會了。應(yīng)該開始寫一些程序,且由小到大,由簡單到復(fù)雜。找一些有趣的題目(比方說:計(jì)算器,踩地雷, 小畫家,俄羅斯方塊),可以提升寫程序的動力。
我看到許多學(xué)生大一的程序作業(yè)都是copy同學(xué)的,失去了練習(xí)的機(jī)會。等到二年級之后,想開始寫程序,卻寫不出來了。初學(xué)程序設(shè)計(jì)的階段,應(yīng)該給自己多一些機(jī)會寫程序。
向上延伸,向下延伸,向旁延伸
當(dāng)你發(fā)現(xiàn)你已經(jīng)可以掌握此程序語言之后,你可以選擇:
向上延伸:學(xué)習(xí)對象導(dǎo)向分析設(shè)計(jì)、Design Patterns、以及軟件工程。讓自己具有做大型計(jì)劃的能力。
向下深入:深入了解內(nèi)部底層的機(jī)制,例如操作系統(tǒng)(甚至硬件)內(nèi)部。
向旁延伸:學(xué)習(xí)不同的API,例如:多媒體、數(shù)據(jù)庫、企業(yè)運(yùn)算…。
另外,數(shù)據(jù)結(jié)構(gòu)、算法等基礎(chǔ)也很重要。
結(jié)論
一分耕耘,一分收獲,用對方法,持之以恒。每半年檢閱自己這段期間以來的進(jìn)步,相信你也會很高興地說「我做到了」!


