Are you finished with your degree and do you think you would have ever learned the aspects you missed without the degree? I'm definitely going to do the degree but not necessarily at the start of my software career that is if I can even get in before that since it seems from this thread that is heavily dependent on luck/connections.
I think the stuff about data structures and algorithms I could have learned on my own, but perhaps it would be more difficult. The reason is, first you don't have a lecturer that you can ask questions, second you get tested on your knowledge. You can just read a textbook about algorithms, but I think without being tested on it or needing to use it, it won't really sink in.
The general knowledge that I have about business and management has become useful as I've advanced in my career, but I suppose you don't really need expert education for this.
Just bear in mind that I think the world is changing, and I don't think it values degrees as much as it used to. With that being said, South Africa is a little more old fashioned in their approach to degrees, and you will find many places you can't get into without one. Especially the highest paying ones, like banks.
Thanks for the input. Any resources you recommend? I'm starting of with the intro CS50 course from Harvard as it's free and I can do it on my own time and then I've read about Coursera and Udemy short courses. I have also seen 1 year intro programming courses from UNISA but I believe that's more for refining your skillset rather than learning to code from scratch.
Coursera and Udemy are both fine - I probably recommend Coursera over Udemy.
The thing about both is that the value you get is heavily dependent on the course. There are good courses and Coursera and then there are bad courses on Coursera. The bad ones give you the certificate without requiring you to learn much. The good ones force you to work, and then you learn some stuff.
Never competed a programming course on Udemy, but the way that Coursera works is that, if you want to get a certificate for the course, you have to pay for it. It isn't expensive though, like R2000 per course, take as long as you want. You can do all of the courses for free, you just won't be certified for them. You can also complete the course and then pay for the certificate later when you are ready.
Anyway, on Coursera, the lecturers don't grade your submissions. They don't mark your work. The way it works is that, you either have multiple choice questions, which are easy because you can essentially brute force them. Guess until you get it right. The second type of submission is where your peers grade your work. So you submit your work, then 4 people in the class look at your work. You get the average mark from your peers. So this is good because you can do more complicated work and have it graded. The lecturers then provide a model answer, and you grade according to the model answer. You can't see the model answer until you have finished your own work.
I'd start with something like Python or Javascript. Its an easy teaching tool, but also very useful in the real world. Just spend 3-6 months learning it. Write a few programs. See what you can do. Then maybe move on to something like Java.