How to Become Fluent in Multiple Programming Languages
By: Madison Hunter
Tags: Technology, Education, Data Science, Programming, Coding

Learn the statically-typed and syntactically-specific languages first.

Nearly every article titled “Which Programming Language Should I Learn First?” suggests that Python is the perfect first language for someone to learn. While I agree that Python is a good first language due to its simple syntax and flexibility, I believe that several programming fundamentals won’t be learned that will be necessary later on.

Therefore, I would offer some counter-intuitive advice: learn the statically-typed and syntactically-specific languages first.

Instead of learning the language that will hold your hand and will offer you a comfortable path to wade into the world of programming, learn the language that will yell at you if you forget a semi-colon or will refuse to work because your data types are wrong.

Statically-typed languages.

Statically-typed languages (such as C# and Java) require a data type to be assigned to their variables. Data types include strings, integers, and Booleans, to name a few. Variables are bound to the data types they are assigned when they are initialized and can’t be changed, otherwise, errors will be thrown in the code before they run.

Dynamically-typed languages on the other hand (such as Python) don’t require data types to be assigned at the initialization of the variable. The variable type will be checked to see if the types are correct at runtime (after the program has been compiled and run).

By learning how to work with statically-typed variables, you get a foundational understanding of data types that you can build upon in the future. For example, JavaScript is a happy little programming language that has no problems adding together integers and strings. However, not being aware of datatypes can cause problems later on when bugs arise. By being strict with your learning and gaining a firm understanding of data types, you can save yourself a lot of headaches further on down the road when learning a dynamically-typed language with variables that can change datatypes on the fly. Additionally, learning a statically-typed language first will add a layer to your coding process logic.

Syntactically-specific languages.

When learning a new natural language, you first learn your alphabet, and then you go on to learning the words, the sentence structure, the punctuation, and the grammar of that language.

Learning a programming language is similar, in that each language has a specific syntax you must use for the code to work. In other words, each programming language has a way in which it likes its sentences to be structured and its paragraphs to be formed.

Some languages, (such as Java and C#) are very specific about their syntax and will refuse to work if you forget a single semi-colon (semi-colons are often put at the end of a line of code, similar to how a period is placed at the end of a sentence to signify its end). Other languages, such as Python, have relatively no syntax structure that must be followed. For instance, Python has relatively no semi-colons, and very few curly braces to organize its code compared to C#.

Learning a syntactically-specific programming language first will give you a firm understanding of the proper structure you need to follow when writing code. By becoming aware of the proper indentation structure, the necessity to end your line of code with a semi-colon, and the requirement for your functions to be written within the confines of curly braces, you will be able to write code that is easily-understandable, more organized, and easier to maintain and debug. Furthermore, this will help give you a template with which to write your code when you begin venturing into new languages that aren’t as strict with syntax.

In essence, learn the discipline now, and reap the rewards later.