Hey good day, wonderful readers! ๐๐
As you guys know(or may not know), I am Debajyati Dey, currently a CS Engineering sophomore at MAKAUT WB. I have started learning programming only 1.5+ years ago ( 2 or 3 months before my University Undergraduate program started ). So you understand that I am not someone very pro at programming.
I started with python, then C, basic java 8 and now OCaml & javaScript. At the very beginning, everything was new and otherworldly to me. But the more I progressed, the more I tried to learn different programming languages, I started to figure out what steps are common in case of learning each of all the different languages.
So, here I present the 5 key aspects of learning any programming language (according to my own realizations, your opinions may vary) -
5 Pillars of Learning a Language
1. Syntax - How to Write Language Constructs?
Imagine learning a new spoken language like 'Bengali'. Before you can buy 'Roshogolla's from a sweet shop, you need to be pro in conversation. And, in order to be great in conversation, you need to understand the basic grammar and vocabulary. Similarly, programming languages have their own grammar & vocabulary, which is called syntax. It defines how you write the procedures.
I believe the very first aspect with which a person needs to be familiar, to be a programmer of any language, is the syntax. This aspect involves everything from basic keywords and operators to complex control structures and function definitions.
2. Semantics - Making Sense of the Code
While syntax decides how to write a program, it doesn't tell what it does.
I mean, just after learning the syntax you can write the basic code but what does it actually do?
This is where semantics come in. It's about understanding how the language interprets your code and translates it into actions. Think Semantics as the Essence of Code.
This aspect involves concepts such as how expressions are evaluated (defining the order of operations), how data types behave, and how variables and functions interact.
To grasp semantics, you must study the language's documentation, reference guides, beyond just your primary source of learning.
3. Techniques - Typical Patterns or Tricks of Problem Solving
Just like spoken languages have their own unique phrases & idioms, programming languages have their own different patterns, precisely say algorithms โ really cool ๐ฎ techniques and approaches to solve problems.
Learning these special techniques needs practice!
Practice! Practice!! Practice!!!
Idiomatic techniques will help you make your code more efficient & maintainable. ๐
Imagine using the right algorithm to solve a problem in just a few lines instead of a clunky block of inefficient code!
I highly encourage beginners to learn from experienced programmers and online communities to discover the way to code that makes a codebase maintainable and how to properly utilize data structures in a program.
4. Libraries: Leveraging Pre-built Functionality ๐
Imagine building a house from scratch versus having pre-made tools and materials! Programming languages come equipped with built-in libraries and frameworks that provide essential functionalities for common tasks such as file access, data manipulation, networking, and more. Even additionally, third-party libraries and open-source projects extend the capabilities of a language by offering specialized tools (such as web frameworks) and utilities.
By learning about the libraries available for the language we're studying, we can save time and effort by utilizing existing solutions instead of writing everything from scratch. This will accelerate our development process and help us create more maintainable applications. ๐๐๐
5. Contributing to Open Source ๐๐
Last key aspect of learning any language must be heading on to practical applications. The best way we can familiarize ourselves to why we learn the concepts that exist and can develop intuition of how one or more programming languages together can make a project great, - is by contributing to open source.
Trying to understand Codebases, making valuable PRs, making group projects can do the progress in learning that is not possible through other means.
Moreover with clear communication & collaboration with other developers out there we can gain helpful insights that are just incomparable.
Open Source is the ideal playground for learning programming and growing in tech!
Bonus Tip: Don't be afraid to ask for help! The programming community is incredibly supportive, and there are countless online forums, communities, and mentors ready to guide you on your journey.
Conclusion
Learning a programming language is a never-ending journey. It requires understanding various aspects to gain at least a threshold level of proficiency.
By focusing on syntax, semantics, techniques, libraries, and open source contributions, you'll be well-equipped to tackle any programming challenge.
As you will delve deeper into these aspects, you'll not only improve your coding skills but also enjoy the process of finding innovative solutions.
If you felt this read enjoyable, please give a like & share this blog with your friends. :)
Feel free to connect with me on twitter
Have a great day ahead & most importantly happy coding!
Top comments (12)
The trick to learning a new language is just to jump in and start writing code. Look up code examples, use ChatGPT or whatever else to show you, and get your hands dirty doing something real. Better than spending years developing 'skills' with no real experience actually fighting. Ok; this attitude comes from martial arts. It is all well knowing the technique, but it means nothing if you don't have real one on one fighting a fully resisting opponent. Similarly real world development isn't about theory.
The same applies to learning real-world languages (like French or Spanish or whatever else).
You have to immerse yourself in it. No, Duolingo won't cut it, like how bootcamps won't do the best job.
Also the language today is just a small part. To write an app today there are usually multiple technologies to learn. Frankly life for developers has got harder, not easier.
For me the 5 Key Aspects of Learning a Programming Language are:
Haha! Programming is nothing without solid practice!
Ok, this was a fun piece... But it is different to learn a concept or paradigm theoretically, or to get stuck somewhere and learn, how a new approach can help you. So, before you learn a solution, you schould know the problem it solves.
Interactive Coding Challenges:
Imagine learning a game by playing it, that's what coding challenges feel like. Instead of just reading about the language, engage in interactive platforms like HackerRank, LeetCode, or Codecademy. It's like leveling up in a game; you apply what you've learned in a fun and practical way. Plus, it adds a gaming thrill to your learning journey! ๐ฎ๐ป
Absolutely! Coding challenges add an exciting experience as a great way to apply what is learnt. This is how anyone should practice writing code while learning.
Imo, the best way to learn a language is by opening chrome, search for "X language documentation" and open a code editor and writing some code.
Great article, Debojyoti.
Yup! Totally agree. Glad you liked the article.
Awesome share!!
Glad you found it valuable! ๐๐๐