I wanted to write this post a week ago but didn't find a time. Now I want to have some kind of plan for future Web Development learning because the priorities change often and I'm a little lost, I need to admit.
I'd started to get myself familiar with Angular. I use Minko Gechev's book (Switching to Angular 2) and Angular Documentation site. Both are the great resources, the book especially. Though it's a bit outdated.
I like the Angular way of doing things, style guides and tools, and people behind the framework. I started to like it from AngularJS and continue to do so now, after diving into its descendant. I feel subconscious sympathy for Angular, and don't like all the hysterical hype around React, on the other hand.
Having met both of them and played with them to some extent I've found that Angular is more TS/JS-ish than React, more straightforward and trustworthy. React in its turn is more original and fun (and React Native is undoubtedly cool).
My goals on my learning way are to be able to:
- Build scalable component-oriented apps with stateless business logic
- Build mobile-oriented PWAs
Now what I've found I need to know to get there are:
- Advanced Angular (and React to some extent) development
- TypeScript, its design patterns and unit testing ('cos React is better with TS too)
- Functional reactive programming and RxJS/ngrx (to apply it everywhere)
- Immutable data structures and libraries to work with them
At the same time I need to update my AngularJS knowledge and approaches with respect to modern JS ecosystem because I use AngularJS in my work and want to make it more comfortable in front of promised AngularJS death and its possible consequences. I will continue working on my AngularJS -> Angular project and modern AngularJS starter.
So I understand that it's a huge amount of work and I need to organize it some way to get everything done in the end. I've compiled a weekly schedule to start with. This way I will be able to pay attention to all the parts regularly and not loose anything. This schedule takes into account the importance of different aspects to me, my lifestyle (free time I have), and even my nature. So here it is:
Mo: Angular / AngularJS / RxJS
Tu: Angular / AngularJS / RxJS
We: Angular / AngularJS / RxJS
Th: React / React Native / Flux Architecture
Fr: Unit testing and TDD / BDD
Sa: CS paradigms, idioms, patterns, algorithms in JS / TS
Su: CS paradigms, idioms, patterns, algorithms in JS / TS
Now I feel more confident and have a good plan in front of me. So go away hesitating, anxiety and impostor syndrome, and welcome the new knowledge!