Since CEF is a client-side application, you should know HTML, CSS, and
JavaScript before you begin. Beyond that here is a compilation of tools,
links, and suggestions for leaning how to develop for this new platform.
You should know as much as possible, but here are some areas that are
important, but may not be well known:
Many of the new constructs will make heavy use of array methods that
come from functional programming. Once you know them you'll never write
a for loop again!
Writing modular code will involve a lot of object manipulation. There
are now native features that do what many libraries used to.
Javascript has "classes" now, and they are used extensively in Angular
2. They share a lot of similarity to classes from other languages like
Java and C#, but under the hood you are still using prototypical
inheritance. It is best to consider JS classes as convenient containers
that can self-initialize. Class inheritance will be used, but more than
2-3 levels should be considered a potential problem.
CEF is built on top of the Angular framework. If you know AngularJs many
structures in the new version will be familiar, but under the hood it is
very different. You will find fewer "angular-isms" and odd cases, but
the underlying toolset can seem intimidating. Thankfully, the
documentation is much better.
Angular leverages the Typescript
transpiler extensively. This means you will find most documentation and
tutorials in typescript. The CEF [Style_Guide style guide] will go
into detail on specific usage during development, but you should
understand what typescript does, how decorators work, and how to
properly annotate your code with type information.
AKA reactive programming or the observable pattern. Observables are the
main data and event management construct in Angular 2. They are quite an
improvement over promises, but require a different approach when
building streams. This is where all the focus on arrays and functional
programming come into play.
Redux is a pattern for application state management. NgRx is an
implementation of Redux optimized for Angular, and is what CEF uses.