You Should Learn Programming

As an economist by training, I did a lot of mathematics and  statistics modules during my university days. I only had a one-module  experience in programming and that was with Java, which in my opinion  was one of the most difficult languages to pick up (hats off to Java  Programmers), especially for someone with limited computer science  knowledge at that time (or even now).

Being a data professional these days, it is essential to know programming, which is the reason I picked up two of the most popular  programming languages for data science –  R and Python.

I thought of sharing my learning journey in programming to help people, especially the non-computer science folks, understand more about  programming and, hopefully, take the first steps in coding.

As mentioned, my first programming language was Java and I was really  bad at it because I could not grasp the mechanism behind the ‘public’  and ‘private’ thing even after many explanations from my friends. What  was most frustrating was, back in those days, coding was done on a  notepad so I was not able to detect any syntax errors that would have  shown up early on with the colour coding.

Moreover, the error messages were so cryptic, I had no idea how to go about correcting the error. There were no Google and Stack Overflow around to help poor souls like me. I had to constantly reference very  thick physical textbooks and narrow my solution space so that I could  pinpoint the actual error. It was very painful and got to be even more  so after I received my grade for the Java programming module. It was a  terrible experience and I have the grades to show for it.

I graduated during a very bad economic downturn. The reality then was  very brutal to fresh graduates as there were many experienced  professionals around and companies were more willing to give them  opportunities than fresh grads like me. It was only after a very long  period of time that I was finally hired into a research centre. At the research centre, they used a software called SAS,  a statistical analysis tool that started in the US during the late  1970s. To use the software, I had to re-visit programming again.  Fortunately, when I looked at the syntax and how it worked behind the  scene, I was able to grasp it quickly. With my data concepts and  background backing me, I knew what I wanted to do with SAS. Google was  available then to help with code and syntax details, although the search  results were not as good as today. Long story short, I experienced new  confidence in programming and proficiency in SAS programming made me  more effective in my analysis and modeling work.

Knowledge of SAS programming helped me get into the banks because  proficiency in it was very rare at that time. While I was in the banks, I  came across R. Just in case you are wondering, the banks were not using  R. Rather, I got to know R through my professional network.

R is an open-source software mostly for statistics and data science. A  friend of mine told me I should learn R programming to broaden my skills  set and have more to offer to prospective employers. With a renewed  confidence in programming, I decided to pick up R. There were a lot of  online tutorials on R then and I proceeded to research and learn it.  Again, the strong concepts in data analytics helped me pick up R  quickly. I noticed that the syntax for R programming actually looked  very much like Excel functions, with the exception of the Tidyverse packages. With this realisation, I was able to learn R even faster.  After R and a successful round of learning another programming language,  I went on to pick up Python,  a popular general purpose language, paying special attention to the  data science portion. That meant focusing on packages like pandas, NumPy, scikit-learn etc.

Nowadays, there is an abundance of online material available for  anyone to start learning a programming language. The first challenge is  no longer about picking up the language basics but to have an actual  environment installed on your computer for practise.

I encourage all my training participants and you, the reader, to pick up programming, to have some programming experience at least. Because with Industry 4.0,  most jobs will be associated with data and in order to have better and smarter automation, we cannot run away from interacting with computers. Programming gives us that ability to interact. You can learn programming  from online sources or perhaps even use social media to gather a group  of like-minded folks to come and learn together. With Google and Stack Overflow, even if the error messages are pretty cryptic (by the way,  they still are!), debugging the error is much easier compared to the days when I was learning Java.

What about coding bootcamps? My advice is to attend a coding bootcamp  if you want to maintain a structure in your learning, but do check out  the trainer’s background beforehand. Make sure that the trainer has enough experience to share industry best-practices and the common pitfalls in that particular programming language.

Resources

Here are a few recommended resources to kick things up.

R Programming

You can install R at Cran R and also install a popular IDE (Integrated Development Environment) for R, call R Studio. A beginner tutorial which I would recommend is the one written by Hadley Wickham, “R for Data Science“.

Python Programming

You can download Anaconda (for a local version) or register an account with Microsoft Azure Notebooks and join the AI for Industry programme run by AI Singapore (it uses courses from DataCamp, led by mentors from  AI Singapore). Else, if you want to learn at your own pace, I recommend  the online tutorial by Jake Vanderplas, “Python for Data Science

All in all, I strongly encourage everyone to at least try their hands  on programming, especially for folks who want to become a data professional, because there are very, very limited ways you can avoid programming in such a job role. Moreover, going forward it will add a lot of career credibility if you understand how programming works and how tough it really is. Have fun learning programming!

(Note: This was originally published at AI Singapore|Makerspace. For other relevant technical blogs on AI and DS, please visit them here.)

Consider subscribing to my newsletter to get updated on what I am doing or learning else stay in touch on LinkedIn or Twitter.