http://www.microsoftvirtualacademy.com/tracks/developing-html5-apps-jump-start – This is the recommended Jump Start course for the 40-780 exam. It is very heavily Windows 8 centric although it’s a very good base of information. I would be careful here though as some things which they discuss are not yet avaliable in most browsers or at least not how Microsoft implements them. An example of this is the flex-box and the grid box. At time of writing the flex-box does have support in other browsers but behave very different to the Microsoft implementation. The grid box is only implemented in IE10. Also the Error object is implemented very differently in IE10 than other browsers (I checked Webkit and Firefox).

To give myself interactivity and to let me rapidly prototype things I am using the open source editor Brackets.io which is really starting to come along, easy to use, configurable and intuitive. It also works exceptionally well with Google Chrome so I can very easily change HTML & CSS files and see the results in real time.

Some things which also dawned on me was with getElementById and querySelector calls. So to get the element with id=”myElement” would be getElementById(“myElement”) or querySelector(“#myElement”). The querySelector looks great and is used by quite a few people, but I was wondering about performance. Taking a look at a few projects on JSPerf demonstrates that in many cases querySelector is 58% slower than getElementById which is staggering.

Also in the Microsoft Jump Start they talk about the NodeList returned by querySelectorAll is live, so if you add a new element to the page then the NodeList should automatically update with the new element. I tested this on Chrome and found that it doesn’t, and that I needed to call querySelectorAll again. I would therefore be very wary about some of the content of the Microsoft Jump Start as not everything they spoke about will work on another browsers.

All in all it’s going very well. Javascript is an amazing and crazy language. I first learn’t Javascript a while ago by studying the different Javascript design patterns. HTML and CSS are also both amazing which also give you a huge ability to do almost anything in a huge variety of different ways. This is probably one of the more dangerous areas of HTML and CSS, something may seem a good idea at the time but without proper prior thought you can rapidly get yourself into a hole.