As a full-time, self-employed web developer for 6 years now (and having done freelance work since the 90s involving web development / design) I get asked regularly about web development as a profession. I'm usually asked this by those in various other branches of IT work. Questions include: How do I get into it? Is it profitable? Is it easy to get clients? Is it something I can make a living on? What skills are required? What platforms are best? How do you get clients?
This article will answer those questions (and more) based on my experience, which you're free to emulate if you like. I'm going to also explain why my own particular path is, in my opinion, currently still highly ripe for such emulation as opposed to some other paths within the web dev / web design world!
Part of the problem (and indeed part of the opportunity) these days with web development / web design is the relatively low barrier to entry. Most of the technologies involved are nearly ubiquitous and low- or no-cost. That's great, as it means anyone can dive in easily. But, it's problematic in that some of these things are perhaps too easy to learn inadequately. In any case, I'll outline, below, the major technologies involved, as well as other necessary and/or desirable skills. Here are the things you need to do or learn on this front:
- File management, esp. with respect to web servers. I can't stress enough that you'll want a basic understanding of file management -- how to make folders and organize things. With respect to web servers, you'll also want to obtain an understanding of how to transfer files to and from your web server. The easiest way to do this is via FTP, so you'll want to look into an FTP client like FileZilla. Funny, many, many people are already familiar with FileZilla -- even non-web-developers. But, you'll want to download that (or another client of your choice) and familiarize yourself with how file transfers work, as well as what a normal file structure looks like for a web site. For example, almost all web sites on shared hosts have "public_html" as the root directory. This means that, if your web site is "www.mysite.com" and you drop a file there into public_html called "myfile.html", then you would be able to view that file online by going to www.mysitecom/myfile.html. You'll also want to do some research into this specific area in order to become familiar with certain conventions, such as keeping site images within an "images" directory (or subdirectory thereof). In a broad sense, this item represents my personal assertion that one needs to be digitally organized, so to speak. To be honest, if you're considering a career as a web developer and aren't basically well ahead of the curve on this item, I'm not sure if moving ahead is a good idea. So, let's assume this one is just a basic step needed where you'll review website directories and nearly instantly understand most of what you need to know.
- How to get a hosting account to host web sites. When you're starting out / learning, you can probably use any host, and any type of hosting account, just to familiarize yourself with it. Beginners seem drawn to hosts like GoDaddy, DreamHost, HostGator, etc. I think those are fine to learn on, but you may come to appreciate other hosts more, for various reasons, once you get into doing this for a living. For example, some hosts are more friendly or "optimized" for platforms you'll want to use. In my case, where I use the Joomla! CMS, I've found certain types of shared hosts are better than others. In the Joomla! world, those would include names like Inmotion Hosting, Siteground, and Rochen Hosting, to name a few of the better ones. If you're going to do this for a living, you'll probably want to look into "reseller" hosting from your host. This is a type of hosting where you can make up a typical "cPanel" type account for each of your clients. ("cPanel" is a standard visual interface to normal shared-host web servers. It provides access to database management tools, file management tools, and other handy items you'll need to configure each client's backend resources.) In my opinion, get a server that comes with cPanel when you're starting out. If they offer some "equivalent" product like Plesk, or shell-only access, you're probably not going to understand what you need to learn, and you'll fail.
- HTML. It's true that you may no longer "need" to know HTML in order to be a web master (because all of today's tools do it for you), but IMHO it's essential. Don' worry, though; it's easy to learn. So, if you don't know HTML, get a book or Google it. Then practice using your own web server. If / when you get stuck, learn how to find answers on your own via Google. You'll find many educational web sites and forums, most of which are free, to help. Chances are almost 100% that any question you have as a newbie (or, really, even as a pro) have already been had by others, and the solutions are out there for you. Don't skip this part! Really do learn HTML, and really get used to Googling your problems. You'll become well acquainted with sites like StackOverflow.com and others where solutions await your discovery. I don't care how experienced you are now, or will get, you'll be Googling for help throughout your career.
- CSS. This is how you execute most of the design aspects of a web site. Any decent web designer or developer will know this. So, do whatever it takes -- get some books or find some online resources. CSS is not hard at all. In fact, it's quite easy. But, (1) you need to know the fundamentals for sheer practicality, and (2) you also need to understand how to work with CSS within larger systems such as CMSs, where there are other CSS files informing the design of your web pages. If you are using a template where the headlines are green, but your client wants them red (to use a rudimentary example), you need to know how to do that!
- Graphic design. Thus far, I've only covered the technical skills needed for web work. But, other expertise is also required. Graphic design is probably the most visible skill set, including the use of digital tools such as Photoshop. I'm not sure if someone without design skills can simply get a book or take a course when it comes to design; it may well be more involved than that for most people. Hopefully, those interested in web work will have much of these skills already. Photoshop, though, is just a program; it can be learned in a week or two. Learn that one.
- Other skills. The other areas of useful expertise, in my opinion, include marketing, communications (writing / editing), publishing experience (the web being an electronic publishing medium, after all), public speaking experience (as presentations and client training are often necessary), and of course basic business skills applicable to any other type of business. If you're coming into this from other careers / industries / areas, any other experience you have is likely beneficial. For example, if you worked in the medical profession, that may make it easier to relate to medical web site clients. Don't undervalue any type of experience you have outside of web development or technology. It all matters.
The above items represent most of what you'll need to know, core-skill wise. You may know some or much of it already if you're an IT person. So, prepping for a move to web development may mean boning up in just a few of the above areas. But don't skip any. Really do the reading and exercises. Maybe consider some online courses as well. It'll be well worth the time and any cost. How long will this take? I'd estimate that, for someone with reasonable IT savviness, maybe a month or two of nights / weekends. So, not too long, really. for some, maybe faster.
For other skills such as design, communications, or marketing, I'm honestly not sure how long it takes to develop workable levels. Some people are naturally adept at these things; others pick up these skills over many years while working in other areas.
Before I begin here, let's recall the context of this article, which is making a business out of web development. This is distinct from simply making a web site for yourself, or doing some school project. So, while it's true that a Content Management System (CMS) is not 100% necessary, trust me: no serious business clients are interested in a static HTML web site. What they want are systems. Specifically, most of them want WordPress. They don't know what WordPress is, exactly. But, they're familiar with it because their colleagues mention using it, so they want it, too.
WordPress is a CMS, just like Joomla! or Drupal or thousands of other lesser-known systems. Any CMS, though, is basically just a graphical user interface to provide control over one's web site. In the case of WordPress, it's the system chosen by the highest percentage of web sites -- some say 50% or more of the sites in existence. Naturally, then, web developers tend to gravitate to WordPress as a specialty.
The next most popular CMS would be, arguably, Joomla! (I say "arguably" because statistics on CMS adoption tend to be educated guesses at best these days, producing stats that range more than one would hope. But, in general, at this time, many sites are reporting Joomla as the #2 CMS worldwide, followed closely by Drupal.) Many cite a percentage of something like 10% of web sites running Joomla.
Now, while 10% may sound a lot less than 50%, we're talking about massive numbers of web sites. As of late 2014, it was estimated that there were 1+ billion web sites out there. So, very, very broadly speaking, there may well be in excess of 500+ million WordPress sites and 100+ million Joomla sites. Either way, that's a lot of web sites!
I do have technical reasons for preferring Joomla to Wordpress. Based on my own opinion and research, I feel that the codebase is stronger and more state-of-the-art with Joomla vs. Wordpress. I also feel that many of the criticisms laid against Joomla vs. Wordpress (in the age-old debate of which is better) are highly outdated and no longer relevant. For example, many cite Wordpress as being "better for SEO" or "easier to use" than Joomla. Both of those have been ridiculous assertions since about 2012, but things stick on the Internet for ages. I'm telling you now as a professional web developer: there's no great advantage SEO-wise to selecting one CMS over another, nor is there much difference in the back-end user interface.
More important for developers, perhaps, in the decision of a CMS to specialize in, would be: If you take the number of platform developers vs. the number of web sites out there for that platform, what do you get? My gut here is that there are an inordinate number of Wordpress developers in the world right now, mainly because Wordpress is the dominant system. So, people decide to learn that one. So, when you finally get to the point where you're a normal, working web developer, you're a small fish in an ocean of others. According to the law of supply and demand, this means your profitability will likely be low -- especially at first while you're establishing yourself..
Joomla, on the other hand... First of all, it's a better system, so that's a win for you and for your client. But, second of all, because fewer developers have chosen this path, you can easily become a small fish in not as large of an ocean. What this means is that there is still a considerable demand out there for your service, but not as many developers with the know-how to provide that service. Ergo, according to the same economic principles, your potential profitability rises.
CMSs aside, any good developer, on any platform, will be worth roughly the same in terms of earning potential. As a new developer working in the U.S. today, I'd guess that your very lowest rate, just starting out, would be about $40/hour. This is already 4x the minimum wage, more or less. (Don't hold me to these figures, exactly, as I'm speaking so generally as to be nearly pure opinion here -- although also from experience.) As a newbie developer in 2017, this is the lowest I'd recommend ever charging, even if it's your first web site development project. It's simply the market rate for inexperienced workers in this area.
After a year or so, you'll find that your efficiency will increase, and your knowledge will also have increased, meriting a higher basic rate. So, you'll enter the $50-60/hour range for a while. Then, from there, your knowledge and efficiency increases will merit rate ranges similarly upward -- $70/hour, $80/hour, $100/hour, $125/hour, and more. This will likely happen over the course of a few years. I know developers working full-time at all of these ranges and higher (topping out, in circles or professionals I know, at around $150/hour), and there's usually a correlation between price and experience. In most cases, there's also a strong case to be made that hiring one person at $150/hour for 3 hours is usually better than hiring one person at $50/hour for 9 hours. But, that's a "whole nother" discussion.
What often kills a new business is simply the inability to acquire and service new clients. Web design / web development can be a feast or famine existence. Landing a new client in October on a 12-week development project paying $15k might feel great during the project, but what happens January 1 when you launch that project and now you need a new one? How long can you ride out periods of zero billable time?
Obtaining new clients is essential. This is another reason to select Joomla over Wordpress. As mentioned, there are fewer sites ("fewer" as in still many, many millions!), but the ratio of developers to sites is more in your favor. So, the opportunities are actually less competitive. Fewer competitors means more work, and at higher rates because you're more specialized.
With fewer developers out there, you also have a bit of an advantage networking-wise. When you're first starting out, one of the better ways to get clients would be by finding established shops and seeing if you can get a bit of their overflow. I get these sorts of emails all the time from people... "Hi there, I'm a new designer and I know Wordpress, Joomla, Drupal, etc. I'd be happy to know about any opportunities to help you out." Well, right there, I probably wouldn't be too interested, as they claim to know everything, and I do not believe it. Rather, if I got a letter like this, I might be more tempted to bite: "Hi Jim, I'm also here in Portland and am beginning my career as a Joomla developer. I've done X, Y, and Z, and would be interested in any jobs you may not be interested in and/or are too busy to handle. Or, I'm happy to provide assistance to you, if that's a possibility." Something along those lines would be much more welcome, and likely to get a response from me.
The above is just one specific example of networking, of course. You'll want to do a ton of it when you're starting out. Locally, you'll want to meet and network with other small agency owners, as they can be great referral sources. You'll also probably benefit from attending other business networking opportunities locally. Join a board or two, volunteer on some committees at a nonprofit, etc. Do all of those usual local things. Get books on the topic if you're not used to this -- networking, rain making, schmoozing, etc. Online, you can branch out further. Get yourself a LinkedIn Profile, do blogs, do videos, really get into social media by producing tons of content and also by participating (e.g., commenting on others' posts). I know so many people who fail at this, and also so many who've succeeded. It almost always comes down to tenacity. Those who relentlessly keep it up, for long after most others would have given up, eventually hit a stride and build out the audience needed to perpetuate a business
Building a web business is really just the same as building any other. And, for website owner clients happening to read this: This is the same process YOU need to do (or hire out) in order to build site traffic. You just have to spend a ton of time being active. Pursue every angle you can think of early on ... something will turn into a lead, and you'll get work. And then repeat the process, ad infinitum. It takes years for most people before you're fairly routinely turning away work because you're too busy. But, for those who stay the course, it tends to work out, or at least lead to something that will.
And, that, my friends, is the short version of a possible career for an aspiring web developer. That's actually quite practically a roadmap. Do all of that, and you'll likely have yourself a career. I'm telling you, it's absolutely there for anyone who wants it. Best wishes! :-)