Starting in I.T

I've always been interested in technology, how things work & creating things myself. Lately I've decided I've had enough of being a job I'm unhappy with & to get an education in what I would like to do, so I've signed up for a computer science diploma course which will include networking, programming & so on...

Advice on things that would be most useful to learn to get a head start in this would be greatly appreciated.


It all depends on what you want to do. What you should focus on if you want to end up in office IT will differ a lot from if you want to end up writing code for a startup (aside: there are plenty of good reasons to go for the former, despite the "glamor" of working on "the next big thing"). 

The best general advice I can give you is to make sure you get a good balance of theory and practice in your education. If you focus too much on theory it will take you much longer to get up to speed and be productive when you hit the workforce. However, if you don't have enough theory you will find that you will just learn how a particular set of technologies and when you have to move to a different set of technologies you will be a bit lost. Look for course units that have names in the form "<set of theory> using <specific technology>". For example "Object oriented programming using java". Of course the courses may not be named like that, so ask around/read the syllabus document/course outline. 

As a programmer, i will say if you're looking into getting into that field you should probably make sure that your education has at least least 2 high level languages (java/php/javascript/ruby etc) and at least one low level language (this will almost certainly be C, but learning some assembler would be a good replacement for this). The former is what you will probably use in industry, but the latter will teach you more about how computers work internally. Learning about compilers is good for the same reason, it teaches you what that code you wrote is actually telling the processor to do.

You will also need to know about databases and web technologies (like AJAX) if you want to increase you employability as 90% of the work out there for programmers involves sorting data obtained from internet in some way. A little bit of sysadmin knowledge probably won't hurt, but unless you actually want to go into writing code that runs networking stacks, I would say you probably only need to know enough about networking to be able to diagnose simple problems and be able to communicate with the networking guys and gals.

As I said, this is all dependant on you wanting to be a programmer. if you want to be a network engineer or do office IT stuff then you will probably want to focus on other things. 


That's really helpful, thanks.

My main focus would be programming or network engineering, so my I'll be aiming to learn a few languages myself at first.

You should do all the courses on! It'll teach you a lot of basic programming both on the web and in standalone applications.


Good luck!

make sure you're not this guy


As an IT guy working for a small contract company I can tell you one thing for certain: Certs, certs, certs. Remember this phrase: YACAS. You Ain't Certified You Ain't Sh**. There's high demand for IT work atm, but there's also quite a bit of competition for the jobs available. You need to separate yourself from the competition.

If you want a basic IT job, focus on your main 3: A+, Net+, Security+. If you want a more advanced IT job, focus on getting an MCSE (Microsoft Certified Solutions Expert), Linux certifications, and Cisco, all three of which extremely difficult, MCSE being the most difficult in my opinion (I work better with command line stuff). Many corporations and small businesses will not even look at your resume unless you have at least 2 certifications plus a degree of some kind in your field.

IT jobs will start off pretty low-pay, don't expect anything more than $18/hr to start off, $10/hr at the lowest depending on the region you live in, even if you have a long list of qualifications on your resume. IT jobs promote on experience more than they do certifications and degrees, but certifications and degrees unlock the potential for advancement, if that makes sense.

Now, as for code, I still recommend some of the above certifications, doesn't hurt. I caution you, though. If you are aiming to be an independent developer rather than with a company, there will be times when your client forces you to make $2/hr. The client gets unsatisfied with your work, you have to make changes, and repeat. That's the unfortunate part of it. The great part of it, though, is that you get to set your own deadlines, which inevitably become stressful when coding as part of a team. 

The value of certification, in my experience, varies widely from market to market and even from employer to employer. In London especially, no one will care unless you have relevant experience as well because they have a lot of people who come over from India with their SCJ* certs (I don't know and I don't care about the MS world) and no experience, or recent grads who got them as part of their degree. Now if we're talking about two equally experienced devs, one with and one without certs the one with will probably get the job, all else being equal, but I don't think they are worth pursuing until you have some idea what you want to do.

I have even seen it looked down on by some people, especially in the startup world, as you are seen as being "institutionalised" and "less likely to be able to think outside the box". Personally, I think having a cert is a sign of having come out of a very corporate job, and startups are kind of wary of hiring people like that because people who have come out of corporate jobs are used to going home at 6pm every night, rather than sticking around to office to all hours (my hypothesis, no data to back they up). To that end, I have left my SCJP off a my resume before (C/C++ coding job, startup-esque, still in the job after 5 years). 

What I can imagine certs are good for (aside from the skills acquired) are getting through HR departments and recruiters who screen resumes and in front of the people who actually make the decisions (which, again, comes more with big corporations than startups).

As I alluded to at the start, it really depends on the market you are operating in. If you keep getting passed up for jobs you want because someone with a cert gets it, then get that cert. And to that end I would advise that you ask for feedback when you get rejected for a job. Tell them that you are asking because you are genuinely interested in what you need to do to improve your value in the market. You may not always get it, and are more likely to get it if you go through a recruiter, because the recruiter will dig out that information for themselves. 

BIG EXCEPTION FOR NETWORKING GUYS AND GALS: Cisco certs appear to me to be a licence to print money everywhere.