When writing HTML locally save the files with the extension &quot;.xhtml&quot;.  This forces XML conventions upon the document so that when you open it in the browser it will immediately fail on the first syntax violation.  This will help you learn to write better HTML.<p>When writing HTML be as descriptive as possible in your use of tag names.  If you only use &quot;div&quot; and &quot;span&quot; for everything you are failing your users and destroying accessibility.  Go read this <a href="http:&#x2F;&#x2F;www.w3.org&#x2F;TR&#x2F;WCAG20&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.w3.org&#x2F;TR&#x2F;WCAG20&#x2F;</a> and the various supporting documents.  You cannot claim to have mastered HTML if you have failed to understand accessibility.<p>CSS just takes practice.  With the browsers being less divergent now and easier to code for its harder to learn a deep deep level of mastery.  Back in the days of IE6 you had to become quite the badass to make CSS work cross-browser without a bunch of stupid hacks.<p>For JavaScript there are some key things to focus upon:<p>* The scope model (learn closures and nesting functions)<p>* events and callbacks<p>* xmlHttpRequest (AJAX)<p>* the DOM<p>* the Node.js methods<p>Don&#x27;t dick around wasting time learning frameworks and JQuery.  Just learn through the vanilla code and learn to solve problems as directly as possible.  It will pay off in the long run.  Pass your code through the <a href="http:&#x2F;&#x2F;jslint.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;jslint.com&#x2F;</a> tool.  JSLint is OCD crazy opinionated and extremely strict, but it is that on purpose.  It is designed to teach defensive coding practices so that you can right code correctly the first time which has a significantly lower probably of failure and is easier to maintain.