Understanding Programming Through Language Analogies
Written on
Chapter 1: The Language of Programming
When trying to convey the experience of learning a programming language, I find that using analogies to foreign languages simplifies the concept without delving into technical jargon.
Section 1.1: JavaScript - The Ubiquitous Language
Learning JavaScript can be compared to mastering English; it is omnipresent, utilized in everything from web browsers to server-side applications through Node.js. The popularity of JavaScript has surged, especially since major companies like PayPal transitioned from Java to Node.js. Douglas Crockford, the creator of JSON, highlighted that JavaScript is not merely a subservient sibling to Java but rather a distinct evolution of Lisp, cleverly marketed to appear as Java.
The video "5 Reasons to Learn How to Code for Non Technical People" discusses the essential motivations for anyone, regardless of technical background, to dive into programming.
Section 1.2: Java - The Complex Language
Learning Java resembles picking up German; it’s more challenging but remains a mainstay in large enterprises like banking and insurance. This prevalence is largely due to educational institutions that predominantly teach Java. Although it faced criticism for stagnation, recent innovations, such as GraalVM, have rejuvenated its reputation. However, mastering Java alone offers limited web capabilities, as numerous frameworks complicate the process. Unlike JavaScript, which is more accessible to beginners, Java typically requires a more technical mindset.
Subsection 1.2.1: Python - The Accessible Language
Python can be likened to learning American English; it is straightforward and increasingly incorporated into high school curricula. While web development may necessitate a framework, Python is also favored in data science and machine learning. Its rising popularity is bolstered by its use at Google, and frameworks like Django are becoming formidable competitors to PHP.
Section 1.3: C# - The Game Development Choice
Learning C# is akin to learning Spanish; it has its appeal, particularly in game development via Unity. The availability of Visual Studio, including a free version, enhances its accessibility for many projects. With Xamarin, developers can create mobile applications for both iOS and Android using a significant amount of shared code. However, C# is less prevalent globally compared to Java, with notable use in trading in England.
Chapter 2: The Niche Languages
Learning Ruby or Swift can be compared to picking up Italian. Swift, developed by Apple, is not limited to mobile applications; it also supports server-side development. Ruby on Rails gained popularity among startups due to boot camps, making Ruby a valuable skill. However, for larger enterprises, these languages may offer limited utility, though they can be advantageous for startup founders.
The video "Programming for Non-Programmers | Free Livestream" provides insights into how individuals with no programming background can start coding and understand its relevance.
Conclusion: Beyond Language Learning
Acquiring a programming language is comparable to kicking a soccer ball; it does not automatically make you a professional. To excel, you must also cultivate skills such as communication, empathy, organization, and testing. Unfortunately, these skills are often not taught in school; instead, they are honed through real-world experiences in the digital landscape.
For more insights, visit plainenglish.io. Subscribe to our weekly newsletter for exclusive writing opportunities and community advice on Discord.