程序員進階的建議 多看、多寫、多交流
很多程序員初學者都說入門之后不知道該如何提高,我都是告訴他們多實踐。最近在我們的團隊中建立了一個學生的實習小組,我在和他們講授程序設計分析的時候,我也給他們了個小建議寫代碼就是多看、多寫,后來又補上一點:多交流。
我認為不管是做什么行業或工作,只要專注都可以有自己不同的成就。因此我覺得做任何事必需要有熱情,而且是持續的熱情,有一句話說“好的開始是成功的一半,持之以恒是成功的另一半”我很認同,所以自己的認定的事情就應該堅持的去做。我提出了三多:多看、多寫、多交流,來將熱情付出行動。
這里談到的是當你入門后怎么使自己不段的提高的一些方法,可能只是一些片面之詞,但我相信只要你去做了都會有一些收獲。
在我們開始學習程序,都必須對一些基礎知識進行學習,例如語法、常用的內置函數,就PHP來說內置函數有成百上千個(沒有統計過),就常用的也有上百個。怎么才可以對這些逐個掌握?死記硬背?這是一個常人都無法做到的,即使是記住了,通常能否靈活的應用還要打個問號。那該怎么做呢?
首先是多看,看技術文章,看開源代碼。
技術文章應該不必多說,這是學習新技術和積累技術的必備渠道。這里我談談該怎么看,很多人包括我自已有時候,只是看一遍就算了,這樣的結果一般都是知其然不知所以然。我認為要把別人的東西變成自己的必須實踐。把文章所說的技術通過自己理解的寫出來并改進,并在合適的時候盡快應用的你的實際工作中。
再說看代碼,一是一些網友的代碼,這里就要有一個觀念,就是不能迷信別人的代碼,應該客觀的去看,學習別人的方法的時候,應該去考慮它是否有問題,應該是辯證的態度對對待,如果有問題自己試著去解決,并和他們交流。
二是看開源項目中的代碼,這類就不僅僅是看代碼了還有框架、設計思想等。我建議每個人至少看到1到2套開源代碼,因為我認為開源代碼對自己的提高比一般的技術文章要快的很多。
首先它們都是一些較為成功的項目,在成功項目中其實包含了原作者的經驗和其項目不斷改進中產生的非富經驗。對于開源項目,我的方法是先從它的入口文件看起一般是index.php看它的整體文件結構,再看它的公共文件里的內容,具體的一些常用的工具類,這樣會對整個項目的結構有一個了解,然后就是你所興趣的功能的具體實現代碼,并詳細搞懂他的實現方式和原理。在看的過程中你肯定可以學到很多有價值的東西。
我個人的經驗是:看的最多的是DZ的代碼,其它項目也很多,但比較全面的還是dz的代碼。個人認為看代碼還是比較速成的一種方式,因為別人的走過的路你就不需要再走了,站在巨人的肩膀上總是可以走的更快更遠。
關于多寫其實上面也提到了,學習后的東西應該要馬上實踐,并盡快在合適的時候應用到自己的工作中,這樣才能收獲的更多更快。另一方面是自己嘗試著去寫一些小項目,只有去做一完整性的項目才是最有價值的實踐,但在做這些實踐中我認為應該嚴格的要求自己,既然是為了學習,就不是應該敷衍了事,盡可能把所有細節都處理的***。
還有就是時間一定要要求自己,不能拖,一方面是要給自己壓力,二是如果時間拖的太久思路和激情沒法持續的話,那你的計劃很可能最終會失敗并不了了之。
開篇我提到很多初學者都說入門之后不知道該如何提高,我都告訴他們要多寫,為什么會無法提高,我認為是沒有目標,只要你給自己定一個目標,然后去實現,完成后其實也達到自己提高的目的了。
例如你去寫一個簡單的博客程序,在實現的過程中會遇到很多問題,再逐一去解決,這樣你就有了學習的方向了,解決問題就是積累經驗和學習的過程。總的來說要給自己設置一個需要完成的目標,這個目標是什么有什么內容,什么時候完成都很清楚。
其實說到這里就可以回答上面該如何去掌握那么多的函數呢,當你看過和寫過很多代碼后你會發現你所掌握的函數和方法已經很多了,這就是在實踐的過程中無形產生的結果。所以什么語法之類的基礎的東西是不需要去死亡硬背的,在運用的時候自然就可以對它駕輕就熟。
***我認為做技術的交流很重要,因為做技術是個永無止境的學習過程,而交流是一種更有效的學習方式。因為每個人的知識系統都是不同的,每個人掌握的東西不同,思維方式各異。
所以交流就是一個互相學習和促進的過程,當你把自己的想法與別人交流你就會收獲更多新的想法。交流是一咱倍速增長的過程,前一段我寫了一篇《當你開啟一扇門的時候,很多扇門將為你開啟》給我們的團隊就是想表達這個想法。
交流有很多的,有線上的有線下的,大家都有上論壇的習慣,這是一種交流方式,但我認為線下交流更有效,語言的交流比文字的交流方式更直接和全面。因為我是PEA福州的常委之一,很多線下活動是由我組織的,從參加人數來看并不是很理想,所以我認為做技術的應該更開放一些,多參加類似PEA的這種交流。
交流一定要是開放的,所以在交流中應該是一種包容的心態去面對。也就是說我們是持有自己想法的時候也應該耐心傾聽他人的意見,不能認死理。只有站在客觀的角度去看問題才能把問題看的更透徹,只有不抵觸才能讓自己學到更多的東西。
在我們的技術團隊中有定期的技術分享會,目的就是為了建立交流的平臺,讓大家都嘗試表達自己的意見,鍛煉自己的能力,并可以和更多的人去交流。
***總結一下,多看,吸收別人的經驗轉化為自己所用,多寫,全面性的鍛煉自己的能力,多交流,利用眾人的智慧。三多更多的就是去做。
【編輯推薦】