1. 程式人生 > >高級工程師和初級工程師之間的一道坎

高級工程師和初級工程師之間的一道坎

為什麽 般的 比較 管理 並且 需求 使用 分析 高級工程師

畢業幾年,在很多事情上磕磕碰碰,最後還是走著普通工程師的道路。

一般的三年升高級的坎,也是遇到了,什麽樣的工程師可以作為一個高級工程師。

這裏的高級工程師指的是真的寫代碼的工程師,而不是所謂的管理崗,當然帶初級工程師還是必要的。

一、能力

能力上不去,這個說不過去。能力這個我總結了一下,一共分為幾個方面的能力:

1、知識體系化

基礎知識要成體系化,這也是我近期比較喜歡的一種學習方式,體系化學習。

這樣的知識體系會比較牢固,而且對於知識的了解和綜合使用能力會更加地高。

2、代碼設計能力

我們上級跟我說,你現在寫代碼跟普通的剛畢業的學生的區別不應該只在於滿足需求,你應該從框架層面,更高的層面來思考這個問題,形成框架,並且讓代碼的可讀性,可維護性,通用性更強。

簡單地說,就是具有一定的抽象能力,把實際問題轉成代碼,然後設計合理,有必要的話寫出一套合適的框架性代碼,然後才是實現功能。

3、代碼重構能力

並且具有重構代碼的能力,其實重構是一件非常難的事情。

重構的目的是什麽?要想清楚這個事情,為什麽需要重構,是重構還是修補?是因為性能不行,還是可讀性不行,還是太多多余的代碼,無用邏輯,還是設計不合理,還是方案陳舊需要使用新的解決方案替換?什麽情況下要用什麽樣的手段。

需要對原有的邏輯理解透徹,對原有的代碼也有非常深入的理解。深入思考後,設計出一套重構的方案,這個才是重構的真正意義。

二、對於產品的思考

這個非常重要,因為一個功能,照著做出來就行了,結果有一些邏輯真的不通,或者不合理的地方。你能不能有自己的思考和理解,還是說就是按著這樣做出來。

如果一個功能,產品做原型的時候沒有考慮到,而你是實施的人,你能不能發現這個不合理的地方,你有沒有這樣的想法。

如何發現這個不合理的地方呢,首先,需要對產品有一個完整的理解,需要有一定的產品思維,這個功能是為了解決什麽問題,為了實現什麽樣的目的。這樣做能不能達到這樣的效果,在做的時候多思考這個問題。

三、思考問題的高度

如何從Owner的角度/高度來看待這個問題以及要求自己,把自己擺在那個位置上然後進行思考,自己應該做到什麽。

如果我是這個項目的Owner,那麽我是否應該了解整個項目的設計,達到的目的,整個項目的了解程度是否應該要比別人更加深入,當遇到問題的時候,我能不能快速定位解決,是不是要review其它人的代碼,是否要考慮整個項目的設計,框架是否合理,有沒有可以完善的地方。

四、你能否Own起一個項目

這個應該就是綜合能力的體現了,如果給你兩個人,做一個項目,項目如何設計,人員如何分配,如何保證工期,如何保證質量,如何保證線上問題的快速響應等等的問題。

綜合起來思考,當一個高級工程師並不容易,所需要的條件和要求也是非常高的。

系統性地分析問題,根據自己身的條件綜合對比,可以快速補齊短板,增強綜合能力。

互聯網寒冬來了,這個寒冬,對於不夠優秀的人來說會非常寒冷。努力讓自己優秀,才能四季如春。

高級工程師和初級工程師之間的一道坎