环球科技在此|我是怎样通过个人项目成长为高级JavaScript开发者的

大道理都是能用三两句话说清的 。
在我开发人员的职业生涯中 , 最好的决定之一就是不再满足于只做工具的使用者 。
我决定创建我自己的工具 , 并不是为了卖钱 , 而是要了解这些技术的实际工作方式 , 并提升我的技术技能 。
本文是关于这个决定如何改变我生活的小故事 。
我的个人项目遇到的第一个重大挑战
我一直都是玩CSS的 。 在2015年 , 对CSS的热情让我很快成为了我们国家(巴西)的专家级人物 。
那时 , 在我的朋友RaphaelAmorim的鼓励下 , 我接受了“每天编写代码”挑战 。 挑战的内容基本上就是每天都在开源项目中写代码 , 坚持1年时间 。
环球科技在此|我是怎样通过个人项目成长为高级JavaScript开发者的
文章图片
但在我刚开始编写代码的时候 , 我的JavaScript技能水平是非常低下的 。
当我收到在FrontinValle(我的国家举办的一场大型前端会议)的邀请 , 希望我随意谈一些话题的时候 , 事情就不一样了 。 我冒出了一个天真的念头 , 决定创建自己的CSS预处理器 , 从而学习有关用JavaScript的知识 。
BananaCSS
环球科技在此|我是怎样通过个人项目成长为高级JavaScript开发者的
文章图片
巴西CSS超集 。
在2016年 , 我创建了一个称为bananaCSS的CSS预处理器 , 这个项目的目的是学习JavaScript , 但到最后我学会了Node.js、如何创建CLI、lint、单元测试、JSDoc、持续集成、数据结构、AST、如何创建gulp插件等等一大堆知识 。
环球科技在此|我是怎样通过个人项目成长为高级JavaScript开发者的
文章图片
BananaCSS项目:https://github.com/bananacss
深入前端开发领域
这时候 , 我觉得自己有必要了解更多关于浏览器中的JavaScript的知识 , 因此我考虑了日常使用的主要工具 , 并选择了React.js 。
millenium.js
在2017年 , 我创建了一个名为millenium.js的项目 , 该项目的描述为:
环球科技在此|我是怎样通过个人项目成长为高级JavaScript开发者的
文章图片
一个用于创建函数式无状态组件并使用虚拟DOM渲染的JavaScript库 。 使用Redux创建超轻和快速应用程序的理想选择 。
或者我最喜欢的描述是:
在不到12秒内渲染你的前端 。
在这个项目中 , 我了解了性能相关的知识 , 以及创建前端库、算法、JSX等的良好实践 。 当然 , 我保留了旧项目中的所有优秀实践 。
环球科技在此|我是怎样通过个人项目成长为高级JavaScript开发者的
文章图片
Redux的在线演示 。
millennium.js项目:https://github.com/millenniumjs
凭借热情探索新事物
在2018年 , 当我看完《头号玩家》电影之后 , 决定用JavaScript创建一个游戏 。
使用JavaScript创建游戏是相对简单的任务 , 你有许多工具可以挑选 , 然后阅读文档 , 做些实验 , 就可以完成了 。
但对我来说 , 我的风格当然是:创建一个用于创建游戏的新工具 。
对于这个项目 , 我决定定义一些有趣的规则:
不要使用Canvas/WebGL 。 仅使用CSS渲染动画 。 编写函数式代码 。 尝试编写尽可能多的同构/通用代码 。burnout.js
最后 , 我创建了burnout.js:
环球科技在此|我是怎样通过个人项目成长为高级JavaScript开发者的
文章图片
用于管理碰撞的2D游戏引擎 。
在这个项目中 , 我学习了有关函数式编程、DOM性能、算法(用于计算元素碰撞)和其他很多内容的知识 。
环球科技在此|我是怎样通过个人项目成长为高级JavaScript开发者的
文章图片
burnout.js项目:https://github.com/burnoutjs