I would like to share my experience of overcoming the challenge of choosing a first programming language to learn. This is a hurdle that many of us face when embarking on our programming journey. I hope my experience can shed some light on this common dilemma. When I first started learning to program, I felt overwhelmed by the multitude of languages and paths to choose from.
My initial attempt at learning through a combination of paid and free courses did not yield the desired results. I experienced a degree of discouragement, but I was determined to identify the optimal path. I decided to pursue web development and enrolled in a comprehensive course covering HTML, CSS, and JavaScript. While it provided a solid foundation in web development, I yearned for a deeper understanding of the underlying principles of programming.
This pursuit of deeper knowledge led me to self-study, where I explored JavaScript, HTML, and CSS through various open courses. However, it wasn't until I ventured into Ruby that I began to grasp the intricacies of programming on a more profound level. Ruby's elegant syntax and powerful features sparked my curiosity and propelled me further into the world of programming.
After careful consideration, we have determined that Python, rather than Ruby, is the optimal choice for achieving my long-term goals. I have identified an online course on the fundamentals of programming in Python from the University of Helsinki that aligns with my needs. My mentor has approved this course and we have set a goal to complete part 12.
In the course of our discussion, an interesting development occurred: my mentor suggested that I work on exercises in both Python and C. He believes that learning both languages will offer a more comprehensive understanding of programming.
Thus, the proposed solution to the dilemma of choosing a first programming language is as follows: select a language and course that suits you. At this stage, it doesn’t matter whether the course is online or offline. Then, study this language in parallel with C. The learning process would look like this:
- Read the theory on your chosen programming language (language 1).
- Thoroughly review the course assignment.
- Complete the assignment in C.
- Complete the same assignment in language 1.
Here’s why I believe this parallel approach can be highly beneficial:
-
Studying two languages simultaneously allows you to see how different languages address the same problems, which can lead to a deeper understanding of programming concepts and principles.
-
Learning both Python and C in parallel can create a synergy where insights gained from one language enhance your understanding of the other. This can make complex concepts more accessible and intuitive.
-
Engaging with both high-level (Python) and low-level (C) languages can help you better grasp abstract concepts and practical details, making it easier to tackle challenging programming tasks.
-
The variety in tasks and approaches when learning two languages can keep the process dynamic and engaging, preventing monotony and maintaining motivation.
-
Real-world programming often requires familiarity with multiple languages and technologies. By learning them in parallel, you prepare yourself for this reality, making you more versatile and adaptable.
This approach will help you gain a deeper understanding of fundamental programming concepts and see how these concepts are implemented at different levels of abstraction. This method has truly helped me not only to better understand programming but also to increase my confidence in my skills.
Links:
- Full Stack Open, University of Helsinki;
- The Odin Project;
- Ruby Is For Fun book;
- Python Programming MOOC 2024 University of Helsinki.