Reflecting on the Early Days of Programming: Insights and Lessons Learned
The very first time you step into coding can be both exhilarating and daunting. Many of us wonder, if we could go back to that time, what changes we could make to set a stronger foundation for our coding journey. In this reflection, we explore the challenges and opportunities faced by novice programmers and the languages that can shape their future in the tech world.
The Importance of Choosing the Right Language Early On
One of the crucial decisions we made at the beginning of our coding journey was the choice of language. As a newbie programmer, it's easy to stick to hobbyist languages such as BASIC, which may seem approachable and fun. However, focusing on professional programming languages from the start can significantly enhance the coding experience and open doors to more advanced and rewarding opportunities.
If I could go back to that time, I would have prioritized learning languages like Ada, Lisp, C, Fortran, or Pascal. These languages, while challenging, provide the logical foundation and problem-solving skills that are essential for professional development. They are not just tools for creating the immediate effects, but they lay the groundwork for developing a deeper understanding of software and systems.
The Value of Learning Logic and Problem-Solving Skills
Learning logic to code is one of the most effective ways to gain confidence in programming. This process is not only fun but also practical, as it can be done with minimal technical baggage. The related theory can be mastered within just a few weeks. However, developing problem-solving skills based on that theory might require a bit more time, typically between 1 to 2 months.
These skills are fundamental for learning advanced programming concepts and techniques. They not only make the learning process self-motivating but also countable. There's a sense of accomplishment and progress that can be measured, which is invaluable when learning a new language or technology. For more details on this topic, you can check the following post.
Personal Reflections and Lessons from the Past
Despite the many things I would change about my life if I could go back in time, my first experience with programming is something I wouldn't alter. Writing BASIC on a TRS-80 was a decent way to learn, even though today's standards might find it limiting. It laid the foundation for my coding journey, and the creativity and fun we brought to it have made lasting memories.
However, looking back, there were several aspects of my early coding experience that could have been better. I should have started experimenting with operating systems or modifying existing ones, a path that young Bill Gates III took. Additionally, instead of choosing pottery as my second hobby, I should have embraced computing more fully in the 4th form. While I learned a wealth of knowledge in various subjects, including English and literature, it didn't translate into a career path that interests me.
As a beginner, sticking to simple tasks, such as making graphics or copying and modifying existing code, was a common approach. We enjoyed creating basic game elements, such as windows or circles, to make buttons that could be interacted with using a mouse. These tasks were entertaining and laid the foundation for our coding skills.
My brother's creative approach to coding stands in stark contrast. We modified a Star Trek game to change the intro message, adding humor and a personal touch. We even found a machine-language subroutine to reverse the scrolling, allowing us to scroll down instead of up. These small details can be incredibly satisfying for beginners, and they demonstrate the potential for creativity in coding.
Despite our efforts, we were ultimately surpassed by younger and more talented individuals. These individuals were able to create databases and other advanced systems that would go on to secure jobs at major tech companies like IBM. Our garage-based efforts, while enjoyable, did not match the level of innovation demonstrated by future tech legends like Steve Jobs and Bill Gates.
Reflecting on these experiences, it's clear that the path to success in programming is multifaceted. While the tools and languages we used back then laid the groundwork, the skills we developed and the creative approaches we took were equally important. Today, the landscape of programming is vastly different, but the lessons and insights we gained remain valuable.