Naija Coding Series: Episode 1

Smart Agwu
8 min readJul 9, 2019

A starter guide in software development for any novice

Lemme Introduce Myself

Hi, I’m Smart, That Naija Tech Guy and I would love to help you understand Coding, Software development or Programming as you’d fondly call it.

This coding series is specifically targeted to anyone without prior knowledge of Coding (novice) or anyone who just wants to understand what the heck this programming matter “dey about sef” (is all about).

In the process of this course, I will try as much as “body fit carry” (possible) to make you understand how coding works, in the most simplest form possible and using relatable examples to explain. So don’t even think of getting scared.

If you fit the description above, then I think this course is for you. Make sure you have a pen and jotter with you so you can always ”jof fins down”, it helps trust me. And do not forget to subscribe to keep getting other episodes of this course, so you won’t learn half way through. Alright here we go…

Coding, Programming, Software Development — What is that?

Coding, programming or software development is basically a process of writing texts(characters, phrases, words, numbers) that your computer can understand with an aim of solving a problem with it.

Actually your computer can not understand English, French or Spanish, it only understands specific sets of characters and texts (jagajaga, as fondly called in Nigeria) put together which are guided by rules. These characters (jagajaga) guided by rules are usually called Syntax. Another big english… Don’t worry, we’ll talk about syntax pretty soon.

I know you might be familiar with that bulk of unrecognizable characters (plenty jagajaga) you see in pictures and movies, that do not usually concern you. 😏

A JavaScript Syntax (Jagajaga)

Well, it’s what makes your computer work so wouldn’t you want to know how it does that?

The Computer Programming Language

I’m sure you must have heard of "programming language" before, well it’s no big deal.
The programming language is just a syntax (explained earlier) your computer can understand that produces various kinds of outputs or results.

Example: Your calculator can understand 3*2-5 = 1(result), but does not understand a+b*2+cz (Although that’s not a programming language).

Remember I told you these set of characters and texts (syntax) is normally guided by some set of rules, well there are so many type of rules and instructions that now leads to so many type of syntax. These types of syntax now leads to different types of programming languages like Java, Python, C#, Fortran etc. Just the same way different kinds of alphabets and rules create different kinds of language like English, Ibibio, Ibo, French or Swahili.

Types of Programming Languages

You can skip this part as it is a bit technical; for those that just want to learn, but not interested in diving deeper.

Some Examples of Programming Languages

Machine and Assembly Languages

A machine language consists of the numeric codes for the operations that a particular computer can execute directly. The codes are strings of 0s and 1s, or binary digits (“bits”), which are frequently converted both from and to hexadecimal (base 16) for human viewing and modification.

Algorithmic Languages

Algorithmic languages are designed to express mathematical or symbolic computations. They can express algebraic operations in notation similar to mathematics and allow the use of subprograms that package commonly used operations for reuse. Examples includes FORTRAN (Formula Translation), ALGOL (Algorithmic language), LISP (List processing), C programming language

Business-Oriented Programming Languages

Examples includes COBOL (common business oriented language) and SQL (structured query language).

Education-Oriented Languages

Examples includes BASIC (beginner’s all-purpose symbolic instruction code), PASCAL, LOGO and Hypertalk.

Object-Oriented Languages

Object-oriented languages help to manage complexity in large programs. Objects package data and the operations on them so that only the operations are publicly accessible and internal details of the data structures are hidden. Examples includes C++, Java, Visual Basic etc.

Scripting Languages

Scripting languages are sometimes called little languages. They are intended to solve relatively small programming problems that do not require the overhead of data declarations and other features needed to make large programs manageable. Examples includes PERL (practical extraction and report language), PHP, Javascript, Python etc.

World Wide Web Display Languages

This includes HTML, XML among others.

Okay, enough about all those boring stuffs about programming languages, lets talk about something a lot more fun.

The Algorithm

Remember I told you programming was about solving problems right, yeah I meant that. Somehow, somewhere, sometime you probably have heard of the word algorithm. I’m sure that hit the lights up in your head for a sec when you did. But really it is just a term that describes a process to be followed in solving a problem.

Your Whatsapp application gets expired, now here’s what a typical average Nigerian like me would do (if you know you know).

  1. Delete the application from your phone.
  2. Wait for as long as it’ll take until I find a friend that has a recent version of the app.
  3. Download Xender file sharing app.
  4. Transfer new Whatsapp application from friend’s phone to mine.
  5. Install the new application, and get on with life.

Viola! That right there is my 5 steps algorithm to updating my Whatsapp application. And the same thing applies to computer programming or coding. How can I get two people to chat together in real time? How can I make robots understand maths? How can my phone extract data from a picture when I take one? How can I sleep on Mondays without having to go to work or school?

Whatever solution to any problem you face on earth requires algorithms to get results. In between that start and finish there’s always an algorithm.

This is what an algorithm looks like

How do you solve this maths problem: 2*8/4–3? Let me guess, a simple BODMAS mathematical rule should suffice yeah? So lets go.

  1. let 8/4 = 2
  2. then 2*2 = 4
  3. then 4–3 = 1
  4. finish

Your simple 4 steps algorithm. Don’t worry, this will come in handy when we deep dive into writing codes, okay.

The Object Oriented programming Language (OOPL)

Remember I said we have a lot of different programming languages built from different syntax with special sets of rules. Well for the purpose of this series we’d be talking more on the OOPL.

The OOPL is a type of programming language (software design) in which developers have to define both the data types and functions (types of operations) of a data structure. In this way, the data structure becomes an object that includes both data and functions.

Take a look at this illustration — The cat. The cat sleeps, feeds and plays.

  1. Sleeps (object) — [gets hungry (data, function), gets energy (data, function)]
  2. Feeds (object) — [gets moody (data, function), looses energy (data, function), meow(data, function)]
  3. Plays (object) — [gets hungry (data, function), gets moody (data, function), meow(data, function)]

These makes up a data structure for the cat logic. That is how the OOPL works. You probably might have heard about Java or C++. These programming languages are OOPLs.

Up next, I will be explaining the four principles of the the Object Oriented Programming Language

The 4 Principles Of The OOPL

There’s a lot of programming languages out there, but do you think developers just choose a language to build a project with at random? Nah, they don’t. They actually put a lot of factors into consideration which includes the type of project, how to implement it and how efficient and easy the programming language to use can be. That brings me to explaining the characteristics of the OOPL and why you’d choose Java or C++ over others in this case.

Encapsulation (Data Hiding)

Trust me this is one very cool stuff about OOPLs. Java for example tries to help you organize your code base (project) by making you write and create different codes and data in isolation (so many chunks of data and codes called Classes). This can make your codes reusable, and private from each other in the code base. That helps you hide certain data from your users and within the code.

Here’s an illustration. What if you own a house and you have to go through the masters bedroom to exit the building, like WTF. So your architect designs the plan so that visitors don’t even have to see some rooms in the house. That is encapsulation, forget the English.

Data Abstraction

This is another cool stuff about OOPL. Abstraction means hiding unessential information from users and providing only essential information. Imagine your phone never came with a case, just a bunch of hardware coupled together and handed to you. Things get messy, iPhone wouldn’t even sell.

Your mobile device can do really crazy cool stuffs right? And what’s really awesome is that it’s really easy to use. But do you know that your mobile device is a really complex computer with a ton of hardware components that are hidden from you? This helps create security and improves your experience. That is why abstraction is as important.

Inheritance

You’ve got a son, and your son looks exactly like you. I mean why would you get arrested when you could report that your son did it right? Just kidding... But that’s inheritance. I don’t have to create same bunch of codes so many times in different places. I just create one and use it anywhere in the project. Tell me that isn’t cool...

Polymorphism

The ability of an object to take on so many forms. Polymorphism means one name and many forms, and it works on parent and child relationship. Like a task is performed in different ways. For example, there are some many ways to convince a customer to buy a product. There are so many ways to solve a problem in OOPLs.

And we have come to the end of this week’s episode. Have a lovely day guys. Please do not forget to clap and subscribe. I hope you had a lovely time with me. Watch out for Episode 2.

--

--