When you are just starting out as a web developer there are many things you may take into consideration to get a grasp on how to build websites. The first step is always to learn some basic code, once you have a fundamental grasp on the code, you can go in so many directions with what to learn next.
Choosing your path is not easy, there used to be a time where being a jack of all trades could be helpful, but nowadays we are seeing a shift back into being an expert in one thing is actually more lucrative. For example being a great developer, and only a developer can prove to be just as profitable as being a great marketing person or business consultant. While building websites (thanks to WordPress) has gotten a whole lot easier, it doesn’t mean you have to offer everything. The reason agencies do so well is because they get big clients and then have a team of highly skilled experts in each individual category to offer a complete package. Keep in mind, I started this article on talking about basic code knowledge, and not every expert needs to know code to be an expert at their skill set. Here, I am focusing primarily on developers who want to learn and take their code knowledge to the next level.
I won’t get into it much here, but there are sub-paths, for example as a developer you can choose to focus on being a front-end developer or back-end, and this really comes down to what you enjoy doing more.
If you choose to be a developer, there are a few paths you can take, but there are a few things that can apply to any. I asked the developers in The WP Crowd what they thought was the next best thing to learn after you have that basic foundational code knowledge.
Out of the developers I asked, most suggested that Git or version control was the next best thing to learn. If you aren’t familiar with git, have you heard of GitHub? GitHub and BitBucket are websites that allows you to easily store version controlled code.
Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later. In a nutshell, have you ever coded something and then made a mistake? For the matter lets get really basic, have you ever made an error ANYWHERE while using almost any program? You can quickly hit ctrl+z or cmd+z to do an action called “undo”. Undo is the most basic form of version control, problem is that you can’t undo once you save, close, and re-open the file. Git and other version control systems allow you to do just that, every time you save and “commit” to a version, you can undo your changes.
There are many great reasons to use version control, the basic “undo my changes” is one of them. The second most common reason is when you are working with more than 1 developer on a project. Version control allows multiple web developers to work simultaneously on a project without interfering with one another. This happens through a process of “commits” and “merges” where code is merged together. If you and another web developer are both working on file A, you can both “commit” and git will merge the changes together. Yes, sometimes there are conflicts or errors, especially if you happen to be working on the same exact lines of code.
Another great use case for version control when working alone on a project, is disaster preparedness. If something goes wrong with the site, you always have a fallback version you can go back to. Where I work if when the code is ready to be pushed to our live site, we notice an issue, we can always remove the code that causes that issue, thanks to version control. If the site breaks all together and we have no idea what specific piece of code is causing it, thanks to version control we can go backwards in time to the last known state that we knew it was working fine, and push that code to production.
There are many great tutorials on how to use Git and other version control systems out there, and developers at The WP Crowd agrees, if you aren’t using it, you should be.
Another big one that came up, and personally I think this is important for any developer, is environments. As a developer, you should have at minimum 2 environments that you are working with, production and local. Local refers to your computer, and there are EASY ways to get the website you are currently working on to run locally.
Vagrant, MAMP & DesktopServer are all great solutions for getting up and running with a local environment. If you are just starting out and are only working on WordPress, I highly recommend DesktopServer, it will quickly get you up and running with a WordPress site which you can easily deploy to the production site. If you are doing more than just WordPress, MAMP (or WAMP for Windows) is a good application just to get a quick LAMP stack running on your local machine. This was my favorite go-to application for local environments because it gave me a little more control, and I could dabble in other LAMP frameworks simultaneously. Vagrant is the most complex, however the most powerful. It allows you full control over the whole stack, so if your production environment is on a finicky server, you can create an identical server to run locally. There is a great WordPress Vagrant solution called VVV, which I use locally for most of my projects.
As a developer, you should never really stop learning. Always take opportunities to learn new things whether it be code, or ways to make coding easier. I didn’t touch on developer build tools like gulp and how to use pre-compiled code like Sass, but those are also really cool things to learn and can help you level up as a developer.