Hello and welcome.

I’ve been a web developer since 2006, and this blog is about my thoughts, patterns, and processes of doing web development.

Web development, and software development in general, is all about problem solving and pattern recognition. Most of the technical aspects of it are equal parts solving a puzzle and curating an ecosystem. Everything you use when programming are your tools; your programming language, 3rd party libraries, IDE, source code manager, computer, keyboard, desk, chair, whiteboard… Everything you do when programming boils down to you using tools to solve problems.

The path to becoming a good developer goes straight through learning how to use all of those tools. To become a great developer, you must master your tools. Sure, it helps to be smart and have a solid foundation in the theory, but your daily grind is going to largely consist of you using your tools. And all of your intelligence is going to be thwarted by frustration if you can’t apply it effectively and efficiently via your tools. The better you know your tools, the more problems you are going to be able to solve, and the more efficient and productive you will be.

With that in mind, I am going to share with you some of the ways that I use my tools, and how I even create some tools of my own. My primary programming language is JavaScript. I’ve been using it since I started building websites back in 2006. There are many things I like about JavaScript, but most of all I like its flexibility. It’s a prototype language but can be used like an object oriented language. It can be used for anything from simple web pages, to server applications, to desktop apps, and even embedded applications. It can be weakly typed, or you can use TypeScript, and it can be strongly typed. JavaScript can be whatever you want it to be, and that’s all I want it to be :)

Given that JavaScript is my primary language, the editor that best supports JavaScript development, IMHO, is Visual Studio Code (VS Code), and that is my daily workhorse. I would say that learning to use your editor, or IDE, is as important as knowing your programming language. In fact, it might even be more important because you can probably use it for several different languages. Apart from the editor, I also use nodejs and npm to manage dependencies and run automated scripts. And behind all that I use Linux as my primary operating system, and with it, the bash shell as my command line interface (CLI), and git as my source control manager.

That may or may not sound like a lot of stuff to you, but rest assured that I didn’t start out that way. No, I started out writing JavaScript in Notepad, with Internet Explorer 6 running on Windows XP.