Programming Is Weakening My Problem-Solving Skills

Since coming to college, my programming has become increasingly focused on contracting and other work related projects. But work has tight deadlines, and unlike personal projects and studies, quick completion time is a necessity. The consequence of this is that when I come across a problem I can’t immediately solve, the simplest option is to search the web for an answer. It has almost become instinct at this point to consult the web after being stuck for more than 30 seconds. It’s not that I enjoy doing this; it’s just a necessity.

But I’ve grown increasingly worried about the effects this is having on me outside of work. It seems to be yielding a similar effect to the gps phenomenon that has received recent attention. Even in my schoolwork and leisurely projects, I have found myself looking for solutions before I have even begun to tackle the problem on my own. The fact that this is an instinctual action for me (and many others I know) is worrisome, because it implies dependency; and in becoming dependent on having these resources available, the brain becomes less capable of solving problems on its own. This can be likened to being on crutches—when you finally get off them, your leg is weak and incapable, because it hasn’t done its own work in months.

For much of my work, it simply isn’t an option anymore to not use the internet as a resource; but in the past few weeks I’ve attempted at the very least, to lessen my dependency on using preconceived solutions. My approach has been to keep a running list of algorithmic/implementation problems I’ve needed to look, and complete them on my own at a later time (usually the following weekend).

The initial intent of this was to simply gain back any lost problem-solving opportunities I may have missed, but it has actually led to another effect that I did not expect: In forcing myself to go back to each problem I skipped, it has actually created a negative reinforcement system against prematurely seeking help. Many times even, I have decided to hold off on seeking help due to the fear of lost weekend time, only to come up with the solution just seconds later.

At this point, I cannot stress enough the importance of giving a problem decent thought before looking up a solution, even if you are under a time constraint. Making a deadline is not worth impairing your ability to work at your peak in the future.

Further, if you aren’t constrained by time, you should be seeking help minimally. For problems that aren’t simply reference/syntax lookups, it makes a huge difference in the long-run to solve even tedious problems yourself. If you’re concerned about lack of self control, try Sublime’s “Zen Mode”. Using the command Control + Shift + Command + F, your IDE will enter fullscreen mode with all toolbars and docks hidden, and only your code showing. And if you need even more isolation, ditch the computer altogether: brew yourself a cup of tea and break out a dry erase board— it’s a great way to think distraction free and fight fatigue.

If all else fails, use a variation of the “15 minute rule”. It’s an idea that a coworker of mine used to preach, where you should always try for a minimum of 15 minutes to find the source of a (minor) bug before asking somebody else for help. The same can be applied to asking for online help— try the problem on your own for 15 minutes first, and if you’re still stuck, search away. But if you’re anything like me, 15 minutes will be enough to have you hooked on the problem for hours if it’s still unsolved.

In the end, just remember to take pride in your own code; if you copy it from others, you are only depriving yourself and your brain from from the experience.

So on that note,
Happy Coding!

 
27
Kudos
 
27
Kudos

Now read this

What It Means To Be a Hacker

I often draw strange looks when I describe myself as a hacker. Most people imagine the pop-culture view of a hacker, tapping away at a terminal and breaking into computers. While I can’t deny having had my fun with this, it is not why I... Continue →