Learning Guide

Hi Folks,

I was hoping people here could give me some feedback and guide me as I learning and trying to get back into web application development. I did computer science in college and was pretty handy at coding but when I left college the only jobs I could get were application support so naturally my coding skills got very rusty. I made the mistake of moving jobs about a year back to a job where I would be doing application development & support but unfortunately that company was hard hit and it let go 25% of its staff recently via a Last In First Out order. So now Im unemployed and jobs are very scarce on the ground, if Im lucky I will pickup a job at McDonalds or something to keep the wolf from the door. Anyway enough of that, I have decided to use this time to reskill myself for some basic web application development but web technology has moved so fast since I was last doing development that Im a little bit lost. For this reason I would ask peoples advice on what technologies/frameworks I should be learning so Im not learning a dying or dead technology.

From my limited understanding there are three area’s that I need to get up to speed on that is

  1. Client Side: CSS & DHTML for UI
    Javascript and some library like Dojo/Scriptaliscious for fancy UI and AJAX interaction

  2. Server Side: The last time I did application development Java Beans were just starting to be in-Vogue. While learning to develop web applications with Java server-side code might be useful if I end up doing develoment in a corporate environment my experience is that it requires alot of code to do what other languages can do relatively easily with less code and the setup of a server environment is pretty complex

  3. GloopyGlue: I have never developed a web application that uses XML or web services for data transmission so this whole area is new to me but it seems to have integrated itself into almost every aspect of web development and understandably so. What should I be learning about with regard to this kind of stuff, JSON etc?

Any and all feedback and advice would be welcome. I think I am going to start with Sitepoints CSS Live course as if nothing else I can muck around with pages look and feel.

Dave

Hey Dave and sorry to hear about your predicament.

My advice would be to give yourself a guide for your (re)-learning and then stick to that guide.

The guide will help you finely hone what you need to learn, so you’re not flailing around, wasting precious time learning some languages/skills that you don’t need to.

You mention DHTML and Java Beans in the same post. Sure, a small number of developers may know both languages. For a pure Web Developer, Java Beans would be practically unheard of and of little use to them. For a Java Developer, DHTML (Which doesn’t really exist - it never really did - it’s just “Javascript”) might be leveraged but likely only on a very small scale.

So to build your guide, take a look at what skills companies are looking for and train yourself in those. Have a look at the 2010 Web Directions results of the State of the Web Survey. (http://www.webdirections.org/sotw10/) a great intro into what technologies, browsers, operating systems folks are using and building for)

I am a Web Developer, have been for nearly 12 years so if it was Web Development you wanted to get into - you’ve got the general stuff to get your head around:

  • XHTML (Similar but different to HTML4 which you may be more used to?)
  • Basic familiarity with HTML5. Hardly anyone really uses it, but it’s the future and interviewers will be impressed by any knowledge you have of it
  • CSS3. CSS has come on leaps and bounds in the last few years as has the browser support for it. The same goes for javascript.
  • Javascript: As a web-developer, if you don’t know javascript, you will be hard-pressed to impress an interviewer who has interviewed others who do know it. Like CSS, Javascript has come on leaps and bounds as has the browser support for it to. You mentioned JQuery and other libraries. JQuery is the most popular javascript library out there - learn that and you’ll be doing real well.

When it comes to server-side coding, you’ve got the 2 main camps - actually 3 at the outside.

1). Microsoft .NET, MS SQL Server.

I’ve never coded using .NET. As far as I can tell .NET is a “framework” of technologies and methods for building web-applications under on Microsoft platforms (Windows server 2003, Windows 7 etc). Buzzwords here are VB, .NET, ASP and MS SQL Server - a relational database management system - RDBMS)

2). FOSS (Free Open Source Software)

There are a few choices here: PHP, Ruby, ColdFusion, Python, Perl etc.
By far the most popular is PHP. But Ruby is the young upstart, has a very easy and logical syntax and is proving to be very popular. ColdFusion, I rarely hear about these days and I know of no-one still using Perl/CGI for pure server-side coding. Python is a great language to learn, but is a littlemore terse than either PHP or Ruby and can be harsd to grasp. There are also third-party technologies that need to be installed alongside your web-server (Apache httpd, MS-IIS etc) to make python code run as a server-side scripting language.

All these are usually run on Unix-based operating systems like Linux, Solaris and even modern Mac OS’s.

3). Java

What I know about Java can be written on the back of a small postage stamp, however if you already have some familiarity with it, it can provide a useful gateway into either web-development or pure (non-web) application’s development. Couple Java with template frameworks like Tapestry, Freemarker or app-development frameworks like Struts, and you’ll be doing well. And as far as I know, Java Beans are still used - just keep looking at what advertisers are asking for.

A bonus:

Regardless of which of the above camps you wish to delve into, according to what advertised jobs are asking for, knowing any of these will be a bonus for web-development and pure application development. There ar eof course others and this list is inexhaustive, but I list them becuase of my own familiarity with them:

  • XML (Particularly the XML generation and parsing capabilities of your language/platform of choice)
  • XSL
  • RSS (There are many flavours of RSS and ways of extending RSS using namespaces, some familiarity with at least these concepts will be v.useful)

I hope this is useful to you and good luck in your job-search.
Regards from New Zealand.

Russell