As WordPress matures, it’s becoming more important that we learn other web technologies and languages to keep up with the fast-changing online environment.
In this article, I want to highlight some of the skills you should learn or, at least, look into to ensure you stay on top of your game and remain an indispensable member of your team if you work with others into the next 12 months.
1. Version Control
Version control is essential when working in a team and super-helpful when working alone. It allows you to keep track of your product versions, roll back changes, keep a distributed backup around, and it helps multiple people work on the same codebase without issue, and much more.
The two most prominent version control systems are Git and SVN. Sadly, you can’t just choose one over the other, you need to be well-versed in both. The good news is that the logic behind all version control systems is roughly the same, so once you’ve mastered one you can learn the other with minimal effort.
WordPress uses SVN for plugins simply because it was available before Git. Git is used heavily by developers from all walks of life. You can find millions of projects on Github, for example.
It is likely that you’ll use Git within your team but you may have to use SVN, especially if you’re creating tools for the WordPress Plugin Directory.
2. The Command Line
I was so scared of the terminal at first, but then I quickly realized there really was no need to fret!
So what is the terminal? It’s basically a program that provides a line interface and lets you issue commands on your computer without a graphical user interface. For example, on your computer you can create a folder by going to a directory, right-clicking, selecting “New Folder” and naming it. In the terminal, on the other hand, you can do this simply by typing
Sure, terminal commands can seem cryptic but often they are shortening the time you need to do something. You’re replacing left clicks and right clicks with commands typed in. What makes it all so powerful is that a long command can be saved, assigned a special keyword and then run with that single keyword.
You’ll be using the command line more and more as soon as you start wrapping your head around it. A couple of examples from the wild:
- Using WP-CLI (a set of command-line tools for managing WordPress installations), you can automate a lot of tedious WordPress tasks. You can install WordPress along with all the plugins you need and test content with a single command. You can search and replace in the database in complete safety with another command that’s as easy as typing
wp search-replace oldvalue newvalue.
- Want to resize all images in a directory? Simple type
sips -Z 150 *.jpg. This will go through all of our images and keep their maximum dimensions at 1200pc and maintain their aspect ratio.
These are just a couple of simple examples. You can even convert your SASS code to CSS, optimize images, concatenate files – you can do so much! Terminal knowledge is an absolute must for pro coders. Even if your job doesn’t require it, your team will thank you for it.
If you want to learn more and become proficient at using the command line, definitely check out WP-CLI. Learn to code website Treehouse as a great beginners article on getting started with the command line on OS X, while Codecademy has a three-hour course for beginners. If you’re after something more advanced, Learn Code the Had Way has a command line crash course that takes a day or two and is super comprehensive.
3. People Skills
To break up all the technical stuff here, let’s talk about people skills because they are, arguably, the most important item on this list.
Many employers, customers, and clients will, for the most part, put up with any mistakes you make and be willing to work through any issues during projects. But if you’re easy to work with – even a pleasure to work with – you are more likely to score ongoing client work, even if you aren’t the best of the best at what you do.
What makes this one a bit difficult, though, is that you also need to know when to put your foot down and when to suck it up when clients push you too far – a very difficult skills to learn. My advice, coming from personal experience dealing with clients, is to always be courteous and polite, but don’t be afraid to be firm.
Yes, you will probably make some people mad at you at some point, but that’s OK. Do your best to be a nice guy or girl and do your job well – that’s all anyone can do!
4. Expand Into Other Territories
I’m sure there are a lot of WordPress advocates out there who’ve never used Drupal or Joomla but dutifully nod away when they hear how much better WordPress is in comparison. The truth is – wait for it… – that all these systems are quite capable.
Don’t forget that Joomla may have dwindled in market share, but there are still 500,000 websites using it – that’s a respectable number, for sure.
All major content management systems have something we can learn for them and I suggest taking a look and, at least, using them for yourself. Take Joomla and Drupal for a test drive to give yourself a broader perspective and judge for yourself whether WordPress really is better or not.
Once you feel like you know your core programming languages well, why not expand into others. You may not use C# for making websites or writing plugins, but there is a lot you can take away from learning a new programming language. Broadening your skillset into territories tangentially related to what you do can provide one of the biggest benefits over time – you’ll become a true Jack of all trades. The more you know, the more information you have to draw on when creating products or forming opinions – and the more likely you’ll become a better developer in your chosen field.
5. Learn Object Oriented Programming
OOP is an amazing tool to learn because it gives you your first glimpse into higher level programming.
To be blunt: programming for the web is perhaps the easiest and most straightforward type of programming. You learn a few easy and loose languages and basically throw them together however you want.
OOP, however, teaches you structure, abstraction, reusability and will pretty much force you to write better code. If you work as part of a team, chances are you will have to write OOP code for the same reason you’ll have to use version control. It is a momentous feat to maintain spaghetti code by yourself but utterly impossible to do it in a team environment – you need a lot more structure and control!
My favorite place to learn OOP is Laracasts. Described as “kinda like Netflix for developers, it’s an excellent service that started out as a Laravel tutorial site and has morphed in a place where you can learn practical, advanced coding topics through expert screencasts.
While you’re on the site, check out Laravel itself and start learning about it alongside OOP. In my opinion, it is easily the best PHP framework out there.
6. Build Tools
It may be a bit of an overstatement to say that build tools cut your development time in half, but they can save you from having to do a big chunk of work.
If you’re working on a large project or plan on working on one, you will definitely run into build tools. You may not actually see them ticking away in the background but it’s a huge benefit to know about them. You could even go into a fresh work environment and make everyone’s lives better by increasing automation for them with build tools.
7. Contributing to Open Source Projects
Learning how to contribute to open source projects is a key skill, especially for WordPress enthusiasts whose entire livelihood depend on a single open source software package. The great thing about WordPress is that anyone can pitch in – you don’t need to be a hardcore developer or even know code.
Do you speak two languages fluently? Pitch in as a translator. Do you have mad design skills? Talk to the design team. Are you great at finding flaws or providing constructive criticism? Find bugs, create tickets, add feature requests. Are you a great speaker or writer? Spread the word, write tutorials or help out others in need.
Through contributing, I guarantee that you’ll learn at least one or two skills that you didn’t already know. You’ll be swept into issues that cover multiple disciplines, you’ll learn how to communicate in a highly distributed team, learn about parts of WordPress you didn’t know existed and gain reputation within the community.
Start by checking out our article How to Contribute to WordPress (and Just Generally be an Awesome Person). You’ll also want to look at the Contributing to WordPress site and have a read through the sub-section of WordPress that suits you best.
8. Time Management
There is nothing clients hate more than overshooting deadlines. With web development, it is so easy to underestimate the time something will take. There are two approaches you can take: deliberately overestimate your timeframes and/or better time management.
While overestimating the time you think it will take to complete a project can help you remain on better terms with your clients, it’s not really the best solution. You should be able to confidently judge the time something will take instead of relying on a gross overestimation to mask your inability to judge your time.
One way to get better at this is to studiously make notes. When you begin a new project, start by estimating for yourself how long you think it will take but give your client an overestimation. See how long the project actually takes and then read back over your notes to understand why you over or undershot your actual estimate. By analyzing your performance, you can figure out the bottlenecks and adjust accordingly.
This skill becomes even more important if you plan on managing your own company. You may need to manage the time of others, not just your own, which can compound the issue if you’re not really good at it.
9. Website Design
We all have our own areas of expertise, but as I’ve mentioned before, knowing a little bit of everything can make you the most valuable member of a team. This is especially true with design. Knowing a little bit of font theory, user interface best practices, user experience, color theory and so on can make you a more productive and sought after coder. You’ll need less hand-holding from designers and you’ll be able to communicate better with them. Good design is probably the hardest thing to learn because it is so subjective. On the bright side, however, it is the easiest thing to get started with!
I suggest practicing by designing your own theme. It doesn’t have to be super-flashy, just make sure to cover all the bases. Chances are your work won’t be very original but it will be a good starting point, and you’ll do better next time.
Grab some friends – maybe some you met while contributing to WordPress – and ask them to give feedback on your work. You’ll be surprised at how valuable their constructive criticism can be.
While you do need a designer brain to become a professional designer, you can go a long way with practice and diligence – certainly enough to supplement your skillset as a coder.
Do you have all these skills covered? What other skills do you think are essential to being a top WordPress freelancer? Let us know what you think in the comments below.
- Work with us! WordPress Plugin Developer @ WPMU DEV Want to try your hand as a plugin developer at…
- WordPress Plugin Developer at WPMU DEV We’re looking for a full time plugin developer at WPMU…
- Expand Your Skills with Codecademy’s Free HTML and CSS Courses Want to get a few extra skills under your belt…