How do you Learn Any Programming Language Within 5 Working Days?

Chamara Madushanka Dodandeniya
Aeturnum
Published in
5 min readJun 4, 2024

“If you know the core concepts of one programming language very well, then you can easily learn any programming language. The only difference is the keyword tokens, syntax, and semantics of the new programming language you wish to learn.”

Background and Motivation

It was challenging for me to learn Visual Basic 6.0 in 2007 when I was at school. As I remember, we wrote a lot of pseudocode before learning the actual programming language. Unlike today, all the programming language packages had to be installed using compact disks (CDs), and Visual Basic 6.0 also came as a CD package with 5 CDs. During school, we learned VB 6 from our teachers, and for further reading, we referred to a VB 6 textbook containing more than 2000 pages full of English content. Luckily, we had 2 books in the school library, but unfortunately, they didn’t allow us to borrow them. In other words, today we have a lot of resources to learn anything we want. But in the early days, textbooks were the key resources.

A couple of days ago, my sister asked me about “Laravel,” and she needed my help to fix some issues in her university project. Honestly, I didn’t know about that framework and didn’t have any motivation to learn it previously. However, after spending around 30 minutes on the official documentation, I was able to resolve those issues. So how did I fix them? What is the secret behind that?

Fish Buns, Fish Rolls, and Fish Patties Concept

You have eaten at least one of the flavours of the above three types of foods. Did you notice the difference between each of the above foods? The only difference is the wrapper of the food. But you can see that the inside is made from the same mixture. What is the deep connection between the above concept and programming languages?

When I was doing my undergraduate and reading my Master’s program, there was a course module called “Principles of Programming Languages.” This course module was introduced by Prof. D.D. Karunaratna (School of Computing, University of Colombo) to Sri Lanka’s university course curriculum. Luckily, I had a chance to learn both course modules conducted by him. The course module covers the key concepts that I mentioned earlier, the difference between one programming language and another.

In Prof. Karunaratna’s words, “If you know the core concepts of one programming language very well, then you can easily learn any programming language. The only difference is the keyword tokens, syntax, and semantics of the new programming language you wish to learn.”

For example, you can write a to-do application using Java, Python, PHP, Node.js, React, C#, or any programming language. But the ultimate end goal is the same, and the only difference is the language you choose to implement the application, the keyword tokens, and the syntaxes provided by the selected language.

As a software engineer, whether fresh out of university or with a couple of years of industry experience, the ability to quickly pick up new programming languages is a valuable skill. In today’s rapidly evolving tech landscape, being adaptable and able to learn new languages efficiently can greatly enhance your career prospects and job satisfaction. So how are you going to do that within 5 working days?

Day 01 — Familiarize Yourself with Fundamentals and Basic Concepts

When you join a software company or a new project, normally in the industry, PMs allocate you a timeslot for project ramp-up. During this period, you will have a lot of project KT sessions regarding the business domain knowledge and technical knowledge. Probably, you might need to learn new programming languages as well to work with the project smoothly.

Before diving into the syntax and intricacies of a new language, it’s crucial to grasp the fundamental concepts that underpin all programming languages. Spend the first day familiarizing yourself with concepts such as variables, data types, control structures (like loops and conditionals), functions, and basic algorithms. Start by reading the language’s official documentation or online tutorials, textbooks, and interactive coding platforms can be invaluable resources for acquiring this foundational knowledge. If you are familiar with at least one programming language, these tasks are straightforward.

Day 02 — Explore Syntax and Language Features

With a solid understanding of programming fundamentals, it’s time to dive into the syntax and unique features of the language you’re learning. Start by reading through the official documentation or reputable tutorials that cover the language’s syntax rules, keywords, and common idioms. Take notes and create simple programs to practice applying these concepts. Pay close attention to any features that distinguish the new language from ones you’re already familiar with. Choose small projects or exercises that cover different aspects of the language. Websites like LeetCode, HackerRank, or Codecademy offer a variety of coding challenges and exercises tailored to different programming languages.

Day 03 — Deep Dive into Language Features and Libraries

On the third day, delve deeper into the language’s features and explore commonly used libraries or frameworks. Focus on understanding concepts such as object-oriented programming (if applicable to your language), error-handling mechanisms, standard libraries, and third-party libraries commonly used in the ecosystem. Refer to advanced tutorials, official documentation, or online courses to gain a deeper understanding of these concepts.

Most programming languages have a rich ecosystem of libraries and frameworks that extend their capabilities and simplify common tasks. Spend time exploring some of the most commonly used libraries and frameworks in the language you’re learning. This could include web frameworks or libraries, mobile SDKs, ML libraries, or DB access libraries, etc.

Day 04 — Build a Real-World Project

Once you’ve explored advanced language features and familiarized yourself with commonly used libraries and frameworks, it’s time to experiment and build prototypes. Choose a small project or idea that interests you and incorporates the concepts and libraries you’ve learned about. This could be a web application, a command-line tool, a data analysis script, or any other project that aligns with your interests and goals. The goal is not to build a perfect or production-ready project but to apply your newfound knowledge in a practical context and gain hands-on experience. This will boost your curiosity of learning new skills and programming languages.

Day 05 — Review and Refine

On the final day, take some time to review what you’ve learned and identify areas for improvement. Reflect on the challenges you faced during the learning process and how you overcame them. Revisit your project code and look for opportunities to refactor or optimize it. Seek feedback from peers or mentors and don’t hesitate to ask for help if you encounter any roadblocks. Finally, document your learning journey by writing a summary or blog post sharing your experience and insights. Don’t stop on day 05. Keep seeking new trends and learn and apply them to the project you are working on.

Conclusion

Learning a new programming language within five working days is an ambitious goal and not an easy task, but with a structured approach and dedicated effort, it’s entirely achievable. By focusing on fundamentals, exploring syntax, building projects, seeking feedback, and deepening your knowledge, you can rapidly acquire proficiency in any language. Remember that mastery takes time and practice, so continue to hone your skills and embrace lifelong learning as you navigate your software engineering career. Happy coding!

--

--