Technology
From Novice to Software Engineer: My Journey of Learning Programming
From Novice to Software Engineer: My Journey of Learning Programming
Introduction
My journey into programming started in my late teens, a period when I was simultaneously dodging the draft and learning Python through online platforms. Since then, I have witnessed the transformation from a complete novice into a fledgling software engineer. This article outlines the steps I took, the resources that helped me, and the challenges I faced along the way.
Learning Path and Mentors
After high school, I enrolled in a trade school for 6 months to acquire a skill that could potentially keep me out of the draft era. My mentor was instrumental in guiding me from a basic understanding of 407 card tabulators and RPG programming to more complex languages like assembly and Cobol.
Professional Experience and Realization
My journey was not just theoretical. It was my first day on the job on September 21, 2020, where I was introduced to Java. The setting was challenging, with social distancing protocols and a mentor who urged me to focus on practical applications rather than theoretical knowledge.
Learning Styles and Best Practices
One of the most crucial steps in learning programming is identifying your learning style. For those accustomed to structured learning environments, platforms that offer coding tutorials like Hyperskill, Codeacademy, and FreeCodeCamp can be incredibly beneficial. These platforms provide a hands-on approach that reinforces learning through testing and feedback.
Understanding the Skill Levels
The skill level in programming can be broken down into three tiers:
1. Exposure: Being able to read and understand the syntax of a programming language.
2. Experience: Having hands-on experience and the ability to perform basic operations with reference materials.
3. Proficiency: Being able to perform most tasks relevant to a software engineer’s role without the need for reference materials.
Overcoming Obstacles
One of the biggest challenges I faced was the monotony of watching educational videos. Resources like Pluralsight, while valuable, can be overwhelming due to the monotony and lack of practical application. Practical-based platforms I mentioned earlier help maintain engagement through short, actionable lessons that require immediate application.
Final Thoughts
The key takeaway from my journey is the importance of frequent and consistent practice. Creating your own projects and applying what you’ve learned is essential for long-term retention and practical understanding.
In conclusion, the path to becoming a competent programmer is as varied as the developers who walk it. With the right resources and a commitment to applying what you learn, you too can achieve proficiency in programming and set a solid foundation for your future in tech.