self taught programmer vs qualified programmer.

47Ronin

Senior Member
Joined
Jan 11, 2022
Messages
577
Reaction score
312
** Sensitive Topic for some **
This is going to be a wall of text but because I am putting this in the software-development section I know it is not going to be a problem. As programmers we are use to lengthy e-mails by now and our speed reading is second to virtually none.

I have been working hard to move away from Networking solutions and hardware support into the software development field. Right now I am good with Java, Python and overall app development. In short I am not crashing my pc or phone anymore. But I am told if I don't crash them at least once I am not doing it right.

Point is, is there a future for self-taught programmers in South Africa? The answer is yes in most of the US and UK not to mention most of the world. But I have run into situations where potential customers wanted certifications or I have to cut my asking price on network installations.

Now I tend not to look at private work because everyone and their dog wants the next "game or Facebook" and their "idea" is worth more then the time and effort it would take to actually do it. Not to mention infrastructure cost. Point is I am very selective at what clients I take on.

My first work came in a month ago and it was for a bot. Naturally Python was a good fit for this very rudimentary and simple application. My customer was seriously happy because in his words "It does everything I want it to do" Now an NDA "standard for this industry" or so I have learned was signed so I cannot really go into details but again my customer was happy. Happy enough that I got paid my first serious amount of money.

NDAs can become a problem and have learned this, this past week but I digress.

Now in this particular situation my customer didn't care about qualifications but I doubt this trend will continue. So I am looking at everyone that does this professionally. How many of you had to produce qualifications?

This is a serious question because I am looking to maybe get qualified end next year. Do employers, customers accept online certification or must it be university grade qualifications?

As always thank you for reading.

Take care.
 
** Sensitive Topic for some **
This is going to be a wall of text but because I am putting this in the software-development section I know it is not going to be a problem. As programmers we are use to lengthy e-mails by now and our speed reading is second to virtually none.

I have been working hard to move away from Networking solutions and hardware support into the software development field. Right now I am good with Java, Python and overall app development. In short I am not crashing my pc or phone anymore. But I am told if I don't crash them at least once I am not doing it right.

Point is, is there a future for self-taught programmers in South Africa? The answer is yes in most of the US and UK not to mention most of the world. But I have run into situations where potential customers wanted certifications or I have to cut my asking price on network installations.

Now I tend not to look at private work because everyone and their dog wants the next "game or Facebook" and their "idea" is worth more then the time and effort it would take to actually do it. Not to mention infrastructure cost. Point is I am very selective at what clients I take on.

My first work came in a month ago and it was for a bot. Naturally Python was a good fit for this very rudimentary and simple application. My customer was seriously happy because in his words "It does everything I want it to do" Now an NDA "standard for this industry" or so I have learned was signed so I cannot really go into details but again my customer was happy. Happy enough that I got paid my first serious amount of money.

NDAs can become a problem and have learned this, this past week but I digress.

Now in this particular situation my customer didn't care about qualifications but I doubt this trend will continue. So I am looking at everyone that does this professionally. How many of you had to produce qualifications?

This is a serious question because I am looking to maybe get qualified end next year. Do employers, customers accept online certification or must it be university grade qualifications?

As always thank you for reading.

Take care.

Once you have some experience, qualifications matter less and less. I would say less than half of devs I've worked with over the years have a programming degree.
Some of the very best ones had no qualification at all.

Edit: this is for working in a dev team.
If you freelance things will probably be different and it makes sense. They don't know how to choose the best candidate. All they have to go on is usually that qualification. Your "portfolio" will then have to sell your skills.
 
Last edited:
In my experience what matters is how you showcase your skills and what you have to help your prospective employer motivate your appointment.

So if you don't have a degree you either need the experience and a way for the employer to verify it or applicable certification or a combination of things.

Things like code in a github repo or open source project, certifications, verifiable projects you can reference online, HackerRank, short courses etc all help to prove your worth. It also depends on the hiring manager and HR department, sometimes having a degree is a checkbox on a sheet and HR will chuck your CV before it got anywhere near the hiring manager.
It also depends what your career aim is. If you want to become an executive having a degree and preferably masters degree goes a lot further then maybe head of architecture.
 
As I am slowly moving into this market I started to collect all my projects and placed them in github. I also loaded a phone up with all my projects to show customers what my ability is and I don't oversell. I am still new and I let them know this at the very beginning of the interview but having my laptop and phone loaded up with my projects and show them how they work I found a lot of clients showed interest one committed and I actually did really well. I made more money on that project that what I did all year doing hardware. It is why I believe I have what it takes because I had a customer and they are happy. That was a massive milestone for me.
 
At the end of the day you are no different to any other business you have to be good at marketing and sales to get opportunities to showcase your value. Developers are often bad at the marketing part so its worth it to put yourself through an online course or 2 and work on your marketability as much as your coding ability.
 
As I am slowly moving into this market I started to collect all my projects and placed them in github. I also loaded a phone up with all my projects to show customers what my ability is and I don't oversell. I am still new and I let them know this at the very beginning of the interview but having my laptop and phone loaded up with my projects and show them how they work I found a lot of clients showed interest one committed and I actually did really well. I made more money on that project that what I did all year doing hardware. It is why I believe I have what it takes because I had a customer and they are happy. That was a massive milestone for me.
Then you’re not new anymore.

If you listen to what what the client says, and you’re able to play it back to them to show you understand exactly what they want then you will be fine.

Knowing “what” to do is the hard part, the “how” I.e. programming part, is easy once you know.
You can google that.
 
One of the best developers I know is self-taught. She would absolutely kick my ass and pretty much anyone else I've worked with and has no formal qualifications. Experience is definitely what counts most, except when dealing with HR. Certain companies have a definite bar for degrees and won't consider anyone without them.
 
Studies help forumate the processes and gives good grounding but very little of what you are taught in tertiary is actually used. Tech also moves very very fast so you need to keep learning and adjusting as you go but also keep an eye on the fundamentals.

Been in dev for over 20 years, multiple disciplines and stacks. Its surprising how some basic principles have been lost or not carried forward but looking back, things are so differant is hard to comphrehend.
 
I'm working alongside two self taught. Problem is they got so far with learning until they could cowboy through things and in the last 10 years didn't progress any further. What you have now is software which is littered with circular dependecies, repetition and an attempt to be awesome by creating god classes which are supposed to do everything which leads further down the line to have to create hundreds of other "helper" methods to compliment one god class. Another attempt to be awesome was to create interfaces for many of the classes and simply IEmployee = new Employee everywhere. The list goes on. Also static, static everywhere...

Self taught is fine but at least get some kind of course behind you which teaches the basics of OOP.

These are just poorly designed/developed solutions and developers. Nothing to do with “self taught”

The problem is OOP :X3:
Everything SHOULD be static… (pure functions)


The answer is as always - “it depends”
 
It really depends on what type of job you want to do. Certifications and degrees teach you certain things, many of which are difficult to learn without following a certain process.

There are jobs that really require the knowledge in a degree, and those that don’t. If you want one of the former, it is best to get the qualification.

Beware: “Experience matters more” is often misleading. The quality of the experience matters. Eg. No amount of front end web development is going to teach you to how to write distributed numerical HPC code.
 
Where is our functional programmer ROI these days. His threads were quite the eye opener.

Hey if I could I would go functional. Naturally that way inclined. But the thing is the job market and my skin color determined I needed to go with the "current thing" so OOP it is. During my 2 years job hunting I rarely saw fp jobs but they are out there.

I dont approach "functional programming" as a job type. It's a methodology/approach, like DevOps. It's language agnostic (well the language needs to support higher order functions, which most modern languages do)

99% of my backend work is in an OOP language - C#.
I do not write OOP code IMO.
I use classes because it is extremely convient way to "namespace" things in C#, and allow for auto dependency injection.
state and logic are seperate concerns.
I do not think about code like the real world/as objects.
I think about it as data, how it flows, and transforming it.
I think "domain driven design" is good for business analysis, I dont think it makes for good programs though :X3:


to me "functions" make a lot more sense and are easier to understand:
doSomething(input) -> output

vs

input.doSomething() -> output

but I also dont want to take this to the extreme and make code difficult to read for everyone of every skill level on the team. This is what classes definiately can help with, due to being able to use a constructor to inject dependencies (an input to a functon is not a dependency)
 
It really depends on what type of job you want to do. Certifications and degrees teach you certain things, many of which are difficult to learn without following a certain process.

There are jobs that really require the knowledge in a degree, and those that don’t. If you want one of the former, it is best to get the qualification.

Beware: “Experience matters more” is often misleading. The quality of the experience matters. Eg. No amount of front end web development is going to teach you to how to write distributed numerical HPC code.

Love this.

Working for 10 years at Old Mutual means you have 10 years of experience working at Old Mutual (no offense to the brilliant people who might have worked at one place for a long time - I've been at my current company for 22 years)
 
Last edited:
I still fight with APIs a lot but I am getting the hang of them now. I am actually working on something cool "more on that later" I need to get it to work first.

thank you all for being so awesome :) It feels good, I like this type of work, it is by no means easy but google really is amazing at finding stuff.

I did find a nice resource actually: S50's Introduction to Programming with Python

figured once I did all the work I needed to do this week I will look into it some more. But I would really like to know what you all think about this.
 
I'm working alongside two self taught. Problem is they got so far with learning until they could cowboy through things and in the last 10 years didn't progress any further. What you have now is software which is littered with circular dependecies, repetition and an attempt to be awesome by creating god classes which are supposed to do everything which leads further down the line to have to create hundreds of other "helper" methods to compliment one god class. Another attempt to be awesome was to create interfaces for many of the classes and simply IEmployee = new Employee everywhere. The list goes on. Also static, static everywhere...

Self taught is fine but at least get some kind of course behind you which teaches the basics of OOP.

Some of the self taught devs I know wrote some of the cleanest code I've ever seen. And then I've seen people with degrees write the mess you describe above. I think it depends on what they've learned on the job.
 
100% of the top devs I've encountered are self-taught. The local dev market sucks in general. If you want to make it remotely in the US, usually nothing matters but how you perform in your application.
 
In my view, we're all self-taught. The certification is there to provide prospective clients and employers with the assessment of a 3rd-party, that you know what you're doing. It often includes education because that way you also know what you're being "assessed" on. And often it can act as a cherry on top to fill in some more gaps that you have.

That said, some companies also are strict about wanting certs simply as a way to filter out getting too many applicants. However its a bit short-sighted to me. I've hired some great performing people in my line of work and many did not have a professional starting base or degrees etc.
 
I've been in this game for almost 25 years now. I have a BSc in CS, but generally I've found that qualifications matter little. It sometimes helps to get a foot in the door.

One of the most useless clowns I've ever worked with is now busy with his PhD and is a lecturer at some university, and some of the best devs I've worked with are self taught.

Most are somewhere in the middle, good and bad on both sides.
 
Last edited:
I'm working alongside two self taught. Problem is they got so far with learning until they could cowboy through things and in the last 10 years didn't progress any further. What you have now is software which is littered with circular dependecies, repetition and an attempt to be awesome by creating god classes which are supposed to do everything which leads further down the line to have to create hundreds of other "helper" methods to compliment one god class. Another attempt to be awesome was to create interfaces for many of the classes and simply IEmployee = new Employee everywhere. The list goes on. Also static, static everywhere...

Self taught is fine but at least get some kind of course behind you which teaches the basics of OOP.

I've worked with self taught developers and developers who spent years studying, some even with a Masters behind their name and there is no correlation between how they attained your skills and the quality of work they deliver.

Some people put effort into their work and some don't give a ****.

If you are unlucky to sit between a larger than average group of crappy developers - regardless of their background - then the company you work for's hiring process has flaws (desperate for any resources, lack of senior resources who know how to interview somebody etc.).
 
Last edited:
Some of the self taught devs I know wrote some of the cleanest code I've ever seen. And then I've seen people with degrees write the mess you describe above. I think it depends on what they've learned on the job.

Just being interested and wanting to be better is already 99% of the way there. It's awesome that we all have different ways of approaching code. I am humbled by some of the code I've seen from all of you and I think the only limitation to becoming really great at what we love doing is the time to practice and the freedom to try new things at work. You've all been amazing at teaching me from when I was still on Hello World not too long ago. I can be much better though, definitely a Lot of room for improvement.
 
My experience, if you're just writing line of business apps at your local body shop/corporate, degree vs no degree has very little impact. If you're solving science problems through programming, a degree makes a massive difference. I've never met a self taught programmer who can tell me what an eigenvalue is, never mind write algorithms to compute them, as an example

Before the, "just import a library" opinion shows up, you still need to know, in this example, what an eigenvalue represents and it's use in your problem space. This goes for many other math problems solved in the context of CS.
 
Top
Sign up to the MyBroadband newsletter
X