Brutally Honest Insights on Studying Computer Programming

Brutally Honest Insights on Studying Computer Programming

Are you considering studying computer programming and wondering if it's worth the investment? This article will provide you with a straightforward and realistic perspective on the challenges and benefits associated with this field. Noble? Extortionate? We’ll explore the truth behind these questions, backed by honest insights from experienced professionals and academics.

Is There a Major Called Computer Programming?

The short answer is no; there is no major called computer programming per se. However, computer science (CS) is most closely associated with programming. This major encompasses a wide range of topics, from algorithm design and data structures to operating systems and computer networking.

Additionally, if you choose a computer engineering or physics major, there will certainly be opportunities to engage in programming and computational tasks. For instance, in graduate school, I specialized in computational physics, leveraging programming to solve complex physical problems. This path offers a blend of theoretical and practical skills, making it even more relevant to today's tech-driven world.

The Disparity Between Academia and Industry

One of the most significant challenges you may face is the perceived lack of alignment between what you learn in academia and what you need to succeed in the industry. It's true that mastering every aspect of a field in one class is often impossible. Here’s why this is a concern:

Complexity of the Subject: Programming and computer science require a deep understanding of math, logic, and problem-solving skills that take years to fully grasp. Industry-Specific Knowledge: Many companies offer extensive training for their employees, but this can be extensive and demanding. If you’re new to programming, you may feel overwhelmed and psychologically stressed. Requirement to Keep Learning: With new tools and technologies constantly emerging, there’s a continuous need to update your skills and knowledge to stay relevant in the industry.

Financial Considerations and Career Satisfaction

Studying computer programming involves a significant investment of time and money. Here are some financial considerations:

For Students from Financially Poor Families: The benefits of a computer science degree can be immense. Not only do you gain valuable skills, but there is also a decent job market, often with competitive salaries. A skilled programmer can command a salary at the start of their career that can significantly improve financial stability.

For Students from Non-Poor Families: Financial factors may not be as critical, but the psychological and time investment in the field can be demanding. Pursuing a computer science degree takes a lot of time outside of classroom learning, which may impact personal and social life.

The Unique Challenges in Computer Science

Another significant challenge is the lack of understanding among people outside the field:

Lack of Understanding: The topics in computer science are unique and often require hands-on experience to fully appreciate. People outside the field will find it difficult to understand your projects and their significance. Mathematical Nature: Programming is heavily mathematical. You need to think like a mathematician, and you must do so for years. This demands a level of dedication and mental discipline not required by many other majors. Perception from Others: Your peers and friends outside the STEM field might not share your enthusiasm for programming. This can make socializing challenging and may lead to a sense of isolation.

The Reality of Industry

The reality of working in the industry is often starkly different from what students imagine:

Tool Mastery: There are too many tools to learn in the industry. Companies often expect you to be a Jack of all trades, but a master of none. This can lead to a never-ending feeling of inadequacy and dissatisfaction. Struggle with Implementation: Implementing extensive business processes in Excel can be soul-sucking, especially if you’re dealing with someone else’s poorly structured data. You may find yourself wishing you had a simpler job, like technical support or basic IT maintenance. Lack of Usefulness of Language Courses: Despite years of dedicated time and effort, higher education might not fully prepare you for the real-world tools and processes used in software engineering. Coursework in programming languages like Java, C, or C is less about syntax and more about tools and processes.

Exploring Further

If you’re still considering a degree in computer science or programming, here are some steps to explore:

Internships and Externships: Practical experience through internships or externships can give you a better understanding of what real-world programming entails. Networking: Connect with professionals in the field. Joining tech meetups, attending conferences, or participating in online communities can provide valuable insights. Online Resources and MOOCs: Utilize free or low-cost online resources such as Coursera, edX, or Khan Academy to build foundational knowledge and skills.

Ultimately, the decision to study computer programming should be based on a thorough understanding of the challenges and rewards. If you are dedicated, resilient, and ready to tackle adversity, a degree in CS or programming could be a highly rewarding path.