This is the first in a series of “How I Learnt” post. The aim of the series is to chronicle how I learnt a particular skill with the hope of inspiring someone along the same path or even finding a better path. It is said that the best proof that something can be done is that something has been done. So if I can do it, a lot of other people can do it.
So why programming anyway? I believe that value today is in software. See this Wall Street Journal article on why Software is Eating the World. Today nearly all industry from medicine, hotel, taxi services, not stating the obvious are being reimagined by software.
Quoting Peter Thiel’s Startup class at Stanford:
In most prior human societies, people made money by taking it from others. The industrial revolution wrought a paradigm shift in which people make money through trade, not plunder.
In earlier “stagnant” societies; success involved claiming value, not creating it. But today technology has changed all that.
The most valuable companies literally create value from “thin air”. If we look at the value we earn from natural resources; oil, gold, and diamond, have they actually made the host countries rich, have they improved the lives of its citizens? If you look at Nigeria, Ghana, and Sierra Leone; the answer is a resounding NO. Now let us look at this value created form “thin air”, from intellect, from imagination. Today this value is being made tangible mostly through software. And how has the countries that host such values fared? We can look at India, USA, Facebook, and Google.
My choice of countries is deliberate; India you may say is not in the same league as the USA, true. But with the progress made by India, they are much closer to the USA than Nigeria. Ok, then Facebook and Google are not countries, true once again. But their market valuations are multiples of the annual budget of some countries. Besides if Facebook was a country it would be the third largest on the planet – only after China and India. How does Facebook and Google create value? Software. Programming gives rise to software and software gives rise to value.
Another detour, I will be sharing real life stories of myself and would mostly be omitting the names of third parties like friends, relatives, and foes. So my post may read like; “my friend now told my other friend to give the next friend…”. I apologise in advance for the terrible reading experience that would create but I had to choose between that and violating the privacy of people who would not want their names mentioned or their stories relived on a hyper mass media like the web. Then as a Literature student we call that anonymous characters, an example is Ayi Kwei Armah’s classic “The Beautiful Ones Are Not Yet Born” where the main character was THE MAN. Since it has been done before, it is a proof that I can do it.
So back on course. How did I learn programming? Now this is Basic (QBasic) Programming but it was my stepping stone into other programming languages that includes PHP, Python, C, C++, and Java. I did look at Ruby recently, especially Ruby on Rails, but I haven’t taken time out to wrap my head around it. I did say this article was meant to spur you into learning programming but you would most likely be wasting your time learning Basic in 2015. If you want to start off with programming today, you will be much better off with Python, and it sure doesn’t bite.
Ok no more detours, I hope. So it was 1996/97, just left Secondary School but yet to get into the University and yet to see a real life computer, a couple of events came together.
The first, I started visiting a family friend whose son was still in secondary school but offered computer studies in his school; Igbinedion Comprehensive College, and writes Basic. He had a computer in the house and you could type codes, run it and this wheel rolls across the screen, that was amazing and I was impressed. Besides programming, we used his computer for playing games also, I was particularly in love with “Where in the World Is Carmen Sandiego?” and PacMan. Programming and games for me was like drugs and alcohol (hey, in a good way), I was hooked. So I had reasons to make frequent visits to the house to learn QBasic.
By then most available computers ran DOS, you turn on the system and a black screen stares at you with a blinking prompt waiting for your input. You enter DIR to check the content of your current directory, type CD GAMES to enter the games directory, PACMAN.EXE to run your favourite game; the glory days of the command prompt. Everything you did was commands; copy a file to your floppy, move files into directories, delete files, create folders. This gave you a deep understanding of computers, I could recognise files by their extensions; a concept I sometimes struggle to teach students in my classes. An AutoCAD file ends with .dwg, a Word document .docx, and Java file .java, and you see some students looking like you are talking in a strange language. Thanks a lot Graphical User Interface (GUI) for make us less smart.
At about the same time, two of my friends were also learning computer programming, yes QBasic. One of them at the University of Benin (UNIBEN) studying Diploma in Data Processing (DDP), the other at a computer training shop. So I get their materials, read their work, run the code, and write my own. Now the UNIBEN case was a bit funny then because I actually sat in for lectures with my friend and use their computer lab as students would do, learning programming and typing love letters.
Some system at the UNIBEN Computer Annex had Windows but boots into DOS and to launch the GUI you type CD WINDOWS, and this beautiful screen comes up and you use your mouse to fire up the Word Processor software, WordPerfect, and type the lyrics of My Heart Will Go On for your latest crush. Then I would spend all night at the computer lab typing codes I had written on paper during the day, run it, find errors (some syntax some typos) and correct them. It was a really interesting experience.
I don’t think you can still go into UNIBEN or any University for that matter and sit in for a class you haven’t paid for, wasn’t even a student then. But you really don’t have to, computers are quite ubiquitous these days and programming materials are freely and legally available online. You can start with A Byte of Python, it provides a great introduction to programming. And you will be on your way to creating the next software that would change the world.