I recently spoke to a friend who recently graduated and was looking for a programming job. During our discussion we shared war stories about our experiences in Object-oriented programming and enjoyed the fact that there were many similarities in our experiences. It hinted that programmers tend to grow in a certain way making the same mistakes as other peers who walk the path. More importantly it was comforting to know that it isn’t just us.
One thing we agreed on is that good programmers, those who do well at university and find themselves landing jobs straight after are those who invest the time and effort to perform extra curricular activities to support what they learn in class. If anything, these extra curricula activities tend to be the source of the knowledge they have gained while attending university.
One of the notable traits of these studious programmers were that they always had a good book to recommend, and they were happy to read large texts around subjects that appealed to them. Hopefully this is a good sign for me, as I am all up for reading around a topic. Right now there are two books on my bedside table – Concurrency In Practice, and Clean Code.
Another interesting fact that arose during our chat, was that many graduates leave university not really knowing how to write code, or even have a firm grasp of object oriented programming. They learn acronyms and mnemonics, but I get the impression that they don’t really understand what it means.
I consider myself a year ahead of most graduates, because apart from my graduate degree in Electronics and Computer Engineering, I also have spent the last year (to this month) engrossed in programming literature around a number of subjects. A year’s more than most graduates.
One thing came to mind, and that was where am I at in terms of programming ability? How can you measure one person’s ability to understand software development? That’s where I came across the Programmer’s Competency Matrix. It is an entertaining read, and a fairly interesting measure of a programmer’s ability. I take it with a pinch of salt, but it serves as a good map for developing programmers who are trying to make it to the next level. You can find a copy at the original author’s blog – http://sijinjoseph.com/programmer-competency-matrix/
I think I fall somewhere between Level 1 and Level 2. In a couple of categories I’m a Level 0 which interestingly highlights potential gaps in my programming development. If I could spend the next year or two getting myself to Level 2 and getting some professional experience under my belt I think I would be pretty happy. Level 3 seems to be a bit out of reach at the moment and would probably require a few more years of professional experience and years of self study. I guess it’s where I’d hope to be in 5 years time.
Another interesting thing that came up during our discussion was the job hunting process. Unlike me, he’d already started applying for jobs in the software industry, and he was griping about the tests he was given and failing them. This concerned me a great deal, as it is something that is very off putting about applying for jobs. The test. Where they put you in a vice and exercise your programming ability to see where you fall short. It’s like going to the doctors for an unwanted thorough examination. Maybe I am looking at the it the wrong way though. Maybe it’s an opportunity to learn what your limits are, and to determine what skills and abilities employers are looking for. Skills and abilities that make you make valuable to the market place.
From what I could glean for our hour long chat, was that there are areas that I need to revise, to study, and things I could do to prepare for the upcoming tests and interviews. Things about the Java API’s that I could learn, basic programming constructs that I could practice, and skills that I could develop for the upcoming interviews. I feel like a rocket preparing to launch. T-minus 60 seconds til ignition…