You are here
Developing Programmers
Being a huge fan of rolling out codes and now getting obsessed with teaching others to become programmers, it is not surprising that my first blog post on the Conzultrix website is about programming.
I first had a bit of programming in 1996 when a friend took a course in data processing and I got to see his materials on QBasic. What an impression it made on me then. For the past decade I have walked through a number of programming languages l: Fortran in my second year of University; then Visual Basic while I was on internship in my forth year; C++ and Java after I graduated. Just to mention a few.
In all these years, I have taken up the subject of computer programming as a self study since I was actually studying Mechanical Engineering in university but programming was my number one hobby.
I saw early enough that computer programming and software development was key to the development of any society, from applications that powers government services to banking and education. As Craig Mundie of Microsoft said, “Software is a malleable technology ...... and solve any problem you apply it to” he went on to say, “It is the only scalable solution to solve the challenges of any society”. By challenges in the society, he meant healthcare, education and other social challenges facing any government.
I love using India as a reference; I don’t even have to say much to stress the importance of software developers to our economy. India’s greatest export is the brains of its people by way of software development. No, they don’ t have oil all they possess are a bunch of hard working Indian youths who attended the Indian Institute of Technology (IIT) and today are developing applications that power about any industry the world.
Nigerian banks run on software that were developed by Indians, among them, Finacle, developed by Infosys. Infosys is a leading Technology firm.
Every day I ask myself, “what does it take to make Nigeria, a country of over 150 million, become the leading IT exporter in the world?” Luckily, IT is not a naturally resources that is restricted to some countries, it is not geographically dependent, all it takes in the infrastructure and commitment.
Infrastructure, do we have that? Where do we expect our youths to gain these skills? Obviously in schools, but our institutions of higher learning have not been the best when it comes to developing our IT capacity. I have met graduates of computer science who cannot insert an optical disk into the computer. That really doesn’t mean that this is the case with everyone who passed through the Nigerian university system. I have seen some great folks also who really pull off impressive codes, however, they are in the minority.
On a very serious note, the University Curriculum has to be overhauled to reflect the needs of today’s society if we must be relevant to the scheme of things.
Well, besides the Universities and Colleges, there need to be alternatives where these much needed skills can be developed. Ok, a number of computer training institutions provide IT and other trainings. And did anybody say you can’t learn on your own?
At Conzultrix, we run programming courses amongst other. Now I have a huge interest in our computer programming courses and I follow closely how the students are doing. We developed an introductory course called “Introduction to Programming” which tries not to focus on a particular language but rather on the methodologies of programming giving students the basic programming knowledge they would need to move on when they want to study any particular language. However, we use the Python programming language as a base and that’s where the challenge begins.
Python! What is that? When people come for a programming course, they expect to hear Java, C++, C# (pronounced C sharp) and the host of others but not python. So they don’t want to take the introductory course. We have a Java class running at the moment where students struggle with all sorts of thing like using the command line, locating files on the hard disk (what does that mean?) and other none java issues. Then the programming issues are there, how to just think like a programmer.
Why did we design this introduction course? It is to get students familiar with the “art of programming” and from there move on to learn specific languages.
Why do we use Python? Hmm, ask Google. We tell our students that the most difficult programming language is the first language you learn, because at this point you are struggling with learning the specific language and also learning how to programme. So the introduction to programming class takes care of the how to programme. Did that answer the why we use Python question? Ok Python is an easy programming language but at the same time very powerful. Because it is easy to learn, it becomes easy to learn how to programming with an easy language where you don’t struggle too much with the language specifics. Hope that answers it?
Python is so important to programming that it is a major prerequisite to working in Google. Bruce Eckel (Author of Thinking in Java, Thinking in C++ and other great programming books) says Python makes him 10 times more productive when writing codes. If I have this problem I need to solve, my first choice of language is Python.
Wrapping things up, we must develop smart programmers if we are to develop smart application and building smart programmers is one of the challenges that Conzultrix is undertaking at this moment and we actually recommend school teach the Python programming language as part of their programming curriculum. If NASA does, who shouldn't?