Technology
My Journey to Becoming a Skilled Programmer: How and What Languages I Learned
My Journey to Becoming a Skilled Programmer: How and What Languages I Learned
My journey into the world of programming began in my childhood with a very basic computer. This computer could only run programs written in Basic and machine code. I started off by reading magazines and finding books on Basic programming. Later, I upgraded to a PC-compatible computer with a Basic interpreter. However, I wanted to do more, so I invested in a Basic compiler, Turbo Basic, which allowed me to write larger programs. To complement this, I also learned Assembly language, coding a main program in Basic with Assembly subroutines for functionality that Basic couldn't handle.
Early Experiments with Web Programming
As a kid, I delved into coding, but it wasn't until my early 20s that I started learning web development. Instead of formal instruction, I followed a more experimental path, looking at the source code of existing websites to understand how they worked, and then trying to replicate and improve upon them. This hands-on approach has served me well in the years since, allowing me to bridge the gap between theoretical knowledge and practical application.
College and Beyond
A turning point in my programming journey came when I decided to switch my major to Mathematics at a local university. I found myself in the key-punch room and began taking a course in programming. To my surprise, my previous experience as an art major proved valuable. The emphasis on design was just as applicable to programming as it was to my earlier work in painting. My language journey began with IBM 360 BAL, Basic Assembler, and FORTRAN. FORTRAN was particularly useful in keeping business majors from asking too many questions. My advice to beginners is to find a computer, a class, and relevant books. Enjoy the process.
Over a Decade of Programming Evolution
In the early 1970s, I started with a WANG 2200A minicomputer, learning the BASIC dialect on my own by studying the reference manual and diving into programming projects. Around the same time, I took a college course in Fortran while still in high school. I immersed myself in course projects, which helped me learn Fortran effectively. Later that year, I delved into three more dialects of BASIC: Tiny BASIC for the TRS-80, Level II BASIC for the TRS-80, and the Commodore PET 2001 BASIC. I again learned by using reference manuals and immersing myself in programming. In 1977, I also picked up Z-80 and 6502 Assembly languages using the manufacturers' programming manuals and through my programming projects. Since then, I have had to learn and work with many other programming languages, including C, C , and various assembly languages, as needed for courses and real-world projects. My proficiency in these languages has equipped me to take on diverse programming challenges.
Choosing the Right First Programming Language
While there's no one-size-fits-all answer to what the first programming language should be, my recommendation would be C. It's relatively simple, yet powerful, making it an excellent choice for beginners. C serves as a tool to learn the fundamental concepts of programming, such as algorithms and data structures. However, it's crucial to avoid starting with JavaScript due to its poor design, which can lead to bad habits. After gaining a solid foundation with a first language, you can move on to others as needed, building a comprehensive skill set as a professional software developer.
Conclusion
My journey into programming has been a mix of self-guided learning and structured education. Through hands-on projects and a diverse set of languages, I've developed a broad skill set that continues to evolve. No matter where your programming journey begins, remember to enjoy the process and the progress.