15 年老程式設計師自述:8 個影響我職業生涯的重要技能

csdn 發佈 2020-01-20T14:46:58+00:00

2012年創辦上海同時信息科技,專注於藍牙 BLE 智能硬體,主導設計了智能防丟器,智能錢包,智能行李牌等30多個產品,累計提交了 20 多項的物聯網專利,是藍牙 BLE&mesh 方面的資深專家。

作者 | 崮德

來源 | 阿里巴巴中間件(ID:Aliware_2018)

我是上個世紀, 1998 年考入浙江大學的,讀的是電子工程,但是在大學期間情不自禁愛地上了計算機,當時在學校學的是彙編語言,C 和 C++ ,也鑽研過微軟的 VC++ 。經歷過點亮第一個 8051 板子的 LED 燈而興奮不已,雖然當時的 LED 燈珠是直接用 8051 的 GPIO 口驅動的(沒有考慮驅動電流能力)。

後來大三的時候,閒不住的自己,直接去外面的軟體公司兼職打工,在其中一家通信設備公司做 PPP、PPPOE 開發,在這家公司,讓我見識了什麼是超大規模代碼開發(比 Hello World 要雄偉的多),什麼是超級優美的軟體架構,什麼是良好的編程風格,什麼是精巧的數據結構設計。

大三大四的兼職生活,時間過的很快,後來我就很幸運地保研了,開始從事 ARM 嵌入式開發研究,當時( 2002-2003 )也算是中國第一代 Arm 開發工程師。從小學到大學,我和很多同學有一個特別大的差異,就是喜歡提問題。現在想來這個特別的技能為我未來成為優秀工程師打下了很好的基礎。這個技能是我職業生涯第一個重要技能。

善於提出問題

我們的教育方式,註定了大部分人都是解決問題的高手,每次考試,我們的目標就是拿 100 分,從 ABCD 中選擇中選擇正確的答案,反而很少有人想,我們為什麼要學這些知識,這些知識未來有什麼用?或者想想這個數學公式是怎麼來?有沒有更簡潔的表達方式呢?有沒有其他沒有發現的更好的解決方案呢?或者怎麼提高學習效率?怎麼讓自己既學的好,又學的輕鬆呢?在我整個學生生涯,我的腦子裡整天充滿了這些問題,我覺得就是這樣的思考習慣,讓我成為一個善於提出問題的「好」學生。

2005 年研究生畢業後,我加入華為有限公司,也就很自然從事了 2/3G 基站嵌入式開發工作,在華為,讓我學會了作為優秀工程師的第二個技能:撰寫&閱讀技術資料。

撰寫&閱讀技術資料

在華為,有專門的技術資料庫,涉及領域非常廣泛,比如 SDRAM 的讀寫驅動原理, SPI 總線解析,信號的毛刺測試和分析,網絡分析儀的使用技巧等等,我是第一次看到這麼海量的和實際工作這麼接近的技術資料,絕對和大學教材有天壤之別,因此那一年半的華為生涯,我花了大量時間閱讀學習這些資料。那你可能要問了,這些資料哪裡來的呢?對,都是每個一線工程師在平時工作中總結的,因此這裡就提出了一個技能:寫技術資料。比如你學習了一個新技術,可以寫分享報告;比如你解決了一個重大問題,可以寫問題分析報告;比如你要設計一個新的軟體框架,可以寫設計報告等等。

好奇心

當時在華為,工作特別繁忙,有很多雜事,比如有時候讓你去修個電路板,有時候讓你去測一個總線的時序波形,有時候讓你寫一個小功能的代碼,有時候參與其他團隊的一個協同工作等等。

在這個過程中,我對其中一些技術充滿了好奇心,比如 SDRAM ,因為之前只理解 SRAM 的工作原理,感覺特別簡單,而 SDRAM ,完全顛覆了我對 RAM 讀寫操作的認知,刷新,預充電, Burst 操作等等新概念,讓我充滿了好奇心,因此我花了整整一個月時間,翻閱了技術資料庫里我能找到的 SDRAM 的資料,並認認真真一字一句的啃下一個 SDRAM 晶片的英文 SPEC ,還拿著 50 萬的示波器測量了 SDRAM 的時序信號波形,這下子總算把 SDRAM 的前前後後,左左右右都弄明白了。通過這些專注的工作,我算是 SDRAM 的小專家了,因此我就給我所在的 Team 同事一起搞了一個 SDRAM 技術分享。

善於分享

說到技術分享,之前我也沒有做過,但是由於自己本身在大學期間是屬於 outgoing 的類型,所以我並不怯場,只是不知道該如何整理這個 PPT ,我請教了我的師傅(在華為, 3 個月試用期是有師傅帶徒弟的),知道了做 PPT 要「一圖二表三文字」,也知道了,做分享需要先了解大家的知識背景(自己以為很簡單,但是聽眾反而覺得很費解的技術點需要好好講),也知道了,演講一定要深入淺出,一定要遵循總分結構,或者 2W1H 等等,一定要站在聽眾的角度而不是自己熟悉的角度來展開演講。當然最重要是明白了,技術分享既可以提高自己的技術理解力,也可以提高自己的個人影響力,從這以後,我到每一個新單位,都會主動發起一些技術分享。

28 原則 & 效率優先

我們的工作有個特點,就是永遠都做不完,因此我們應該把有限的時間投入到最重要的事情中,比如對團隊業務不是特別核心的工作,可以投入 20% 的時間提高效率快速完成,沒有必要完美主義,非得做到 120 分才 OK 。而對於團隊的基礎性工作,核心技術,或者是影響未來創新的工作,則需要投入80%的時間,儘量做到系統化,規範化,文檔化, SOP 化,儘量完美的打磨這種工作。通過這個 28 原則,我既快速完成了領導交給我的邊邊角角的工作,又幫團隊沉澱了很多核心,基礎的工作成果。

在華為,我們也要承擔很多瑣碎的工作(緊急但不特別重要),比如在寫驅動代碼的時候,突然接到一個任務,要求測試信號質量,這種事情需要搭建測試環境,使用高檔的四蹤示波器,然後還要飛線,因此這個時候效率優先就很重要,我都是「火急火燎」的快速安排好環境,快速計劃好測試項目,然後乾淨利索的快速測試,連續高效工作 2 個小時,快速收掉這樣的非核心工作,然後可以專注做更重要的工作。而很多時候,其他人喜歡磨磨蹭蹭的搭環境,慢慢吐吐的測量,測試一段時間,就要去外面走走,這裡逛逛,或者回去寫點代碼,和誰去聊聊天,完全不遵守效率優先原則。

不要重複造輪子

很多「優秀」工程師都有「潔癖」,他們總覺得別人的代碼不夠好,自己的才是最棒的。其實,別人既然造了輪子,也經過一定時間和業務場景的考驗,那很有可能自己就算髮明了一個更漂亮的輪子,有可能性價比未必就比別人的高。我覺得工程師不是喜歡重複造輪子,而是缺了包容的心態,如果你能學著包容不同觀點,學著求同存異的思維方式,則你會慢慢接受用實踐檢驗過的輪子。因此每當你接到一個新任務,你一定要想想,這個工作別人是否做過了,到哪裡可以找到,或者諮詢誰可以找到這個輪子,而只有確定大機率是新工作的時候,你才開始動手。

讀書能力

「書中自有黃金屋,書中自有顏如玉」,我覺得古人說的很對,我們的知識要麼是直接經驗,要麼是間接經驗(包括別人口口相傳和自己親自閱讀),其中閱讀是效率最高,知識最系統化的學習方式,一本書 30 幾元,就可以涵蓋作者幾年甚至十幾年的經驗總結,這個性價比不是一般的高。而且很多知識,由於工作崗位限制,短期內我們沒有辦法直接經驗獲得,而口口相傳又特別不系統化,這個時候,讀書就非常好,比如你要學習銷售,你不可能邊寫代碼,邊直接實踐銷售,那你可以買一本銷售專業人士撰寫的銷售書籍,可能一兩天你就可以知道銷售的精髓,當然離融會貫通還很遠,可是它為你打開了一個新的視角,新的思維方式,何樂為不為呢?

溝通&表達能力

中國教育培育出來的學生,很多時候更加善於埋頭讀書,不善於人際溝通,不善於表達,特別是工程師,自己有想法,有觀點,但是礙於面子,或者怯場,不善於溝通表達,也不喜歡和人打交道。我們現在的社會分工越來越細,單兵作戰已經無法滿足社會需要,團隊作戰,或者跨團隊跨公司作戰越來越成為常態,因此溝通協同成為了舉足輕重的能力。有人說,我知道這個技能很重要,但是我不擅長啊。其實,大道至簡,如果能換位思考,抱著同理心和其他人聊天,你慢慢就能學會溝通和表達,溝通和表達一點都不難,哪怕有事沒事和其他同學嘮嘮嗑,也能提高自己的溝通和表達能力。

作者簡介:崮德, 2005 年畢業於浙江大學,獲得電路與系統碩士學位,後加入華為,從事 2G 和 3G 的基站開發。2006 年加盟上海晨訊科技,負責功能手機、智慧型手機以及物聯網通信模塊(2G/3G Module),主導設計了 GPS 追蹤器,平板電腦等智能硬體。2012 年創辦上海同時信息科技,專注於藍牙 BLE 智能硬體,主導設計了智能防丟器,智能錢包,智能行李牌等30多個產品,累計提交了 20 多項的物聯網專利,是藍牙 BLE&mesh 方面的資深專家。2017 年加入阿里巴巴人工智慧實驗室,負責 AIoT 總體架構設計,是藍牙 mesh 從 0 到 1 落地天貓精靈開放平台的負責人,沉澱了一套 IoTConnect Kit 賦能產業鏈。

關鍵字: