Learning sufficient enough to use on a personal site
If you are going to create a web application
Backend programming with Node.js
AMD (Asynchronous Module Definition)
Most of the blocking statements on your code can be turned into asynchronous calls using callbacks. By doing so, you tell the JS engine that you don't want to wait until that line of code executes until the process continues. However, as discussed above, introducing asynchronicity makes the logic more complex. Luckily, there are ways to reduce this complexity. Using a modular design (e.g AMD) and script loaders (e.g require.js) will help you be more structured and save you from reinventing the wheel. Practicing the best practices for a month should be enough until you are confident with them.
Also keep in mind that you don't have to do something fancy to introduce blocking parts to your application. For example, including scripts to your web page using the <script> tag is also blocking the execution until the browser send the request, get the script and execute it.