So my cousin phoned me today and asked some advice. His son is finishing high school this year and is interested in programming. Basically he asked me where to start or what course to buy and after thinking for a while, I realized that I have no idea.
I taught myself and by the time I left school, I could already do some basic programming in Clipper/dBase, Turbo Pascal, C++ (dos) and had written multiple things in VB3,4 and 5. After matric, I started MCSD self study and got a job offer from the place where I wrote my MCP exams (QData), 5 months after leaving school.
Now in my case, there was a lot of luck involved with pieces falling in the right place at the right time, so this isn’t really a story I can tell him as a guide to get started. I have no idea if he has any experience or skills yet.
So what are your thoughts on how a high school graduate can get started in a career in programming?
Having gone through first and second year material at the university level 2 or 3 times for various reasons, I can honestly say it is more about good coding ethics (documentation, best practices, etc) and understanding core fundamentals is way more important than picking a language itself. If you pick a language, and decide that’s the market you’re interested in, you can certainly excel, and even surpass others, but if that language dies, you’ll be doing maintenance for the rest of your life.
If he is considering focusing on online services, Go (aka golang) is a growing market right now. It is a language more or less designed for web services, but it has a simplicity to it that makes it easy to learn.
I took Todd McLeod’s course at https://greatercommons.com/learn/golang, and I really enjoyed his teaching style. While it was only pre-recorded lectures, and I didn’t need to interact with him directly, I can still say he’s one of my favorite profs. I did explain my situation (volunteer and all that), and he gave me a discount code to cover the bandwidth. Highly recommended.
It all depends on the resources they have and what kind of tertiary education experience the kid wants (if any).
I went to university and could have become a programmer with my qualification, but elected to take a vow of poverty as a journalist instead.
(That’s a joke. MyBroadband makes sure I’m fed and watered properly. No lambos, though.)
A B.Sc degree in Computer Science will do the trick. I did a B.Eng in Computer Engineering. It’s a longer degree and covers more stuff, but if I had gone into programming I would probably have started at the exact same place as B.Sc grads.
A friend of mine went to CTI, graduated after a year, and then they helped place him in a job. Much shorter than the uni route, but probably comes with a glass ceiling in the corporate world. If you have corporate ambitions, definitely start a correspondence degree after finishing a short-form technical qualification like CTI.
Nowadays there are also coding Bootcamps available. WeThinkCode is solid, but getting in isn’t easy. If you do get in, your education is free and you will also probably get a job offer at the end. Not sure if the same glass ceiling as CTI applies?
And of course, there’s always the self-taught route.
We take in new interns once a year to teach them to code. The biggest quality we’ve realised that they need is passion - those with no passion for coding (i.e. see it as a “job paying more money than most”) end up being terrible developers. Even if he’s got a little interest and curiosity for coding it can be developed to become a passion. So that’s where I’d start, personally: figuring out whether he really has an interest in coding or not.
We also pay for studies while he works, but work-back periods obviously apply for the money we invested in him. The only studies that are “free” are 2 Microsoft exams (from a wide variety of disciplines) that need to be completed within the first 3 months of employment. The catch with those is that we only pay for the first attempt - if he fails, he has to pay for follow-ups.
We do, however, have a preference for graduates (especially with honours), as it provides a very good foundation for software engineering careers. It also provides some credentials behind their names, which (being a consultancy) makes their skills more appealing to our clients. So in that sense I’d urge him to consider a degree, even if it’s through Unisa. We have 5 people currently doing their BSc’s through Unisa and the course content is good and relevant. Going the Unisa route is also not nearly as expensive as the other universities and the distance learning aspect will teach him a bit of responsibility while not being spoon-fed, which is a great characteristic to exhibit in the industry.
So, in short, I’d recommend doing a BSc through Unisa and, after the first year, applying for an internship. He can continue completing his degree while working, but the year’s worth of studies will give him a bit of a foundation and understanding of the industry that he will be entering.