Glue Interactive

10 Steps to Becoming a Professional Web Developer

This post dropped Jan 12th, 09:37, in to Web Development

When I started my day job as a web developer at a Seattle-based SEO company, I was assisting the one and only other developer at the company. He had been the sole developer for the company since they started doing web dev, and as such did things they way he'd always done them. Since I had learned most of my skills doing small time freelance work, our development process was the same as thousands of others amateur web developers.

  • All development work is done on the production server;
  • No code is under source control;
  • FTP is the main file transfer development medium;
  • Most applications are coded in a home-brew, non-reusable manner;
  • Almost no quality control or testing.

I always knew there had to be a better way. It's not that the way we had been doing things didn't work - it did.  It's just that we could be doing things so much better.  Working smarter, not harder.  So when the other developer left and I got put in charge, I made sure we put in place the measures and structure to have a solid, organized and professional development department.

If you too want to stop being an amateur web developer, and work smarter, here are my top 10 things to do.

  1. Use Source Control
    It doesn't matter if you're just one developer working by yourself on your own project - everyone can benefit from source control. It is, hands down, the easiest way to manage all of the various code revisions that you will encounter in your project. Not only can it help you track all of the changes over time you've made to your application, in the event that a new change goes awry or you accidentally delete a file (or twelve), source control makes it easy to revert to before your blunder. The current top choice for source control is Subversion, an open source package meant as a replacement to CVS.

  2. Institute testing
    Far too my times, amateur developers are eager to push their new product out the door before it's ready for the big time. It's a common mistake; one where your emotions and over eagerness will get the best of you. Often times, however, an extra 10 minutes of time with your product will help you find the larger and more obvious errors that your client will catch first.  And if you want to get even better with your testing, look at test driven development.

  3. Stop developing on the live site!
    Usually out of convenience, developers will build the site on the final production server. This starts out being a good idea, since you're building the site in its final resting place, but what happens when you need to add a new feature or fix an existing bug? You can't turn debugging on for the live site, nor can you really use dummy test data in the production database.

    So what's the answer? Create a development cycle. Locally, replicate as best you can the live production environment. Give yourself a local development database & installation of you web server. Then, once you've got that bit sorted out, create some process to deploy your code to the production server. I'd recommend either rsync or some other scripting language that just checks out a copy of the source from version control on the production server.

  4. Use a bug tracker
    The key to writing great software is documentation. Not only does this include well documented and commented code, but also documentation of problems and issues that have been found and/or fixed. When the user of your product reports an error, document it. Save the exact email, write some notes about your initial ideas on the cause of the problem & write down potential fixes. Then once you've found your bug and squashed it, you mark the issue as resolved and archive it. Next time something breaks or you want to know how you fixed a similar problem, you'll have it documented.

  5. Lean the command line
    Good developers don't just use a text editor to develop, they utilize command line tools to work smarter. Creating files, interacting with the database, running scripts and checking error logs.  All these things can be done quicker and easier in the terminal. If you don't currently use the terminal or have any experience using command line tools, it can be a little daunting to get started. But take it slow, do a lot or reading and you'll find yourself spending more and more time in a text-only world.

  6. Utilize better server tools
    Between dealing with down time, performance issues and bugs, running a popular site can give you an ulcer some times. But it doesn't have to be that way. If you can think of a difficult and stressul situation to deal with, nine times out of yen there is a tool to help. Here are a couple of my favourite.

    High server resources? Check out Monit or God. Both monitor your server, and if the CPU usage or memory has gotten too high, or Apache stops responding, it will email you with notification. It's very flexible, to the point of it being able to actually restart Apache or other services if things get too crazy. The little brother of Monit is montastic, which can monitor your server remotely. If Montastic tries to connect to your server returns anything other than the expected 200, you'll get an email.

    The other really awesome piece of server software is RCS. It is like a stripped down version control system, meant to version control individual files. So if you're on your web server and making a bunch of changes to your vhosts.conf file for Apache, RCS will store each iteration of the file for you. Thus, if you mess something up or need to look back at a change you made a while ago, it's as easy as a few keystrokes.

  7. Talk with other developers
    A lot of web developers out there tend to operate in a bubble. They'll pick up some programming knowledge after reading a book on PHP or something, but then never, ever, move beyond that. They'll continue, often years at a time, programming and developing the exact same way as they always have. While it's perfectly acceptable to stick with what you know, this is a dangerous phenomenon. Languages improve, security holes are found and fixed, new tools and techniques are developed and mature.  You need to keep up with the times.

    The best way to do that?  Talk to other developers. There are plenty of blogs, forums & mailing lists that offer a wealth of knowledge. People discuss new technologies, bounce ideas off each other, ask for help and give feedback. It's a very creative and invigorating enviornment full of really smart people creating really great tools. Being part of their conversation, or even just listening to it, is one of the best things you can do.

  8. Utilize a web application framework
    This is a simple, but often life changing realization. I know far to many web developers who still create client websites as one-off pieces, custom coded each time to their clients specifications. People...this is a waste of time! I can guarantee you that at least 80% of the coding you do is repetitive, and you'll be much better served utilizing a framework.

    Web frameworks are libraries of code, usually in the Model/View/Controller (MVC) pattern, that offer you a solid base to build your application on. Database connections, templating, basic CRUD operation and much, much, much more is taken care of by the framework. All you have to concentrate on is the fun stuff: creating creative solutions to the clients unique problems.

    There are plenty of frameworks out there, but personally I'm a fan of CakePHP for my PHP work, and obviously Rails for my Ruby work.

  9. Read, read, read
    Never, ever, be satisfied with your level of knowledge. There is always more languages to learn and more technologies to master. If you've got a good gasp on PHP, see what Ruby has to offer. Spend some time getting more accustomed to some MYSQL functions. Pickup a book on XLST. Whatever. Just make sure that you're always learning and advancing. Not only will it help you become a better developer, but you'll have a diverse catalog of tools and techniques in your bag of tricks. You'll never know where one will come in handy.

  10. Become a jack of all trades
    The days of "I'm just a design guy" are over. A lot of developers think that they should just concentrate on one language or one discipline, and then try to be the very best at that one thing. That works well if you want to be some DBA admin stuck in a back office somewhere in a mega insurance company. The real development and creating happens by people who are multidisciplinary.

    Have a strong design and read and write PHP. Be a sysadmin who know how to troubleshoot Apache, but can also understand the product life cycle. There is no magic formula of talents that guarantee your success, but as long as you don't pigeonhole yourself in to one field you'll do just fine.

Alright folks, you got everything you need to become a professional web developer. Go check out some of the items I linked to, read up on them, and start incorporating them in to your development cycle. The best way to get better is to learn by doing.

Post Details

Published
Jan 12th, 09:37
Category
Web Development
Author
Jeff