You don’t need much to be able to write a theme: there’s no required software, this tutorial can teach you a minimally enabling amount of background HTML, CSS, and PHP information in a few pages, and you don’t need anyone’s permission [<3 GPL]. Really the only absolutely essential requirements are access to some kind of computer and a proper mindset.
Requisite Coding Knowledge
Don’t Run Away!
Let me quickly preface this section by reiterating that even if you have zero experience with web publishing, this tutorial can teach you enough to get started. The background knowledge required to properly develop a WordPress theme is not that complicated once you belly up to the bar. So if you have no idea what HTML is, please, continue reading, and you will soon. However, if you’re here it means you aspire to create a WordPress theme from scratch, which in and of itself is a very strong indicator that you already know enough to get by.
What you Should Know
You will have more fun if you already have a funtional understanding of HTML and CSS, and at least a cursory understanding of PHP. Also a low level understanding how the WordPress system actually works will come in very handy.
Why you Should Know it
The most basic concievable WordPress theme could use HTML only. However, this would necessarily mean it was static and completely defeats the whole purpose of a dynamic CMS like WordPress. Plus it would just be weird, people would talk.
Why it’s Easy to Know
HTML and CSS are pretty straight-forward markup languages. I can teach you all you will need to know (for our purposes) in a literally just a few pages. PHP… well, that’s a different animal. While only slightly more conceptually difficult, the sheer number of funtions alone pretty much ensures you’ll never know it all. But this should not worry you, for three reasons: (1) WordPress is designed to function well with a minimum of PHP code from a theme; and what it does require is made as user-friendly as possible. (2)You only need to understand a small fraction of the PHP universe in order to make a great theme, and (3)I can teach you exactly that amount, in this tutorial, today.
You do not need to buy anything; anyone telling you otherwise just wants your money. You probably won’t even need to download anything, since you’re likely to already have all the software you need to develop a WordPress theme. Make sure you’ve got some form of the following:
1. Code Editor
HTML, CSS, and PHP are written in plain text and do not require any machine compiling, so you really don’t need any fancy programs to code with them. Honestly. The really hardcore guys just use notepad, or a spiral notebook, or just a stick and some dirt.
But while you don’t need one, you should probably get one of those fancy programs anyway. They help you find errors in your code and keep things color-coded and organized, along with many other helpful functions. My hands down favorite is Adobe Dreamweaver, but it costs an arm and a leg unless you’re a student (or a criminal). There are very acceptably comparable, free and no-cost alternatives, the most popular probably being the NetBeans IDE. Pick your poision.
2. Graphics Editor
Themes do not require any images at all. In fact, many beautiful, responsive themes get by with just CSS styling. If you want to include images, you’ll need some way to edit them. MS Paint (or whatever it’s called these days) is sufficient for basic stuff, but you’ll definitely want P-shop or an open source alternative like gIMP if you’re planning to do any nontrivial amount of imagecrafting. Up to you.
3. Network Software
What else… what else… oh yeah, you’ll need WordPress. I recommend setting up a separate blog just for testing your theme during development, ideally (but not necessarily) on a local server. If you’re on Windows, you can use WampServer to easily setup a testing server. If you’re not on Windows, you almost certainly know how to make your own LAMP. If your sever isn’t local, you’ll need a way to transfer you files there. The world’s favorite method being FTP with the wonderful, free FTP client FileZilla. Of course you’ll need a browser, or ideally several different browsers to test how your theme looks (and to Google questions when you get stuck) (and funny cat pictures). All stuff you’ve probably already got.
Just Follow Your Heart
Ultimately, just use whatever you’re most comfortable with, seriously. There’s no need to make things harder than they need to be. In that same vein, you’re also going to need some patience, creativity, and an adequate supply of your stimulant of choice.