?? ?如今,接觸CS幾近八年,不學無術,所精之物鮮也,以至一事無成。
現回憶吾程序之生涯,以整理繁雜之心緒。
1. 接觸計算機和編程語言
?????? ?02年始大學,DOS機學Pascal,一去不返矣,直到07年在做一Pascal軟件的反匯編時才再對Pascal有點回憶。是時,Pascal與計算機導論并開,終于導論沒導好,而Pascal也尚未觸及指針話題就匆匆而終也,但明白了程序設計最基本的語句結構、條件判斷結構及循環控制結構,以此為根,方可后進,也不錯了。
2. 初識C++及面向對象
??????? 03年來了個跳躍,未學C而直接開設C++課程。一天,任課教師有事,其夫代之,僅一言令吾有所體悟:你們這樣C語言學不好,C++也學不好。誠然!課程快結束時,面向對象部分匆匆了事,好在當時知道了類的樣子,知道有OOP這么個東西。最大的欣慰是認真學了C++的C語言部分,初步理解了指針這個東西。學習效果顯然不好,加上自己很懶惰,這對我隨后幾年的影響頗大,譬如對C語言的printf給予100%的憎惡,人家問我會什么語言時,我只能說什么都不會,勉強說我會C++中的C語言!
3. 在頹廢中練習編程
?????? ?03年底,開設數據結構。現在回想,可嘆,自己為何總是差一拍呢?學數據結構時沒有體會到數據結構的精髓,反而是在利用課程練習提高編程能力,練習類如何用,當然當時還是不懂OOP的,只是為了用類而為之,但仍有程序設計的自我滿足感,因為能把自己想的用程序表達出來,特別是調試解決問題的過程很刺激。
?????? ?同時,那一年伴隨著一個挺熱門的東西,就是有同學自已學習VC(平常上課是不會教這東西的),學習做界面,牛的一塌糊涂,就跟風,其實就是買本教材照著點擊鼠標罷了,在不懂面向對象的時候學習這個,回想起來真是可笑!
?????? ?隨后還有一些課程,能夠練習到編程,譬如數值分析、操作系統、數據庫、計算機圖形學等等,或多或少,總是有些提高,但并沒有本質性的改變。
??????? 后來學習匯編,也沒多大感覺,加上自己沒認真學組成原理、微機原理等課,認定自己不適合搞硬件,其實這緣于自己的頹廢。
??????? 04年下半年開始隨后的兩年是這輩子最不齒提起的階段。同寢者共事網游,與吸毒無二,越陷越深,終不可拔。于其中也,迷之又迷;而于其外,則痛苦不堪,愧對師親,自責良心,毒癮侵之,難忍而入網吧者再。學習成績驟降,一等獎學金至二等,再三等,再到無,乃至逢試只望及格。也就是在那個時代,學會了如何應付考試,我們知道及格是不能違背的下限,故每臨考試,皆群起合作之,依重點作分工,各自發憤,互講所學,一起過關,未曾掛課,此乃唯一無憾之事。但最大的痛恨,乃專業之廢!那會兒簡直傻的可愛!一舍友,到了大四,讓他用C++寫程序時,上來就begin,end,大哥,感情現在咱還停留在大一Pascal的階段呀!
????? ? 一晃,到了大四,要考慮人生怎么走了,大學如此頹廢,專業能力底子差,害怕面對找工作,遂考研,也就在這個時候停止了網游,否則此生廢矣!研考上了,憑的還是大學開始時的基礎,但這確實是我的一個轉折性的新起點。
????? ? 大四下學期,也就是06年上半年,做畢業設計,頭疼了吧!還好,自己命好,能遇貴人,兩人一起用VC做一軟件,全靠人家了,也虧得人家幫助,自己才又能回到程序設計的路上來了,但對C++、MFC、面向對象這三者還只是了解,甚至三者的關系都不能理解清楚。想想當時很好笑,用了STL的vector,然后在論文中就描述使用了一種數據結構的新技術,哈哈!然后買了本《深入牽出MFC》,淺嘗輒止,雖然現在想看但沒多少時間了。
4. 編程之大進步
??????? 06年下半年開始上研究生,亦相當于重新做人,老師要我參與的是硬件的項目,興趣不大,又因課業繁重,后退出項目忙考試,這半年從程序設計角度進步不大。
?????? ?07年上半年是個轉折,那會課少了,自己業余時隨手從同學那拿《absolute c++》來看,系統學習了一遍C++。這時,才對面向對象有了點認識,有了點體悟,然后就結合著MFC想為什么框架是那個樣子。那個學期開設有專門的面向對象課程,跟著去聽了,拿來印證自己的所思所想所學,進步很快。那一年,騰訊為了擴大自己的影響力,就在各個高校開設騰訊創新俱樂部,參加之,正好是鍛煉編程的機會,于是基本上自己主導做了一個軟件,并提交了作品。那個學期鍛煉機會還真挺多,算法設計與分析課程要做大作業,面向對象課程要做大作業。進步很快,以至于多數人都認為較難的面向對象大作業,我在兩天時間內就結束了,包括設計和編程。
??????? 那個時候真的是重新拾起了自信心,而且自己在周圍同學中有優越感,也感謝導師對我的鼓勵,這才使我以后能繼續提升。
5. 思想意識的提高
??????? 然后研二的一年,自己的提升又是一個很大的轉折點。
????? ? 07年下半年,分了課題方向,主要是看論文,痛苦的堅持,直至08年上半年,自認為研究生沒白上,因為認真做研究了,知道了如何做研究。本文主線是程序員之路,故做研究之事,略過不談,其實大多數學生也并不關心如何做研究。???
??????? 在這個階段中,最有意義的是,軟件和程序設計的思想意識提升了。
????? ? 首先緣于本科隔壁宿舍一小伙,特別是研究生時候,其技術很強勢,深知編程水平遠不及他,與他交流總能有些體會。受其最大的影響就是去買一些相關技術方面最牛的書籍,知道了學習不要靠學校那些教材,學就學最牛的專家的書,特別是國外的經典書籍,然后就養成了定期逛書店的習慣。
?? ???? 從《編程高手箴言》中知道了軟件不等于程序,也知道了程序員原來那么神圣,本書對欲加入程序員大軍的人極具煽動性,最起碼對我是這樣子。我此刻知道,國內程序員基本是第二等的,于是定位自己成為第三到四等的程序員,而最高等級的程序員,除了高德納能勝任,世間還有幾人歟?
????? ? 隨后,無意中發現《計算機系統概論》一書,欣喜若狂,可能是我基礎太差了吧,所以跟找到了寶一樣。加之前邊的認識,我從中知道了學習計算機原來是應該這樣子學的呀:自底向上,bottoms-up!!至此刻,我才意識到學計算機是需要不斷提升自己的意識層次的,知道對底層不了解,用高級語言寫出來的代碼是莫名其妙的!
??????? 之后,受隔壁宿舍小伙的推薦,看《深入理解計算機系統》一書,其實也是自底向上的理論,但內容含金量簡直是神級!
?????? ?自己又在閑逛時,發現并買下了《代碼大全》,我對其評價是學軟件者可師承于此書!簡直是理念風暴,處處有感悟,處處有所得,愛不釋手。正如一本好的武功秘籍,絕對不僅僅是教招式,而最重要的是傳授心法。例如,從中體會什么是抽象,再次品味面向對象的特性,特別是數據封裝,再比如對變量命名以及高效注釋的討論高度絕非一般編程規范(比如林銳的那個)所能比,以及后文我提到的對程序性能優化的策略性指導,等等。
?????? ?總之,直到現在,我也這樣認為,做為一個程序員,把軟件做好要看《代碼大全》,把代碼寫好寫懂還要看《深入理解計算機系統》。
??????? 就這樣,思想意識提高了不少,其實這比編程語言本身進步要強的多,因為內心底氣足了,有了方法論了,有了戰略性指導了,到時用到什么知識學什么就行了。而且,在實踐中逐漸培養自己一些優秀的編碼習慣非常重要,比如成對編碼(即new完就想著何時delete,并先寫好),保持程序的完整性,保持程序的可調試性等等。或許正是這些習慣的培養,使我自己寫代碼時基本不用調試器,因為系統一直是完好的,加些代碼就編譯測試,出了問題稍一分析,肯定容易定位的(直到后來,工作時,要維護別人事先的代碼,出了問題解bug,這時調試器就不得不拉上戰場)。我想,這些是我與當時周圍同學最大的差異性,并堅信自己日后能成為一名真正的優秀的程序員。
6. 算法不等于程序
??????? 換句話講,代碼需要優化。
??????? 其實也不盡然,嚴格來講,就是有高性能要求的程序,其代碼才需要認真優化,而一般的應用層程序并無性能方面的特別要求。
?????? ?08年初,我開始做研究生畢業的課題,通俗講是做一個正則表達式引擎,但并非易事,因DFA處理字符的速度快,所以要將大數量的規則轉化成DFA,問題是要將DFA的存儲空間降下來。理論方法倒還順利,新算法也想出來了。于是乎信心十足的去編程實現之,做為學生,自認為擁有著較好的編程意識及思維,再加上瘋狂運用STL,程序很快就OK了。這時,問題出現了,僅僅一個普通的正則表達式,在轉化時就可能耗掉半個小時的時間。這無異于在自己盛氣凌人的頭上澆冷水,為什么會這樣?沒錯呀,我的代碼全都是按照算法寫的,而且算法是都經過復雜度分析的,為何會如此之慢?
??????? 于是,狠下心來,花了一個暑假的時間,做程序性能優化,參考了許多資料,開始時也是不得章法,胡亂為之。但隨即,《代碼大全》又不失為我做軟件的最佳導師,雖然沒有教我如何具體地做程序性能優化,但教給了我戰略性的指導步驟,非常關鍵,也闡釋了許多優化的思想,譬如80-20原則等等。按照上邊的步驟,首先做需求方法的分析,如果有些需求可以砍掉,那顯然會提高運行效率;再次做算法方面的優化,特別是一些細節的實現,這方面我也改進了許多,包括NFA的實現方法都整個推翻了重來,前邊這些沒有什么參考書而言,主要是去查參考文獻再去反復理解;然后是能提高性能的一些編碼技巧,比如緩存技術、延遲計算等等,這個在《代碼大全》中有論述;再下來是程序設計語言本身的問題,比如C++本身的還有STL本身的,那會兒才知道濫用STL的后果有多慘重,不細述,主要參考《Effective STL》,還有一本IBM的《C++程序性能優化》;最后的優化可以考慮將代碼寫成什么樣子更易于編譯器將其編譯成高效的匯編代碼,我甚至將編譯器的優化級別都調高了,真可謂為了提升程序性能而無所不用其極,當時參考的《深入理解計算機系統》,也是從中知道可以去調編譯器的優化等級的,《代碼大全》中關于這方面也有討論。其實到了現在回想,應該再看一些內存優化方法的資料,主要是提升外存的應用效率等,windows的內存映射一直還未研究,有空得補上。
??????? 這樣堅持下來,是一個很好的提高,牽扯的方面從底層匯編直上,一直到需求分析、架構設計、算法和數據結構,當然更包括編碼本身。最為關鍵的,那會擁有的成就感時至今日再未曾有過,即體會了這樣的過程:把運行半個小時的程序一點點的改進到只運行十幾個毫秒,而中間用一個個表格記錄了不斷引入新方法、新技巧后所帶來的性能提升比。
??????? 后來與上文提到的技術牛人小伙討論性能優化的問題,他直接就說“你編程語言選錯了,你當時就應當和我商量的,做正則表達式就應該用perl”。那會確實不知perl為何物,但其實也應該說是從那會,學會了要獨立思考,不要盲從與盲信于他人(特別是技術強人)。問題應當一分為二的看,perl是很精通文本處理,以及支持強大的正則表達式功能。但現在的問題是自己要做正則表達式引擎呀,能調用perl么?如果加上大數據量的規則以及被匹配的數據,我敢肯定perl不行,因為其原理是構造NFA進行處理,處理速度跟不上的。perl正則的強大緣于他的“花架子”,這些花架子對于大多數應用級開發就足夠了,而且還很實用,但如果寫高性能的東東,確實就不實用了。
??????? 現在回到主題,算法不等于程序,換句話說,同樣的算法給不同的程序員所寫出來的代碼效率絕對不一樣,也因此知道了做一個真正的程序員是不易的,當然一個真正的程序員是絕對比大眾程序員優秀的多。
7. 在正規軍中接受訓練
??????? 本著做一名優秀程序員和軟件架構師的目標,兼顧離家近,公司又給解決戶口,于是09年在北京一倍受社會爭議的臺企工作。
??? 既然寫到這里了,就好好回憶一下在公司的若干點滴,以免日后忘卻。
時至今日,回想在公司的日子,也并未有多少令我遺憾之處。
剛進公司,皆是新鮮,加上對未來的憧憬,以及對新知識、新技術的敬畏,于是倍加努力,而進步也是神速,包括技術及職業素質等方面,簡言之即在正規軍中接受訓練和洗禮。
????? 下邊是我入職兩個月后的轉正申請(故作縮減以避嫌),實發自肺腑:
??? “
??? 自今年4月20日入職以來,已近兩個月時間,期間感受頗多,收獲頗多。
??? (1).工作環境
??? 從學校走入公司,確實在經歷著一個很大的轉變,而且公司的主管和同仁也在不停的幫助我完成從學生到職業人的轉化。......
對于工作環境,除了良好的硬件設施,我認為最重要的是公司有著和諧的人際氛圍,從主管到身邊的同仁都給人一種溫馨的感覺,......。???
無論何時有學習工作上的問題,無論求助于誰都會得到熱心的幫助。公司里是用一種鼓勵和引導的方式去培養新員工。......
??? 公司的活動比較豐富,能對工作起到很好的調節作用。運動會期間,大家都去積極的準備,......
??? (2).學習成長
??? 兩個月的時間很快就過去了,回想一下,已經學到了非常多的東西。
??? 在職業人的塑造方面。參加了新人活力營培訓,感觸最深地是團隊和分工合作的力量,以及積極主動的重要性,并在培訓過程中積極鍛煉自己,提高了自己的表達能力以及與人溝通的能力。
??? 在專業技術方面。由于有專門的師傅來指導,并且平日里能夠與許多身邊的同仁去交流和請教,所以進步很快。而且,公司里有比較好的檢驗和督促學習的機制,對于學的不到位的地方會及時補上。對比學校而言,公司里還是要緊張一些,但活得很充實,成長速度很快。在工作期間,有時心里也會覺得有些壓力,這就伴隨著自己心態的調整和對公司環境的適應,以及學著調整工作和休息的關系,我覺得能處理好這些事情是所學到的最寶貴的東西。總之,在公司里與其說是一個工作的過程,不如說是一個學習成長的過程。
??? (3).職業發展
??? 梁肇新將程序員的成長劃分為了六個階段:第一階段,主要是能熟練地使用某種語言;第二階段,能精通基于某種平臺的接口以及所對應語言自身的函數庫;第三階段,能深入地了解某個平臺系統的底層。這些階段是要一步一步走下去的,姑且不管后邊幾個階段是什么,我覺得當前最重要的是先把自己的位置定準,不浮躁老老實實地先做好第二階段的程序員。
??? 公司為我提供了這樣的職業發展和成長的平臺,于此,我非常慶幸。現在公司里的學習方式就是從底層向上學,明白底層的原理后再用上邊的接口,而且以后堅持這樣來學習,并不斷補充新知識,我相信自己在公司的環境里,不久的將來就會做好第二階段到第三階段的程序員。契而不舍,金石可鏤,現在我唯一能做而且必須去做的就是堅定自己的信念,在程序員這條路上堅定的走下去。
??? ”
??????? 回憶至此,對于后邊工作不到一年就離職,有些慚愧,是我自己將在公司發展程序員的路給槍斃掉了,但當時原因頗多,現在唯一良心難安的是沒有“不浮躁老老實實地先做好第二階段的程序員”!
??????? 其實在公司的成長先是短時間的指數級進步,然后是長時間的線性級進步。我是凡人,所以在線性增長階段還是浮躁了!???
??????? 后來體會到,公司的原則很簡單:就是按職位的需求,把你培訓成盯在那個職位上的人。公司最喜歡的人是吃苦耐勞的人,多聰明不需要,看過一本書,忘記什么名字了,好像是《大道至簡》,寫軟件開發的,上邊就說,“是人都可以做程序員,只要你知道夏天熱了少穿衣服,冬天冷了添衣服”,很形象。
??????? 在此無意說公司壞話,因為這很可能是我這輩子進過的唯一一個公司,可以稱為母公司,因為畢竟我除了索取工資和技術,對公司的貢獻幾乎為零,且公司里的很多同事還很懷念,特別是我從心里敬佩臺灣人,他們的技術水平很高,他們的吃苦耐勞能力很強,他們很虛心。
回到正題,現將在公司最大的收獲小結于下:
(1). 在公司能使一個程序員正規劃,包括做事情、做軟件正規劃,寫代碼正規劃等等。沒有這個,在學校中學到的軟件工程就是紙上談兵,如何寫文檔都不會,也不要談學生能形成自己的編程規范。
(2). 學習公司的管理模式,比如如何制定schedule,如何組織會議討論問題,如何做報告,如何與人協調等等。這些對以后在學校的項目管理有絕對性的指導性。
(3). 與老程序員的交往,回憶跟我有直接關系的兩個人。
第一個人是我師傅,嚴謹嚴厲,我對其態度的轉變過程為:害怕->討厭->敬佩->朋友。剛入公司,我師傅一副正經的樣子,害怕自然正常。然后體會了他的嚴厲,有時要求很苛刻,比如我去聽一個報告,他就事先給報告者打電話,說要報告期間給我提幾個問題,意即去聽可以,但不能白聽,這樣能不讓人討厭么。但與此同時,跟我同期入職的小伙,其師傅就感覺起來人不錯,平時較松,而且笑臉相迎。隨后階段是做個小功能,以檢驗學習效果,我師傅對我要求更嚴,每天檢查一次進度,然后每天檢查三次進度,早上、中午和晚上都過來,這樣從需求分析、詳細設計文檔、編碼以及測試等一路跟下來。但我從那會開始敬佩我師傅,因為他教會了我許多好的習慣,比如寫FAQ將學習中問題和收獲記錄下來,跟我討論程序中的數據存儲等問題,記得當時有一個關于指針的數據結構就改了三次,我們倆當時稱之為“一波三折”問題,引導我自己把最佳的方法想出來,還有就是特意會傳授我一些他自己的編程思想,也就是在那時我明白了C語言的代碼要寫成支持多實例的,也就是在那時開始思考如何把面向對象的思維用C語言展現出來。隨后在作這段工作的匯報時,我才是最感激我師傅的時候,正是他的嚴厲和悉心指導,才使我順利過關;然而,另一小伙,就不太順利了,被大主管說道“整體下來感覺你寫的程序太隨便了”,以至于回去重改再作報告。也就是在那個時候,我師傅也開始放下了平時一本正經的面孔,把我交給了事先定好的項目組。然后,我跟我師傅一直是一種朋友關系,平時一起參加登山社,感覺我師傅還有我小師叔就是娘家的人,我是他們帶出來的,到時項目組里遇到棘手的問題,還可以把他們拉過來幫忙解決。
第二人是我前面提到的項目組組長,特溫和、特有耐心,很老練的程序員,作報告很有條理性,做事情很負責任。他跟我師傅性格完全不一樣,從來不會批評人,再大的問題也是溫和的講。我組長是有問必答,不管多簡單的問題,亦或是多困難的問題,他都會放下手頭的事情,幫提問者解決。當時一堆新人圍著他問問題,然后他就獨自一人晚上加班把白天的時間補上,而又毫無怨言,這種精神不能不讓人敬佩。有了任務,他總是笑呵呵的過來,“行不行?”,若見面有難色,就說“沒事,你先做,遇到問題咱們一起解決”,完全沒有組長的架子,但更是一種完全值得我學習的人格魅力。
8. 算法和數學是王道
?隨后就是我離職的事了,很對不起組里的人,其實我不是放棄了程序員這條路,而是放棄了以在公司工作的形式來做程序員這條路,我始終認為程序員的職業是神圣的,現在只是用自認為的一種捷徑來延續這條路,即通過讀博士來加深內功的修為。
?我離職的原因是要去讀博士,而讀博士的原因就很多。首先是那時在公司的實際情況,不得不讓我內心浮躁,因為我是凡人,也不甘于現狀,覺得那會在公司的定位很難實現自己預先規劃的程序員之路。然后的萌芽是我投在《軟件學報》的論文被錄用了,很受鼓舞,而在公司同期培訓的一小伙更是煽動我去讀博士,并給我介紹了許多學術這條路上的事情。有所心動,就與同學、朋友、家人和導師交流此事,在獲取了廣泛的支持之后,遂決定辭掉工作去攻讀博士。當時還有一件事,一本科同學給我打電話,其并不知道我有想讀博士的想法,而他卻起了這個話頭,大肆渲染讀博士有多好,并建議我去讀,真是這種巧合使我堅定了當時的信心。于是今年(2010年)再回學校讀博士。在原導師處讀博士的主要原因,一個是信得過原導師,可以認真指導我,可以為我提供潛心研究的環境,另一個是延續原來的專業和方向,可以保證在算法上精進。
其實,我并非故意將現在的我與程序員聯系在一起,而是事實上即使計算機科學的博士還是教授都與編碼是離不開的,國外大學的計算機教授哪個不是編碼高手,哪個不是優秀的程序員?國內學術界的態度本身就不對,認為程序員低他們一等,本文不作過多評述。若按梁肇新所作程序員之分級:當前在現實公司里的絕大多數程序員是第二等;能達到第三等就得看個人造化和努力了,當然也離不開公司給予的機會,否則一輩子就可能是第二等;而第四等者絕對是大公司里的骨干架構師和程序員;而第五等乃至第六等者,沒有相當的理論功底一輩子都不可達,高德納曾言自己是世界上最優秀的程序員之一,也就是這個層次的。
近段時日雖沒什么進步,但意識到讀好博士并非我原來想的那么簡單。國內的高等教育呈現一種嚴重的延后性狀態,也即多數人與其學位并不對稱,我單論計算機科學學科。本科生應該學習并理解計算機系統,并打下扎實的程序實踐能力;碩士生應該能將問題抽象成計算機算法或相關知識的模型,并給予代碼實現以解決實際問題。事實上有多少計算機科班出身的人是合格的?現在看來,拿一般重點大學而言,碩士生中有良好程序設計能力的就很稀少,更別提本科生了,可讀碩士的目的并非培養編程,而是學習如何做研究。事先,本想讀博士無非就是把問題抽象成算法,或者原來人家就提出了現成的模型,再優化或提出新的方法即可,我天,這實際還停留在碩士的認知水平上,若此,以后怎可有質的提高和突破?即使混個畢業,而且不難,但被宣稱建議授予工學博士學位的時候,是不是很羞恥呢?再退一步,如果一個博士還拿著工程實踐能力來炫耀,簡直太可笑了!合格的博士生,不要自己騙自己,無論如何,至少都得為所研究問題提出一個更好的算法或者數學的模型,甚至要建立一套新的理論體系,這就是第五等程序員,任重道遠,但值得去追求!
前一陣,百度要出語音搜索功能了,CSDN上一牛人是這樣說的:“個人推測,百度的算法是這樣的:基于隱馬爾科夫模型(HMM),或者一些其他的時間序列模型,比如CRF等,進行用戶輸入的聲音串進行識別,然后跟已有的音樂庫進行對比。這里主要用到了維特比算法。更重要的是如何訓練這個HMM?估計會搞海量的音樂進行訓練,由于人工標注成本高,因此會用無監督學習,EM和向前向后算法,這樣模型就建好了。兩個關鍵點:選擇什么作為feature,也就是訓練特征,相應的HMM的階數也會增加;如何組織海量數據訓練和識別,提高運算速度?百度應該擅長,分布計算嗎,另外EM算法也支持多線程了。疑問:要不要用歌詞?或者說是否把歌詞作為一個特征;如果要提高精度,是否要采用其他類似模型,前面提到的CRF應該很理想,但是速度慢,不過就看百度的并行運算功夫了。這個沒有上千臺服務器,是沒法做的”。
對其評述,無論好壞,我唯有佩服,若無一定功底,何出此言!而一般程序員又距其甚遠!一研究生舍友,棄中興而去迅雷,乃向前之所為,吾贊之!數同門,談及專業,面露苦色,不以為榮,無心盡力,妄自菲薄者,吾嘆之!
已之算法與數學薄弱至極,愧對師門,怎能不痛下功夫而惡補之?緣于以前的無知,競說學概率何用之有?而且視數學為負擔,乃學位畢業的條件,學完趕緊扔掉,然后抱著編程語言的書去啃,舍本逐末,有幾人能見其明?糊涂透頂也!人最重要的還是要踏實,此時潛心向學并未晚矣。蘇洵,年二七始發憤為學,歸家悉焚以前所作文章,閉關讀書五六年,遂通六經百家之說,下筆頃刻千言,乃為唐宋八大家之一。吾亦二七之齡,發憤向學,不讀六經而習算法,勿使功利熏心,數載之后學術豈無不成?
9. 后記
我并不贊成執編碼之業以糊口故,否則痛苦不可免。
至于成功,不同之人定義不同。錢不可購萬物,萬物亦非為錢而生,故勿奉錢為上。而后,定一方向,視為寄托,心于其上,畢生為之,終有所成。致若左手程式右手詩,豈非同道?
茲文乃拙人之鄙見,供讀者一笑耳,若可拾得一二,甚為安慰;聞道有先后,術業以專攻,真正牛人,為人敬者,不為炫耀,乃為布施,愈盼高見,我當諦聽。
10. 后記之后記
CSDN的各位朋友,在下有禮了,感謝閱讀此文!
?
?
我是CSDN新手,實際上確實也是程序員之中的新手。CSDN高手甚多,小弟初來,若要在CSDN寫此類文章,怎么也論不到我。本人只不過閑來寫寫自己的想法,對先前走過的路總結一下,整理一下思路罷了。所以我不曾想此文會被置于首頁,但既然如此,索性請大家對我進行批評指正,亦請CSDN的高手不吝賜教。
此外,說到古文,我確實喜歡,當然也喜歡國學,但正如duguao1415所言,我根底尚淺。現在是為了寫而寫,依葫蘆畫瓢,以致成文生硬,錯誤百出,大家見笑了!再次感謝duguao1415,我業余會下功夫,應該像寫代碼一樣,保持一個嚴謹的態度,今后不再亂寫,先沉淀下去學習。
水滴
http://blog.csdn.net/water_drops
????????? 水靜,水滴之,蕩漾而復靜;石固,水滴之,復然則石穿