Is Self-Taught Better than University-Trained Programmers?
Is Self-Taught Better than University-Trained Programmers?
The belief that self-taught programmers are inherently better than those who studied programming in school or college has gained significance in recent years. However, upon closer examination, this belief does not hold much water. What is more common is the belief that self-taught programmers and university-trained programmers are not necessarily worse than each other, with the caveat that a certification from university courses matters only in certain scenarios.
Unpacking the Belief
Typically, programming skills are acquired primarily through self-taught means. While a university or college course can provide foundational knowledge, true mastery often comes from hands-on experience and continuous learning. A course in an institution might cover the basics of a programming language in about six months, but practical application and real-world challenges require extended self-directed learning.
The advent of online courses has further blurred the line between self-taught and formally trained. Is taking a series of online courses in a wide array of subjects still considered self-taught, akin to reading a book alone in the past? The distinction is becoming increasingly nuanced.
The Role of University Education
My personal experience affirms that while I studied computer engineering, my programming skills are self-taught. Before my university days, I was already programming in C and C . Later, I learned Python, which was not part of any university course during the early 2000s when the language was still in its infancy. Even the Java taught in university was far removed from current standards, necessitating a relearning process.
University education did, however, help me become a better programmer. It enhanced my understanding of the broader technology landscape and provided a deeper context that I would not have obtained solely through self-taught means. The skills I gained in university undoubtedly contributed to my overall growth as a programmer, although they may not have directly equated to being better than a self-taught individual in every aspect.
Benefits of Formal Education
Having others guide you during different stages of your learning process can significantly accelerate your progress. Whether it is in the initial phase of learning a language or tackling the complex challenges later on, professional guidance can provide valuable insights and perspectives that might be hard to come by on your own.
Further, a broader engineering background, coupled with a deeper understanding of the technology you are working with, can be immensely advantageous. University education offered me this breadth, which has been invaluable in my career.
Conclusion
While self-taught programmers and university-trained programmers each bring unique strengths, it is important to recognize that formal education can contribute significantly to one's programming skills. The key is to leverage both self-directed learning and structured education to build a well-rounded toolkit for problem-solving and innovation.