[Tutor] When do you know you're ready to start applying for jobs?

Alan Gauld alan.gauld at yahoo.co.uk
Tue Dec 12 18:37:28 EST 2017

On 12/12/17 19:43, Matthew Ngaha wrote:
> Hi all. I took 2-3 years off in 2012 to teach myself programming. I
> learnt basic Javascript & Python with some Django. I don't have a
> Computer Science (CS) degree 

The key issue here is what is true in your locality.

In my part of the world the vast majority of programmers do
NOT have a CS (or software engineering degree - something
quite different). But they a majority do have a degree with a
numerical bias(science, engineering, maths etc)

On the other hand I've worked with programmers who studied
business law, zoology and even music. And quite a few with
no degree at all.

But I know of other places where a degree is essential and
in some places it has to be computing related.

So it all depends on your local practices and I can't comment
on that.

> ...so I never applied for a job because I
> always thought I still had lots to learn and most jobs say a CS degree

But you certainly do have a lot to learn, and in computing
you never stop having lots to learn. It is one of the
fastest moving industries around. Much (most?) of what you
learn today will have changed in 10 years time.

But there are things you can learn now that won't ever change.
And that includes the principles of design - an aspect all too
often ignored by people learning "programming" But you can't
build a significant system of any kind without an underlying
design. And you can't build big systems without understanding architecture.

And there are standard design patterns and architectural
patterns that you can learn (MVC, State machines,
Client-Server etc). There are principles (like coupling
and cohesion) and axioms like DRY. There are performance
patterns too, understanding O() notation and the factors
that affect it.

Then there are industry practices and tools. Do you know
about version and release control? Debugging tools? Profiling?

Hopefully you see where I'm going - you never stop learning
and you can waste a lot of time becoming an expert in things
that will be of no use in a few years, or you can focus on
principles that are the very basis of system design and

There is a big gulf between being a "programmer" and being
a professional software engineer. Your best bet may be to
get a job in a small one man shop building small web sites
for small businesses. That way you can learn about the
deeper issues as you go, in a kind of apprenticeship.

But don't get hung up on languages or frameworks - these
things come and go like fashions on a catwalk. If you
understand the principles you will learn new languages
in a matter of days and weeks. Frameworks in weeks or months.

> I haven't touched programming in 2 years. I've forgotten most of what
> I learnt now. 

Two years is not long. Try it in your spare time. If
it isn't coming back within a week then maybe its not
for you, or maybe just as a hobby. But if you have a
talent for it you should find it falls into place
quite quickly.

But programming for fun is a worthwhile thing too. I
never code for profit these days but I still write
code every week and usually have 2 or 3 projects
simmering away at any one time. They make my life
easier and I enjoy coding them - it's a win-win.

> Can I get a junior programming job without a CS degree?
> When do you know you're ready to start applying for jobs? How can a
> self learner ever know?

That all depends on local circumstances and the individual.
If in doubt try joining an open source project. If you can
get to the stage where the other developers treat you as an
equal then you are definitely ready for a job! (And it's good
to have on your CV/resume)

Alan G
Author of the Learn to Program web site
Follow my photo-blog on Flickr at:

More information about the Tutor mailing list