天天看點

2010年終總結--技術篇

2010年行将結束,按照當年中國小老師的規矩,是做年終總結的時候了。

很多年沒有做過總結了,有些生疏了。。。

還好,這個隻是技術篇

2010年, 我換了一個城市,換了一個公司,依然從事着軟體開發的工作。從最初的興奮,到現在的平淡;有一些收獲,有一些失落,有一些彷徨,有一些不甘。。。

好吧,專注談技術。

應該說,2010年技術上有所進步,自我打個65分吧,壓線及格。程式員要有條理,分類來說,有下面方面:

1.    Web

想涉足Web已很久,終于在2010年跨入門檻(好吧,我承認隻跨入了一隻腳)。從對Web基本不了解,到對Web基本了解,是過去一年裡自我感覺收獲最大的東西。進入新公司後因為項目需要,我開始比較系統的學習了Asp.net。在初步了解Asp.Net後,你會覺得這個東西很強大的:上手容易,開發環境完善,對象設計良好,跟WinForm一緻的開發模式。。。

最開始使用Asp.net是幫朋友做一個大學畢設的聊天室程式。那時随意的使用UpdatePanel這個控件,造成了我對Web開發的最初了解:不用使用Javascript,不用理會浏覽器,原來Web開發如此簡單。。。

後來公司項目中需要Web,我更深入一些學習了Asp.net。我們在項目中應用了好幾種Asp.Net控件:包括Farpoint Spread,ComponentArt Web,Asp.Net Ajax Control Toolkit等等。。。我開始了解Ajax的複雜和強大了。當然,這隻是建立在第三方控件的基礎上。在很長一段時間裡,我們滿足于使用這些控件。其結果就是,在我們那個功能簡單web界面上,你可以看到各種風格和效果的控件,反映遲鈍,缺少提示。。。再後來,學習了JQuery,開始試着使用Javascript來直接調用背景服務實作Ajax。體會到了JQuery的優美和強大,我積極的将JQuery引入到我們的項目中,用它來取代之前的各種Asp.Net伺服器端控件。回過頭來看,才能了解Asp.net的笨拙和低效。現在如果從新做一個Web項目,我會盡量排除Asp.net的控件。

2.    .Net

在過去的一年裡,我比較積極的學習了幾種.Net背景技術和架構,比較重要的包括:Entity Framework,WCF,WF和F#。這些東西都跟項目有一些聯系,但主要的動力來自與對項目代碼品質的不滿,以及一個熱愛技術的人所應有的探索精神。在閱讀前人留下的代碼時,我看得真是愁腸百結,有一種強烈的不滿壓在胸中:随處是手工複制粘貼的代碼;随意的捕獲異常而不進行處理,心不在焉的寫着沒有意義的函數(如 return ”bad code".ToString()),更别提混亂的代碼結構和軟體架構(或者根本就談不上架構)。最讓我無法了解的是他們會把資料庫的字段名在C#裡重複了那麼多遍(我可以确定是純手工的複制)。。。強烈的不滿下我學習了Entity Framework,然後用Entity Framework做了一個基本相同功能,但是架構清晰的多的原型程式給他們看,結果。。。(好吧,這個超出了技術的範疇)

基于同樣的理由,我學習了WCF,(之前的項目使用了.Net Remoting技術)。并且結合Entity Framework和WCF做了如上所述那個原型。結果。。。(同上)

       在公司上一個項目結束的時候,我們更新到了VS2010,.Net平台下的新技術又撲面迎來。趁着事情不多,我抽空學習了一些相對無關的技術,給小組安排了幾次Knowledge Sharing。其中一個主題是New Features in .Net4。為了準備Knowledge Sharing,我比較認真的學習了WF和F#。雖然至今仍然停留在學習的水準(沒有用這些技術做過像樣的程式來),但是我仍然覺得收獲頗豐,有XXX牛人曾經說過類似這樣的話:重要的是不是技術本身,而是思想。

3.    架構設計

如前所述,為了證明自己的觀點和技術,那時我需要寫一個原型程式。我需要一個足夠Professional的架構,圖紙和代碼來展示我的程式。為此我花了一些時間學習UML設計,下載下傳了一些文檔學習如何寫軟體設計文檔。我先繪制了高層的軟體結構圖,然後開始搭建軟體子產品,讓最基本的行為先運作起來,我嘗試着使用疊代的方式來實作程式。我一邊驗證着技術上的可行性,一邊考慮架構的合理性、擴充性。在夜深人靜的時候體會着程式設計的快感。又有XXX牛人曾經說過類似這樣的話:多實踐。在投入了一個半月的業餘時間後,這個迄今獨立完成的最複雜的程式小功告成。(其實作在看來,也實在是沒有多少難度的),其結果。。。(如上)。但我仍然受益非淺,感覺自己離真正的架構師更近了一步,說話也更有底氣了。 

4.    開源技術

在過去的一年裡,從JQuery開始,我逐漸的接觸開源技術,從開始的抗拒到現在的向往,我相信,作為一名技術人員,我的心态在慢慢成熟。我更加頻繁的通路wikipedia (對不起Jimmy Wales,等我有錢了一定資助你們。。。),去了解.Net以外更加廣闊的天地,我也是這個時候才知道Apache和GPL協定的差別。從前隻抱着.Net而排斥其他技術的心态現在看來是幼稚的。架構師仍是我的目标之一,要成為架構師,了解多方面的知識必不可少。(否則,當另外一個家夥在了解多方面知識的基礎上,提出他的解決方案,你如何表示贊同或者反對呢?呵呵,當出現這種現象時,你的架構師恐怕就得退位讓賢了)

在初步學習了.Net 平台上的F#之後,我抱着極大的熱情又了解了其他的函數式語言, Python因為其結構簡單,應用廣泛而成為我的學習目标。(呵呵,其實學習Python還隻是最近的事情。現在學習效率慢啊。。。想當年C#學習一個禮拜就可以開始應用了,哀)。我下一步的計劃是學習Django架構,體驗一種跟Asp.net完全不同的方式來寫Web程式~

5.    項目管理

這回我确定,有個XXX牛人說過,不想做項目管理的程式員不是好程式員。我相信我是一個好程式員,是以我這方面也不能落後。我不太善于人際關系,但這也不會成為做不好項目管理的理由。前一段時間看到一篇文章非常有感觸,貼出來共勉:

我先說說我的管理理念,我認為第一件事就是将“管理”這兩個字扔了,沒有人願意讓别人管的,是以你的企圖去管人就已經讓你進入困境,作為上司,重要不是學習什麼管理技巧,而是要掌握正确上司者應有的心态,那就是以幫忙自己下屬成功為自己的成功,沒有這個心态,你整天隻會在一些人際關系裡面折騰

http://blog.qq.com/qzone/117733/1293116643.htm

(BTW,我理想中的人際關系應該是簡單、透明而真誠的,懷念在AD的日子,做夢都想去Facebook那樣的地方)

好了,書歸正傳,在過去的2010年裡,我也在有意識的提高自己項目管理的能力。這一年,我切身體會了另一種公司文化,我曾經渴望變化,卻又對變化失望。當然,樂觀的看,也是一種動力。我嘗試将上一家公司的先進方法帶到這個公司,我努力做的professional一些,希望我的行為能夠正面影響其他同僚。我學習控制自己的心态,告訴自己要能夠以開放的态度接受别人的批評。我學習感激他人,從每一個人身上發掘優點,為我所用。我默默的實踐着自己心中的管理哲學,那就是作為一個上司者,是要以自己的能力和品德,别不是其他,來感染他人。有更賢者,應主動讓位,自己更賢者,應當主動請職。我也告訴自己,需要的時候要毫不謙虛的站出來,如前經理所說的那樣:想要Outstanding 先要Stand out。不是有那麼一句話麼:當理想遭遇現實的時候,XXXXXX。于是,我在學習着Standing out的同時,我也學習着收斂,沉澱,提高自己。

2011年已翻開第四頁,新的計劃還需細琢。希望自己可以保持幻想,保持熱情,保持健康。期待新的一年裡有新的變化,期待在技術的山坡上站得更高,尿的更遠。(XXX牛人說過:站得高了,便沒有坎。)

2011 大家共勉勵~

繼續閱讀