Reverse job hunting: ARM v PIC

At the end of my previous post I said I would describe the process I used to decide on which micro I was going to learn. Here is the first part of that description.

There are two main “families” of micro – the ARM and PIC families – also frequently referred to as “architectures”. This is a bit like saying there are two main “families” of car – petrol and diesel. They both do the same thing (providing a mode of transportation), and to the user the controls are the same (apart from putting the right fuel in), but what’s going on under the bonnet is quite different.

The main goal of this exercise is to improve my employability and so the most important, top-level question to answer is therefore: what are potential  employers actually looking for – experience of the ARM or PIC architecture? After all, there’s no point investing time and effort in learning about one architecture only to find that employers are generally looking for the other.

To answer the “ARM or PIC” question I used a process that I like to think of as “Reverse Job-Hunting”. To explain what I mean by this, I first need to describe the process of ordinary job-hunting as I see it. This is just my personal view, gained from the experience of being a job-hunter, and doubtless there’s a lot of detail that I’m missing, but just bear with me.

Let’s suppose that an employer finds themselves in the position of needing to recruit a new employee. It’s quite likely that the employer will use the services of one of the specialized recruitment agencies through which almost all recruitment seems to be done these days. The employer will give the agency a job description, details of the experience and qualifications required, etc., and the agency will post the vacancy on its website. A job-hunter will be able to search the agency’s vacancy listings and apply for any positions he or she finds appropriate. With me so far? Good!

This is all done online, and there are agencies servicing many different areas of the job market e.g. technical, creative, managerial, etc., etc. In my case I’m interested in those agencies covering the electronics industry, of which there appear to be approximately 30 or so in the UK.

To answer my ARM or PIC question I can use the system I’ve just described, but this time sort-of in reverse. I pick one of the recruitment agency websites, and enter appropriate terms in their search engine. This could be “microcontroller” for job title and “UK” for location. This returns a list of vacancies for microcontroller-related vacancies in the United Kingdom. At this point, if I was a regular job-hunter, I would start combing through the list and applying for the jobs that I like the look of. In my case, though, I look at each vacancy listing in turn and see whether a preference is given for the ARM or PIC architecture. Do this for a few agencies and I can start to build up picture of what it is that employers are looking for.

Here is the result of just such an exercise, carried out today:Survey graph.jpg

It’s a graph! Of course it’s a graph – I’m an engineer. I like graphs.

Seriously, though, this exercise does highlight a couple of useful things:

  • Out of 65 job vacancy postings, over half did not express a preference for either ARM or PIC and just asked for “microcontroller experience” or some similar phrase.
  • Of those that did express a preference, ARM was more popular by a ratio of 5:1.

OK, so this is a very small, very unscientific survey, but it does indicate this I should focus my efforts in the direction of the ARM architecture.

I’m quite sorry that the Microchip PIC family didn’t fare better as that family do seem to have a huge hobbyist following and a whole universe of third-party learning resources and tutorials. Some years ago I worked through the excellent Gooligum PIC tutorials, and I do recommend these if you are interested in studying the PIC series yourself.

Having decided on the ARM architecture, there are still decisions to be made about which of the many ARM versions to go for. This is a lengthy subject, and one I will return to in my next post. In the meantime, I wish you a happy new year, and thank you for reading!



First blog post!

Hello and welcome to the Learning Micros blog.

This blog will document my attempts to learn about microcontrollers – how they work, how they’re programmed and what they can do.

For brevity, and because I’m a lazy typist, from now on I’ll just use the term “micros” when referring to microcontrollers. Other terms you may see used elsewhere include “MCU” (for Micro Controller Unit), and µC (easily confused with micro-coulomb, a unit of electrical charge), but I won’t be using those terms here unless it’s in reference to someone else’s text.

There are plenty of online descriptions of what micros actually are, and this Wikipedia article gives you one definition which may be helpful if you need it. Without paraphrasing the entire Wikipedia entry, it’s enough for the moment to say that a micro is a small, complete computer on a single silicon chip and that micros are used almost everywhere.

You probably own a fair few micros without even realising it: there will be a couple in your mobile phone, a few in your domestic appliances, perhaps one in your TV and quite a few in your car, to name but a few applications. They are cheap, useful and utterly ubiquitous.

Micros can also form part of an “embedded system”, and again it’s Wikipedia to the rescue for an explanation.  I’ll probably use the term “embedded system” or “embedded programming” as we go along, so best to introduce those phrases now as well.

This is going to be a “warts and all” blog in that some of the things I write might seem dumb or obvious to a more knowledgeable audience. But hey, it’s my blog and my journey, and making mistakes is part of that journey. I may also throw some questions open to my audience (I hope I actually get an audience…) and will be very interested in your views expressed in the “Comments” section.

Now a few words about how I came to be writing this blog…

For the past 20 years or so I was employed in a very specialised segment of the electronics industry. The exact details aren’t really important, but suffice to say the job had little to do with micros or embedded systems. Sadly, a couple of months ago I found myself to no longer be in that job any more.

To be in the position of job-hunting after such a long time was a shock to say the least – the last time I was doing this the internet hadn’t been invented and CVs were written on actual paper and sent through the post!

It didn’t take long for a couple of things to become very much apparent:

  • My current skill-set was extremely specialised, and only directly interesting to a relatively small number of potential employers.
  • I was facing a choice of either relocation or finding a job doing something else.

If I was happy to relocate to “anywhere” then I could probably have two or three interviews a week. For a while I was fielding daily calls from recruiters asking if I would move to: Devon, Portsmouth, North Wales, Colchester, Southern Ireland, Tyneside, the north of Scotland, etc., etc., etc. Whilst I’m sure these are all perfectly nice places, I like where I live now and for various personal reasons I simply cannot relocate. So the prospect of staying put geographically whilst continuing to work in the industry seemed increasingly remote.

It took me a while to realise that there was in fact a third option: re-skill. During my many hours spent job-hunting I had noticed a high demand for people with microcontroller/embedded skills. Was this something I could retrain for? Could I learn micros? Clearly there was no way I was going to be able to compete with people who had many years experience as an embedded software developer, but maybe I could learn enough to at least gain a toe-hold in the field?

As well as possibly helping with my immediate employment difficulties, acquiring some micros skills appealed to me for another reason:

Like many people of “a certain age” my thoughts sometimes turn to old age and retirement. Despite having paid into various pension schemes over the years, I doubt I’ll ever be able to retire with anything like a reasonable standard of living, even if the retirement age is raised above the 70 years they’re starting to talk about now. In short, I expect to be working until the day I’m wheeled out feet-first.

This prospect doesn’t particularly bother me – I think it’s mathematically inevitable given that proportionally fewer people in-work  are paying for proportionally more retirees and the bias is becoming more pronounced as time goes on.  But it does leave me wondering what exactly I could be doing at the age of 65, 70, 75…

I’m pretty sure micros are here to stay, or will at least be around for a very long time to come, and so learning micros is likely to be a good way of “future proofing” myself. Plus I don’t want to be in a similar situation again in a few years time thinking “I really wish I’d done that when I had the chance”.

So taking this into account, my bullet-point list of reasons for wanting to learn micros is as follows:

  • apparent shortage of people with these skills = better and more varied career choice
  • has the potential to keep me in gin and tonic in my old age – future proof!
  • likely to be a fun and interesting challenge
  • Internet of Things!
  • an excuse to learn WordPress

Maybe I’m over-optimistic about just how fun and interesting the micros world is, but if I don’t try going there then I’ll never find out for myself. N’est-ce pas?

Well look at that – 1000 words and I’ve said almost nothing about actually learning micros. I’ll put that right in my next post where I’ll describe the process I followed in deciding which micro I was actually going to learn.