Yeah. The command line. Or “Command Prompt”. Or (even worse) “The Terminal“.
It sounds like something Darth Vader uses to destroy worlds, and it even looks like it does exactly that. But the sad fact is, you cannot claim to be a job-ready developer without it.
This is because web development has evolved from banging out code straight into some kind of plain text editor and uploading it to a server. The routine tasks of a modern web developer have multiplied, and many of these tasks are being automated and streamlined via tools and workflows that rely heavily on the command line.
It’s a scary world to venture into for newbies because sources like Codecademy, Free Code Camp barely prepare you for it.
Command Line: Stepping stone to a Build System.
Indeed, web development workflows are now a huge topic, and a major component of a professional web developer’s workflow in 2016 is a Build System.
Here are build systems (or build process) explained in a nutshell courtesy of Google:
A build process is a set of tasks which run over your projects files, compiling and testing code during development and used to create the deployment version of your site. Your build process shouldn’t be a set of tasks you run at the end of your development workflow.
This video by Will Stern of LearnCode.academy quickly explains what a build system is.
This is a great no-nonsense overview of build systems, and it did ease my fears a bit until he mentioned Node.js at the end.
However I quickly learned that this is because of something called the Node Package Manager (NPM). If you are familiar with WordPress themes, you will know about plugins. When you want a particular piece of functionality on your WordPress website you can just get a plugin for it, like a plugin that blocks spam in the comments, or that puts social media buttons next to all your posts.
The Node Package Manager is a bit like the WordPress plugin directory. With NPM you download packages like the above-mentioned Gulp for example. Once Gulp is installed you can download gulp plugins via NPM like gulp-sass, which will watch your Sass code and compile it to proper CSS everytime you hit save.
Unlike WordPress, which has a slick user interface for you to do these things, NodeJS and NPM require you to manually type the plugins you want from the command line, then configure and run them from there.
There is a lot more to be said about Build Systems but I will get into that later. For now it is enough to know that the first step in using build systems is to confront the Command Line, there’s simply no way to be taken seriously by other web developers without knowing how to use it. My next post will be about actually learning the command line.