在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

一名70后程序員是如何一步一步成為Motorola的軟件架構師的

工程師人生 ? 來源:工程師吳畏 ? 2019-02-27 13:54 ? 次閱讀

年齡是一個永恒的話題,不論是演員、運動員,或是身邊的程序員。歲月帶來了經驗上的積累和慮事的周全,但也帶走了年輕時候的體力和沖勁。

技術變化太快,大齡程序員對新技術的興趣、學習和接受能力可能不如以前,年齡成為大齡程序員走出舒適區最大的障礙之一。

但我們身邊總會有一些年齡雖長,依舊保持樂觀、皮實、自省的前輩,不斷的進行自我迭代,跳出舒適區,我想,這是否就是技術成長道路上最為關鍵的品質?

本文整理自70后程序員至簡于2012年底寫的一篇博客,時間雖然有點久遠,但文中內容從現在來看,似乎比6年前更為受用。

時至今日的職場生涯中,每當我與同事分享自己的成長經歷,總會有人為之振奮(希望你讀這篇文章時也能感受到),或許以我的成長經歷作為本文的寫作主線是一個不錯的選擇!

通過這篇文章,你可以看到一個1997年畢業的大專生(畢業于南昌水利水電高等??茖W校,現更名為南昌工程學院)、一個在高二時英語還只考29分的人,是如何一步一步成為Motorola的軟件架構師的(至簡目前就職于阿里巴巴中間件團隊)。

在繼續讀下去之前,讀者應認識到一點:個人觀點的獨特性與自身的成長經歷有很大的關系。因此,千萬不要盲從,而應時刻保持一種批判接受的態度。

或者說,你得有自己的觀點,你(也只有你自己)得對自己的職業發展負責!另外,文章主線是自傳形式,如果你對我的成長經歷不感興趣,可以快速地略讀,只關注文中highlight的24點職場感悟。

學生時代

故事的開始得從大學以前開始。從小受“學好數理化,走遍天下都不怕”觀念的影響,我認為只要學好數理化就行了,所以偏科很嚴重,高二時英語還考過29分。那時也不愛讀書,高三時,別的同學在復習,我卻在看《晶體管技術》這類電子技術書。這種狀態,直接的結果就是第一次高考落榜了。

落榜的那個暑假,父母為我的出路沒少操心。在一天早晨刷牙時,當我媽對我說希望我去復讀時,我當時腦海里想“能像表哥那樣考上大學那該多好??!”,在這個念頭驅使下,我答應了去復讀。從那天開始,我頓悟了,真正知道自己要什么了。在復讀的一年里,我學到的一種重要能力是— 自學,這為以后大學乃至職場學習打下了很好的基礎。正因如此,我想給出:

我的職場第一感悟:自學能力是競爭力之本。

經過復讀,高考總成績提高了100多分,但也只夠??凭€。最終,我被南昌水利水高等專科學校錄取,專業是“供用電技術”。這個專業相信很多人不知其然,其實就是電力自動化的變種專業,其專業內容主要是電站、發電廠高電壓的繼電保護技術。

大學讀書期間,我開始有與人在成績上一爭高下的念頭了,加上復讀一年所獲得的自學能力,以及自己的努力,學習相當輕松,尤其是只要與電子技術沾邊的課程,都能輕松地拔得頭籌。三年共六個學期的學習,我拿了五個一等獎學金,一個二等獎學金。畢業時,我是系里唯一的一名優秀畢業生。期間通過了大學英語四級考試和計算機二級考試,獲得了江西省電子技能比賽一等獎。需要提及的是,在大學期間所學的與計算機相關的課程只有:《電子技術基礎》、《計算機組成原理》、《計算機軟件基礎》、《單片機技術》和《Basic編程語言》。

第一份工作 - 電氣設計工程師

在大學期間,我還完成了人生很重要的一件事 — 找好了現在的妻子。由于她是浙江人,所以畢業時工作地點毫不猶豫地選擇了杭州。那時很多同學的工作還是包分配的,而我來到了杭州的人才市場進行雙向選擇,那時找一份工作還是相對輕松的(注:我們大學錄取那年的招生人數是90多萬),投出一份簡歷就找好了工作。第一個工作單位是一家不到100人、地處杭州花港觀魚對面(三臺山)的電力設備制造民企。

盡管選擇去這家民企后立馬到公司去做了實地調查,但由于沒有社會經驗,加上被問的人沒如實反應,所以進入這家民企后所了解的情況讓人大跌眼鏡。另外也了解到單位會通過一些不入流的做法控制我們的戶口,不讓我們跳槽(那會兒的戶口還是相當重要的,結婚要戶口證明,有同事就因為戶口被控制而登記不了)。而我們在進入這家單位時簽訂了六年的勞動合同。在這樣的小企業干上六年意味著什么?!當時與家人打電話告知這一狀況時,我都哭出來了(就在現在楊公堤與虎跑路交叉的、現早已不存在的一個電話亭里,記憶猶新呀?。?。

盡管前途是那樣的渺茫,但帶有“優秀畢業生光環”的我仍堅信自己能做得比別人更好,因為有我的:

我的職場第二感悟:自信能讓你與眾不同,盡管有時的自信有點莫名其妙。

在這個企業一開始的工作職責是電站設備的電氣設計工程師,需要AutoCAD(到單位后學的)設計電氣圖紙,并指導工人最終完成電氣設備裝配及調試。

期間,企業經營范圍擴大,需要從事電子設備的生產,因此我開始有機會接觸電子技術方面的設計工作。

在兄弟單位一同事的幫助下,在一個星期內我掌握了如何用Tango(后來更名為Protel,現在的名稱是Altium Designer)進行原理圖和PCB線路板設計。

而且,這一個星期的設計結果最終成為了電氣產品的一個部件。對于一個畢業不到一年的我來說,這是不小的進步。那時知道了什么是網絡表、過孔、焊盤等,掌握了很多電子原件的工作原理(有的還自己用面包板做實驗),明白了做電路板的大致業務流程,還能動手焊接電路板,熟練運用示波器萬用表進行調試。

那段時間,我對電子技術的興趣幫上了大忙,學習起來遠比別人快。當我精通電路原理,能自如運用示波器和萬用表調試電子產品時,別人卻還不明白我的調試動機。

我的職場第三感悟:興趣是學習效率的催化劑,培養自己的職業興趣。

第一次真正對編程感興趣是從知道PLC(Programming Logic Controller)開始的。當時的電站設備采用了三菱的PLC,為了配合這一電氣產品的需要,企業社招了一名懂PLC編程的工程師。

由于老板擔心我們相互學技術而“翅膀變硬”,所以明確提出工程師所掌握的技能不能互通有無。

當時看到這位兄弟能通過“梯形圖”改變PLC的行為,真是覺得他太神氣了,仰慕不已。后來通過這位兄弟的私下幫助(哥們呀?。?,我晚上偷偷地在廠房里面學習PLC編程。

為了獲得良好的學習效果,我設定了對電氣產品的PLC程序進行重寫的目標,且最終達成了這一目標(當然,由于這個目標不能讓老板知道,所以我的PLC程序不能用于商用)。

我的職場第四感悟:學習應給自己設置虛擬的項目目標,以做項目的形式提升學習效果,只有這樣學到的內容才會深入而實用,切忌無目標地學到哪算哪。

從電氣產品的技術負責人到軟件工程師

一年多的功夫,我成為了某電氣產品的技術負責人,對整個產品的所有技術細節都了如指掌,我帶領了其他幾個工程師實現了該產品的“自主研發”。

有趣的一件事是,老板當時并不知道我已經“翅膀硬了”,想抵賴答應過的8000元項目獎金,年輕氣盛的我在與之拍完桌子之后對其他工程師下令:“沒有我的允許,誰也不能將電氣圖紙和電路原理圖用于生產”(因為年經,所以二?。?。對抗的結果以老板兌現承諾而告終。

我的職場第五感悟:話語權首先來自能力,而不是職位權力。

我那時還學會了CRC算法并將之運用于PLC的串口通訊中,但對于計算機如何通過串口與PLC通訊獲得采集數據存在很大的好奇心。

于是想到了學習編程語言,并計劃做一個能在計算機上實時顯示PLC所采集數據的軟件。

在向PLC編程的兄弟表達了這一想法后,他給我的建議是:學習C語言比較難,Basic語言則更容易。于是,我毫不猶豫地選擇了自學C語言,因為我深信:

我的職場第六感悟:難學的技能一旦掌握更具競爭優勢。

也正是從那時開始,我真正開始了成為軟件工程師的自學旅程。那時比較幸運的是,單位專為我配備了工作電腦,所以具備了自學的硬件條件。

由于那時Internet還不普及,學習書籍都來自浙江大學的科海書店(后來眼見著它的店面越來越小,這也是進入電子商務時代的一個縮影),那時隔三叉五地到科海去找書,生活最大的花費就在于購書(那時這方面的書不少是質次價高)。

當然,學習的過程或多或少還得瞞著老板。那段時間,別人午休我就編程,除了看書和做書后的習題,還一直朝實現自己的計算機監控軟件這個目標邁進(參見我的職場第四感悟)。

終于有一天,我用Turbo C在DOS環境下實現了具有串口通訊功能的、基于圖形界面的監控軟件(如果你用現在的眼光看那個軟件,一定會說“很土”)。

當我樂此不疲地向他人演示時,你可以想象我那時有多高興和自豪!這種小小的成功助長了我的信心,也讓我感受到了:

我的職場第七感悟:用階段性成果不斷增強自己的自信,且最終支持自信的是能力,而不是自大。

嘗到了成功甜頭的我隨后拓展了自己就軟件開發方面的學習內容。那時的我已經下定決心要向軟件開發方向發展,這種選擇是因為:

我的職場第八感悟:做自己喜歡的事,如果那是自己的興趣最好。

我的第一份專職軟件工程師工作

1999年的某月,在企業拖欠了一個月工資的情形下,“蓄謀”逃離企業束縛的我們(共19個工程師)經過幾個月的勞動仲裁后,與企業解除了勞動合同。

在離開這家民企的第二天,1999年11月的某天,我在浙江大立機電技術開發公司(即現在的大立科技。后面都簡稱為大立公司)找到了第一份專職的軟件開發工作。我逃離束縛后能很快地找到新的支點,完全得感謝我的:

我的職場第九感悟:不論身處多么困難的環境,即使覺得前途渺茫,也不要放棄學習,否則就是“自斷筋脈”。

在大立公司所參與的第一個軟件項目,是使用Visual C++從事Windows某變電站圖像監控桌面軟件的開發。

盡管我之前自學過C++語言,但那時并未完全掌握面向對象編程,尤其是其中的多態。

我在該桌面軟件中借鑒微軟的示例軟件DrawCli,獨立地實現了電子地圖功能。

正是通過掌握這個示例軟件的設計與實現,我真正領悟到了面向對象設計的好處。

也通過該圖像監控桌面軟件的開發經歷,掌握了Windows VxD驅動開發、Socket通訊、多線程編程、圖像處理(銳化、偽彩處理、圖像字符識別和圖像對比等)、ODBC數據庫編程(用的是SQL Server)等。

這里要插一個與我妻子相關的小故事。她是我大學的同班同學,畢業以后進了諸暨供電局從事農網預算工作。

我在第一家民企工作時,時常往返于兩地,有時覺得很是辛苦。另外,妻子在供電局安逸的工作環境下,時常會開玩笑說老了要是下崗了都不知能干什么。

在我進入大立公司不到一年的時間里,我向公司提出了可否讓她到公司來從事軟件開發工作。

當時在我妻子沒有任何面試和編程經驗(她當時只自學了譚浩強老師的《C程序設計》和一本C++的書,忘記書名了)的情況下,公司讓她過來了,我想這是緣于公司對我的器重(這里要謝謝龐總和章總兩位老總!)。

自然,我成了妻子學習編程的老師。我的岳父岳母當時對于妻子放棄供電局的工作盡管不舍,但還是尊重了我們的想法,謝謝他們的開明。支持我們做出這一決定,除了為了解決兩地分居問題,還有:

我的職場第十感悟:長期安逸的工作意味著將來更大的風險。

我在大立公司的職業機遇

在妻子進入大立公司不久,由我擔綱了新版圖像監控軟件的重新開發,這是我第一次擔任軟件項目負責人。

在這個項目上,我可以從技術層面盡情發揮,將我在老版本軟件上所看到的設計不足完全克服。

也正是通過這個軟件項目,我的面向對象編程能力有了很大的提高,而且完整地做過了一個軟件產品。

用我現在的眼光來看:那時的開發工作除了引入了版本控制軟件外,是不折不扣的作坊式軟件開發;至于管理技能的提高,也可以說是微乎其微。

2000年底,大立公司因為業務拓展的需要,需開發嵌入式圖像監控系統(系統中的前端產品是后來數字硬盤錄象機的前身)。

為此,公司社招了一位比我年長十歲的資深硬件開發工程師,他在進公司時已經有基于AMD的Elan SC520 x86嵌入式微控制器的硬件開發經驗。他在進公司之初與章總交談時指出:“做這類嵌入式產品,需要軟件功底非常強的人”,章總的回答是:“你放心好了,我一定找一個最好的人與你搭檔”(章總后來告訴我的)。

是的,所找的那個人就是我!而其實那時我只有用Visual C++從事Windows桌面軟件的開發經驗,可見公司領導對我能力之信任!

我的職場第十一感悟:機遇很重要,但你得有能力才能抓住它。

我當時所面臨的技術挑戰,讀者可以想象。要知道,在2000年時基于x86微控制器嵌入式系統的開發人員國內還很少。

我的自學能力、電子愛好的興趣在這種挑戰面前又幫了大忙。

其實,做嵌入式系統開發最主要的是參考各種資料以便掌握各類技術細節,這得通過大量地閱讀芯片手冊、用戶手冊,以及研究AMD在其官網上所提供的示例程序。

在這個過程中,就技術困惑堅持探究和養成各種好的工作習慣(思考習慣、筆記習慣、總結習慣、閱讀習慣)非常重要。

我的職場第十二感悟:職場首先比拼的不是智商,而是堅持與好習慣。

我獨自完成了該嵌入式前端產品上的軟件開發工作。

其中包含的大致技術內容有:從編程的角度精通x86處理器架構; PCI、IDE硬盤、網卡、串口、閃存等總線或外設的驅動;

實時操作系統內核的移植工作;MINUX操作系統的文件系統的移植; XINU操作系統的TCP/IP協議棧的移植工作。

移植工作往往會碰到各種技術細節問題,等移植工作完成,對被移植模塊的實現和背后的原理也已了如指掌。

正應如此,這一時期的工作讓我對操作系統的實現原理有了很深的理解。

除了軟件方面的進步,我在大立公司時的硬件知識也得到了很強擴充。不僅能輕松地閱讀數字電路原理圖,還自學了VHDL語言,使得拿到邏輯器件CPLD的VHDL程序就能調試軟件(通過VHDL程序,可以了解編程所需的譯碼端口、相關信號的操作時序等)。

還學會了如何使用邏輯分析儀輔助軟件調試工作。前面提到的這位兄長式硬件工程師調侃我說:“你讓我看到了中國軟件的希望!”,而我將這話當成了對自己的鼓勵。

另外,這期間還考入了浙江大學專升本的通訊工程專業,給自己充電(2001年入學,2004年畢業,獲多學期“優秀學生”和“優秀畢業設計”)。

入職 UTSarcom

由于大立公司是浙江省測試技術研究所的子公司,它或多或少帶有事業單位的氣息。加上公司的技術舞臺有限,以及妻子也在同一家公司工作,我于2003年4月份左右離開了大立公司。

在我離開之前,浙江省科委已批復了公司的申請,分配給我一套福利房。在我離開之時,房子仍在建,不少同事對于我的離職很是不解,也勸我拿到房再走。但我有:

我的職場第十三感悟:當短期利益與長遠利益無法得兼時,選擇長遠利益。

在大立公司工作期間,很希望自己能入職UTStarcom這樣的通訊企業(那時的UTStarcom是多么地輝煌!)。

計劃離開大立公司之際,我向UTStarcom提交了求職簡歷。這次求職開始好像很順利,但到我真正入職UTStarcom的過程卻很是曲折。

一開始當我收到UTStartcom的面試通知時,可能太希望能進入這個公司了,在沒有很深入了解這個崗位的前提下,就去面試了,且馬上拿到了Offer。

但后來才了解到,我拿到的是生產部測試開發崗位,與實際研發部門是有區別的。

當時很糾結 — 這是我想進的公司,但卻不是我想要的崗位。如果拒絕生產部的Offer,我很有可能與UTStarcom無緣。

考慮再三,我還是選擇了拒絕(參見我的職場第十三感悟)。并重新向研發部門投了簡歷。

經過度日如年的一個多月等待(那會兒剛好發生了SARS疫情),在覺得入職UTStarcom研發部門無望的情況下,我入職了另外一家小公司。

令人意外的是,在入職那家公司的第二天,我收到了UTStarcom研發部門的面試通知。在HR面試的那一輪中,HR對我說,“你是我所面試的人中最有工作激情的”。

那時的技術面試官中,其中一位是我日后入職后的上司 — 夏青,他是我的伯樂。

由于我的學歷問題,在技術面試通過后,別人只要一位VP面試通過就行,我卻需要兩位。

我的職場第十四感悟:學歷是很重要的敲門磚,即便你的能力很強;學歷盡管很重要,但能力才是最終的通行證。

2003年6月份左右,我正式入職UTStarcom研發部,從事小靈通基站控制器(后面簡稱為基站控制器)的軟件開發工作,也從此踏入通訊行業。

入職之初,由于自認為對于操作系統的原理很精通,又完整地做過軟件項目,有點飄飄然,覺得自己是個“小牛牛”。

然而,入職后一接觸工作就發現,內容沒有想象的那么簡單!

首先,基站控制器的軟件規模比我以前主導開發的項目要大很多,而且需要熟悉通訊行業的相關信令。

其次,盡管我那時精通x86處理器,基站控制器用的卻是PowerPC 8250,這意味著我得重新掌握它。再次,實時操作系統用的是前美國軍方的、開源的RTEMS,那是我第一次接觸。

最后,UTStarcom的工作語言是英語,寫文檔和郵件都得用英語。盡管我那時能無障礙地閱讀MSDN和各類芯片手冊,但要著手寫,卻是一大挑戰(口語不作要求,因為不需直接接觸老外)。

一入職所分配的工作是網元網管部分告警抑制軟件模塊的開發。

盡管PowerPC處理器和RTEMS操作系統技術細節的掌握與否并不影響日常開發工作,但我仍將掌握它們作為自己的努力目標,因為:

我的職場第十五感悟:技術細節掌握得越深,解決問題時就越能游刃有余。

那時工作時間應付日常開發工作,業余時間則先將精力集中放在熟讀PowerPC 8250處理器相關的技術手冊上(晚上還得上夜大)。加起來超過2000頁的英文資料,我讀了不少于3遍。

隨著時間的推移,當我對PowerPC 8250處理器很有感覺之后,我將工作重點轉移到了熟悉RTEMS操作系統的實現細節上。

先處理器后操作系統的學習安排,是基于我以往在x86處理器上的工作經驗而得出的,也是因為:

我的職場第十六感悟:技能的發展應采取深度先于廣度且交替進行的方式,只有這樣,面對大量的新知識才能更淡定。

RTEMS是一個類UNIX的實時操作系統,也正因為接觸這個操作系統我才意識到了自己在軟件設計能力上存在很大的提升空間。

盡管我對操作系統的實現原理胸有成竹,但卻無力于構建一個象RTEMS那樣優雅的操作系統,也真切地體會到了RTEMS的設計之美。

那時基站控制器上運行的RTEMS操作系統是由美國的新澤西研發中心移植好的,杭州研發中心只需在之上做應用開發。

為了就RTEMS操作系統獲得更好的學習效果,我又一次運用了我的職場第四感悟,設定了自己完成RTEMS新版本移植這一目標。

RTEMS新版本的移植工作雖不在公司的日常工作范圍內,但卻得到了上司的支持。

由于那時RTEMS還在開發新的功能,并不是很穩定,在移植過程中碰到各種奇怪的問題,有些問題還與GNU的binutils工具集有關(binutils中包括nm、ld、objdump等工具。RTEMS是用GCC編譯的)。

在無法確認是GNU工具集的問題之前,我甚至還向Wind River公司(其知名產品是VxWorks實時操作系統)尋求過幫助,因為那時用的是它的JTAG仿真器。

移植工作雖曲折,但最終還是成功了(我所移植的版本并沒有運用到產品中,后來的同事又做過了RTEMS4.6.0pre4的移植,且運用于產品中)。

這一移植經歷,讓我對GNU的binutils、RTEMS操作系統的實現有了更為深入地掌握。

在UTStarcom工作的前期,我大多從事的是RTEMS操作系統相關的代碼維護工作,工作內容除了OS內核,還包括FTP、Telnet等協議。直到中期轉為做E-Box產品的互聯網接入模塊的開發工作。

E-Box是一個企業級電話交換產品,其中還存在一塊基于ADSL的互聯網接入數據板(與現在的ADSL貓功能一樣),用于實現企業網對互聯網的數據接入功能,這一數據板使用的是VxWorks5.5.0實時操作系統(PNE 2.0),處理器是Intel的XScale IXP425。那時VxWorks的IP協議棧還是基于BSD的,但Wind River對之做了一定增強。

這段時期我的工作重點全在IP協議棧上(《TCP/IP詳解》這套書幫上了大忙)。

這一時期的開發經歷,讓我對PNE的Bridge、FastPath、MUX、PPPoE協議、Radix路由算法和VLAN協議很熟悉,也學會了用SmartBit儀器和Chariot軟件做網絡性能測試??傊?,讓我對IP(v4)協議棧方面的知識和軟件實現有了長足的進步。

E-Box產品數據板上的開發工作進行了半年后,管理層決定放棄,于是我被調到了E-Box產品的軟件平臺組。

那時平臺組剛好面臨一個比較麻煩的問題 — 在命令行上運行reboot命令后,有時會出現整個系統掛起,而不是期望的重啟。平臺組的同事花了一個多星期的時間仍沒有解決這一問題。

進入平臺組之際,同樣是在沒有任何人安排的情況下,我自己主動承擔解決reboot命令功能異常的工作。在我的職業生涯中,我一直熱衷于去解決別人難以解決的技術問題,因為:

我的職場第十七感悟:越難的技術問題,其所蘊藏的知識越豐富,也越具學習價值。

經過一天半的時間,問題被解決了。其根源在于,reboot之前沒有禁用CPM協處理器。

我能那么快地解決這一問題,完全是因為之前熟讀過PowerPC 8250處理器的資料。

我在UTStarcom工作的后期,致力于ACE在E-Box產品中的一些應用,借助ACE的網絡通信功能幫助實現在Windows平臺上通過Visual Studio調試E-Box產品。

我在《專業嵌入式軟件開發》一書的《可開發性設計,一種高效且經濟的開發模式》一章中所闡述的內容其實就是這一工作經歷的總結與延伸。

另外,我還在E-Box產品上做過難度比較大的一個特性是,利用PowerPC 8250的MMU功能在VxWorks操作系統上實現了對任務棧的保護 — 當一個任務被調度而處于運行狀態時,它的棧就處于可讀寫狀態,而其他任務的棧全處于只讀狀態(VxWorks5.5.0內核中,還沒有RealTime Process的概念,這一概念是從6.0開始有的,所以那時我所做的這一特性很具實用性)。

通過這一特性,可以有效地防止任務棧被意外篡改(比如野指針操作),即便出現篡改也能盡早發現根源。

這個功能的實現過程需要調試VxWorks內核,那時VxWorks的源碼雖對公司提供,但Wind River公司對所提供的GNU的binutils做了特殊處理,使得無法為內核代碼生成調試所需的信息,結果是無法對內核進行源碼級程序調試。

由于我之前的RTEMS操作系統移植經歷讓我對binutils非常熟悉,通過使用一定的方法(說來話長了)繞過了Wind River公司所設置的障礙,成功地實現了對VxWorks的源碼級程序調試。

在職場中,我不時能成功解決復雜問題和克服技術障礙。

我的職場第十八感悟:每次積累的點滴知識,一定會在將來不知不覺地發揮效能。

短暫停留的杭州華數-雷科通

2006年4月份左右,我離開了UTStarcom。

在UTStarcom所學到的,不只是前面所介紹的那些技術知識,更讓我知道了軟件開發的“正規軍”是怎樣的,與小公司相比,UTStarcom的軟件開發流程要正規得多;

也經歷了英文寫作的“擠牙膏”時期過渡到輕松時期(好友周海東在我的英語學習中幫了不少忙);

看到了好友于善成如何通過大量閱讀成為一個知識淵博的人(他的閱讀量現在仍是我的學習榜樣);

還有上司夏青的技術敏感度到現在仍讓我為之稱道,是我職場至今所見過的二位具有良好技術敏感度的技術管理者之一(另一位是我在Motorola工作期間認識的,后面會談到他);

團隊實力之強使得開發出的E-Box產品在我離開UTStarcom后不時能聽到正面的評價。

對了,我在大立公司工作時期,就很注重軟件設計文檔的編寫,而且在我離開之時,不僅完善了所有文檔,還為后繼同事做了全面的培訓。我始終堅守:

我的職場第十九感悟:通過文檔化的方式傳承知識給后繼者是你的基本責任,因為你作為后繼者時也希望如此,這也是對自己負責的一種表現。

在UTStarcom工作期間,我進一步形成了將自己的技術想法寫成文章與大家分享的習慣(那時同事賀旭東稱我為“作家”,而我則稱他為“點評家),也因為自己在嵌入式軟件開發技術上的長期點滴積累,開始有了寫書的想法。

離開UTStarcom后,我入職了杭州華數集團旗下的雷科通技術(杭州)有限公司。

公司當時的意向是安排我負責某寬帶接入產品的軟件開發工作。在這個公司,盡管只有兩個月的時間但也做了些事。

除了一個月內完成了寬帶接入產品以太網交換芯片在VxWorks操作系統上的驅動開發,并使得產品支持VLAN功能外,還解決了好幾個影響整個產品系統穩定性的嚴重遺留缺陷。

這兩個月的工作不光讓我在技術團隊中很快地樹立了自己的威望,也使得公司高層管理者真切地看到了我的能力而在我提出離開時極力地挽留。

這短暫兩個月的工作經歷帶給:

我職場第二十感悟:別人對你價值的認可,其實不是簡單地根據你的自身能力,而是根據你對他人和團隊的貢獻。

加入 Motorola

入職2006年初在杭州成立的Motorola研發中心的故事得從面試開始。在入職雷科通不久,我收到了獵頭的電話,雖然那時并沒有換工作的想法,但也沒有拒絕獵頭投簡歷。隨后我收到了Motorola的面試電話。

那次面試過程記得很清楚,因為那是我所經歷的第一次英語口語技術面試。雖然工作中從沒有鍛煉過英語口語,好在對于自己做過的技術知識很熟悉,也經常需要查閱英文資料,所以對于所做過的內容還能用英語勉強解釋清楚。

在面試的最后,我對印裔技術面試官說,“現在我的英語口語不好,但我相信只要有合適的環境,能很快地提高”。印裔技術面試官最后將我領到HR那,說了一聲“Yes” — 我的技術面試通過了!

面試結束的第二天,收到了Motorola HR的電話,告知Offer的相關信息(我的入職級別是E09,E09及以上的人在整個Motorola杭州研發中心占比大約為10%)。

那時由于并沒有換工作的想法,所以拒絕了Offer。想法很簡單,因為曾在UTStarcom這樣的公司呆過了,所以對外企的工作并不是很向往,反而認為在雷科通這種小公司更能施展。

在我拒絕了Motorola的Offer后,我將這件事告訴了身邊的同事,他們的反饋幾乎都是“你應當去Motorola”。

幸運的是,另一名HR再一次致電給我,試圖說服我加入Motorola。她當時說“你一旦加入Motorola,以后離開時所看到的就是HP或IBM這樣的大公司”,也正是這句話打動了我。之后的經歷證明,加入Motorola是很正確的一個選擇!

2006年7月6日,我正式入職Motorola杭州研發中心。加入的初期是大量的內部培訓,培訓內容包括技術方面的、流程方面的和英語。

Motorola有著成熟的企業文化,通過培訓可以讓工程師很快地融入企業,使人行事象是Motorolan(摩托羅拉人)。

在經歷了約半年的培訓和學習后,2006年底,我開始參與WiMAX產品線上的CLA中間件軟件項目。

盡管我在CLA項目上沒有具體的工作(比如,沒有缺陷修復工作會分配給我,也沒有新的特性開發工作會掛在我的名下),但對整個團隊所從事的技術工作都得負責。

我的日常工作主要是設計方案評審、代碼審查、幫助或帶領團隊解決技術難題等。

在CLA項目上工作了一個月左右,2007年春節之后,我被第一位派到Motorola的芝加哥研發中心做為期二個月的現場技術支持。

之前盡管在公司有過英語培訓,但要很好地聽與說還是存在很大的障礙,加上芝加哥那邊一起工作的是口音較重的印度人和巴基斯坦人,挑戰可以想象。

在芝加哥研發中心除了做現場技術支持,還得為后續人員的到來做鋪墊。比如,租好房子、車子,準備好生活所需的一些家當(當時因為預算有限,我們住的是公寓,還得自己燒飯)。

那段時間雖然因為語言的問題倍感壓力,但在全英文的環境中,我的聽說能力進步也明顯。

之后差不多每年一次的出國,見到以前認識的外國同事,總會有人對我說“Your English is getting better”。對于自認為英語聽說能力不行的同仁,請記?。?/p>

我的職場第二十一感悟:英語的聽說能力只要有合適的環境,并勇于張嘴練習的情況下能快速地提高,不必擔心。

CLA軟件在技術上屬于運行于Linux操作系統上的一個中間件,它存在多個進程用于幫助通訊設備網元(包括WiMAX基站和接入網關)實現網管功能。

由于軟件架構的特點,使得CLA團隊不時會碰到由于其他團隊沒有用好CLA而產生的技術問題,這類問題開始大多難以定位是屬于CLA的、還是不屬于CLA的,因而查錯過程很低效。

在CLA項目的后期,我希望通過引入新的軟件設計方案幫助團隊提高軟件的查錯能力,并改善軟件質量。引入新設計需要增加很多代碼,如何讓管理層不擔心由此而引入更多的缺陷是我著力這事時首先要考慮和解決的問題。

在這種背景下,我在CLA項目引入了單元測試,寄希望于通過單元測試提高新增代碼的質量,以使管理層更具信心而獲得他們強有力的支持。

最終結果表明,在新增了近一萬行代碼的情況下,代碼在最終發布后總共只發現了一個軟件缺陷。

這個項目上的工作經歷讓我第一次真正嘗到了單元測試的甜頭,在《專業嵌入式軟件開發》一書中,就單元測試方面的內容很多源于我在這一項目上的成功經驗。

我在CLA上新增設計中的AED(Abnormal Exiting Detection)功能,在我離開CLA項目之后,還幫助團隊發現了很隱蔽的多線程問題。

當通過AED功能發現這一問題的同事高興地跑過來對我說這個功能管用時,我的高興勁寫滿了整張臉。這個項目的經歷,也讓我更加堅信:

我的職場第二十二感悟:在軟件開發活動中,應設法通過有效的技術途徑去解決工程困境。

軟件開發架構師 - 幫助團隊成長

2009年初,Motorola杭州研發中心迎來了一個重量級項目 — WiMAX產品線的接入網關ASN-GW,我被安排到該項目,角色是軟件開發架構師。

初期我的架構師一職只是杭州研發中心單方面的角色安排,而非全球性的(當時該產品由美國、印度和中國三個研發中心共同參與)。

在ASN-GW項目上與我一同共事的經理,是曾在Motorola美國研發中心呆了近十年、后來臨時轉到國內來工作的華人李亮(后面簡稱亮,習慣了)。

他之前在美國工作時做過架構師、軟件發布經理(Release Manager)等職,是一個對技術很有敏感度的管理者(我前面提到過的兩位有技術敏感度的管理者之一)。

我在此之后的成長,完全離不開他的支持與信任,以及他為我所創造的職場發展環境,能與他共事讓我倍感榮幸和感激。

我從亮身上學到的第一個內容是如何與美國管理層打交道。總體說來,Motorola在軟件開發管理方面很是四平八穩,其管理存在兩大特色,一是爭奪項目的所有權(Ownership),另一個是質疑(Challenge)。

前者使得各團隊職責清晰,不容易出現突發問題或狀況找不到負責人;后者使得團隊在工作中有所作為,不至于讓人渾水摸魚。

在面對美國團隊的質疑時,我以前看到的大多管理者都很緊張,總想一味地達到美國方面的要求,但亮在這方面的表現卻明顯不同。

他告訴我們(包括Team Lead),“如果美國提的要求不合理,直接與他們‘掰’”。

后來我認識到,美國方面做事其實很講邏輯,只要我們對于他們所質疑的問題能給出合理的解釋,很多異常事件根本就沒什么大不了。

我的職場第二十三感悟:不要用沉默的方式一味地迎合別人的要求,據理力爭或許才是作為的表現。

參與ASN-GW的呼叫處理子系統的開發工作后,整個團隊經歷了大約半年的成長痛苦。

痛苦的根源,一是對WiMAX無線接入技術相關的國際標準不熟悉,另外則是對ASN-GW產品的現有實現不了解,而且產品的復雜度的確很大(其中一個技術指標是:必須達到99.999%的容錯能力)。

在半年的痛苦期中,我很重要的一個工作職責是幫助團隊成長,作為亮這類管理層與基層工程師間的橋梁。

比如,為團隊起草《開發者指南》和《測試指南》這樣的文檔,且要求和引導工程師通過文檔化的形式沉淀經驗與教訓,以便提高工作效率(雖然文檔化方法的實施過程需要我不斷地提醒,但這一方法被證明在這種時期很有效);我也會在例會上毫不留情地指出工程師的哪些行為影響了工作效率。

我的職場第二十四感悟:流程、文檔的作用,不只是引導我們做完事,更能規范我們的行為和幫助培養工作習慣。

亮在項目進展的過程中,一直向美國方面主張杭州團隊必須設置架構師一職,也正是由于亮的一再爭取,美國方面最終努力地幫助我向這個方向發展,不斷為我分派屬于架構師工作的任務(如更新產品架構模型、參與需求管理、參與系統設計文檔的評審、完成新特性開發工作評估等)。亮那時告訴我,我應是杭州研發中心第一個真正從事架構師工作的人。

剛接觸架構師方面的工作時,其實還是不大自信的,盡管我那時掌握了軟件架構師所需的基礎技術技能(比如,我的軟件設計能力很強、UML從1998年開始接觸加上之后的持續學習所以功底也很好),但對于軟件研發管理方面的內容,以及WiMAX無線接入技術知識的系統性認識還是相對單薄的。

那時與美國同事接觸下來的感覺是,他們的綜合能力都很強,似乎隨便一個人都知道如何做架構師,不少人有做GSM、iDen和CDMA產品的經驗,而且長期工作于無線接入技術領域。

隨著更多地參與架構師方面的工作,不僅逐漸建立了自信,對Motorola的軟件研發管理也有了更為深入地認識與理解。

所看到的不僅僅是產品技術本身的復雜度,更有開發活動運作管理方面的復雜度。最終,我成為了整個ASN-GW產品的架構師。

工作、學習和寫作

在2009年,我考入了浙江大學的MBA,同時還開始著手寫自己的處女作《專業嵌入式軟件開發》。

在之后長達近兩年的工作、學習和寫作的三重壓力下,我在時間管理上有很大的進步,抗壓能力也得到了很好的鍛煉,這時我的職場第十二感悟(指其中的堅持)又讓我最終渡過了這段最為艱難的時期。

2010年中期,NSN宣布收購我所在的Motorola網絡部門,收購活動直到2011年的4月份才結束。

同時由于WiMAX市場的不景氣,美國不少系統架構師轉到了FDD-LTE產品線上,我也因為這一緣故擔任了大約半年的系統架構師,主要負責WiMAX技術的移動性與網絡安全方面的工作。

2012年7月份,因為WiMAX產品線裁員,我轉到了NSN的WCDMA產品線。也從此開始離開了Motorola的研發管理環境,而真正步入了NSN的研發管理環境。

真感謝你花時間讀到這!盡管我們常將“職業規劃”掛在嘴邊,實際上職場發展真的是一種“布朗運動”。

你不知道下一站會是哪、也不知道后面將要從事什么工作、更不清楚后面會碰到怎樣的老板。

在眾多不確定因素面前,或許參照我一路走來所總結出的職場感悟能讓你不斷地朝好的方向發展。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 程序員
    +關注

    關注

    4

    文章

    953

    瀏覽量

    29900
收藏 人收藏

    評論

    相關推薦

    英特爾前Xeon首席架構師加盟高通

    高通公司近日宣布,英特爾前Xeon服務器處理器首席架構師Sailesh Kottapalli已正式加入高通,并擔任高級副總裁職。此舉被視為高通進軍數據中心CPU市場的重要一步
    的頭像 發表于 01-15 15:30 ?263次閱讀

    如果需要將DDC112U設置為非連續模式工作,應該如何一步一步正確地設置芯片?

    或狀態8,如果沒有CONV的切換發生,是否會直停留在上電時的這個狀態?如果需要將DDC112U設置為非連續模式工作,應該如何一步一步正確地設置芯片?
    發表于 01-09 07:43

    沙子變芯片,一步步帶你走進高科技的微觀世界

    在科技飛速發展的今天,芯片作為現代科技的核心元器件,其制造過程復雜且充滿挑戰。芯片不僅推動了信息技術、人工智能、物聯網等領域的進步,還成為衡量個國家科技實力的重要指標。然而,芯片制造并非易事,從沙子到芯片的每一步都充滿了技術、
    的頭像 發表于 12-19 10:44 ?407次閱讀
    沙子變芯片,<b class='flag-5'>一步步</b>帶你走進高科技的微觀世界

    英特爾將進一步分離芯片制造和設計業務

    面對公司成立50年來最為嚴峻的挑戰,英特爾宣布了項重大戰略調整,旨在通過進一步分離芯片制造與設計業務,重塑競爭力。這決策標志著英特爾在應對行業變革中的堅定步伐。
    的頭像 發表于 09-19 16:48 ?414次閱讀

    AMD Vitis統一軟件平臺2024.1全新發布

    通過新版本,系統架構師和開發者可以進一步優化設計開發流程,同時提升整體系統性能。
    的頭像 發表于 09-18 09:34 ?578次閱讀

    通過展頻進一步優化EMI

    電子發燒友網站提供《通過展頻進一步優化EMI.pdf》資料免費下載
    發表于 09-04 09:32 ?1次下載
    通過展頻進<b class='flag-5'>一步</b>優化EMI

    用XDS200仿真PGA900時候,單步執行程序PC支持并沒有按照C語言一步一步執行,為什么?

    我在用XDS200仿真PGA900時候,程序能正常引導到main,單步執行程序, PC支持并沒有按照C語言一步一步執行, 這是什么原因? 以下是工程圖
    發表于 08-15 07:18

    散熱第一步是導熱

    一步提高產品的使用壽命。 產品型號有多種規格可選擇(導熱系數1.0~5.0W/m.K)。 合肥傲琪電子的導熱硅脂、導熱硅膠片還應用于對芯片、主板、功率管(MOS)、變壓器、模塊、PCB板、鋁基板
    發表于 08-06 08:52

    西門子與微軟進一步擴展戰略合作關系

    近日,西門子數字化工業軟件與微軟宣布進一步擴展雙方的戰略合作關系。通過微軟Azure云服務,西門子正式推出Xcelerator as a Service工業軟件解決方案,為客戶提供更靈活、高效的服務體驗。
    的頭像 發表于 05-21 10:47 ?751次閱讀

    一步解讀英偉達 Blackwell 架構、NVlink及GB200 超級芯片

    引入英偉達機密計算技術,在不影響性能的情況下,增強了大規模實時s生成式人工智能推理的安全性。該架構還具有新的解壓縮引擎和用于人工智能預防性維護的可靠性引擎,有助于診斷并預測潛在的可靠性問題,進一步鞏固
    發表于 05-13 17:16

    STM32F207擦除片內FLASH,退出DEBUG無法執行下一步程序是怎么回事?

    由于項目需求,需要擦除片內指定空間,然后從SPI_FLASH中加載程序運行 問題如下:: 在DEBUG模式下,執行擦除程序,則退出DEBUG,無法執行下一步
    發表于 04-23 07:46

    如何成為一名嵌入式C語言高手?

    如何成為一名嵌入式C語言高手? 嵌入式系統是當今科技領域的核心,而C語言則是嵌入式系統開發中最常用的編程語言之成為一名嵌入式C語言高手
    發表于 04-07 16:03

    mc workbench卡在代碼生成這一步不動了是什么原因?

    mc workbench卡在代碼生成這一步不動了是什么原因
    發表于 03-27 06:52

    如何成為一名嵌入式C語言高手?

    如何成為一名嵌入式C語言高手? 嵌入式系統是當今科技領域的核心,而C語言則是嵌入式系統開發中最常用的編程語言之。成為一名嵌入式C語言高手
    發表于 03-25 14:12

    材料價格進一步下降,盈利觸底 鋰電材料企業如何應對?

    在上游原料價格相對穩定、終端銷量有所好轉的情況下,季度四大鋰電主材價格卻出現進一步下跌。
    的頭像 發表于 03-01 10:25 ?1155次閱讀
    主站蜘蛛池模板: 日本国产黄色片 | 日本三级三级三级免费看 | 在线网址你懂的 | 中文字幕一区二区三区精品 | 在厨房乱子伦在线观看 | 亚洲天天做日日做天天看2018 | 欧美日韩一区二区三区视频 | 免费人成激情视频在线观看冫 | 免费黄色地址 | 靠比久久| 国产小视频在线观看免费 | 亚洲成人高清在线观看 | 免费啪视频 | 国产美女主播在线观看 | 日本一区二区三区在线观看视频 | 一区二区三区在线观看视频 | 看黄网站在线观看 | 人人干视频 | 另类性欧美喷潮videofree | 国产女人伦码一区二区三区不卡 | 天天射天天干天天操 | 婷婷色九月 | 亚洲天天做日日做天天欢毛片 | 五月激情综合婷婷 | 爱爱动态视频免费视频 | 国模私拍视频在线观看 | 天天操天天操天天干 | 看大片全色黄大色黄 | 哟交小u女国产精品视频 | 国产一区二区三区毛片 | 日本三级黄 | 精品女视频在线观看免费 | 黄色一级日本 | 国产一区在线播放 | 好大好猛好爽好深视频免费 | 天堂中文字幕 | 人人澡人人澡人人看青草 | 亚洲人成网i8禁止 | 六月丁香深爱六月综合激情 | 亚洲都市激情 | bt天堂在线www种子搜索 |