前端开发新手如何有效学习 Angular?

2023-05-26 0 987

2021 年 6 月 23 日预览。

重新整理了这份 Angular 自学天然资源目录,可供我们参照。

我第二次写 Angular 约莫是在 2018 年 5 月 22 日以内,那六天递交了我的第两个 PR:

fix(module:input-number): fix focused style could not be removed after blur by wendzhue · Pull Request #1453 · NG-ZORRO/ng-zorro-antdgithub.com/NG-ZORRO/ng-zorro-antd/pull/1453前端开发新手如何有效学习 Angular?

到写此篇提问的 19 年 5 月 16 日相差无几两年了,刚好来归纳呵呵他们的自学历经,也期望对没碰触过 Angular 的老师略有协助。

而此初年我给 ng-zorro-antd 递交了134 个 PR(当中有许多还没 merge,很多没 merge 就 close 的),写了 @ant-design/icons-angular 两个图标库,两个小讲义(现阶段处在成在状况),除此之外在子公司外部还写了两个模块库,参与保护工程项目组的工程项目,分立写了两个小辅助工具之类。

自学 Angular 以后

我从 17 年 10 月末已经开始老实自学后端(以后是学了基本上的 HTML CSS 和 JS),第一门框架是 Vue,因为 Vue 相对简单易学。我从 Vue 已经开始写了一写小 app(烂大街的音乐播放器、饿了么等),读 Vue 和 element-ui 源码,写了两个模块库(虽然只有 10 两个模块)之类。18 年春招进入了现在的工程项目组,工程项目组主要采用 Angular,所以从确定拿到 offer 那天起就已经开始自学 Angular。

在已经开始自学 Angular 以后我自认做到了以下几点:

扎实的 JavaScript 基础(我他们实现过 Promise,包括 Promise.all 这种,常用辅助工具函数他们撸完然后去对比 lodash 之类)习惯他们检索问题的答案具有一定的源码阅读能力

个人觉得在自学框架以后,掌握基础是十分重要的,不然它们都会称为你在自学框架过程中额外的心智负担。

初学 Angular

时间上应该是 18 年 6 月到 11 月这段时间。

我比较推崇的方法是 learn xxx in the hard way(源自 learnpython the hard way),以及 learn by doing,我在自学 Angular 的时候也是这么做的:

读。读 Angular 官方文档(讲义、文档完整的过了一遍),读 Angular In Depth 专栏(强烈推荐!)的文章,以及师兄 在面试还没走完以后就给我的阅读目录(后来也发布在了我们的知乎专栏,非常齐全的自学材料),我在入职前的时间里基本上 cover 了所有的知识点(当然不可能全部搞懂……)。RxJs、TypeScript 都是在这时候学的。写。跟着讲义写代码。比如我他们跟着三十天掌握 RxJS 的系列讲义撸了两个简单的 RxJS。当然先是给他们的工程项目组贡献 PR 了。最已经开始写的时候很菜,修 bug 还要一边修一边翻文档翻博客,也只能做许多简单的 issue。写了两个 side project,是上面提到的讲义工程项目,覆盖了 Angular 的不少 topic。进入工程项目组后,通过做需求、工程项目来进一步练习 Angular。和工程项目组商量了解决方案,分立编写了 icons-angular 。

在读与写的过程中,你会对 Angular 的 API 越来越熟悉,也会对 RxJS、TypeScript 有更多理解,渐渐的在写业务的时候,Angular 及周边库就不会变成心智负担了。

关于题主在问题描述的情况——虽然信息量很少——我觉得原因是代码读写太少了。

进一步自学

11 月到现在

后来模块库的发展(主要是两个 milestone 里涉及的许多重大改造)需要我去自学 Angular 更高深的许多 topic,而此时提高他们对 Angular 的理解水平的仍然是读和写。

读。读 Angular 和 CDK 的源码(有的朋友可能看过我的解析文章),以及快要翻烂的 Angular in Depth(出场率真高 )。比如 OnPush 改造要求我们对 Angular 的变更检测机制极为熟悉,所以那段时间我们都读完了 Angular in Depth 上的相关文章并进行了很多讨论。写。ng-zorro-antd根据从 CDK 和设计模式里学到的知识,已经开始重构他们负责的模块(我自认做的比较好的是 cascader 和 carousel的重构,一次性解决了不少遗留问题)。为了彻底解决 breadcrumb 自动生成的问题,阅读路由机制的文章,甚至还读了 Angular 此部分的源码。写业务的同时已经开始注意多个工程项目之间的代码复用,和应用内更合理的数据流种种话题。

到这里,Angular 已经不是写后端项目的障碍了,成为了两个得心应手的辅助工具,即便有暂时 block 我写代码的问题,我也自信能在一周之内完全搞懂那个 topic。

归纳

从我这两年的历经中,我觉得以下几点是自学 Angular 的过程中颇为重要的。

循序渐进。你可以看到我是 JavaScript => Angular API => Angular 底层原理这样一层层点技能点上来的,跳过的东西太多,后面就会付出不必要的代价。如果你经常碰到不知道怎样表达代码的情况,而此点可能是最先要反思的。我个人不太赞成“知道怎么用就好”这种自学方法,你在入门的时候,基本上无法判断他们是不是真的掌握到“够用”了,还不如完全理解以一劳永逸。求当中者得其下。多读多练习。自学任何技能的任何行为,都可以归类于观察——模仿——发展——反思四个类,分别对应读——跟着讲义写工程项目——写工程项目、做开源——归纳、输出四件事。找两个好工程项目组和一群好伙伴。我无意夸大他们的努力在我成长过程中的重要性,我的工程项目组对我的成长起到了很大的推动作用,包括师兄 对我的点拨,和工程项目组的小伙伴们 @wenqi73 之类的无私分享。如果你的周围没可以讨论 Angular 的小伙伴,你可以参与开源社区,通过递交 issue、PR 等方式和其他开发者交流(实际上我们工程项目组有两个小伙伴在加入以后都给 zorro 贡献过代码)。

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务