1. 程式人生 > >研發人員需要什麼知識和能力

研發人員需要什麼知識和能力

YS目前還在達內的AI培訓班培訓,昨天微信問我:“做一個研發人員,需要具備的知識和能力我也很想知道”。

這個問題還真有答案就在嘴邊,可是又很難簡單說清楚的感覺。為什麼呢?研發人員包括了演算法,開發,測試,專案管理,架構,運維等等角色,需要的知識和能力有重合,但又各不相同,加上不同行業有不同屬性,因此一言難盡。那我縮小一點,說下程式設計師應準備的知識和技能。

從技術棧圖譜開始

我剛入道的時候還沒有這個,但是我建議現在的新人們在構建自己的知識體系的時候,先找一個技術棧圖譜看下。當然看圖譜的主要目的是讓自己在學習的海洋中有方向感,而並不是把自己給嚇趴下了,其中大部分的條目都可以在工作中慢慢學習。從實際中來講,大學畢業,或者類似達內的培訓之後就可以開始程式設計師生涯了。

關於技術棧,推薦unruledboy出品的爆棧網http://overflowstack.github.io,內容和風格我都很喜歡的一個網站,缺憾是缺少Java方向的技術棧。

準備三年編碼計劃

這裡更多的是心裡的計劃,也就是說要準備好至少三年踏踏實實的碼農生活,重點的指標就是程式碼行數。在這個期間建議是積極,主動地承擔更多的編碼工作,找儘可能多的機會來鍛鍊自己。

在程式碼行數達到一定數量的時候,很多東西就很自然地出來了,例如對設計模式的理解,對程式碼規範的理解,對架構的理解,在寫過很多程式碼以後再看大牛的程式碼,再看哪些抽象一點的書籍,就特別有體會,而且我堅信,程式碼量是將來能達到高度的很重要的基礎。

能力是一點一點的歷練出來的

剛入道就開始考慮知識和能力的問題,這比我最開始工作的時候已經好很多了,這算是規劃能力嗎?回首這麼多年的研發,我感觸深刻的能力有:

學習能力:IT領域的知識的迭代更新的速度和幅度恐怕是所有行業裡最高的了,善於學習,願意學習,從而從基礎走到前沿,從而不斷地重新整理自己是是的自己在職場保持競爭力的關鍵。

現在已經有很多的公司開始招“全棧工程師”,這個很酷的名字背後,則是上一條提到的龐大的技術棧。

交流能力:程式設計師和全天和程式碼打交道,思維方式越來越偏理性,可是實際生活的一半是感性的世界,在這個世界裡,道理行不通,甚至“無理”的“傻”才是行為準則。提高交流能力的第一步也就是要認知到,感性世界的存在和特點。

交流能力也是一個基礎能力,對程式設計師的職業規劃來講,是是否能突破崗位的基礎能力。

時間管理能力:工作,學習,生活都需要時間,時間對於程式設計師來講真的就是奢侈品。市場對軟體開發的要求已經提高到以天為單位了,只有程式設計師自己,應該對自己一天以內的時間負責,稍有懈怠,等待你的就是地鐵末班車,學習方面,IT領域的知識不但多,而且更迭的快。心心念念想著要學習的新的知識,很容易就被突發的一兩次飯局無限延期。

所以良好的時間管理加自控,方能使得你在紛雜的生活中,讓你盯住航行的方向,不至於淹沒在紅塵中。

後記

在解答完YS的疑問後,自己的壓力也倍增,弄潮兒早已是年輕一代,甚至更年輕一代,對於老程式設計師,路又在何方呢?