​如何從初級程式設計師順利晉升到高級程式設計師?

2020-04-04     讀芯術

全文共3080字,預計學習時長9分鐘


來源:Pexels


按經驗級別劃分的軟體開發人員可能如下:


· 初級:擁有兩到三年的經驗

· 高級:擁有十年以上的經驗

· 中等或 「中級水平」: 介於初級和高級之間


以年為單位衡量工作經驗存在一個問題,即沒有說明程式設計師開發軟體的質量。工作的那幾年獲得了多少經驗和技能?這也就導致開發人員的求職面試十分複雜。這項技能難以衡量,因此我們最終在面試中對開發人員進行了高難度測試。但是這些測試充其量只是進行大致地估量,無法準確衡量工作或完成工作所需的專業知識。


這就引出了下一個問題。


一旦你不再是初級程式設計師,那什麼時候會成為高級程式設計師呢?


多年的工作經驗會使你自然而然地成為高級程式設計師嗎?


不一定。


以我自己為例,當我還是個初級程式設計師時,年少無知卻自以為是,傲慢輕狂。認為自己是「代碼之神」,不願與他人合作,認為編寫出色的代碼是唯一重要的事情。


但我錯了。的確,代碼很重要。說到底程式設計師必須要編寫工作代碼,但寫代碼並不是唯一重要的事情。


在為第一位客戶服務的過程中,我經歷了很多困難才明白了這一點。我與客戶只交談了15分鐘,收集了需求「要點」,自認為已完全了解客戶需求。於是,我開始瘋狂地編寫代碼,享受編寫純代碼的過程。只用了3天就提交了應用程式,可是客戶拒絕了,因為那並不是他想要的。


當然了,我很受傷。自尊心受挫,我便責怪客戶沒有提供足夠的信息。當時的我還很不成熟,所以才說出這樣的話。客戶永遠沒有錯。如果花更多時間分析客戶需求,情況可能會大不相同。通過這次慘痛的教訓,我明白了這一點。


也就是說,程式設計師之所以被稱為程式設計師,不是因為可以編程,而是因為他的工作是在任何事情開始之前就分析好一切。分析必須在多個級別上進行。


· 自我分析以求更佳表現

· 分析客戶需求以提供更好的服務

· 分析整個項目,以幫助每個人呈現更優秀的表現。


如果想從初級升級至高級開發人員,則需要培養這些分析技能,憑藉專業知識而非多年的工作經驗變成一個真正優秀的高級開發人員。


一名優秀的高級開發人員就像是一個長大了的孩子,變成了可以照顧自己的成人。他的生活不再是飄忽不定、隨性而為,充滿不確定性。會從錯誤中吸取教訓,為生活打下堅實的基礎,回憶過往時,他會為此感到自豪。他仍然「年輕」,但所擁有的是一種務實精神和高效的能力,這將比他實際的工作經驗更有價值。


下面是從初級升級至高級程式設計師的一些方法。


來源:Pexels


1、克服鄧寧-克魯格效應


鄧寧-克魯格效應是一種認知偏見,人們認為自己更聰明能幹。本質上,能力低下者不能認識到自己的無能,這導致他們高估了自己的能力。


作為初級程式設計師,這勢必帶來麻煩。你或許認為自己是著名的程式設計師,無所不知,但現實卻是所知甚少,而且遠未達到卓越的水平。這是需要避免掉入的陷阱。


初級程式設計師和高級程式設計師的區別在於,初級程式設計師自認為無所不知,而高級程式設計師知道要學的還有很多。初級程式設計師往往高估了自己的知識和能力,無法識別他人的技能和水平,因此始終認為與他人相比,自己能力更強、知識更加淵博。


正如David Dunning所說。


「在許多情況下,無能並不會使人們迷失方向、感到困惑或如履薄冰。相反,無能的人常常懷有盲目的自信,受到他們所認為的類似知識的事物鼓舞著,高高在上。」


Dunning和Kruger建議,隨著工作經驗的增加,自信程度通常會從過度下降到更為真實的水平。程式設計師開始深入自己的領域,逐漸意識到自己缺乏知識和能力。並且隨著知識積累,專業知識不斷增強,他們的自信程度也會再次提升。


他們提出了以下克服過度自信的方法。


· 堅持學習和練習。對某個主題一旦了解地越多,就越可能認識到仍有很多東西需要學習。這可以克服這一傾向,堅定自己是專家,即使事實並非如此。

· 請求他人評價。請求他人提出建設性批評建議可以為你提供寶貴的見解,了解他人對你能力的看法。

· 質疑原有認知。不斷挑戰信念和期待。尋找質疑你原有觀點的信息。質疑得越多,學到的更多。


記住,感到博學會令人心情愉悅。但是始終需要提高自己的標準。為此,需要更深入地研究以便更準確地理解特定主題。這會讓你認識到還有很多東西需要學習。


2、知道何事不該做


馬克·曼森(Mark Manson)在《毫不在乎的微妙藝術》(The Subtle Art of Not Giving a Fuck)這本書中指出了儘量保持模糊身份的重要性。因為涉及自己身份的時候就是我們認為某些行為或事件代表著我們作為人類的價值的時候。


簡單來說,我們通常會因為滿足自我或幼稚地迷戀驚險刺激而決定做某事,而不是因為真正的需求。曼森告訴我們,當我們將「自我」拒之門外時,會做出最佳決定,因為這很有可能與「你無關」。只需問問自己:「這是一件好事嗎?」如果答案是肯定的,那麼就去做。


這也適用於程式設計師。實際上,大多數程式設計師天生有收集癖好,總是收集閃亮的東西,存放起來並尋找關聯。你可能沒注意到這種現象,一般而言,閃亮玩具綜合症的特徵如下:不顧實際或功能需求而想要擁有最新的玩具,或者總是沉迷於強烈但短暫的擁有後才將注意力轉向其他事物。


如果致力成為一名高級程式設計師,則需要不惜一切代價避免這種問題。最出色的高級程式設計師能夠明確地知道何事不該做。他們知道,從頭開始重寫庫只是為了使其更具可讀性,或者從老舊的框架切換到最新的框架並非總是明智之舉。代碼的目的應該清晰明了以便在幾分鐘甚至幾秒鐘內掌握。即使沒有高超的魔力,瀏覽代碼的過程也應該十分輕鬆。


關鍵不是要規避風險,而是謹慎選擇適合的戰鬥。


3、具有強烈的好奇心


來源:Pexels


想知道「應用程式」一詞是什麼意思嗎?


為什麼我們在智慧型手機應用程式中運用這些小圖標?這是因為它們將給定的工作流程或算法應用於我們遇到的問題,有助於滿足需求。


也就是說,如果要構建某些東西,那麼肯定會犯錯誤。反思自己的工作並不斷改進會促進創新,而創新的根本在於想要發現事物運行原理的好奇心。記住,這是整個自我完善過程中的重要阻礙。


錯誤->見解->好奇心->創新->錯誤……


這一過程不斷重複……


如果想提升自我並成為一名優秀的高級程式設計師,則需要對一切事物充滿好奇心。好奇心是一種工具,用的越多越好,這正是人們對出色的高級程式設計師的期望。優秀的高級開發人員以結構化的方式引導他們的好奇心,從而可以在緊急情況下使用已積累的信息。


下面是激發好奇心並創建品牌的方法。


· 學無止境。選擇一門課程、一本書、一個在線學位,通過它們,豐富已有的想法並獲得新想法。

· 夯實基本原理。確保了解它們的使用方式,以便將其作為基礎應用在工作中。

· 拒絕空想,行動才是真理。想法總是被高估。當你的想法被使用和傳播時,便可以創建自己的品牌。

· 平衡新思想和既定思想。不要盲目接受「應該」知道的想法。挑戰現狀。

· 不只是能運行而已。使它具有可擴展性、可重複使用性和可插拔性。這是培養專業知識的方式。


一切都始於好奇心。沒有好奇心,不妨退出。正如愛因斯坦所說:


「我沒有什麼特殊的天賦,只是擁有極強的好奇心。」


留言點贊關注

我們一起分享AI學習與發展的乾貨

如轉載,請後台留言,遵守轉載規範

文章來源: https://twgreatdaily.com/JsESR3EBiuFnsJQVRTsG.html