Skip to main content

The Goal

· 5 min read
Deon Slabbert

Welcome to Becoming a Programmer!

The goal of this website is fourfold:

  • To answer the question, "How do I become a programmer?"
  • by helping you transition from Zero to Software Developer
  • and eventually become a Fullstack Software Developer specifically
  • with the focus on Line-of-Business systems.

How do I Become a Programmer?

This is a loaded question! Unfortunately, an online search may give you the following suggestion:

  • Pick a programming language
  • and do some courses covering that language.
  • Write some small apps
  • and finally, apply for a programming job.

While this is not necessarily wrong advice, it is so full of gaps that it is practically useless.

The above suggestion raises a number of questions. For example:

  • What programming language should I pick?
  • Why that particular language?
  • What courses should I take?
  • Why those courses?
  • What type of apps should I write?
  • Why those types of apps?
  • When am I ready to apply for a job?

When starting out, you unfortunately don’t have the knowledge to answer any of these questions. Hench this website where you will find proper answers to these questions.

From Zero to Software Developer

We will start out assuming that you know nothing about programming. So we will take things one step at a time. The first transition will be from Zero to Coder, then from Coder to Programmer, then from Programmer to Software Developer. It is sort of obvious from this statement that a Software Developer knows more than a Programmer, who in return knows more than a Coder, who in return knows more than Abraham Lincoln about programming.

Now these transitions are really just a matter of scope rather than depth. There are such a lot of skill sets that you need to develop that we can simply not go into them too deep. Also, it is counter-productive to go too deep into the topics we’re going to focus on. You don’t need to know everything from Microsoft Word to write a resignation letter. You probably need to know only the very basics.

There was a lady working for one of my clients who used Microsoft Word for years without knowing how to save the documents. She simply printed them out and filed them in a paper folder. Sometimes we can get quite far with limited knowledge.

However, the important reason we are not going into things too deep is threefold:

  • As you are going to learn a lot of new things, I want to prevent information overload
  • YAGNI - You ain’t gonna need it!
  • Learning unnecessary things will just slow us down

So, instead of becoming a master in one particular skill, you will rather develop a broad set of skills, knowing just enough per skill for that particular point in time. We will revisit each skill and expand on it when needed.

Fullstack Software Developer

I guess a disclaimer is in order here. I am a Fullstack Software Developer, and my forte is developing Line-of-Business applications. This is what I can help you become. Fullstack just means that I am capable of building the whole application, from the User Interface (aka the Frontend) all the way to the Business Logic and Database (aka the Backend).

I cannot teach you how to build computer games or operating systems or compilers, for example. Also, my native mobile app and Internet of Things (IoT) skills are limited as that’s not where my focus is.

Line-of-Business Applications

Line-of-Business Systems are applications that support the operations of businesses by recoding daily routine transactions, such as sales, for example. You will find these in most businesses. Examples are Point of Sale applications, Banking applications, Insurance applications, e-commerce applications, HR systems, ERP systems, etc…​

Please note the interchangeable use of the term Application and System. Let’s briefly look at these applications/systems in a more academic way.

Information Systems

Line-of-Business systems fall under a category called Information Systems. Let’s briefly look at them by grouping them in two categories, Online Transaction Processing (OLTP) and Online Analytical Processing (OLAP) systems:

Online Transaction Processing (OLTP)

These systems are transaction oriented and are used to record the daily transactions of a business. These transactions can be financial or non-financial of nature. These Transaction Processing Systems are very detail oriented and are the entry point of a business’s data. They usually consist of various data capture screens. Although they capture all the business data, they are typically non-analytical in nature. Thus, reports generated by these systems tend to be detailed as they are generated with transaction-level data. These applications also regularly interact with third-party applications such as sending text messages, email, or communicating with banking systems to name a few.

Online Analytical Processing (OLAP)

These applications take the data generated by the Transaction Processing Systems (TPS) mentioned above and are used for decision-making. These are called Management Information Systems (MIS). Management Information Systems are in turn broken into more types such as Decision Support Systems (DSS) and Executive Support Systems (ESS).

Please feel free to read more about these online as we will focus on Transaction Processing Systems (TPS).

Conclusion

The above information should give you an idea of where the focus of this website will be. You will encounter Line-of-Business systems at every business you deal with, so I believe it to be a good skill set to have when becoming a programmer.

Unfortunately, seeing that we’re just starting out, we’re facing a number of major problems. We will discuss these in the next post.