Why Programming is For Everyone (from someone who used to think programming wasn’t for her)
While reading for class, I came across a term that perfectly described an error I kept running into: The Fencepost Problem — an off-by-one error that usually happens when a loop has incorrectly defined boundary conditions which makes the loop run one too many times, or one too few.
For example, imagine you need to build a 40m fence with a post at every 10m, how many posts do you need? Without thinking, an automatic response might be 4 posts. For those visual thinkers, hold out your hand and spread out your fingers. Designate the spaces in-between your fingers to be 10m [10 x 4 spaces = 40] and your fingers as the posts, and you will see that the correct answer is 5.
I never knew the term “fencepost problem” existed as a concept. Growing up I would label my wrong answers as being “bad at math”, when I was conceptually missing the crux of the problem. These types of problems were logic-based concepts disguised as math problems. Something I never understood until right now.
I actively avoided majoring in math, science, and engineering because I didn’t think I had the right kind of thinking for it. My past experiences in school proved those were not my strong suits.
I graduated college with a business degree and a full-time job — and something felt off. I want to call it being unfulfilled but I’m not sure the term exactly encapsulates what I was feeling. It’s similar to being on the bench during a game when the score is tied, and you want to get in there and make a difference, but there’s also a voice in your head that’s terrified of what could happen in the next few minutes and maybe it’d just be safer to watch from the bench. Except the game was my life, and it was up to me whether I wanted to play.
I already knew what it felt like to stay on the bench. So, I decided to play.
I’m back in school, studying something I never thought I could.
I walked into my first programming class – uncertain. I was entering unknown territory and there was a chance I wasn’t going to find my way around.
The first few weeks of class flew by.
I grew to love failing and learning and growing. You never forget your first programming language. I fell in love with Python, first at slowly, and then all at once.
My foundational knowledge of programming was built on my professor’s comforting words: “People who seem like they know a ton about coding are just people who have had more exposure than you have. Do not be intimidated.” — Prof Menaka These words strengthened me. They were my weapon of choice against every encountered obstacle.
A few thoughts about why programming is for everyone, from someone who used to think programming wasn’t for her.
- My instinct when I’m experiencing something new is to project my insecurities onto others, which manifests into negative self-talk. “No one else is struggling”, “This doesn’t come naturally to me”, “Am I cut out to do this?” While this mindset is not conducive to one’s learning, it’s important to recognize that we all feel this way at one time or another. Don’t let this get in your way. You have concepts to learn and programs to code.
- When you get stuck, what is your next course of action? Do you wait for others to figure it out? Do you Google it? Do you go get some fresh air? Do you…do nothing? When I used to experience brain blocks in business school, I used to wait for other to help figure it out. I fully confess, I used to be a knowledge moocher. (@Gabe Ho — thankful for your generous knowledge bank) Meaning, if they didn’t figure it out…I didn’t figure it out. Programming taught me the importance of finding a strategy that helps you find your way when you are lost. As time goes on, you strengthen your confidence with ambiguity and are more audacious to plunge into the unknown.
- The bro-grammers in class aren’t the brilliant-coding-geniuses all the movies and media make them out to be. “In studies, men overestimate their abilities and performance, and women underestimate both. Their performances do not differ in quality.” — The Confidence Gap by Katty Kay and Claire Shipman
The quote has rung true in my experience on many, many occasions. The more I get into programming, the more I realize everyone brings their own style to it.What I love about programming is that your code can’t lie. I love that code depends entirely on knowledge, discipline, grit, and creativity — which aren’t exclusive traits, and therefore the study of Computer Science shouldn’t be either. However, having opportunities to learn how you best learn, having a safe environment to fail and try again, and having a secure foundation to challenge yourself are privileges that aren’t granted to all. The more I realize this, the more interested I am in figuring out how to expand this opportunity to others who don’t have as much accessibility to these types of environments. What I do have figured out is the more people who enter the industry who aren’t the standard archetype are widening the door for people in their own community — which is a start to getting rid of the barriers.
Studying computer science is different than anything I’ve ever studied. I’ve stayed the course, late into the night determined to make my program run because there is no greater satisfaction than seeing your idea work. You created that. You thought of it, and you went ahead and made it real.
Programming has given me the tools to learn how to learn. With each unclosed bracket, forgotten semicolon, and misnamed file — I’m continually training my intuition and becoming a better problem solver.
You are going to be frustrated a lot of the time. You are going to want to quit.
Going into my second quarter, it’s been challenging, it’s been confusing, it’s been irritating — and it’s been the most rewarding experience fully committing to not knowing, and learning to love the process.
Hi, I’m interested in meaningful projects, intentional design, and a good cup of coffee. You too? Sweet, let’s be friends.