Skip to main content
4 answers
5
Asked 843 views

What is the hardest part about being a programmer?

In class we are discussing career opportunities and are trying to find information on different careers.

+25 Karma if successful
From: You
To: Friend
Subject: Career question for you

5

4 answers


3
Updated
Share a link to this answer
Share a link to this answer

Tony’s Answer

The hardest part is called "debugging". This is testing to make sure the program does what it is supposed to do, and when it doesn't, trying to figure out why and how to fix it. The famous quote is that more people have set foot on the moon that have written code that works the first time. I don't remember which book I read that in, but it has stuck with me. Many programmers do not fully test their code, and so when problems are found, they now have to figure out why. In some cases, it is almost impossible to test every possible combination, so there are tricks to test samples that hopefully provide enough coverage.
Thank you comment icon +1 I strongly agree with Tony on this one. Debugging is hard, and it takes a huge amount of time. Jared Chung, Admin
3
0
Updated
Share a link to this answer
Share a link to this answer

Jared’s Answer, CareerVillage.org Team

I agree that debugging is the hardest thing about *being* a programmer. It takes a massive amount of time, and it starts almost immediately when you start programming. When you compare programming against human language, programming languages are literal, brittle, and inflexible. As a result, unless you use them just right, you'll have a bug. That's why most of the time when you learn a programming language, one of the very first things you encounter is a bug. That can be frustrating for many people (I know it's been frustrating for me). It hasn't deterred me from continuing to program (I love it!) but it's definitely hard.

There are some other things that I think are hard about being a programmer:
- Setting up your computer to program can often be very difficult and frustrating. Installation instructions I find online work right the first time only about 50% of the time. And so I might spend hours or days debugging the installation of something before I even get a chance to do the actual programming that I'm installing the software to support.
- It takes a long time (often hours or days) to figure out how some piece of software works, sort of like working on a really complicated puzzle for a long time. I often find that I have to spend a lot of energy to remember (with my ACTUAL brain :) how different parts of the software fit together. that can be mentally taxing, and it also means that things like getting interrupted can be super disruptive and frustrating.
- There's a really huge gap between "I have the program running on my laptop!" to "The program is now out in the wild on the internet or on peoples' phones or wherever it needs to end up!" In fact, in many cases, it's actually more work to get the program "deployed" properly than it is to make the program work in the first place.

So those are some of the hard things. But I don't want to discourage you from giving it a try! I did and I've really loved being able to spend time thinking about code puzzles and building things that really help people.

Source: I've been programming for 12 years as an adult, and did a tiny bit of simple programming as a teenager as well.

Jared, CareerVillage.org Team recommends the following next steps:

Get a Python mentor (if you choose to learn Python) by going to the PyATL meetup (or similar at https://www.meetup.com/topics/python/us/ga/atlanta/) and asking the organizers if you can make an announcement to introduce yourself and ask for a mentor to help with your next step as a programmer
0
0
Updated
Share a link to this answer
Share a link to this answer

Randy’s Answer

Great question, Ethan 👋

I think one of the most difficult parts of being a programmer, is getting used to the unknown. This role requires you to be comfortable with being uncomfortable.

Debugging is very tough, because this is one of those unknowns — oftentimes, we have no idea why our code breaks, and we go down the 'rabbit hole' of trying to figure out the cause.

Outside of debugging code, however, are other unknowns. Sometimes the domain knowledge (i.e., cyber-security, AI, quantum) can be difficult to learn. Other times, your hired onto a project that uses all new technologies (languages, frameworks) that you might not know.

This is why a lot of people experience imposter syndrome, from working in the tech industry.

To combat this, get used to not knowing everything. Get used to learning from your failures. Get used to being vulnerable and build healthy relationships — this will come in handy when you're asking for help.

In my experience, the most successful programmers have learned to overcome the unknowns by keeping an open mindset, building great relationships, and still forging ahead.

Randy recommends the following next steps:

Adopt and promote a 'continuous learning mindset'. This will ensure that you have the right frame of thinking as you solve problems and encounter hurdles.
Build great relationships across the team and your company; this will ensure that you're never alone when facing issues.
Keep in mind that all great programmers run into problems, ever day. You're not alone.
Remember, this is a marathon and not a race. Pace yourself and enjoy the journey!
0
0
Updated
Share a link to this answer
Share a link to this answer

Eddie’s Answer

Wow! They're a whole lot of hard stuff about being a programmer.

Being a programmer entails that you're consistent and persistent.
Consistency here means turning up for your practice sessions even when the vibe ain't there for some reasons. Programming is evergreen 🌲 and you've got to evolve or your technologies will outgrown you. Consistency on your LEARNING PATH is also very challenging, because with all the tech trends you'll always be tempted to delve into the 'trendies' as a programmer. Now I am not saying don't explore, No; rather, you have to know when your skills are ripe (now I mean familiarity with the fundamentals not necessarily mastery). That's a lot on CONSISTENCY. I'll talk about persistence later in the day.
0