Learning a Programming Language #1

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:


  1. I am not setting out to become a software engineer.  Rather, I know that programming will be around 20% of my job (maximum).  Therefore I want to learn solid fundamentals that I can build upon through time, with the main emphasis on data processing and data analytics
  2. I need to improve my SQL.  As mentioned previously, I can use basic queries but as I find myself using it more and more, I want to become more proficient
  3. I would like to also cover some of the core principles of computer science (how memory works, processing, I/O), partly out of general curiosity and partly because I think it will help with applying the programming concepts.
  4. The language must be compatible with Databricks (as this is the main software that I use for data processing and analytics).  So this narrows it down to Java, Python or Scala


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:


  1. Some solid googling around the subject (e.g. Java vs Python vs Scala, best programming language to learn for beginners, is programming hard to learn
  2. Asking experienced programmers how they started out and any advice


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)


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!!!):


  • Because Java is statically typed (and Python is not), writing the code is more verbose (i.e. takes longer) but gives you a better understanding of what is going on when you run the code (which sounds useful).  The learning curve is steeper, but you learn more;


  • Java seems to be the middle ground between Scala and Python (in terms of complexity and learning curve);


  • Transitioning from Java to Scala or Python seems to be a well trodden path.  In fact, I learn that it is possible to write Java code in conjunction with Scala code (because both Java and Scala run on something called JVM - which I had no understanding of at the time);


  • I needed to stop reading about programming languages and start coding, so I installed NetBeans, found a Java for beginners website and started typing - the results will be covered in my next blog!


Well done Wellsy. We’ll have to start referring to you as ‘the alphabet’ considering the amount of letters that follow your name!

Like
Reply

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!

Like
Reply

To view or add a comment, sign in

More articles by Rob Wells, CFA

  • Learning a Programming Language #2

    After choosing to learn Java, I decide to attack it from two angles (this is back in March 2022): A hands-on approach…

    3 Comments

Others also viewed

Explore content categories