DEV Community

Cover image for 3 Months Into Learning Programming - My Beginner Journey So Far
Rowan Victor
Rowan Victor

Posted on

3 Months Into Learning Programming - My Beginner Journey So Far

Introduction ๐Ÿš€

On April 14, 2025, I began my programming journeyโ€”sparked by curiosity after seeing my younger sister study coding in school. What started as simple interest quickly became a daily routine of learning, building projects, and diving deeper into code. ๐ŸŒฑ๐Ÿ’ป๐Ÿ“˜

In this post, Iโ€™ll walk you through my first three months of learning to codeโ€”from starting with C++ for game development, transitioning into web development, and eventually exploring low-level C. As a beginner developer, Iโ€™m now documenting my journey through blog posts and social media, hoping to encourage others to start and grow in their own path. ๐Ÿš€๐Ÿ“šโœจ


Discovering Programming ๐Ÿค”๐Ÿงญ๐Ÿ‘ฉโ€๐Ÿ’ป

I didnโ€™t have a background in computer science or tech. What I had was curiosity. Watching my younger sister learn programming in school made me wonder what it was all about. I began searching online and found myself fascinated by the possibilities. ๐Ÿ”๐ŸŒโœจ


Starting with C++ and Game Development ๐ŸŽฎ๐Ÿ“š

My first serious search was: "best programming language for game development". The answer was consistent โ€” C++. So thatโ€™s where I started.

Even though I heard it was one of the hardest languages to learn, I wasnโ€™t intimidated. I downloaded learning apps like Learn C++ by Programizย and Programming Hub by Coding and Programming from the Play Store so I could study anywhere, anytime. Eventually, I enrolled in Codecademyโ€™s free C++ course, and that became the backbone of my foundational knowledge.

Through Codecademy, I learned about variables, loops, conditionals, functions, arrays, and classes. Despite the language's verbosity and complexity, their lessons made it feel approachable. I appreciated how interactive the platform is; it avoids overwhelming students with too much information at once and focuses more on having us write code. This approach helped keep me motivated, even when the language felt daunting and intimidating for beginners.

One project I was particularly proud of was the Magic 8 Ball program I created in C++. It taught me several important concepts, such as input validation, testing against edge cases, handling leftover input in the input buffer, and separating concerns using functions. Although I found it challenging, I also enjoyed the process. I vividly remember the satisfaction I felt when I uploaded the finished project to GitHub and how proud I was of my accomplishment. ๐Ÿ†๐Ÿ“ค๐Ÿ˜


Shifting Toward Web Development ๐ŸŒ๐ŸŽจ๐Ÿ› ๏ธ

As I dug deeper into programming, I began to seriously consider a career in tech. I researched job openings in my area and realized that web development roles โ€” especially those using JavaScript, PHP, and full-stack tools โ€” were the most available and entry-level friendly. ๐Ÿ“Š๐Ÿ’ผ๐Ÿ”

This realization made me pivot. I began learning web development, starting with HTML and CSS. It was a very different experience from learning C++. Instead of logic and memory management, I was working with structure and design. But it was exciting to see things appear visually in the browser with just a few lines of code. ๐ŸŒˆ๐Ÿ‘€๐Ÿ’ป

Soon after, I began learning JavaScript. It felt more familiar due to my background in C++, but it also had its own quirks. I loved how interactive the web became once JavaScript was introduced. At this point, I consider JavaScript to be the second programming language I have learned. I quickly noticed both significant and subtle differences between C++ and JavaScript. One major difference is the brevity of the code in JavaScript; writing a program in JavaScript takes much less time compared to writing the same program in C++. Another difference I noticed is how JavaScript handles input, arrays, and data types more flexibly. You donโ€™t have to declare a fixed size for arrays, and inputs can be processed directly from the browser, while C++ requires more boilerplate and stricter data handling.


My Learning Path: The Odin Project & freeCodeCamp ๐Ÿงญ๐Ÿ“˜๐Ÿ“Œ

To stay organized and focused, I decided to enroll in a full-stack course. Fortunately, there are two excellent free full-stack courses designed for beginners:

I alternate between the two courses depending on my focus for the day, and they complement each other well. I find that The Odin Project emphasizes learning through reading and in-depth study of materials, while it also incorporates project work. In contrast, freeCodeCamp offers a more hands-on approach, featuring a browser code editor for their mini projects.


Going Lower-Level with C ๐Ÿ”ง๐Ÿง 

To strengthen my understanding of programming at a deeper level, I began learning the C language. I believed that getting closer to how computers operate under the hood would make me a better overall developer. ๐Ÿ› ๏ธ๐Ÿ“‰๐Ÿ’ก

C differs from C++ in both syntax and philosophy. It's more basic, which forces you to think clearly about memory, pointers, and data management. I appreciate its simplicity and power. Learning C made me realize how much I had taken for granted in JavaScript.

For instance, in JavaScript, I could easily use methods like .push() to add elements to an array. In contrast, C lacks such built-in conveniences, so I had to write my own functions to handle array manipulations. Initially, it felt like being thrown into the deep end, but I welcomed the challenge. It compelled me to think more deeply about underlying processes, such as memory allocation, manually setting array sizes, and carefully managing strings with character arrays.

In JavaScript, working with strings is straightforward; you just assign them and go. However, in C, handling character arrays means considering null terminators and memory space, giving me a greater appreciation for how strings actually function.

Although learning C is tougher, it pushed me to confront my gaps in understanding and helped me grow as a programmer. It was one of those experiences that, while uncomfortable at times, sharpens your problem-solving skills and makes you a better programmer overall. ๐Ÿง ๐Ÿ—ƒ๏ธ๐Ÿงฐ


Sharing My Journey Publicly ๐ŸŒ๐Ÿ“ฃ๐Ÿ“

Recently, I took a leap and started sharing my journey publicly. I made my first post on X (formerly Twitter) and launched the initial version of my project website. ๐Ÿš€๐Ÿ–ฑ๏ธ๐Ÿ”—

Live Preview of My Project Website

This site is still in its early stages, but it will serve as a platform for me to continue building as I learn. My goal is to treat it as a long-term learning project โ€” something I will improve over time as I progress from front-end to back-end development, ultimately aiming for full-stack proficiency. ๐Ÿ› ๏ธ๐Ÿ“ˆ๐Ÿงฉ


Whatโ€™s Next? ๐Ÿ”ฎ๐Ÿ“…๐Ÿ“˜

  • Polish the current site
  • Continue building mini-projects
  • Improve my CSS
  • Learn DOM manipulation and JS logic
  • Explore back-end development
  • Keep sharing my progress online

Final Thoughts ๐Ÿ’ฌ๐Ÿ’ก๐ŸŽ‰

Three months ago, I was completely new to programming, and now Iโ€™ve dived into writing C++ code, building web pages, learning core JavaScript, and even exploring the C language! Itโ€™s been such an exciting journey!

I know I still have a lot to learn, but Iโ€™m embracing the adventure every dayโ€” and I canโ€™t wait to see where it all leads! ๐Ÿšถโ€โ™‚๏ธ๐Ÿ“˜๐Ÿ”ฅ

If youโ€™re also learning, Iโ€™d love to connect! Letโ€™s cheer each other on and grow together. ๐ŸŒฑ๐Ÿค๐Ÿ’ฌ

Thanks so much for stopping by! I really appreciate your support on this journey. If you have any questions or just want to chat, feel free to leave a comment!

Top comments (0)