tags:

views:

1355

answers:

10

I am currently in the lucky situation of having a full time job, without any formal computer science or software development education. Here's an overview:

  • graduated 1 year ago from something that can be considered a cross between high school and college.
  • 3 years in a school with heavy focus on math, physics. I opted to add in extra English as well (English is not my first language).
  • I also did some programming, however this was at a rubbish level and I spent most of the time teaching our teacher about our programming environment. We were doing VB.Net and he was an old VB6 developer. I liked C#, and was able to adopt to it... faster than the teacher, seemingly.

After I graduated I planned to take a year off before going to university and decided I wanted to find a job - however I wanted a proper job, somewhere where I wouldn't just be replaceable. I wanted to program! Combine this with current crisis going on, and you get a situation that is seemingly impossible. I did however manage to find a small startup company where I landed an interview and was hired.

I have since then had a small glance at other job adverts being put up - and it seems more and more to me that this is very uncommon.

Do any of you have any experience with similar issues? My main problem is that most of my experience (apart from what I've gotten now under this job) is undocumented - I've done a lot of programming over the last 6-7 years, but it's all just been for "fun and learning". As such, I don't even have most of the code anymore.

My question: I am asking for your personal experiences, and stories that relates to the subject of finding a software development job with no documented qualifications.

+3  A: 

Tip: Get a good rep on Stack Overflow.

Joel Explains why.

Quote:

"I’ve noticed a lot of people putting their Stack Overflow reputations on their resumes, and we’re starting to hear stories of people who got jobs through the site."

asperous.us
This is, of course, a great way of doing it - problem for me is finding the website that will generally be known as "the best" to judge from. While I personally know that "this is it" - not all do, especially not when you're in a situation like me where English is not your native language - there will be alot of sites in the native language that is likely to have a greater effect. Never the less, it is still a great tip :)
kastermester
It is a good way to come off as passionate about something.
Omega
+5  A: 

My advice to you is this:

Start SMALL.

If you have been doing programming for a few years on your own, but you don't have code you actively maintain, (or you don't have a codebase you're proud of), then you probably aren't ready for a job where you're a mid-level team member in a decent sized software development team. So don't try to get one. Find a place with good people who will teach you what you need to know. Accept a junior level position in an organization with quality people before accepting a mid-level position you aren't qualified for yet in a really small shop, or a shop full of mediocre developers. Learning from those who are really good will cause you to move forward fast in pay -- remember, you are in a pretty liquid field. Your pay will move with your skill level (although this sometimes can be a result of moving to a new job).

So what does it take to get a good junior position with a great team? First off, learn enough to contribute to an open-source project, or something tangible that you can show employers. Show that you can take the initiative. Be able to describe in detail what your own code does. Be humble and be willing to learn from others, and show this characteristic in your job interview. Ask questions. Members of a great team will be more than happy to answer them.

So in short, don't worry about getting a job where you won't be replaceable. Take the job where you can grow, and if you DO grow, and if you DO show that you know your stuff, nobody will want to replace you.

Dave Markle
This was actually what I was looking for in the beginning - however all jobs seem to want people that have been through several years of academic education with an extra 5 years of experience on top. When I said irreplacable what I really meant was that I didn't want virtually anyone to be able to replace me - so I want to do something that at least requires some skill - a junior position would be more than ideal for that :).
kastermester
Also, what about your school? Don't they have some good contacts there for getting a job? Even if you've been out for a while you usually can get some support from them. And have you thought about going back and getting your Bachelor's degree? In a competitive market it's becoming more and more important IMO.
Dave Markle
I have already applied for university (we have a slightly different system here) in Computer Science - although I do not know yet whether or not I am accepted, I would guess statistics would say that I am 99.9% likely to be starting my degree in Computer Science September 1st. I was actually just asking out of curiosity - and in case I would end up having to search for a job again. The school as it is here, unfortunatly mainly helps you getting further educated - not really helping you getting a job.
kastermester
Good point. Culture matters a lot with your question. Where are you located? Schools in the States really do try pretty hard to place their students in jobs, so I guess we have it pretty decent over here.
Dave Markle
I am located in Denmark, Europe (up late... working, ironically)
kastermester
Yes, but you have way better beer than us up there.
Dave Markle
+1  A: 

In my limited experience, job ads are no way to get a job. Having a good resume is nice, but it's just part of a full strategy to build a real world repuation, and demonstrate to employers what you're capable of. It sounds like you've got a job, so this is a perfect opportunity. The best thing for you to do right now is to have a project, finish it, and keep good track of exactly what you did, and how that contributed to the project's success.

The track record is the thing. Employers don't really want graduates, they want people that can get the job done. Finding people like that is difficult, so your employment strategy is to find ways to demonstrate that you're that person.

At the same time, you have to be honest. If you find a job opportunity, and you don't think you can do it, go ahead and apply for it. But, be honest in the interview about what you're capable of. You never know, maybe despite it all, you're still the best candidate they can find. And then you have another opportunity to build up a track record of success.

Breton
Already working on it! :)
kastermester
+8  A: 

I would never hire anyone based on their Stackoverflow score (Not even Jon Skeet).

The article by Spolsky is there to sell his site. He's spreading FUD.

Hiring is based mainly on:

  • Personality. (i.e. Am I going to get along with this person? Are they going to get along with me? Are they going to fit in with the rest of the people at the company?)

  • Ability/Experience. (i.e. Do you have the experience I am looking for. This, along with everything else, is an arbitrarily judged attribute. Most employers give tests, ask questions, review prior work, talk to former employers etc..., )

but can't you use SO to get a rough idea of their competence? If you didn't have anything else of course,
CrazyJugglerDrummer
I'd never hire anyone based on any one thing...
Dave Markle
If I didn't have anything else, I wouldn't even consider them. SO score is a function of time spent on SO. High score = using *my* time to answer questions on SO? I don't think so.
@Dave Markle - Agree.
That's not to say that SO is useless in screening applicants. Looking at how they answer questions can be HUGE -- forget about the score. Seeing what questions they ask speaks volumes about their skill level as well as their willingness to even ask questions, so I think SO could be an awesome resource if used properly.
Dave Markle
Glancing at an SO user's profile gives you pretty good idea of their interests, competence and general knowledge. Stuff they probably wouldn't even think of putting on their CV. I think it's a pretty good indicator. Too bad my score's so low.
Rhythmic Fistman
+2  A: 

I'd like to offer a different perspective - a more technical one, in any case.

I'm not sure what kind of programming you currently do, or are interested in - but I'll assume that even though you lack formal qualifications on paper, you're not averse to getting a "reputation" online as it relates to programming. You could do two things -

A good metric I've come across to judge programming skills is someone's score on topcoder.com - a very reputable website that holds free-to-enter programming challenges and competitions online (and sometimes, at universities and other locations). Its similar to the ACM programming challenges and for a programmer, holds hours of fun and intellectual exercise. The challenges are hard enough for you to be different from the crowds even if you're just getting started on it.

A person's skill at programming, team work and familiarity with dev tools, et al can be highlighted by contributing to an open source project. If you particularly like an open source tool that you use - or would just like to experiment with a cool project - download, see whats mising, write code for it and send a patch to the admin. That allows potential employers to see what kind of code you write, and the fact that you're not just a "for work" coder - but someone who cares about the field enough to contribute to the community in their spare time.

Edit: The second method nicely takes care of a "trail" of code that you leave behind, viewable by all - in relation to your comment that says "most of my experience (apart from what I've gotten now under this job) is undocumented*"*

Just my $0.02 - hope its useful! Good Luck!

viksit
Thanks, I will definatly have a look at that site - and I have considered for a while to get involved with an Open Source project - but with things like that it's all about finding the right one :)
kastermester
+1  A: 

One thing I'm really starting to see gain value in the marketplace is open source participation. If you can become a prominent contributor to a valuable open source project, that would be a great offset to not having the paper.

Chris
A: 

Getting a job is about the impression that you make. I bring in developers that have x years experience, put them to the test and they fold in 10 seconds with basic questions like "explain garbage collection".

If you know your stuff, have the right attitude and can communicate well, you don't need the on paper experience.

If you have a good, technical blog that you update regularly, it can do you a better service than being able to tick an on paper requirement for x years experience, as it will show that a)you know your stuff, b)you can communicate and c)showcase your code.

Networking with developers and presenting at user groups and will also be a good way to get a great job. The developers in the community will get to know you and let to skip around a HR department roadblock.

Bruce McLeod
A: 

Go through someone you know. Just playing the percentages, if it's a paper exercise between a CS grad and a non-CS grad, all else being equal, your chances are not good. You need someone who the hiring manager trusts to say "hey, look at this guy a second time" to have a chance.

JP Alioto
+1  A: 

These days most people we interview seem to have done Computer Science degrees. It was less common twenty years ago (when I fell into the industry accidentally), so you would find a lot of people who just discovered that they had an aptitude for programming but no formal education in it. The standard of programming these days is much higher but, obviously, it is a more formal and mature discipline.

I don't have any formal, computer-related qualifications apart from a BTEC in C programming. I'm still earning my living as a developer in spite of that but only because (I think) I've studied a lot to fill in the gaps in my knowledge.

I got into development sideways by starting as a technical author for mainframe systems software, which gave me a great grounding in the basic principles of operating systems but also allowed me to watch the whole development process from the inside. I was always programming for myself but no-one would give me a job till the Internet came along and my text processing experience made it a natural fit for my skills.

As you point out, one of the first hurdles you find is your lack of relevant recent experience: employers always prefer to hire someone who has recently done what they need. It's slightly less important for permanent roles where they may take someone who they know has potential which will develop over time.

There are a lot of ancillary roles to development that also involve programming, where you can establish a reputation and trust. For example, tech support, build teams, testing, etc. Although you won't be writing the core products, you'll quickly become an expert and will also be programming a lot of the time. This is a good route in and so long as you carry on developing your knowledge and practice in your own time, you'll quickly develop the confidence and skills to work purely as a developer.

Amongst the agencies and some employers there seems to be an unwonted dependence on certification in order pre-filter stacks of CVs. You need to find a way to break through this pseudo-academic firewall by establishing a personal contact with the agent by ringing them up and asking them if they received your CV, get talking to them so that they have a personality to put to the CV. You may then find that they will put you forwards for stuff they might not have done before, unless the end-client has explicitly asked for specific qualifications.

Like anyone with a disadvantage in life, you have to be sharper than the next person and use your brains more, which is a good thing. It will end up as an asset, not a disadvantage.

Also, you say that you've already been hired by a small startup, so you are in the ideal position to develop your skills. Unless they're unbearable to work for, I think you should stop looking at job adverts and repay their faith in you by exploiting the opportunity they've given you and help make their business a success. That would give you the greatest sense of achievement, would allow you to become an expert, and would also make you eminently employable. Sorry if that sounds a bit censorious.

Rob Kent
Thanks - it was exactly something like this I was looking for! I am currently really only exploring my options - in the event of a worst case scenario (ie. company has to shut down, it's not VC funded). As Mentioned I am about to go study, and I am also going to move out and this all adds up to having bills that needs paid. I'm simply trying to be prepared, in case I will have to find a job again.
kastermester
I assume you're going to do a degree in computer studies, in which case the problem will go away. But degrees can be devalued as a result of inflation, so the general principles still stand, ie work it as if you didn't have a piece of paper in order to stand out.
Rob Kent
I am - and I get that, and also I agree. I have never been a fan of "grades" per say (and no, it's not because I do bad in school, rather the opposite) as I don't believe they reflect what you're capable of doing within a specific area very well - unfortunatly though, not alot of people I have come across seem to agree. Also, I am not hoping that having a piece of paper will make me stand out, but rather that it might help me get to the interview stage - at that point I don't think the papers is going to be as much help as personality, passion and what else that has already been mentioned.
kastermester
A: 

Having a finished product to your name is way more important than where you went to school.

And by "finished" I really mean finished. Doesn't have to be big.

Rhythmic Fistman