我是怎樣通過個人項目成長爲高級 JavaScript 開發者的

大道理都是能用三兩句話說清的。

在我開發人員的職業生涯中,最好的決定之一就是不再滿足於只做工具的使用者。

我決定創建我自己的工具,並不是爲了賣錢,而是要了解這些技術的實際工作方式,並提升我的技術技能。

本文是關於這個決定如何改變我生活的小故事。

我的個人項目遇到的第一個重大挑戰

我一直都是玩CSS的。在2015年,對CSS的熱情讓我很快成爲了我們國家(巴西)的專家級人物。

那時,在我的朋友Raphael Amorim的鼓勵下,我接受了“每天編寫代碼”挑戰。挑戰的內容基本上就是每天都在開源項目中寫代碼,堅持1年時間。

但在我剛開始編寫代碼的時候,我的JavaScript技能水平是 非常 低下的。

當我收到在Front in Valle(我的國家舉辦的一場大型前端會議)的邀請,希望我隨意談一些話題的時候,事情就不一樣了。我冒出了一個天真的念頭, 決定創建自己的CSS預處理器,從而學習有關用JavaScript的知識

Banana CSS

巴西CSS超集。

在2016年,我創建了一個稱爲banana CSS的CSS預處理器,這個項目的目的是學習JavaScript,但到最後我學會了Node.js、如何創建CLI、lint、單元測試、JSDoc、持續集成、數據結構、AST、如何創建gulp插件等等一大堆知識。

Banana CSS項目: https://github.com/bananacss

深入前端開發領域

這時候,我覺得自己有必要了解更多關於瀏覽器中的JavaScript的知識,因此 我考慮了日常使用的主要工具 ,並選擇了React.js。

millenium.js

在2017年,我創建了一個名爲millenium.js的項目,該項目的描述爲:

一個用於創建函數式無狀態組件並使用虛擬DOM渲染的JavaScript庫。使用Redux創建超輕和快速應用程序的理想選擇。

或者我最喜歡的描述是:

🚀在不到12秒內渲染你的前端。

在這個項目中,我瞭解了性能相關的知識,以及創建前端庫、算法、JSX等的良好實踐。當然,我保留了舊項目中的所有優秀實踐。

Redux的在線演示

millennium.js項目:https://github.com/millenniumjs

憑藉熱情探索新事物

在2018年,當我看完《頭號玩家》電影之後,決定用JavaScript創建一個遊戲。

使用JavaScript創建遊戲是相對簡單的任務,你有許多工具可以挑選,然後閱讀文檔,做些實驗,就可以完成了。

但對我來說,我的風格當然是: 創建一個用於創建遊戲的新工具

對於這個項目,我決定定義一些有趣的規則:

  • 不要使用Canvas/WebGL。
  • 僅使用CSS渲染動畫。
  • 編寫函數式代碼。
  • 嘗試編寫儘可能多的同構/通用代碼。

burnout.js

最後,我創建了burnout.js:

🎮用於管理碰撞的2D遊戲引擎。

在這個項目中,我學習了有關函數式編程、DOM性能、算法(用於計算元素碰撞)和其他很多內容的知識。

burnout.js項目: https://github.com/burnoutjs

當然,我還是保留了所有優秀實踐,例如單元測試、單元測試、單元測試,重要的事情說三遍。

做一個項目就冒出一個靈感

這時我又有了新的聯想:

拜託,我怎麼從未想到要創建自動化測試工具?

於是有了下面的項目。

N.O.M.s

🔮通用/同構JavaScript單元測試。

在開發burnout.js時,我構建了N.O.M.s(我的測試工具),並使用N.O.M.s庫編寫了burnout.js的全部單元測試

創建測試庫的目的是什麼?

  • 它應該可以用在瀏覽器和Node.js(同構/通用)中。
  • 在純JavaScript中創建所有斷言(不使用瀏覽器API或Node.js模塊)。
  • 使用Emojis。
  • 不要將自定義CLI用於運行測試。

有趣的是:我用Mocha編寫了N.O.M.s單元測試。很諷刺,但很有趣😅!

N.O.M.s項目:https://github.com/afonsopacifer/nomsjs

值得重新發明輪子嗎?

在完成這些個人項目(以及其他許多項目)之後,在2019/2020年,我主要開發公司產品,創建複雜的前端應用程序並領導一個全棧開發團隊。

令我驚訝的是,在開源開發的最後幾年中,我的技術水平提升了,並且可以輕鬆使用React.JS、immutable.js、Web Components、flux、測試、PRPL模式、後端API(node.JS/python)、MongoDB,以及用於Web應用程序的許多工具/良好實踐來實現複雜的架構!

結論

作爲前後呼應:

在我的開發人員職業生涯中,最好的決定之一就是不滿足於只做工具的使用者,而是 成爲工具的創造者

原文鏈接: https://dev.to/afonsopacifer/how-i-became-a-senior-javascript-developer-with-personal-projects-1lpo

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章