好幾天沒寫博文了,最近LZ在研究如何編譯和調試JAVA虛擬機的源碼,如今已經小有收獲,LZ已經可以成功的調試System.out.println("hello world!")這樣的程序了,很有感覺吧。過幾天LZ會將這部分內容闡述一下,不過在此之前,還有GC相關的最后一章。不過這最后一章其實已經沒什么寫的了,主要是參數的羅列以及參數的說明。
本文LZ和各位探討一下程序猿的幾個境界,不用說,最后一個境界就是LZ所向往的理想國度了。LZ個人覺得,自己應該屬於第二重邁向第三重的階段。
廢話不多說,下面我們一起來看看吧。
程序猿第一重:抄
“抄”是程序猿的最低境界,處於這一境界的程序猿們,還只會復制粘貼。而且此處的復制粘貼,是全盤復制,而后針對需要修改的地方稍作修改已達到目的。
通常情況下,此境界的程序猿還不會思考在復制的過程中,所復制的內容是否全部都需要,能不能砍掉一部分,或是內容當中有沒有壞味道的代碼等等一系列問題。而且復制的內容一旦出現問題,處於“抄”這一境界的程序猿往往會束手無策,第一反應一定是“度娘”,倘若“度娘”也解決不了,那么小A、小B、小C等等可能就被你請來解決問題了。
你會經常因為一個空指針而花費一兩個小時的時間,也會因為一個非法參數異常而苦惱。如果這些異常發生在你自己所寫的代碼當中還好,倘若是在第三方類庫當中,此時的你或許會大有去年買了個表的心情。
程序猿第二重:改
當你在第一重徘徊一段時間,或許是一個月、半年、一年甚至N年(N>=1),大部分人都會輕松的進入“改”這一境界。
此時的你仍然只有復制粘貼的功能,只不過此時的你已經學會了挑剔自己所復制的代碼。當你在准備復制代碼而不得以去讀代碼的時候,你可能會說出以前從未說過的話,“這代碼寫的真是狗shi啊”。
於是,你會對你復制的代碼挑挑揀揀,這刪點,那改點,希望它最終可以符合你自己的愛好,並會不自覺的欣賞一會自己的小傑作。
而在這個時候,一旦出現什么問題,你的第一反應不再是“度娘”,而是會先自己判斷一下可能是哪里出現了問題。不僅如此,或許還會有處於“抄”境界的程序猿不小心“抄”了你的代碼,出現問題之后還會來請教你。大部分時候,你會很happy的去給別人解決問題。
程序猿第三重:悟
“悟”之境界就不如第二重那么容易進入了,或許會有一些程序猿,甚至在自己的編程生涯結束時,都沒能進入這一境界。不過這其中大部分的原因是因為,他們還未碰觸到這一重境界,就拋棄了編程轉而投入了其它領域。有時候,這也許是一件幸事。
從第二重完全的走入第三重,需要一個漫長的領悟過程。在這一階段里,你已經感覺到了瓶頸,再也無法像以前一樣,能夠感覺到自己實力的快速提升。你的提升,完全取決於知識的積累。當積累達到一定程度時,以前一些無法完全理解的問題,常常會在你無意之間想通。
此時的你已經對自己所從事的開發工作了如指掌,應對自如,同時你的代碼也可能會被大部分人復制粘貼着,並且你會是團隊中的“異常天敵”,任何問題到了你手里大部分都可以迎刃而解。
通常情況下,此時的你已經對上面這些事習以為常,你只是在一次次的頓悟當中,尋找着通往究極的途徑。
程序猿第四重:造
其實大部分人走到第三重,已經是終點了。至少,作為一個程序猿,你已經很優秀了。
不過要想走到終極境界,還需要做一件事,那就是----造。
造?
是的。造一個spring,一個MVC框架,一個struts2,一個ORM框架。
或許你會說,這沒問題啊,我已經可以寫一個簡單的ORM框架了。
非也。
造的前提是毀,要毀掉你認知的一切東西,從而造出一個真正意義上的新事物。這個時候,你的代碼不會再是你的團隊在使用,而是全世界在使用。
結束語
“抄”的多了就會“改”了,“改”的多了就會“悟”了,“悟”的多了卻不一定能“造”。