天天看點

職業規劃--- 專訪鄧凡平:從水利水電專業走向進階架構師的程式之路 專訪鄧凡平:從水利水電專業走向進階架構師的程式之路

專訪鄧凡平:從水利水電專業走向進階架構師的程式之路

2014-5-7 10:26| 釋出者: vincy西西1010| 檢視: 458| 評論: 1

摘要: 鄧凡平 資深Android開發工程師,對Android架構設計和實作原理有深刻的認識和了解,此外他對Linux核心、C/C++/Python相關技術,以及高性能網絡伺服器和多核并行開發等也有一定研究。 ...

  
職業規劃--- 專訪鄧凡平:從水利水電專業走向進階架構師的程式之路 專訪鄧凡平:從水利水電專業走向進階架構師的程式之路

(APKBUS配圖)

         鄧凡平 資深Android開發工程師,對Android架構設計和實作原理有深刻的認識和了解,此外他對Linux核心、C/C++/Python相關技術,以及高性能網絡伺服器和多核并行開發等也有一定研究。

    以下為小編對鄧凡平作者的采訪内容:

  

    APKBUS:請介紹下您自己(包括學習背景、工作經驗).

  

   鄧凡平:中科院電工所的研究所學生,大學是華中科技大學。讀大學的時候考過計算機二級,但是第一次上機挂了,補考才過的。

  研究所學生學的是超導磁體,搞得東西比較雜,比如低溫(液氮溫度,零下200多度)光纖傳感器,電磁場計算等。

  07年畢業後,第一家公司是中科大洋,從此開始IT生涯。這個公司是國内罕見的技術實力派公司,有20多年的曆史,在廣電行業傲視群雄多年。當年極端小白的我今天能有幸在這裡和大家見面,從源頭上非得感謝中科大洋不可。

  後來去了中科創達和疊拓,以Android技術為主。

  APKBUS:鄧老師,據了解,您在大學就讀的是水利水電專業,在碩士研究所學生的時候學習超導磁體,而現在您是一位專業的IT從業人員,什麼促使您走上IT之路?

  鄧凡平:其實原因很簡單,中科大洋能解決北京戶口。面試的時候,雖然專業不對口,但是讀書時的一些經曆還是說得過去,例如07年畢業前我還寫過一本到今天仍是有限元計算領域的暢銷書《ANSYS 10.0有限元分析自學指導》。是以面試也沒怎麼為難我就進去了。

  當然,進去以後,肯定是受過不少磨難,自己也需要付出更多努力。

  

    APKBUS:這一路走來,您從軟體開發中獲得的感悟是什麼?

  鄧凡平:先講一個經曆,去大洋大概3個月以後,做了人生第一個商業軟體。那個時候的小白程度如下:

  1 一個比較資深的同僚完成了一個webservice的轉碼伺服器,叫TCWebService。

  2 我的工作是完成一個類似的打包WebService,叫RCWebService。

  3 當時技術水準很弱,隻能照貓畫虎把TCWebService中的"TC"換成"RC"。......

  當然,随着對IT技術的慢慢了解,後續的技術實力提升就非常快了。現在回想起來,感悟很多:

  1 在工作中,大部分情況下,沒有什麼東西是學不會的。這一方面給了自己信心,一方面也在時時刻刻提醒自己要虛心。是啊,你能學會,人家也能學會,是以有什麼值得驕傲的呢?

  2 做事情要有方法,不可蠻幹。要多思考,多總結,才能少走彎路。

  3 雖然行業不同,但它們對工程師的素質的要求卻大體相同。例如學習能力,溝通能力,團隊精神,人生或工作态度等。是以,一時之間的技術水準可能有高低之别,但真正長久決定并影響工作或事業發展好壞的卻是這些基本素質。

  

    APKBUS:據了解,最近您推出了一本新書——《深入了解Android: Wi-Fi、NFC和GPS卷》,而這書是“深入了解Android”系列撰寫的第三本,也是該系列專題卷的第二本。這本書對Android學習者的專業知識有何要求?

  鄧凡平:這本書寫出來非常厚(我自己也沒想到,比卷1多了大概100多頁),看起來很專業,但實際上我寫的時候卻是一個初學者的水準。是以,讀者應該有信心和耐心。前面說了,我都能做到,你們肯定也能做到。我花了1年時間,年輕人更有時間和精力,半年時間就應該能從小白到這本書的水準了吧?

  我在寫本書的時候,也經常考慮讀者學完這本書以後能幹什麼。我自己是很有困惑的,是以和審稿專家有過一番讨論。在書的附錄中,網頁位址為:

  http://blog.csdn.net/innost/article/details/20280565

  另外,這本書的來曆也有些故事,見http://blog.csdn.net/innost/article/details/21557989

  APKBUS:關于Anroid學習的圖書中,您的書一直深受大家的喜愛,先是之前的兩本“深入了解Android”,現在這本新書也很受大家關注,那接下來,您還有著其他新書的計劃麼?

  鄧凡平:寫這種大部頭的書太耗費精力了,有悖目前移動網際網路時代所強調的小步疊代,及時回報的精神。接下來有時間的話會完成一些前瞻性和基礎性技術的研究,然後發些部落格,幫助讀者在1-2周内就能掌握其技術脈絡和基礎理論。目前已經完成關于SELinux的文章3篇,見http://blog.csdn.net/innost/article/details/19299937。

  

    APKBUS:您從事Android方面的研究有很多年了,對Android也有很深的了解,以您的了解Android是一種怎樣的結構?此外,您對Linux核心、C/C++/Python相關的技術,以及高性能網絡伺服器和多核并行開發等也有一定的研究,你覺得Android和他們之間有何關系?

  鄧凡平:除了Android外,其他所列的知識都是在大洋公司掌握的,尤其是高性能網絡伺服器的開發,對後來寫幾萬行左右的C++程式非常有幫助。

  從知識的角度來看,雖然它們看起來完全不同,但其設計思想基本相通。舉個例子,08年我們開發網絡伺服器時,也是采用的程序間通信。例如(同一台機器上)A程序通過socket給程序B發送一串指令,程序B解析這個指令,然後去執行對應的操作。大資料傳輸則是通過在程序A和程序B之間建立共享記憶體來完成的。

  再看Android 的Binder,二者是不是有異曲同工之妙?是以,在很多時候,我們碰到的具體内容在表象上截然不同,但其本質卻并無多大差别。

  是以,這對我們工程師有了進一步的要求,那就是知其然,還得知其是以然。這樣才能做到融會貫通。

  APKBUS:現在很多軟體開發者想成為一位優秀的架構師,而您作為一名進階架構師,談談對軟體架構師的認識?

  鄧凡平:1. 雖然每個公司定義架構師的職責都不相同,但架構師也需要具備一些基本技能:較為廣博的知識面。這項技能對團隊組建尤為重要,因為你得知道哪個子產品是短闆、哪個子產品是核心。

  2. 要有不斷學習和改進的欲望。

  3. 某個時間、某個階段要能迅速明确目标。知道要做什麼,比知道怎麼做有時候更重要。

  APKBUS:據了解Android系統架構對程式員很重要,那麼開發者在學習這一過程中應注意哪些問題?

  鄧凡平:學習的方法論很重要,我在之前的訪談中都多次介紹過,讀者不妨看看:

  http://www.csdn.net/article/2013-05-02/2815118。下面是一些摘要:

  我的學習方法是以點帶面,建立自己的知識結構。例如,工作中,往往隻需要集中全力解決一點或幾點問題就可以了。但這些點背後一定有一個較完整和深入的知識結構。是以,工作做完後,還需要繼續學習背後的知識結構。以多核并行開發為例,09年做了一個FTP伺服器,用到了多線程網絡開發的技術,工作内容很快就定型了。但我覺得多核并行開發是一門新興的技術,而我不想停留在僅會熟練使用多線程API這種程度,是以後續還花了不少時間去研讀多核并行方面的專著。是以,我覺得不管讀者是在開發自己的産品也好,還是在修改bug也好,一定要努力從工作中提煉、積累出一個完整的知識架構。

  這個方法說起來簡單,做起來還是有點困難。因為它要求工作之後還得投入大量時間學習,把知識點串成面。而且,學這些知識的好處一時半會很難展現,需要耐心。

  APKBUS:如何在競争如此激烈的移動網際網路環境中保持和提升自己的核心競争力呢?您有沒有什麼意見或者建議給Android學習者?

  鄧凡平:IT行業裡要學的東西非常多,更新也很快。每個人都有不同的學習和解決問題的方法。心态很重要,希望大家能保持“stay foolish, stay hungry”的心态

  APKBUS:不同的Android開發階段,需要掌握的知識也不同,更清晰的了解自己處于哪一階段哪一水準對開發者來說很重要,您可否對學習Android的開發者提供一個發展規劃呢?

  鄧凡平:做了2年的framework,感覺這一塊已經進化很好,比較完善了,從知識汲取的角度看,也沒有太多新意了。是以去年就花了一年時間學習點門檻較高的WiFi,NFC和GPS。從我自己的經驗來看,開發者應先完成基礎知識的學習,這個階段的目标是掌握的知識越廣越好。然後在此基礎上再選擇一個有門檻,有發展前景的專業方向進行深挖。

  我其實希望讀者能跟随《深入了解Android》這一系列書籍一塊成長和發展。我在《深入了解Android系列書籍的規劃路線圖》一文也提到過。不知道親愛的讀者有沒有跟上這套書的腳步呢?

  APKBUS:現在,您是怎麼配置設定一天的時間的?

  鄧凡平:健康很重要,是以一周必須有2-3天花2個小時去健身房鍛煉。

  平常的話,下班後就繼續看看書,學習點新東西。雖然每天時間都不多,大概1個多小時,但每天都能堅持如此。近7年下來,讀者想想整個時間累積起來該有多少呢?是以,積累很重要,堅持也很重要。

  APKBUS:在移動網際網路時代,Android系統占據一席之地,Android的發展衆說紛纭, 你是如何看待Android的未來?

  鄧凡平:Android将來很重要的一個發展方向是向企業領域進行拓展。在這一塊,三星是走在最前面的,例如它積極實作美國國防部制定的移動裝置管理規範,http://iase.disa.mil/stigs/net_perimeter/wireless/smartphone.html。在此,很希望國内手機廠商能早點布局,少說多幹。