知道嗎,你和高級工程師差距巨大
- 2020 年 4 月 9 日
- 筆記
作者:程序員小躍,前菊廠Android開發,現遊戲公司Java主程,奔跑中的技術人!
Slogan:當你的才華還無法撐起你的野心時,那應該靜下心來好好學習
很多人問我,躍哥,現在剛畢業的我,校招、社招機會都挺小的,這是為什麼;躍哥,為什麼你發的一些JD需要3年以上,我工作才兩年多,難道就沒機會了嗎;躍哥,什麼時候才能和一樣有實力,知道這麼多。。。
之前我在《一線編碼6年,幫你總結出6條優越感》也透露過,我已經浸淫職場6年,從客戶端開發到後端開發,從大廠螺絲釘到小廠主力,一步一個腳印。你說,你們剛畢業,你們工作兩年多,和我肯定多多少少存在一些差距,那麼,為什麼他們會有這些要求呢?
這還得從職位說起。最近我也在看《如何成為專家》這本書,剛開始看,但是書中開頭已經明確說明了,如何成為專家。工作多年,並不會肯定讓你成為專家;但是,如果你仔細專研,認真學習,努力提升自己,多年工作經驗,有多種經歷,而不是一份工作經驗做多年,那你肯定能從初級工程師進階成高級工程師,再往後就是專家。
這也是為什麼大廠有等級,比如華為的職級,騰訊的T級,阿里的P級,百度、頭條、PDD都有自己的級別,這就是區分一個人能力的等級。你還別不服氣,等級劃分不是隨便來的,接下來就帶你看看,為什麼高級工程師這麼值錢;為什麼一些廠的要求高。
來吧!!!
缺少高級工程師的領導你會發生什麼
作者:Allan Wintersieck
時間:2020.2.25
我不認為存在單一的「完美」組織結構。每個公司都有不同的需求,並且對人才的要求也會有所不同。一些團隊結構是平坦的,有些是有深度的。無論你如何建立一個技術團隊,如果有共享你產品的過程,那你就成功了。
但是,每個公司/團隊都應優先考慮一個職位:高級工程師。
無論你的行業,規模或者技術棧如何,你都需要高級工程師來指導你的軟件開發產品以及內部交流。沒有這個高級工程師的領導,可能會發生不幸的事情,其中一些破壞性更大。
這裡羅列了一些缺少高級工程師的情況下可能會發生的最常見的情況。
陷入重寫的陷阱
20年前,Joel Spolsky 寫了一篇我今天仍然推薦的非常出色的文章。它強調了軟件公司團隊可能做出的最糟糕的決定之一:從頭開始重寫代碼。
雖然我建議閱讀全文,但我還是做了一個簡短的概要。
高級工程師可以對此進行討論,但是根據他們多年的經驗,他們意識到這不是一個好主意。
他們知道代碼庫可能是「混亂的」。但是,當軟件對世界進行準確建模時,它是最有用的,並且世界肯定是混亂的。某些代碼可能醜陋,因為他們需要捕獲域的基本複雜性。
用 Joel 的話來說,「新代碼比舊代碼更好的想法顯然是荒謬的。舊代碼已經被使用了,已經被測試過。很多 bug 已經被發現,並且做了修復。」
您的高級工程師可以理解這一概念,並且可以吸引那些雖然才華橫溢但有時缺乏紀律的初級開發人員
你得到了你想找的,但是沒得到你想要的
你還需要高級工程師領導才能在進行任何開發工作之前提出基本的業務問題。即使是最詳盡的產品路線圖也可能會有一些高級工程師需要填補的漏洞。缺乏經驗和知識,這些漏洞無法填補。
換句話說,你得到的正是你想找的,但不是你想要的。
當我們的客戶與離岸開發團隊合作時,我經常看到這種情況發生。 開發人員從字面上看待一切,不考慮人為邏輯
一個典型的例子就是在線服裝店。
產品負責人說,「我們的額用戶應該能夠按顏色選擇衣服。」
很容易從數據庫(「酒」,「珍珠」,「李子」)中獲取所有已命名衣服的顏色列表,並將它們放入按字母順序排列的下拉列表中,但這是一個複雜的功能!
高級工程師可能會花一些時間思考選擇顏色的最佳方法,並實施「最接近的顏色」算法,以便當用戶選擇「藍色」時,牛仔布,海軍上將和青金石都出現。
對於任何複雜的產品,讓高級領導者提出問題,闡明功能,與開發人員進行交流,然後持續檢查他們的工作是必不可少的。
初級工程師(有時)更容易受到發展趨勢的影響
您的初級工程師可能最近完成了編程新手訓練營或學位授予。
他們接觸了最新的趨勢和編程語言,通俗來講,就是很棒。但是,僅僅因為這門語言或工具很新,並不代表更好。
如今,新的語言和工具在市場營銷方面表現出色。 初級開發人員可能認為這是自切麵包以來最好的事情。 但是眾所周知,營銷活動並不總是與使用率和可靠性相關。
一個例子是MongoDB與PostgreSQL。 對於新手來說,MongoDB看起來很棒。這是一個新的數據庫程序,被稱為「現代應用程序中最受歡迎的數據庫」。
這聽起來很不錯。也許我們應該開始在MongoDB中構建數據庫。
這是高級工程師需要介入的時候。憑藉他們在各種數據庫程序中的豐富經驗,他們將能夠考慮產品的需求,預算和框架,然後選擇實現產品業務目標的數據庫。
工程師可以是非技術領導
奇怪的是,你的領導團隊並非需要技術精湛。
同樣有可能的是,你的開發人員與你的五年業務戰略不符。
有時候,當事方在功能,優先級,時間表,框架方面意見不一,你可以自己命名。如果你的領導團隊不講開發,那麼您很容易雪崩。
換句話說,開發人員可能會聲稱必須採用這種方式,故意使用專業術語讓你讓步。
為了避免開發人員被騙,需要具備技術領導才能進行篩選並翻譯每個團隊的基本需求。
最後說明
這篇文章不是針對初級開發人員的攻擊。畢竟,你的初級開發人員將學習並很快地成長為高級工程師。相反,這是僱用具有技術能力的強大的高級工程領導的案例,但也可以:
- 與非技術團隊成員溝通
- 幫助解決各類技術問題
- 了解產品的業務方面
- 將多年的實踐經驗帶給團隊成員
正確聘用此人將確保您的產品以最高水平進行計劃,構建,發佈和維護。
結語
這是一篇外文的翻譯,但是從工程師能力的評判來看,和我們國內的區別不大。高級工程師,不僅僅是寫代碼,還需要有帶團隊的能力、做決策的能力、領導能力、溝通能力。
比如文中說的數據庫選型,不是因為MongoDB成為趨勢,就一定要使用它。而是需要根據經驗,根據項目,考慮產品的需求,預算和框架,選一個最佳的方案。
在我開發的項目中,也遇到過選型問題。消息隊列,用Kafka還是MQ,用什麼MQ,都是需要按實際情況來選擇的。還有Android開發中,圖片加載框架等等,這些作為新手的你,和公司里,或者和交流群里的其他人交流,你能感受到差距嗎?你平時的選擇是如何呢?
所以,現在你知道為什麼高級工程師值錢了吧。你知道如何成為一名優秀的高級工程師了嗎?躍哥這有優秀的社群,豐富的資源,歡迎來撩!