初級還是高階開發者,到底區別在哪裡?

2016-04-10    分類:程式設計師人生、首頁精華2人評論發表於2016-04-10

本文由碼農網 – civic5216原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃

這聽起來是一個很明顯的問題,但是它真這麼簡單嗎?

我聽到過公司裡的一些開發人員討論這個問題。當時我的一位高階工程師正與兩個初級工程師討論一些其他的事情。當事情討論完,其中一個初級工程師提出了這個問題,初級工程師還是高階工程師。

那個高階工程師,恰好是那些個我有幸一起工作中遇到的最好最聰明的工程師中的一員,從他的角度,花費了30分鐘去努力闡述區別在哪裡。

對話夾雜著通常的答案進行中,那個提出問題的初級工程師(是公司裡有點小聰明的一個傢伙)試著將問題拆分成兩個子問題,在我看來是比較有趣、有探究性又有用的子問題:

1.客觀來說,我作為一個初級工程師如何能確定什麼時候我成了“高階工程師”?

2.作為高階工程師,你如何計量初級工程師的進展,怎麼知道啥時候一個初級工程師已經跨越了那道成為高階工程師的門檻?

問題1

我覺得第一個問題特別有趣。隨著辦公室討論的繼續進行,我盡力去回想從開始軟體開發工作一直到成長為一名開發者,這些年我思考了什麼問題。

毫無疑問,對每個開發者而言,成長為更高職級人員的過程中,時間是一個重要的因素。觀察這些年的各種各樣招聘資訊(一些人認為“高階”意味著最少5-7年的經驗,而另一些人認為它意味著至少10-15年),很顯然就專業時間需要多久沒有真正的“標準”。

僅僅過了幾年,一些開發者就認為他們自己是高階工程師,而另外一些人過了7-10年還人認為自己僅僅是“中級水平”。 作為招聘方,我知道以上事實都屬實。這些都毋庸置疑,是明瞭的常識。自負也是一件有趣的事情。針對“時間多久”會有不同意見,這種“阻抗不匹配”會引起爭執。

那跟學到的技術或語言種類有關係嗎?有一種學院派觀點認為,掌握一兩種語言也能成為高階工程師,只要他掌握瞭如何去處理在使用程式語言過程中遇到的問題的經驗就好。然而,另一種職業更加註重使用不同相似技術去工作,並用不同技術解決更多通用問題的能力。

這是明擺著的,就是取決於工作要你去幹嘛。從那個角度而言,內部討論你是否已經進入了“高階工程師”領域是沒用的。

經過了反覆思量以及聽了很久的討論,我總結道,針對第一個問題的內部判斷是相當各異性的。如果讓我去提出一個標準—-不管是不是非正式的—-那將是:作為一個初級工程師,當一個公司或團隊的高階技術人員讓你做某件事的時候,你所擁有的舒適和自信水平。

問題2

毫無疑問,存在無數量度能解答這個問題。坦白說,我還沒看到任何一個方案能作為銀彈或金標尺去測量所有的高階工程師。

是的,存在不少測驗和考試用來評價一個開發人員的能力水平。毫無疑問,這些測驗不能被忽略。

讓事情變得更加有趣的是,有時候那些判定什麼是“高階工程師”的人並不是對那些技術或語言很熟悉的人。例如,在一個小公司裡,技術部的專家可能是一個具有相當多基於Java商業程式部署經驗的Java開發人員。然而,同樣的專家又有可能負責招聘高階iOS開發人員的人。在缺乏高階iOS開發工程師時,有一些人就得頂上去,成為專家。

打住,我有點跑題了。這裡真正的問題是評價初級工程師的進展。

有一些可能的標準,大部分看上去不太容易(並非不可能)合適地傳達給初級工程師本人。再一次,如果被要求提供一個可能的標準,我覺得是這樣的標準,開發者能夠對任務或一系列任務(不管多巨大)給出一個估計的工作量,能夠有信心在一個合理的時間範圍(不要讓我給出任務估計)內去完成它,並且只需最小的輔助。

換言之,如果你還一直在犯同樣的錯誤,這個錯誤是你剛開始從事開發工作的時候就遇到的錯誤,那麼確定無疑,你沒有進入到高階工程師的領域。

結語

這篇文章不打算回答我那個精明的初級工程師的問題。相反,它引出了一個關於什麼標準能夠合理的應用到每個問題的討論,它是一個起點,如果你覺得不錯的話。

你認為呢?有些什麼標準兩邊都可適用?我們沒有成熟的人力資源部門,但是可能有一些東西我們能去學習認識。

留下一些評論,讓我們繼續這個問題。

譯文連結:http://www.codeceo.com/article/junior-vs-senior-developers.html
英文原文:Junior vs Senior Developers: What's the Difference, Anyway?
翻譯作者:碼農網 – civic5216
轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]

相關文章