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:
- The Odin Project (Full Stack JavaScript Path): This is a comprehensive, project-based curriculum that aligns perfectly with my goal of becoming a full-stack developer.
- freeCodeCamp (Full Stack Certification): This is another fantastic resource that reinforces concepts through exercises and challenges.
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)