I'm sure you've all gone through this situation.

You have a problem and you don't want to ask for help. The reason is, if you do ask for help, you feel like you won't fully understand the problem and you'll need to ask for help later. Additionally, you'll look like an incompetent person to the one you asked, and it might bring down your credibility in that given subject (even if you never had any). So, the best way to solve this problem over solving a problem is to solve it yourself. In doing so, you'll gain expertise over the subject and feel like you have a deeper understanding of problems similar to it. Furthermore, your "smart" cred won't fall, and other people may be more prone to ask you for help on that problem.

That was how I thought in high school and through my freshman year at UT.

I used to hate asking for help. I felt that the best way to learn things was to try and work through them without assistance. Other than the professor, I felt the need to try to teach myself in doing. If I didn't, I wouldn't fully absorb the knowledge. Additionally, if I didn't pursue a problem on my own accord, there would not be as much passion, desire, or understanding as if I tried to ask for help. This innate stubbornness somehow survived throughout my 1st and 2nd semester of college.

During my internship this past summer though, I learned that not asking for help can be a huge hindrance to work. I encountered a problem while building a working environment to develop projects on. Being in the mindset of "I can do this myself", I attempted to fix the problem myself. I searched through the company wiki, issues, and other related software resources in order to understand why it wouldn't work. Day after day, I was frustrated, but I was determined to solve it. Eventually after 3 days, I relented, and went to one of the full-time developers for help on the problem. After looking at it for 5 mins, the developer typed in several commands onto the terminal and fixed the problem... 5 mins. That's all it took.

Now I've been wiser in the times I encounter problems, and been more freely to ask help from others.

Granted, there is a balance in when (or who) you should ask for help.

One of the key things is knowing when you should ask for cheap help or expensive help. It's way cheaper to ask Google about a given problem than to ask another developer for help. Not only do you not interrupt them from their work, preventing unnecessary context switches, but you also encourage yourself not to be lazy, and actually try to understand the problem you are solving. At the same time, if you end up spending more than an hour on a problem, or you can gauge that you'll save a great amount of time asking another person who is an expert at the subject, then by all means, ask away. A penny saved, is a penny earned, and being able to save almost 3 days’ worth of time on a problem is definitely desired. Of course, do not let asking help be an excuse to be lazy, and to prevent yourself from learning. You are not helping anyone at all when you do that. Sure, in the short-run, you may finish a task and prevent wasting a day's worth of time. But in the long-run, if you don't learn, you will end up asking for help continuously on the same problem over and over again, which will waste more time collectively, show your incompetence and lack of desire to learn.

So learn to ask for help! Always have a mindset centered around learning. Balance out when and who you should ask. In doing so, not only will you develop a humbleness in learning and prevent yourself from looking incompetent (in the long-run), but you will also spend less time wasting away your life on an inconvenient problem, and get to spend more time on a task that you are more passionate about.

The views, opinions and positions expressed by the authors and those providing comments on these blogs are theirs alone, and do not necessarily reflect the views, opinions or positions of UT Computer Science, The University of Texas or any employee thereof.