聲明:這僅是個人頭腦風暴,鑒于個人的經歷和掌握的知識有限,所有的信息都無法保證沒有錯誤。
很多技術人員或多或少都聽過搞技術沒有前途,博客園首頁也有很多文章針對這個論調進行討論。對于這些文章,我一直置之不理,對于我來說,技術有前途。如果要說沒有前途,那是個人沒有前途。有沒有前途,其實這是和經濟論相關的。如果做過生意的人,都知道,如果有一樣東西,只有你有,別人沒有,那這種東西一般具有很高利潤;如果這樣東西,你有他有,大家都有,那么你可能賠本了。因此,沒有前途的不是技術,而是在于你自己是否懂得思變,懂得通過變化去獲得別人沒有的技能。順便說明一下,我既是一個搞技術的,同時我也是做貿易的人,我恪守道義。
為什么會出現“技術無用論” 呢?舉個例子,前一段時間,有一個公司讓我做一個項目,涵蓋一個基于Web的MIS、GIS和3D呈現的項目,價格是不高于5W,我評估了1天后拒絕了,因為這個項目要做下來的話,低于10W便虧本。但是為什么他們會出一個這樣的價格呢?因為是現在的應用系統價格實在太低廉了,同時,搞IT的人普遍的工資也是一般般的。技術無用的結論,從這種表面的經濟現象就可以看出來了,即技術是艱苦且廉價的。在世界上,所有的動物都是經濟學家。如果一個搞技術的人掌握的技能,其它人都會,那么你這項技能就不值錢了。有用與無用與技術本身無關,而是跟經濟學相關。
問題來了,技術如何有前途?從經濟學角度看,就是只有你掌握了絕大部分人無法掌握的技術你才能獲得比別人更多的收益。因此,答案你也發現了,技術如何有前途就是取決了你如何把握技能。一般來講,那些你通過正規渠道能夠學習的東西,別人也都能夠做到,原因很簡單,這在于人性。人是人他媽生的,大家都一樣,思維方式差別也不大,只是因個人經歷、教育背景等因素會有所不同。因此,你需要和一般做的不一樣,比如你學習更刻苦,你看問題角度不一樣,你選擇也和別人不同,凡是同質的東西一般來說競爭力都是比較弱的。獲取與別人不同的技能,需要因人而異,我無法提供一個統一模板。在我看來,學習是一個螺旋上升的過程,在剛開始階段螺旋半徑很小,上升也很慢,甚至感覺不到任何的提高,等積累到一定程度,螺旋半徑和上升速度會呈加速度提高。在此,我會描述一下我的學習經歷,與君共勉。
本科是在一個二流的二本學校上的,學的專業是計算機科學與技術。我的學習方法是,把時間集中花在聽講上,課堂時間充分利用,然后學以致用。我從大二開始學習VB,不過,學不懂。大三開始學習了數據庫原理,使用VC++編寫了2個MIS系統。這兩個MIS系統都是我給自己定的題目,一個是考試管理,另一個是學生管理。大三下學期學了了PB,然后又做了一個學生管理系統。大四上學期學習了ASP,然后做了黨員管理系統和就業管理系統。大四下學期學習了ASP.NET,做畢業設計課題,課題是基于Exchange Server 2003的工作流系統,我在這個項目上,把Exchange Server 2003的英文SDK翻譯了60%(我英語很爛,4級62.5,6級最高分46,到現在還沒有過六級),做成了一個工作流系統。在本科時期,我一直覺得自己很厲害,驕傲狂妄,因為我覺得我比一般的學生掌握了更多的技能。
研究生也是在同一個學校上的,學的是計算機應用技術專業。研一邊上課,邊幫別人做項目。當時做了2個工作流審批系統(都是16W的項目,我和另一個小伙一起做),基于學習的自動機理論和從Exchange學習到的工作流知識,設計了一個簡單的工作流引擎,并基于這個引擎實現了這兩個項目。研一下半學期,偶然的機會接觸了一個公司的智能體SDK,我對該公司的產品非常的感興趣,于是自己也思索如何設計。不過,我太菜了,不知道如何入手。于是,我就使用Reflector反編譯了所有代碼,然后打印出來分析,代碼大概有80頁A4紙。看完這個代碼,讓我感到很震驚,我發現自己和企業的差距是如何巨大了。因此,我使用了6個月時間分析了所有源代碼,然后自己獨立設計了一個新的Agent SDK。這個SDK比原來多了很多的功能。研二期間,導師讓我們做一個20W項目,共9個研究生。我又自學了Delphi,并設計了這個項目的框架和體系結構,這個框架我命名為Common Form Framework,他提供了一個可復用的主界面,基于Delphi Package技術,支持模塊化功能,從而能夠適用團隊協作開發。此外,由于這個項目的表單非常復雜,有一個表的字段是300多個,因為數據庫是委托方提供的,無法進行修改,我們只能按照要求做。如果使用普通方式開發一個表單的話,會有很多繁瑣的代碼來進行CRUD操作。于是,我發明了一個Control Relation Mapping(思路是基于Hibernate支持的ORM之上的),這個組件能夠使用自動生成的映射文件實現表單和數據庫雙向映射。在2006年的時候,我把它移植到C#。在研三期間,開始編寫畢業論文,論文內容是MIS體系結構。我設計了一個輕量級和企業級體系結構,這個體系結構以Common Form Framework為核心,Control Relation Mapping、Object-Object Mapping、ORM、Service Wrapper、IOC等組件為基礎。(PS:這一階段我學習和領悟了一些設計模式和OOP設計原則)
2007年研究生畢業,我到西安Sybase上班,使用Java開發Sybase Central的插件。于是我又自學了Java,并快速的適應公司的要求。2008年因工作需要,我開始自學了Flex,使用Java + Flex開發基于SCC的插件。在工作業余時間,我把研究生學習的東西進一步深入研究和探索,研究了CAB、OB等源碼,并找了幾個搞技術的師兄弟們,設計了一些小東西。目前,基于自己的東西,我成立了一個小公司,公司業務分為“A SaaS中間件; B 基于MAOP的技術培訓和中間件叢書; C CODEEYES網站; D 外包業務”,企業文化是“道法自然”。
在我目前經歷中,我有幾個很深的體會:(1)本科的時候很狂妄自大,實則非常的無知;(2)研究生畢業的時候,我感覺自己是剛爬出井口的青蛙,才突然發現計算機的知識是如此的豐富,我終于對自己有所了解了;(3)對我個人技能提高最快的是我看了別人的源碼,然后自己分析和重新設計;(4)真正有用的東西往往是被老師和一般人忽略的所謂的高級知識,其實所有的知識都是基礎知識,學習了基礎知識了,才能創新;(5)學習沒有訣竅,在于耐心,我對自己的定位是反應遲鈍型的笨蛋,我需要付出比別人更多的努力才能夠獲得自己想要的東西;(6)實時對自己進行反省,只有通過不斷的反省才能發現不足,在反省過程總,實時修正自己;(7)與人為善,待人真誠,明辨是非;(8)想要獲得想要的東西,方式方法有很多種,每一種道義的方法都是值得尊敬的;(9)只要是你擁有的東西別人沒有,那么這個東西就有用,不一定非得一條路走到黑,非得搞技術;(10)多研究點人性,這樣才能更好的為人處事;(11)很多事情,你都很難說那是對的還是錯的,即使到你死的那一刻,你都無法定論。這與小時候不一樣,因為那時候我們總的得出一個結論,就是那個人好這個人壞;(12)無知很可怕,千萬別認為自己知道的很多,認為自己很牛,如果有這樣的想法,一般都比較菜。
附件是Microsoft ObjectBuilder源代碼分析,通過這個代碼分析,我相信我們可以從微軟的這些高手們學到一些東西的。
不含病毒。www.avast.com |
留言列表