Learning a Programming Language #1
In March 2022 I decided to learn a programming language. I work as a Business Analyst and my only real coding experience at this point was running basic database queries using SQL. I do not come from a Computer Science background and have no training in any engineering disciplines…adding to this that I had not completed any structured learning for ten years, how hard could it be? (Spoiler alert: very).
And so the hardest part of my journey was at the start, when I had to decide which programming language(s) to learn. Off the top of my head, I could probably name around twenty that I have come across in my career, read about and/or heard people talk about (The usual suspects: C++, C#, Java, Python, COBOL, Ruby etc). I had too much choice, and found the decision daunting. With the onset of Machine Learning, Big Data and such like it seems that everyone is a budding David Lightman, so I had to take action.
Therefore my logical starting point was to carefully consider what I would use programming skills for and be realistic about my aims:
Hold on….so now it looks like I am going to be learning both SQL and one of Java, Python or Scala - why is this and have I foolishly chosen to go into the deep end? The answer is that SQL is used for communicating with databases whereas Java/Python/Scala are used for building applications and data exploration. This means that for data processing and analytics, it is common to use them in conjunction with one another (especially in Databricks, which I will look at in a separate blog).
How to choose between Java, Python and Scala? Two tried and tested methods:
My googling around the subject reveals some useful information (I did not fully comprehend it at the time) - all three languages are object-orientated, which means they are all based on the same concepts (classes, inheritance, polymorphism, methods to name a few). Similarly, it seems that if you learn one of them, dipping into the others is fairly easy to do. (I think/hope)
Recommended by LinkedIn
In addition, both Python and Java appear in the various (and there are many) “most in-demand/most popular” programming languages lists. Scala appears to be more niche. As ever, the amount of debate and opinion on the internet was vast, so I take most of it with a pinch of salt and try to stick to the facts.
When asking experienced programmers for advice, it’s a mixed bag. But the main takeaway for me is that they seem relaxed about the subject. They see each language as a tool to do a job and whilst most specialise in one particular language, they are not married to it and are flexible in using whatever fits best.
When it came to the decision I was really tempted to go for Python. Mention data science and invariably Python is its bedfellow. Also, Python seems to have the simpler syntax and is often cited as a good language for beginners. But I chose Java. Here was my thought process at the time (I had no real idea if it was wight or wrong!!!):
Well done Wellsy. We’ll have to start referring to you as ‘the alphabet’ considering the amount of letters that follow your name!
Good thought process for choosing Java but being able to read and interpret Java code and C++ code is sufficient for BA as you only want to understand business logic and config from them. If you set on your mind to learn a programming language for data query and analytics purpose, Python and KDB are probably more useful besides SQL however it still depends on your day to day work environment to choose the most suitable one for your intended purpose. Good luck!
Well done Rob!