7 Technologies You Need to Know as a Web Developer (Part II)

Editor’s note: Last week we brought you the first half of the “7 Technologies You Need to Know as a Web Developer”. If you missed it, you can find it here.

Within this post, we touched on Object Oriented JavaScript, Semantic HTML, and layout through pure CSS. Hopefully you’ve clicked through to some of the resources we linked. Without further delay, here is the rest:

4. jQuery (or some other toolkit)

jQuery is the most popular helper toolkit right now. It actually doesn’t take that long to learn, and once you learn it, you gain expertise rapidly with frequent use. If you don’t use it, it tells me that you want to work harder than you have to. There are some other toolkits around that can make your work easier — MooTools, dojo, and underscore to name a few. But if you’re looking to start with one, make it jQuery. The main reason that you need to know this is because it’s a bit of a paradigm shift to read someone else’s code that makes use of it. Having no experience with it is kind of like trying to read someone else’s Perl code – it’s going to be prohibitively difficult.

Learning:

jQuery’s docs are great: Tutorials here and the “getting started” guide. Once you know your way around JavaScript, this will be a snap. Additionally, you can do live jQuery work (as well as general JS and CSS) in a superb online environment called jsfiddle.

For Dojo, things become a little more difficult. The documentation at dojotoolkit.org is horrific. There are no up-to-date books. Honestly, I’m not sure how you are supposed to effectively learn to use this framework, other than having a great understanding of OOP, JavaScript, and a willingness to keep plowing through mountains of terrible documentation.

5. XHR and AJAX

The modern web is built on making calls to services and displaying the results in the existing page. This is all based around the XHR (the XMLHttpRequest) and AJAX tools. You don’t need to be an expert in these, but you should have the basics down such as making requests and dealing with the responses.

Learning: Once you get jQuery and Dojo down, use their tools for dealing with AJAX/XHR. Most of the AJAX tutorials you’ll find on the web have you building the calls and handlers “by hand,” when in practice you will probably never actually do that. It’s not bad to know how to do it the hard way, but not necessary in my opinion. Once again, Mozilla Developers Network has a good intro here.

6. Cross browser issues

If you’ve never had to support IE7 (or 6 for that matter), and only ever made things for Firefox or vice versa, you’re going to have some serious problems in a professional environment. Not only do many of our applications have to play nicely with the big 3 (IE, Firefox, Chrome), but have to also represent well in Safari, Safari mobile and the Android browser. Of course, four of the mentioned browsers use the same rendering engine, which is something you should already know.

Learning: If you’re just starting out, try this development pathway: develop on Chrome or Firefox, and spend the last hour of your work day trying to retrofit what you did so it works in IE. When doing project estimates, I generally assign a 20% premium for IE support.

7. Some kind of non-web programming

Some companies are specifically a Java shop, so anyone with real Java development experience is going to get bonus points here. But to generalize things, I’ve found that web developers who have a general programming background get up to speed in an enterprise environment much more quickly than those who came from, say, the art and design side of the world. They have already been introduced to the concepts of object oriented programming, re-usability, supportability, the model/view/controller structure, and the ins and outs of the software development lifecycle. That’s not to say that you cannot succeed without coming in knowing those things, but it’s going to mean you have that much more to pick up along the way.

Isn’t this kind of picky?

That’s “the list,” as I see it right now. Next year, it will probably look a little different. I want to stress the point that it’s not a factor of “if you don’t know this stuff, you won’t do a good job.” It’s the fact that this information is all available to you, for free, and there are copious resources around that point you to it. If you are really into serious web development, you will have run across this information and tried to educate yourself. If you aren’t familiar with these technologies, it tells me that you’re not serious, or just at the beginning of your path to discovery. Either way, you probably shouldn’t be referring to yourself as a Web Developer yet. Rather, you might want to say something like “I’m getting in to web development.” I wouldn’t throw a fit if I heard that.

So, use this list as an indicator of how much more information you need to pick up before you’re ready for prime time (the enterprise world). Or, to be less pejorative, use it as a list of interesting things that you should learn about that will make you a much stronger web developer. These are skills that you will have picked up (at some expense of training and lost productivity) through your first year on the job in a professional web development environment. Having the skills on your resume, and being able to talk about them intelligently while demonstrating your knowledge in an interview, indicates that you care about your craft and your results.

If you’re missing some of these, don’t panic. Like I said, you can gain access to and learn all of this information for free, and on your own time if needed. You don’t even need a server to do most of it – just use Chrome, write your code in something like Aptana studio, and do File->Open to test it. Cool things abound such as jsfiddle.net and dabblet.com for writing and learning to code directly in the browser.

Have this skill set down? From our perspective, the most attractive knowledge base afterward includes deep knowledge JS event handling, asynchronicity and closures, HTML5 and CSS3, optimization for mobile, and PhoneGap/Cordova. Once again, these aren’t meant to be items on a checklist, but represent a look at what enterprises are using and the kinds of things that I think a curious junior level web developer should be interested in next.

Finally, for those of you who already know this stuff, you might be shaking your head and wondering how you can get along in web development without it. Once again, don’t laugh. I’ve met too many people who have “web developer” listed on their resume who couldn’t write a simple recursive JavaScript function, build a non-table-based layout or create a jQuery selector for a style class to save their life. And hey, if you are shaking your head right now because you already know this stuff, would like to be located in Pittsburgh (Really! It’s awesome!), and are looking for a job with a great, quickly growing company where we do value all of this, drop us a line.

Roland Hess is a Senior Consultant at SDLC Partners, a leading provider of business and technology solutions. Please feel free to contact Roland at rhess@sdlcpartners.com with any questions on this blog post or to further discuss web development.