Software Engineering for Self-taught Programmers

Software Engineering principles and methods for self-taught programmers, this article describes why I think self-taught programmers should (must) know about software engineering.

I am a self-taught programmer

I am a self-taught programmer, I did computer science in high school, Pascal was my first programming language I learned and since then, I always knew that I will be a programmer. After high school, I was forced to start working immediately. Fortunately, I got a job at a Web Development company, ever since then, I’ve always taught myself everything I know about programming.

Those who cannot remember the past are condemned to repeat it

In Barry Boehm’s article “A View of 20th and 21st Century Software Engineering.”
He opens up with the following statement, George Santayana’s statement, “Those who cannot remember the past are condemned to repeat it,” is only half true. The past also includes successful histories. If you haven’t been made aware of them, you’re often condemned not to repeat their successes. This statement made me realise the importance of Software Engineering and why I need to learn about Software Engineering. The great thing about being a self-taught programmer is that we know the practical part of Software Engineering, so when going through Software Engineering material all should make sense and be easy to grasp since you’ve already been there, done it (for me it was very easy).

What is Software Engineering

Software Engineering looks at the overall pictures, just like Engineers are tasked to build, Software Engineers are also tasked with building Software. So the Engineering disciplines have been taken from Engineering and applied to Software Engineering. But because Software Engineering has other disciplines, therefore, some principles come from Computer Science which is part of Software Engineering, and Project Management as well.

What Resources to Use to Learn About Software Engineering

  • A View of 20th and 21st Century Software Engineering – Barry Boehm
    • Must read for all.
  • Software Engineering Principles and Practices – Hans Van Vliet
    • Software Engineering book.
  • Agile vs Formal
    • Pros and cons for both waterfall & agile development.
  • They right the write stuff
    • This is a great article on waterfall development done right. I recommend reading this even though you don’t use waterfall methodology.


At the minimum, my suggestion is to read Barry Boehm’s article “A View of 20th and 21st Century Software Engineering.”
. If you can try to enrol for a Software Engineering course or program in your city. But then again the Internet is your best friend, these resources have got other references which you check out.

Other Resources

If your South African the JCSE and Wits offer the CPD in Software Engineering which I’m currently busy doing.

Joburg Centre for Software Engineering