2

I've been a computer enthusiast my entire life, but didn't first start programming (web development) until I began College. It is now four years later - I am about to graduate, have had a handful of full-time internships and part-time work, all revolving around web dev... But I still find myself more often than not seeking out help, tutorials or stackexchange answers to my questions instead of working out problems entirely on my own.

I hear the term "help vampire" -- someone who asks/seeks help with their problems rather than work through issues themselves -- and while that isn't true for me a hundred percent, I find my threshold of getting "frustrated" when trying to accomplish something is quite low and it doesn't take long once I've found a problem to start searching online for a solution, as opposed to work one out myself.

I am certainly able to do my work, but I want to know how I can actually learn to THINK and REMEMBER like a developer, as opposed to relying on online answers as a crutch. It's a nasty habit and I really feel like it's limiting my development potential, speed, flexibility and adaptation to new languages/environments.

TL;DR: How did you transition from seeking help (whether in the form of Q&A's, plugins, tutorials, code-inspecting, etc) to developing solutions (answering the Q&A's, writing your own plugins, creating the tutorials, etc)?

7
  • 7
    Searching for information you can apply, online or not, is research. That's work; it's probably even learning. Help vampires don't do research -- they beg, borrow, and steal solutions to their exact snowflake of a problem.
    – jscs
    Jun 18, 2014 at 4:22
  • 4
    There is no transition. People who develop solutions also seek help.
    – BenM
    Jun 18, 2014 at 4:26
  • 1
    Doesn't fit 100%, but have a look in it medium.com/learning-to-code/… Jun 18, 2014 at 5:37
  • 2
    you know what? I've started to memorize (and refer less to API docs) after I've started to play guitar. I don't know if I've started to use parts of my brain I've never used before or if learning a new thing helped me to concentrate or if it helped me to relax. Most probably, you're as good as most of the "real developers" and maybe you're just a little insecure and anxious. Maybe you just need to find a way to relax and enjoy programming.
    – Leo
    Jun 18, 2014 at 7:11
  • 1
    @JoshCaswell. I would thin that down. Borrowing or stealing sound too much like research. It's the begging that's the problem.
    – Nathan
    Jun 18, 2014 at 10:06

2 Answers 2

4

I have been developing for .NET for almost 10 years. I still ask questions every single day. I still read every single day. I still question my assumptions and seek out better solutions every single day.

Searching out proven solutions is better than working things through and reinventing the wheel. There is already too much of that going on in software development.

I would say you should keep sucking up that knowledge and keep searching for what others have done every time you face an unfamiliar problem. There is nothing wrong with learning from the wisdom of others. You will know you are a good senior developer when you have learnt to smell design problems in advance and you question rather than just follow.

The fact is though, in this industry there will always be more that you don't know than you DO know.

1
  • 2
    Agreed. From my small personal experience, I think we won't stop learning new technologies, as they come and go all the time, but the most important knowledge in my opinion has to do with architecture, dependency and complextity management, etc. These apply to every platform. Jun 18, 2014 at 4:42
2

I think you got the definition of a help vampire wrong. A help vampire make people work for them. Reading a solution online does not consume anyone's time. It is just a way to use an available resource. Knowing when to ask a team member for basic help when no documentation is available is something harder to balance.

When working on something you don't know well, you should try to find a solution AND look for existing solution. In which order?

  • trying yourself first is a way to train your analysis skills. It also avoids tunneling your design space around existing architecture
  • reading about existing solutions allows you to benefit from the work and experience of the "wiser" programmers who provided those solutions. It helps you to avoid basic mistakes and to reinvent wheels

I have found that I get the best result when I try to build my own design and regularly check existing solutions and compare them to my work. However this method takes a lot of time. It is a good way to learn about something new. But if your boss wants you to ship in two weeks, it might not be the right way.

If you are facing tight schedule a want to limit the risk, spending more time on existing solution and less time on a new design may be a safer choice.

Ignoring free online resources about how people solves problems is as much a sin as only relying on other people's work.

Not the answer you're looking for? Browse other questions tagged or ask your own question.