This piece is is going to be a bit different in that I am seeking advice. How can we encourage a passion for software engineering and domestically grown talent when IT take up appears to be decreasing?
Over the last month there have been several pieces in the media about declining numbers in IT enrolments both internationally and domestically. We have even had the Westpac CIO publicly encourage youth to consider careers in technology. To that I say actions speak louder than words. If big business want to encourage people to take up technology studies then they should be creating demand, not decreasing it by outsourcing to foreign labour markets.
It's not that there aren't any IT jobs out there, but there aren't many jobs for people beyond the entry level. I know quite a few of my university peers that have since left IT, not because they stopped enjoying technology but because the interesting projects were never being done in the domestic offices and they felt that they had gone as far as they could in their craft.
I believe that a latent supply exists. I have three scenarios which I’d like to put forward.
Scenario #1: High school student wants to get into computer technology-related fields. What should they be doing to prepare? How can they get confirmation this is what they want to do?
Scenario #2: Career changers interested in taking up a technology related career having worked in a different field. Is formal education (eg. a university degree) the way to go? How effective is taking on a traineeship, junior role or part-time coding gig? How best to network and find a mentor?
Scenario #3: Primary school aged children. Can we teach the basics and help develop an interest in software development principles through play?
My own reasons for entering the industry were set from an early age, when I read those old computer games BASIC code listing books even though I didn’t have a computer at the time. In hindsight it is a pretty strange method, but I read code as I would a story book. Code has a start, beginning and end and a kind of mathematical branching narrative.
I really enjoyed the idea that with a limited grammar (programming syntax and semantics) and basics in maths and logic, I could express infinite ideas. Using finite elements to express abstract ideas still fascinates me to this day. The computer was my lab, workbench and blank canvas.
There was something very addictive about conceiving an idea, coding it up and seeing if it worked.
When I started working with other developers in a team environment I was then able to see how they expressed themselves within the same language limitations and environment. I was hooked.
Romanticism aside, at some level I feel that a developer has to love that feel of pieces clicking into place. To take satisfaction at breaking a hard problem down and conquering it through expressing it in ever simpler forms.
When I first started, software development tools and compilers were usually proprietary and expensive. Coding as a hobby required a certain financial outlay and there was a very limited local developer scene to share and learn from. It was usually a pretty lonely and socially scorned activity.
Twenty years later and development tools are mostly freely available, the documentation is great and there are massive communities to help you at any level of proficiency. The number of devices you can code for and the opportunities to profit from your work are massive by comparison. Not a month goes by when some new “rockstar coder” / app developer is reported in mainstream media.
My usual advice, especially to teenagers that want to get into the industry is if you want to write software, then start writing. There is very little holding you back - you don't need to wait to be formally trained. Have a go at a few languages and technologies, have a real project in mind, don’t just do a few tutorials.
There are many open source projects out there that are looking for new coders, testers, technical writers and artists. Find a project that you are passionate about and join in as far as your talents allow.
For the career changers, my advice is pretty much the same - start coding. I have worked with some amazing professional developers that never went to university, so don’t despair. The most interesting developers I have worked with are those that only have degrees in non-computing fields but have since made the jump.
For children, there have been a few attempts at creating languages that teach the basics in a fun way. Once such example is Alice by Carnegie Mellon. At a more basic level, encouraging a child to break a problem down in smaller steps - cooking is a great example of demonstrating procedural concepts.
A technically competent local workforce that helps Australians be technology creators and not just gadget consumers needs the co-operation of a few: domestic businesses creating career opportunities, educational structures creating capability and a friendly community of veterans willing to mentor and welcome new members.
So what advice do my fellow IT professionals have to share with those wanting to get into the field? Has any advice you received stuck with you through the years?
This author is on Google+