Dear future programmer,
As programmers, we are problem solvers. In fact, we rarely have the solution to a problem the moment it is presented to us. It is the best and sometimes, most frustrating part of our job.
As a new programmer, you will face many unknown challenges. Learn to love period of time between when you are presented with a problem and the point at which you discover the solution. This period of time is where many things are unknown, a period of time where the solution is uncertain. This is also the period of time where the most learning occurs.
In this period of uncertainty, it is easy to become frustrated or angry. It's easy to give up here. You might let depression sink in because you feel like you'll never figure out your solution. Or even worse you'll try everything you find on Stack Overflow without giving the problem any real thought.
All of these feelings are very normal, but they keep you from thinking clearly. When the pressure of uncertainty starts to affect your mood, the best thing you can do for yourself is to take a break. Never quit, Never accept defeat but always allow yourself a break. Go for a walk. Go lift something. Hell, go play some video games. Disconnect from the problem for a period of time. When you do this, you'll find that when you return, you will be able to approach the problem with a fresh perspective.
You should be mindful of your attitude while learning to program. There is a saying taught to me by a Green Beret I had the pleasure to train with; Attitude is everything, keep yours positive. Our attitude affects others around us. Our attitude while learning also determines how willing others are to help us. If I'm always negative or if I always look and act frustrated when under pressure, very few people will want to work with me. However, if I approach challenges with a positive attitude, if I celebrate even small victories, and always thank others for their help, I will always have someone to help me when things get tough.
Whenever you start to feel frustrated, remember this: the uncomfortable feeling of not knowing the solution is only a precursor to the exhilaration of solving the problem. Embrace the suck. Don't let a negative attitude or frustration cause you to stop. Stop stopping. Progress, no matter how small, is still progress.
Sincerely,
Someone who has been there.
Top comments (12)
As a mostly-future programmer, I already do heed your advice. :) I kind of love to begin thinking about a problem by looking for an answer to "how can I solve this in the most inefficient or ridiculous way?" Not only does this brighten the general mood among my fellow colleagues and me, but it also helps finding really nice solutions.
Very encouraging piece of reading! 👌
Of course future programmer, everyone's beginning sucks! No one's first draft is a masterpiece.
So don't give up too soon! It is always difficult before it's easy.
All those Ninjas developers you look up to where once just as confused as you are right now (and they still are from time to time). But they honored the struggle and as they kept learning and writing tons of code, eventually things started making more and more sense.
This journey is about persistence, patience, and consistency. It'll take time, discipline and a lot of perseverance, but you've gotta keep learning, fixing those silly bugs and keep moving forward, one line of code at a time.
The reward will be worth the struggle. 💪🚀
As someone that does this for a living for 15 years now, I can only say things don't seem to start making more sense and that after the initial struggling more struggling will follow regardless of discipline & perseverance.
But! If you love what you do, then you eventually realize that that was the real reward all along. 😊
But at least now, you have become more skilled at dealing with those struggles heh? 😉
Yeah, that could be a plus. :-)
Thanks Drew, I think today was breakthrough day, after 3 days of staring at a non-trivial challenge: how to make our 15 year old, 3-tier, heavily evolved (you know what this means right?), mixed language C#/C++/Win64 application stack easier and especially faster to change - with zero downtime! The weekend off did the trick :)
Small victories are what keep me from giving up programming. I may get strange looks when I pop out of my chair and high-five the air, but that's my celebration... my motivation. I love troubleshooting code, but I love finding the solution even more.
I often treasure this problem solving aspect of the job by treating coding puzzles as murder mysteries. It adds an air of thrill, excitement, and romance to things.
On a cold, dark night, the Internet Explorer mansion seems like any other abandoned building - decrepit, barren, yet full of passerby taking advantage of the failing shelter. Yet it all changes with a sudden disappearance of the Top Navigation, who was last spotted in that very building. It rocks the entire town, from the blog posts all the way up to the offices of the admin screen.
As chaos slowly seeps into the website, it falls on one lone detective to sort out truth from fiction and browser incompatibilities with buggy code. Armed with only his wits, his text editor, and his quirky yet unpredictable and error-prone JavaScript sidekick, he must find the Top Navigation before the deadline strikes. Otherwise, the client descending on the website will unleash a dark new hell unlike they've ever seen.
See, that makes for a much more exciting ticket than "Our navigation is broken in IE, fix it now." And I'm lucky enough to work for a company that doesn't care what kind of PR descriptions I write :)
So true about the attitude. It is easy to fall into the trap of frustration and constant complaining when you are stressed, especially chronically. But the negative attitude creates even more stress, and the whole thing spirals down.
It is worth to make an effort and break the loop.
I can say that no matter how many obstacles or difficulties arise, I will never stop. Never stop never stopping.
Great - and accurate. Bad attitudes are the worst.
The longer the period of uncertainty is, the louder the celebrations will be :)