一個程序猿的生命周期 微信平台
口 號:職業交流,職業規划;面對現實,用心去交流、感悟。
公眾號:iterlifetime
百木-ITer職業交流奮斗 群:141588103
微 博:http://www.weibo.com/u/5723400254
二維碼:

摘要: 如果可以把程序猿算作異類的話,那么他是異類中最有創造力的,有無限的可能。如果只是在人家現有框架上苟且的工作着,重復的CRUD和表單,那么我認為是失去了職業本身的價值了。如果只是為了生存,那么我會祈禱佛祖原諒你。
嚴格意義上講,我只能算作半個程序猿。首先,公司不是IT公司,只是傳統行業涉及到軟件部分的開發。其次,也無所謂開發團隊,算上我只有三個人,在我來之前也僅僅維護兩個上位機軟件,一個是VC++開發的,一個是VB開發的,分別負責不同的硬件設備,還經常出問題。我是從C#開始做起的,原來一直沒有學過,有自學C++考過二級的經驗,自學C#顯然容易的多。在這樣的環境里,有的人認為很難有發展的前途,可是每個人看問題的角度不一樣,我認為通過自己的努力很快就能追上他們,甚至超過他們,並且在公司確立自己的核心地位。
干過一年多的實施工作,一年出差200多天,接觸現場比較多。轉到技術部門,一開始負責開發、維護一個新產品的上位機軟件。有了這些工作基礎,我也在漸漸的思考着:為什么不能把不同的硬件產品集成到同一個軟件平台下呢?的確是一個很現實的問題,如果實現了,那么可以為公司做出很大貢獻,提高效率、降低成本,好處不言而喻。
恰逢此時,其中一位女同志休產假了,有時候辦公室只有我自己一個人。我是主觀能動性很強的人,開始了自己的平台化軟件設計工作。基本的設計思想是:通訊協議無關性、數據處理流程化、掛載設備模塊就可以運行。在很快的時間里就開發出來一個基本版本,隨后的工作中又把其他設備模塊開發出來了,軟件的整體性比原來的軟件提高了一大節。經過一段時間的測試,向部門經理申請應用到現場環境中。終端用戶應用這個平台軟件的不多,到是在**集團公司數據集成項目中發揮了很關鍵的作用,因為要兼容其他廠家的設備,負責提取、處理數據,然后上傳數據。在享受成就感的同時,也發現了很多問題,並且有些問題是至命的,例如:同一個IO對應多個設備時穩定性較差、設備調度以及數據處理一系列的問題。后來自我安慰一下,把這個產品定位類似於Vista操作系統,僅僅是一個過度版本,將來會有更好的版本!
自我反省軟件平台的失敗,是因為自己的實力、功力還不夠深厚,軟件架構設計太爛。也認真做了自我檢討,不能太輕浮,靜下心來認真學習了幾本書,包括:設計模式、組件設計、N條建議等等。
工作熱情很高的時候,關於我的工作安排,公司的總經理與我們部門經理發生了分歧。總經理要讓我到一個代理產品的事業部,一是研究這個產品,二是開發這個產品的軟件。和相關領導都碰了面,我表示考慮考慮。部門領導突然有一天對我說:你負責軟件平台的開發吧,讓**配合你工作。本意是想讓我留在他的這個部門。經過深思熟慮,我決定留下來,繼續開發軟件平台,理由是:1、開發上一個軟件平台只是自己的想法,僅向部門領導表達過我的思想,但是領導並沒有下達命令。這次有一個正式的口頭命令,多少有點不甘心,想把平台軟件做好,並且代理的產品可以用。2、新產品事業部歸屬我原業所在的實施(服務)部門,在這個部門也干過一年多的時間,很了解工作環境,並不適合研究、開發一類的工作。3、部門經理是一位實權派的人物,就算去了新產品事業部,沒有他的資源支持,開展工作也是很困難。所以冒着得罪總經理的風險,拒絕了新的工作安排,后來得知總經理很遺憾。
學習了知識就要付出實踐,重新開始了新軟件平台的設計工作。大概經過半年多的時間,先后經過5個版本的過度,最終的架構才正式確定下來。搭建了一個實驗環境,包括公司所有硬件設備,前期開發出來一個硬件設備驅動,正式安裝到現場實驗了。后續的三年的時間里一直在完善、優化平台結構,以及開發其他硬件設備模塊,也就是說前后經過三年左右的時間才構建完成,公司最終獎勵了2萬獎金。這也是我最得意的作品,核心代碼、設備驅動、測試代碼,大概有10萬行代碼之多,其中特性包括:設備調度器、網絡和串口設備通訊機制調度器、命令緩沖器、協議驅動器、設備掛載運行可配制、網絡和串口通訊隨意轉換、數據輸出多功能接口、自定義多視窗數據UI顯示、定時發送短信接口、OPC輸出數據接口、4-20mA輸出接口、LED輸出數據接口、B/S和C/S模式訪問數據、雲服務標准通訊接口(可上傳到公司服務器)等等。
盡管現在離職了,但是還在一直維護、完善,畢竟像自己的孩子一樣,想讓它變的越來越好,也有網友在使用這個平台。
如果可以把程序猿算作異類的話,那么他是異類中最有創造力的,有無限的可能。如果只是在人家現有框架上苟且的工作着,重復的CRUD和表單,那么我認為是失去了職業本身的價值了。如果只是為了生存,那么我會祈禱佛祖原諒你。