一個體育生的編程之路(二)

2012-05-09     星期三             天氣晴

 

一個體育生的編程之路(二)

         20118月份寫過一篇博客,《一個體育生的編程之路》,只是寫到第五部分就沒再寫。今天重溫了舊文章,回想起學編程的這三年,心裏不免感慨,雖然我做的不夠好,但是從來沒後悔過。

(五)許工的面試

         想起來許工當時面試我,現在仍然非常感動,真的是緣分,有一種士爲知己者死的感激。

         前博客裏已經提到過,當時我從威海回來,說實話,我在那做的不夠好,自己不能善於學習,項目經理交給我的任務雖然是最簡單的,但我老是做不好,我寫的SQL語句老是出錯,項目經理對我態度也非常不好。最後直接不分配任務給我了,我想是時候自己該走了,總不能等着人家攆我吧。已經工作了45天了,從畢業前的(2010)531號到畢業後的715號,中間回過兩次學校外,其他時間全部在威海工作了。拿到了一個月的工資1000塊錢,可以作爲我離開學校又辭職後生存的基礎(租房子住和吃飯啦)。

         之後的一年多,每當提起在威海工作的事,我都說是因爲工作太累了纔不願幹辭職的,實際是自己工作能力和學習能力不行。只是以前一直不好意思說,直接最近,我纔敢於說實話。

 

         在回濟南後第二天吧,我去參加招聘會,到現在我還記得非常清楚,進會場前接到許工的電話,我先問你們招JAVA還是PHP,許工說我們招C++。我說不好意思,我從來沒接觸過C++。許工說沒關係,語言都是相通的,試一下吧。因爲進招聘會要買票,20塊錢,我生氣不進去了,直接去許工那面試。然後我坐公交車到了山大新校東邊,又轉了很長時間,才找到那個公司。

         見許工的第一感覺是這個人年齡這麼大了,還寫程序?以前的項目經理也就28歲。許工見我時,我買的一礦泉水已經快喝完了,許工到飲水機那給我接了一瓶。當時7月中旬,正是天最熱的時候。當時挺感動。滴水之恩,當涌泉相報。問了下我的基本情況,然後讓我寫個程序。開始讓我寫到紙上,我說我寫電腦敲代碼吧,因爲我寫字太醜了,也不習慣用筆(哈,在學校裏也就考試時會用筆寫字)。許工說那用我的筆記本吧。又問我你用什麼開發工具,我說eclipse或者editplusultraedit。許工說我這都沒有,你用WORD吧。我說我用記事本寫。

         我去到時已經十一點了,我寫程序上來就羅列if … else if …. Else if….語句。過了很久,許工說,好了嗎?我說,快了,快了,再等會。過了會給許工看我寫的程序,許工說,哪些情況你還沒有考慮到。我一拍腦袋,哦,再等我一會,我再寫。於是又開始不斷的寫if … else if … else if ….。在那面試時看到有一稍胖穿黑上衣的員工,看了我一眼,那是我後來的同事方工。別人都快吃完中午飯回來,許工也不耐煩了,說寫好了嗎?我都寫了一百多行代碼了,還在寫if … else if … else if ….。我說,快了,快了,再等我一會,馬上就完了。再過了一會,我終於認爲自己已經寫完了,給許工看。許工看了一眼我那一百多行的代碼,說你回去再想想吧。然後又去飲水機那接了一瓶水給我,我感謝着離開。

         去找站牌坐公交車回山師老校。當時覺得心裏不服,要我不要我沒關係,但那道題我得做出來呀。我就邊走邊想,走到站牌了,我也停下,繼續走,邊走邊想,已經快走到第三個站牌了。我想通該怎麼做這道題了,原來幾行代碼就可以搞定。於是在第三個站牌我上了公交車,回到學校直接回師兄的宿舍,打開電腦,用JAVA把代碼寫出來,測試了一下,發現沒問題,於是給許工打電話,許工說我給發個郵件,你把代碼發過來吧。許工看過我代碼,覺得還不錯。然後又給我出了道,讓我下午做,並留下qq和電話與我聯繫。

         終於如釋負重鬆了口氣,我去買了個煎餅果子,在校園裏吃,回到宿舍開始解第二個題。找了兩三種方法來實現。到下午時又把兩種方法實現的JAVA代碼發給許工,許工說不夠高效。晚上許工與我聊了挺多,說到之前公司的一些人和事,公司處於一個什麼樣的階段。推薦我應該學下數據結構等計算機基礎課程。說要再面試一些計算機或者數學專業的人,再考慮要我不要我。我也說,您要慎重考慮用我不用我。

         之後的兩三天裏,我又面試了幾家公司,人家直接瞧不上我,並且還說,你還是去培訓機構培訓下吧,連strutshibernatespring三大框架都不懂,也沒有任何實際經驗。兩天後,許工說你來上班吧。我說好,當然了,我也沒有別的選擇,我找別的工作也沒人要我。

         於是我在洪家樓找了一個房子,也是去那附近找了兩三次吧,終於找到一個最便宜的,在閣樓上的一間小屋裏,屋頂不到兩米多高,一共不到5個平方,只有一個不到70釐米寬的小牀,有一個小窗戶。房東把這間小廚房租給我了,一個月只要160,裏邊非常熱,因爲樓頂早都曬透了,每天夜裏都熱醒好五六次,去廁所衝個澡再回來接着睡,就這樣反覆直至早上六點鐘。

         於是又回家,把檔案和戶口落回家裏,(勸學生儘量不要把自己的農村戶口遷出來,因爲畢業後改不回農業戶口並且也沒自己的地了。曾經說上不好學可以回家種地去,後來發現自己說這句話的資格都沒有,因爲已經不是農村戶口已經沒地了。)然後在25號(也就是從威海辭職回來第10天)開始了我新的工作。

        

(六)C++MFC的學習

         開始學習C++是從譚浩強的《C++語言程序設計》開始的。上班就是坐在那看書,下班就是找個地方吃點東西,然後去肯德基坐着看書,因爲那裏涼快。連續看了幾天後,覺得看的挺枯燥的,和許工說,許工給我出了道小題,讓我做。教給我桶排序,於是我實現了下,速度非常快。這是許工教我的第一個程序,印象非常深。

         一個星期後,開始用Visual Studio 2010作爲開始工具,感覺好複雜啊。之前一直覺得eclipse非常強大。用微軟的開發工具非常不習慣。(現在想來vs多好多專業多強大啊,再看eclipse簡直像個山寨的東西。純屬個人感覺,不要罵我個人偏見。)開始接觸windows程序設計和MFC,感覺太難了。根本是雲裏霧裏,同學推薦我看孫鑫的視頻教程,我都下載下來了,第一課,我表示很努力的聽着,兩個多小時,開始接windows第一個程序,消息循環等,我確實很努力的聽着,但是聽着聽着就不知道自己在哪了,也不知道自己到底是暈到了還是睡着了,哈哈。(開個玩笑了。)

         在第三個星期,開始做一個打印程序,用MFC基於對話框的。許工把例子程序給我演示了,可是我不會。又簡單寫了一個程序,告訴我這樣就可以在對話框上畫線,我還是不會。(你是不是覺得我太笨了?但說不定你在剛開始學習VC++也有同樣的感覺)就是把例子程序都給我寫出來了,我還是看不懂,不知道該怎麼抄。許工對我無語了,那天是星期六,說你要是下個星期一再寫不出來,你就不能在我這幹了。我當時啥也不說。就回去了。回到住的地方,從大潤發超市買的鹹菜和饅頭,邊吃邊看電影。吃飽了喝足了洗個澡就睡覺。寫不出來拉倒。由於睡的太早,早上四點多就醒了,我想了想許工是怎麼給我演示他寫的程序的,我雖然什麼都不懂什麼都不會,我應該怎麼把程序套上去。然後打開電腦,兩三個小時終於把基於對話框打印程序的第一步顯示出來了。別看這簡單的第一步,就是一個按鈕,按一下按鈕在對話框上畫一條直線,沒有這簡單的第一步,就沒有以後一千步。

         星期一上班,我去的很晚,去上班時已經遲到了半個小時,心想反正可能要走人了,怕什麼。我就大搖大擺的進去了。(哈哈,估計是死豬不怕開水燙的精神又發作了。)給許工看了下我寫的程序,終於實現第一步了,許工看後說你到我辦公室來一趟。

         在他的辦公室裏和我聊了兩三個小時,說現在我不要着急,他剛開始工作時也是非常不容易,也住樓頂非常熱。又講了一些公司以前的人和事。開導我要努力學習。又給我提了三點要求,至今仍記得非常清楚。第一,把軟件開發當成科學。第二,要堅持。第三,要把眼光放長遠。

         在第一個月裏,我從第一個按鈕和畫第一條直線,到後來逐步把軟件原來所有的功能實現,一共寫了四千多行代碼,雖然現在看來都是垃圾代碼,但在當時還是非常快樂的,感覺這纔是程序員,這纔是寫程序,像我當時想的一樣,就是用順序、循環(for)、選擇(if … else )這麼簡單的東西就可以完成非常複雜的事情。之前一直在學JAVA的框架以及其他一些框架,學會怎麼會servletjsp等等,總是學不會。跟着許工一個多月終於把標籤打印程序寫完了,許工說你寫個工作總結吧。於是我寫了個工作總結,但是寫的像自己的反省書一樣。(哈哈,中學時寫檢討書寫多了。)許工看後,說這算不上工作總結,我認爲你具備一個程序員的素質,可以成爲一個優秀的程序員,但是還有很多東西要學。

         這樣的談話在畢業後跟着許工乾的半年裏,有過好幾次,對剛畢業的我幫助非常大的。

         這半年裏的學習主要是以孫鑫的《VC++深入詳解》爲主,第一章看不懂第二章講C++的基礎,看的懂,第三章又看不懂,後邊的反而能看懂,因爲都是怎麼操作,就是照着書上的方法一步一步用VC6實現。還有一本《Visual C++範例寶典》也非常不錯,在做項目時,可以經常查閱上邊的例子,省時又省事。

         剛開始學習C++MFC的半年裏,想要解決一個問題,到網上去搜,網上有很多,但是看不懂,照抄都不知道怎麼抄,很多時候多虧了方工的幫助,要不然我還不知道會因爲多少個小問題浪費時間,也不可能進步那麼快。再次感謝同事方工在這兩年的工作裏給我那麼多無私的幫助,不僅在工作和學習上,還有生活上對我這個小弟也非常照顧。

(七)opencv與數字圖像處理

跟着許工乾的半年裏,公司並沒有做什麼實際項目,許工應ss公司要求,研究人臉識別和圖像處理。我在做完第一個標籤打印後大多時間在閒着。10月份和11月份,一直在網上發廣告,增加了公司的銷售。很多時候都不情願做在偷着看《VC++深入詳解》,許工批評了我兩次,我不服不行,就繼續發廣告。雖然和現在工作一點關係,都沒有,但是任何一項工作,你要做好,都要認真和努力,並且都會有所收穫。那段時間裏雖然只是發廣告,但是我還研究了SEO,並且修改了公司網頁,提高搜索排名等等。

後來給老闆娘寫了一個客戶信息管理軟件,就是做了一個對話框,上邊可以對access文件的中信息增刪改查。雖然只用了三天時間,也有進步。

2011年上班後,許工要帶着我和方工去ss公司做人臉識別項目,我在2011年年初纔開始接觸圖像處理,什麼都不會。非常擔心自己幹不了。所以找許工談話,說我還是不去了吧。許工說別不自信,試試吧。如果你去ss,別的部門你也進不去,我們去ss公司你也不可能在自己呆在這了。又鼓勵了我一翻。

下午叫我到他辦公室,要考我微積分的題,給我找了本很老的書,隨便找了道題讓我做,我先看前邊的定義和性質,再看例題,半天也沒做出來。許工說晚上再複習一下,明天再考我。

晚上我複習了兩個小時微積分,幸虧大學時還下過不少功夫學。第二個又做了幾道題,都做出來了,並且與答案相符。許工表示可以。中午老闆娘請我們吃飯。

2011228日星期一開始,正式到SS公司上班。終於到了一家大公司了,就是不一樣。

剛開始的一個月,工作非常努力又謹慎,對環境不熟悉。基於特徵的算法,我承擔了幾個特徵,在經過一翻努力後,做的還可以。在四月中旬項目驗收時,領導也表示滿意。寫程序這一個月裏,使我對OPENCV有了一個入門。

之後一直到五月份,並沒有什麼具體的任務。五一時許工讓我寫一個視頻監控的程序,用C++OPENCV來實現。許工把具體怎麼實現給我講了好多遍,後來連僞代碼都寫出來了,告訴我來怎麼設計這個程序,可是我腦中全是原來的想法,我想用遞歸的方法來找出視頻畫面中的人。許工把他的設計思路對我講的越清楚,我越糊塗,越不知道該怎麼寫。當時方工回老家結婚了,之前做方工做過這個程序,但是人家在結婚,我不好意思打擾。方工用手機QQ問我怎麼樣,我說非常不好,讓他把他之前的代碼發給我參考一下。方工的代碼發給我了,我還是看不懂,不知道該怎麼寫。許工也不管我了,因爲之前已經有些生氣了,都給我講那麼多遍,那麼清楚了,還是愚木腦袋一個。最後我也死心了,放棄了按照許工的思路,也放棄了參考方工的代碼。還是按照我原來的想法去實現。可是,最終我真的實現了,並且速度挺快,把人數查的很準確,走進和走出的24個人我都分別查出來了,已經達到演示程序的要求了。想想,那兩個星期,是我2011年最痛苦最受打擊最憋被許工罵的兩個星期,但也是我感覺我在2011年感覺自己進步最快的一段時間。後來給別人演示這個小程序,證明這個功能從技術可以實現,並且準確率可以保證。許工在別人面前猛誇我。

六月份開始嘗試SVM算法,許工將書給我,並把其中一些圖像處理原理和數學原理講給我。我感覺挺簡單,回去實現代碼。寫了幾百行代碼,利用幾個類分別實現功能,初步感覺到結構化程序設計的方便。可能寫程序只用了幾天時間,但是測試和修改用了幾個月。初期沒有達到書中的效果。許工也比較失望。在試驗時,本着軟件開發是一門科學,測試是一種科學實驗的態度,我認真的測試。在控制其他條件全部不變,只有一個條件不斷變化,並且記錄全部測試結果,推測這一條件對於識別率的影響。我能想到的每一個條件我都要去嘗試一下,然後再控制不同條件進行同樣的測試和推斷。就是這樣不斷的測試,不斷的統計,不斷的推測,再不斷的改變條件和修改代碼。在某一天,突然發現一種算法起了關鍵作用,使得識別率有了本質的提高。我們項目組都驚喜萬分。這些時間裏,對於測試我是非常認真的,這是必需的。認識到測試作爲一種科學試驗,我的收穫不僅上文所提及。

七月份,同事要一個圖像處理的程序,本來是由另外一位同事來完成,但是效果並不好,我一看,我感覺我可以做,幾個功能我都可以做。然後我就開始寫,並且嘗試用VC++提供的CImage來實現。也就是擺脫OPENCV,自己更多的來寫圖像處理的方法。從中我又一次感覺到了自己的進步。雖然只用了幾天時間,我實現了,功能都符合要求。

         七月份作述職報告,我寫的述職報告的講稿,許工讓我在一個星期時間裏準備,並且幫我不斷的修改PPT和講稿。而其他的同事只能在業餘時間準備。在進行述職時,由於2007PPT在電腦裏打不開,所以我的講演推到了最後。而其他同事都沒有我準備的充分,所以我的述職報告也得到了高層領導的認可,公司領導對於我的學習精神和工作努力也是非常認同。許工又長篇大幅的誇我,從第一次見我,雖然我只是用記事本寫JAVA代碼,但是寫的非常規範,一直到工作後一年多怎麼努力,最後的建議就是在理論方面加強提高。(呵呵,各位朋友,你們遇到過這麼好的領導嗎?)

         在剛工作時,我的工資1000,到後來1200三個月後漲到1500,到ss公司是1800,再到述職報告後3000。一年的時間裏工資也算翻了三倍,實在不敢說自己優秀,也就是稍微努力了一些,也絕沒有炫耀的意思,實在是想鼓勵下像我曾經一樣的師弟師妹們,加油。

我還是1200工資的時候,在家裏過中秋節,也就是2010年畢業後的秋天,姐姐已經畢業四五年了,說我還沒有她掙的多。我說咱別看現在,咱看三年後誰。呵呵,一年後已經是她兩倍,兩年後的現在又何止呢?絕對沒有對我姐的不敬,我對於自己的努力還是非常自信的。

(八)繼續學習

2011年,買了很多書,僅從卓越噹噹上就買了一千元以上的書了。計算機類的書看了一些,每買10本書,會有一本書看的很多,兩三本書偶爾會拿過來查一下。剩餘的六七本也就是看看前言和第一章。2011年下半年還看了兩本小說,唐浩明先生的《曾國藩》本冊共1400多頁,《明朝那些事兒》七冊2100多頁。呵呵,小說確實認真從頭看到尾了。

         自己的學習方法還是不好,許工值得我學習一輩子。現在想來給我印象最深的是2011年年底看的王爽的《彙編語言(第二版)》。王爽先生不僅是著名的計算機科學教育家,而且是哲學家,看他的書真是一種享受。

“學習彙編的最根本的兩個目的:充分獲得底層編程的體驗,深刻理解機器運行程序的機理。”對於王爽先生的講解方式也是讓我這個笨學生有最好的學習體驗,王爽先生採用了循序漸進的方式講解,對於以後用到的儘量以後再講。我第一遍開始看,看到第10章,到了標誌寄存器就暈了,也就停止了。之後我開始學習《Intel彙編語言程序設計》第五版,學習了前8章,使我對彙編有了更多的認識。2012年我又從頭開始看王爽老師的《彙編語言》,認真看書並且編寫每個小程序,一直看到16章。之前沒有掌握和理解的知識點又有了新的認識。再一次看《Intel彙編語言程序設計》而只看到第六章就截止了。當然又有了新的提高。

因爲對於這兩本書是我近期學習的,印象特別深,所以這裏分享了一下學習感受。

 

2012年我開始封裝一個動態庫,認識到組件化開發帶來的好處。動態庫封裝了圖像處理的一些基本方法,可以在windows環境下供不同語言調用和使用。各個功能模塊之間採用接口,相互獨立。之後又做照片打印的程序。使用delphi,開始時非常抵觸,(在剛開始學C++做標籤打印時,我感覺非常爲難,我說想要先學下delphi,先看懂原來的代碼,再來用C++來寫標籤打印程序。許工說不行,DELPHI就是毒藥,因爲太好用了。開始就學C++,起點高,長遠來看更好。)但是後來邊做邊玩,有問題了就問身邊的同事,主要是怎麼做界面。兩個星期後完成此軟件,並且得到許工的認可。對於照片打印我要實現的功能如下,【選擇圖片】,【選擇模板】,【選擇背景】,【打印】,【保存成圖片】。實際是個非常簡單的程序。但是怎樣做的最好的流程和最簡單的方法呢。在初步完成功能後,我改用這樣一種方法。

1)在選擇要打印的照片後,根據默認的模板和背景,即生成要保存的圖片img_save

2)當然這張圖片img_save是根據打印機分辨率計算出來的大小,對於打印打印可直接根據img_save打印出來要求的照片。保存成圖片後再使用同一打印機再對img_save進行打印仍然得到同樣的打印效果。

3)改變模板與選擇背景,都會重新生成要保存的圖片img_save

4img_save就是主線。哈哈。

         使用這一想法,思路變得非常清晰,程序變得非常簡單。各功能之間完全相互獨立,沒有任何複雜的關係。

(九)新工作,新的開始

         201252日,與許工告別,在SS公司辦理離職手續。心中非常不捨,有一種失戀的感覺。當天就去了ZN公司上班,ZN公司比SS公司小的多,各方面都差的多,可以說來到之後我就後悔了。第一個星期甚至直到現在兩個星期裏都想念SS公司,覺得SS公司什麼都好,辦公環境好,公司大也正規,有歸屬感。來到ZN公司後沒有歸屬感。尤其想許工和方工在一起工作,覺得許工對我有知遇之恩,沒有他對我的幫助和教導,就沒有我的現在。但是許工也不再挽留我,認爲我可以走了,水平仍然非常初級,但是可以出去折騰了。年輕多出去闖下,哪怕是頭破血流是值得慶幸的事。年輕最不怕的就是失敗,本來就是從農村出來的小孩,本來什麼都沒有,也從不怕失去什麼。我不怕失敗。因爲我敗得起。我本不是喜歡安定的人。這兩星期裏我時常在想,如果SS公司領導不嫌棄,我可以再回去。但是我都會告訴自己這是不可能的了。我要在ZN奮鬥。進公司前領導問我憑什麼要高工資,我說我幹得好,兩或三個月給我轉正,我幹不好,我自己滾蛋走人。(這是學習美團網的口號,“要麼牛逼,要麼滾蛋!”)領導被震撼了,認爲我有衝勁。讓我來就是攻難關的。我換工作,也是爲了更多實現自己的價值,更多獨立做出項目,得到別人的認同。工資成了祕密,其實也並不怎麼高,但是因爲簽了保密協議,所以我不會再對朋友同事坦誠相告。

                                                                           20125922302012510129

                                                                          一口氣完成七千多字的日記。真痛快。

                                                                          對自己說,晚安!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章