Advice Millwright to Software Developer

Thanks this was a great reply I'll be honest I haven't done much research into the specifics of "software dev" in regards to specific roles within the field like back-end & front-end development and have more so looked at it broadly as a field I'm interested in and started learning python and programming micro controllers which is related to my field. I have always been interested programming as something to do as a career but never really took action towards getting into it as a career and what it entails specifically until now
Just start with front-end stuff. HTML, CSS, and JavaScript. If you look at the whole picture you realize you know nothing and start to freak out.
 
The people who I know who became software developers (or even QA) without a qualification are those who had a contact who could help them get a foot in the door.

It can be done though, but if I were you I would:
1. Get some sort of qualification, even if it is just a diploma.
2. Do online courses.
3. Have a github with at least one working project.
I'll definitely be getting the degree at some stage not sure when for now though I'll be doing short courses as that will be the easiest to manage whilst I complete my apprenticeship. I'll start with CS50 course I mention in my original post as well a GitHub profile
 
Just start with front-end stuff. HTML, CSS, and JavaScript. If you look at the whole picture you realize you know nothing and start to freak out.
Good idea, thanks for pointing out specific stuff I should look at first. It helps a ton just to start getting direction
 
I've seen people talking about this and a lot of people argue that self taught programmers lack fundamentals and getting that first job without the degree is really hard. How hard would the self taught route be with South African companies ?
The fundamentals that people argue that self taught programmers lack are those that allow group development (more than one programmer each working on a separate part of the program) and make later development and updating easier for another programmer (ie other than the one who wrote it) to debug or expand or modernise.

This means that self taught programmers battle to join software developers where teams of programmers are used and that support their software throughout its service life. this makes them struggle to secure employment unless they have an extensive portfolio of work that shows the prospective employer they are worth developing as part of their team.

This is generally of course, I have seen companies that employed self taught programmers and using them on defence contracts, so i guess nothing is impossible but I don't really have the corporate experience in software development to say for sure.
 
The fundamentals that people argue that self taught programmers lack are those that allow group development (more than one programmer each working on a separate part of the program) and make later development and updating easier for another programmer (ie other than the one who wrote it) to debug or expand or modernise.

This means that self taught programmers battle to join software developers where teams of programmers are used and that support their software throughout its service life. this makes them struggle to secure employment unless they have an extensive portfolio of work that shows the prospective employer they are worth developing as part of their team.

This is generally of course, I have seen companies that employed self taught programmers and using them on defence contracts, so i guess nothing is impossible but I don't really have the corporate experience in software development to say for sure.
Interesting perspective, you say you don't really have corporate software development what is your area ?
 
The fundamentals that people argue that self taught programmers lack are those that allow group development (more than one programmer each working on a separate part of the program) and make later development and updating easier for another programmer (ie other than the one who wrote it) to debug or expand or modernise.

This means that self taught programmers battle to join software developers where teams of programmers are used and that support their software throughout its service life. this makes them struggle to secure employment unless they have an extensive portfolio of work that shows the prospective employer they are worth developing as part of their team.

This is generally of course, I have seen companies that employed self taught programmers and using them on defence contracts, so i guess nothing is impossible but I don't really have the corporate experience in software development to say for sure.

Im not sure thats the fundamentals that most think degrees bring. Degrees make you do accounting, statistics, math, economics etc that gives a wider understanding of the business's world.
 
My original plan was qualifying as a millwright as backup and getting a comp sci degree part time but I think that would impractical. So with the answers I got in this thread I'm thinking about going the self taught route until I qualify as a millwright then I'll hopefully find something in software development with my self taught knowledge and start my comp sci degree part time.
So, "self-taught" really means two different things typically: if you can self teach yourself coding, computer science, and the requisite maths from Harvard or MIT online courseware, that's fantastic. Most of the time, "self-taught" amounts to teaching oneself to code without paying much attention to things like computer science, maths and stats.

Both are fine, and both can have very successful careers (there are plenty of senior jobs that don't need CS/Maths/Stats), however, without the degree background, you stand a higher risk of getting locked into the less exciting/lucrative parts of the industry by virtue of what's available when you start, and how you will progress given that your work experience will be limited to your job.

I'm a self-taught developer (as a kid), and didn't realize what I was I was missing until I started my degree.
 
Sorry if i missed the part but millwrights are very in demand esp in Aus. Don’t you enjoy it?
 
While you are waiting to do your degree, perhaps you will spot opportunities for some programming projects in your current work or field - automate a repetitive task, digitise a manual process or something like that.

Starting with HTML/CSS/Javascript is fine if that's what interests you but focusing on the embedded type programming might set you apart if you have an interest and aptitude. Or you could combine the two - write a server application that pulls information from multiple arduino/Pi devices which monitor something and display the data in a web browser for instance.

Programming and development is great because you can gain actionable knowledge from free or cheap material with the internet but you'll really bed in knowledge when you are solving real problems versus tutorials or programming exercises.

Finally, contributing to one or more open source projects would also be beneficial - as well as solving programming problems, you could get experience of collaborating with other developers, Git workflows and possibly testing documentation and other skills that would be valuable in a dev role.

All of this is stuff you can start now at low cost, mostly with an investment of your spare time.
 
Look, even if you don't get a degree and are unable to work at some of the more prestigious companies, I still think that software development is a good career path, for a few reasons.

1. It generally pays pretty well, even at the lower end of the scale.
2. It travels well internationally. You don't need to be accredited by a national body, unlike accounting, law or medicine.
3. You can live in South Africa and get paid by international companies. I know somebody that works from home in SA for a company based in the States.

I know two people without degrees that have done pretty well. If you work hard, and you accquire responsibility, you can end up having a good career without a degree. I think the key thing here is making the right choices as far as jobs go. In other words, some jobs will boost your career, others will not boost your career.

Anyway, that's a while away from now. For now, I'd use free resources to start learning how to code. Start a github profile and start contributing to it. Focus on one language for 3 months, then switch to another one, unless you are still really enjoying the existing one.
 
Sorry if i missed the part but millwrights are very in demand esp in Aus. Don’t you enjoy it?
I'm not a very practical person in the sense of working with tools and I know I can learn the skills but I'll always be a very average trades person. I don't enjoy the factory environment and if I have to do stressful work I would rather do it working in a environment I semi enjoy. The only reason I went the trade route in the first place was because I had no choice it's decent salary without needing to get a degree but now being in the field I can't see myself doing it forever. The grass might not be greener but I feel I need to give it a try or I'll always wonder.
 
So, "self-taught" really means two different things typically: if you can self teach yourself coding, computer science, and the requisite maths from Harvard or MIT online courseware, that's fantastic. Most of the time, "self-taught" amounts to teaching oneself to code without paying much attention to things like computer science, maths and stats.

Both are fine, and both can have very successful careers (there are plenty of senior jobs that don't need CS/Maths/Stats), however, without the degree background, you stand a higher risk of getting locked into the less exciting/lucrative parts of the industry by virtue of what's available when you start, and how you will progress given that your work experience will be limited to your job.

I'm a self-taught developer (as a kid), and didn't realize what I was I was missing until I started my degree.
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.
 
Look, even if you don't get a degree and are unable to work at some of the more prestigious companies, I still think that software development is a good career path, for a few reasons.

1. It generally pays pretty well, even at the lower end of the scale.
2. It travels well internationally. You don't need to be accredited by a national body, unlike accounting, law or medicine.
3. You can live in South Africa and get paid by international companies. I know somebody that works from home in SA for a company based in the States.

I know two people without degrees that have done pretty well. If you work hard, and you accquire responsibility, you can end up having a good career without a degree. I think the key thing here is making the right choices as far as jobs go. In other words, some jobs will boost your career, others will not boost your career.

Anyway, that's a while away from now. For now, I'd use free resources to start learning how to code. Start a github profile and start contributing to it. Focus on one language for 3 months, then switch to another one, unless you are still really enjoying the existing one.
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.
 
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.
Yeah, I got my BSc around 25 years ago. I don’t think I would have learned the vast majority of what I did had I gone straight into a job. I’m sure I would have done fine, but definitely not as well as I have.
 
While you are waiting to do your degree, perhaps you will spot opportunities for some programming projects in your current work or field - automate a repetitive task, digitise a manual process or something like that.

Starting with HTML/CSS/Javascript is fine if that's what interests you but focusing on the embedded type programming might set you apart if you have an interest and aptitude. Or you could combine the two - write a server application that pulls information from multiple arduino/Pi devices which monitor something and display the data in a web browser for instance.

Programming and development is great because you can gain actionable knowledge from free or cheap material with the internet but you'll really bed in knowledge when you are solving real problems versus tutorials or programming exercises.

Finally, contributing to one or more open source projects would also be beneficial - as well as solving programming problems, you could get experience of collaborating with other developers, Git workflows and possibly testing documentation and other skills that would be valuable in a dev role.

All of this is stuff you can start now at low cost, mostly with an investment of your spare time.
Yes great info thanks specifically the server application with arduino/pi's as we have multiple setups with arduino/pi's and server applications that display info on processes and nobody that really know how to program them. I already have my own arduino and started learning to program it and the aspect of sending information fro the arduino to a server application that I wrote seems exciting
 
Im not sure thats the fundamentals that most think degrees bring. Degrees make you do accounting, statistics, math, economics etc that gives a wider understanding of the business's world.
they certainly are fundamentals of a computer science degree. At least they were part of mine. Under the subject software engineering, issues like portability, maintenance, costing, structure, data storage, data flow design, fault tolerance, validation and verification receive attention that self taught programmers might not have a formal approach to.
 
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.
 
Interesting perspective, you say you don't really have corporate software development what is your area ?
For reasons that surpass belief, although my degree is in computer science I have had a career in the maritime field. Initially there was some interaction between them because of where I worked (military) and what I did but not for the last twenty years or so. While it may seem like a huge waste (and probably is) I find that training useful to this day as you would be surprised at the wide variety of complex machinery and processes that can be viewed and interpreted as though they are programs and therefore much more easily understood. (if of course programming is your thing) Actually im pretty sure that you already experience this as a millwright. Further exposure to programming can only enhance your ability and fulfillment, even if you didn't actually change careers, although i get that for you, this is the ultimate aim.

@InvisibleJim 's post in this thread is solid info and very good advice
@cguy is also right on the money.
@Ancalagon is also worth listening to.

Anyway to answer your question directly I am an uncouth sailor with a computer science degree from stellenbosch uni.
 
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.
I agree that the formal structure, accountability, etc., does make it much easier to work through these topics.

The other big issue is that most learning in industry arises from need, so if you joined a company in a role that didn’t require or care about these topics, there would be little reason to pursue them. This is what I meant by “lock into” in an earlier post.

Many who decide to “do a degree later”, are already locked in and don’t get as much out of the degree because it’s typically not directly applicable to their current situation. They have to be comfortable with changing their careers entirely, including often taking a few steps back.
 
Last edited:
Top
Sign up to the MyBroadband newsletter
X