每位初級開發都應該知道的六件大事

csdn 發佈 2020-01-11T09:45:06+00:00

然而,這都沒有關係。也許你剛大學畢業,或剛結束培訓班的學習,但這不是此次旅程的終點,而僅僅是一個開始。

程式設計師世界從來沒有「容易」二字,對於入門級的開發者,應該注意些什麼呢?

作者 | calevans

譯者 | 彎月,責編 | 屠敏

以下為譯文:

我的第一份軟體開發工作是為父母的公司工作。在這之前,我已經使用Commodore 64很多年了,而且我的軟盤上還有一些運行良好的代碼,我會把這些代碼帶到我朋友家中,供他們複製使用。後來我的父母買了一個新的計算機系統,但他們卻無法利用這個系統完成他們的工作。很幸運的是,這個系統是用BASIC編寫的。於是,我假裝很懂BASIC,並挺身而出正式成為了一名軟體開發人員。

那都是36年前的事兒了,但至今我仍堅守在這個崗位上。儘管我從未攻讀過計算機科學學位,也從未接受過任何軟體開發方面的正式培訓,但我有兩種學習的方法。

  • 觀察別人、與他人交談、向他人學習

  • 犯錯誤

在本文中,我將講述多年來積累的經驗教訓,多麼希望當初我就能懂得這些。如果你剛開始學習編程,那麼希望本文能對你有所啟發。

耐心

對自己有耐心,對別人有耐心。作為初級開發人員,你自然不會無所不知,而且你還會犯錯誤。如果你很幸運能進入一家公司工作,那麼請珍惜。好的公司會明白你正在學習。他們會為你指定一名「夥伴」幫助你解決問題。當你感到迷茫時,他們會為你指明正確的方向。

再重申一次,你會犯錯誤。你提交的PR中會包含嚴重的邏輯錯誤(就像一顆炸彈)。如果將你編寫的代碼投入實際生產,那麼可能會導致一半的資料庫被刪。有時你編寫的代碼還會引發安全漏洞。然而,這都沒有關係。這就是我們要進行代碼審查的原因,目的就是讓其他開發人員幫助你發現這些問題,並幫助你成長。

告訴你一個秘密:團隊中的高級開發人員也犯過這些錯誤,而且很有可能就是這兩年的事兒。

要對自己耐心一點。你遲早會成長為一名優秀的開發人員。只要你堅持下去,終有一天會擺脫「初級」的頭銜,但這需要時間和經歷,還有很多的錯誤。

學會高效敏

在過去的35年中,軟體開發界中唯一的不變之處就在於一切都在變化。程式語言起起落落,框架變化得如此迅速,甚至連最佳實踐也會隨著時間的推移而不斷發展。作為初級開發人員,你會遭受雙重打擊。你必須學習當前的技術堆棧才有用,但是你還需要掌握這些技術棧的變化。最重要的是你必須時刻關注新技術,儘管這些技術可能會對你有用,也可能根本沒用。學習的能力才是事業成功的關鍵。

注重核心原則,而不是工具

語言、框架、平台、IDE、測試框架,這些技術的興衰轉眼即逝。你所掌握的某個框架知識可能在3-4後就過時了,等你轉向新框架時,之前的努力就白費了。

然而,面向對象程序設計、功能程序設計、設計模式、SOLID等概念將跨語言和框架,讓你終身受益。

這並不是說你不應該努力成為最優秀的Java開發人員,也不是說你不應該花時間學習技術棧和工具,我的意思是通過精通語言和工具背後的概念來降低學習的難度。這些知識在其他語言和技術棧也同樣適用。

觀察你周圍的輪子

說「不要重新發明輪子」的人是個傻瓜。我永遠不會將自行車輪胎放到全美賽車協會的賽車上,他們的賽車使用的是特殊的輪子。軟體開發人員需要經常重新設計輪子,因為他們需要具有特殊屬性的特殊輪子

但是,你不應該嘗試親自編寫所有的代碼。你可以嘗試重新發明所有的輪子。環顧四周,瀏覽Github或Gitlab上其他人的代碼。 PHP開發人員有一種強大的資源名叫packagist,JavaScript開發人員擁有一個類似的工具名叫npm。無論你使用哪種語言,都應該首先熟悉打包和依賴項管理工具,只有這樣才能查看其他人創建的代碼。你需要編寫的功能有99%的機率已經存在了。不妨先嘗試一下。

如果找不到能夠100%滿足需求的產品,那麼想想看是否可以建立一個分支,而不是從頭開始做?

有的時候,軟體開發人員的確會重新發明輪子,但是當我們這樣做時,我們知道我們為什麼這樣做,而且在被問及時可以堅定地捍衛這個決定,因為說實話,這畢竟是我們不得不選擇的最昂貴的選擇。

多讀少寫

電影中的軟體開發人員(通常稱為黑客)經常坐在兩個螢幕前,一邊看著兩邊的代碼迅速滾動,一邊煞有其事地點點頭,仿佛他們正在閱讀和理解他們看到的代碼。然而,現實中並不會出現這一幕。

更為常見的情況是,軟體開發人員在某個代碼倉庫的基礎上建立分支,克隆到本地,然後打開編輯器,開始閱讀代碼。閱讀別人的代碼是最佳的學習方式。如果你知道代碼的作用,那麼閱讀代碼的過程中你就可以看到其他人解決問題的方式。

就像偉大的作家,他們的閱讀量遠遠超過了寫作量,偉大的軟體開發人員閱讀的代碼量(他們自己的和其他人的)也超過了他們編寫的代碼量。作為初級開發人員,你應該加倍努力。由於你沒有現成的代碼可供複製和粘貼,因此你需要了解其他人解決常見問題的方式,並思考自己該如何解決。

尋找導師

記得本文開頭的故事嗎?那個時候還沒有網際網路。當時我們有BBS,但沒有太多共享的內容。所以,我不得不買書。看書、寫代碼,然後不斷嘗試,直到代碼可以運行。

如今,軟體開發人員擁有大量的信息和示例代碼可以參考,比如Stack Overflow、Stack Exchange、Reddit等等。儘管如此,找到代碼只是解決問題的第一步。接下來你需要確定某個解決方案是否可行。為此,你需要找到一個好導師。

你需要找到一個參謀。這個人希望你取得成功,並願意花時間幫助你取得成功。你可能需要下一番功夫才能找到合適的導師,一定要堅持下去。只有不斷嘗試,才能找到合適的人選。

找到導師後,請記住黃金法則:「切勿浪費導師的時間」。在需要的時候,你可以打電話給導師。一位好導師會檢查你的情況,但仍然允許你在需要時提出問題。不要因為一些簡單的問題打擾導師,你可以搜索網際網路自己解決這些問題。只有在走投無路時,再向他們求助。他們是你職業生涯中的精神支柱,而不是你的司機。他們會為你提供指導和建議,但你不應期望他們會給你答案

總結

歡迎來到軟體開發的美好世界。也許你剛大學畢業,或剛結束培訓班的學習,但這不是此次旅程的終點,而僅僅是一個開始。除非你退出這個領域,否則一切都不會結束。你需要堅持學習、成長和發現。軟體開發人員既是藝術家,又是科學家,還需要窮其一身堅持學習。擁抱這些優秀的品質,勇往直前,為創造美好的明天而努力。

原文:https://hackernoon.com/the-six-most-important-things-junior-developers-need-to-know-to-begin-and-sustain-their-it-careers-vir3tkt

本文為 CSDN 翻譯,轉載請註明來源出處。

關鍵字: