Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I find that when I am trying to learn say Python for example I end up worrying about problems that are out of scope like how does Python implement this thing etc. For example say I am learning twisted framework , I end up thinking how can Python define things in such a manner and stuff - this leads be to worry mostly about internals of language insted of problem at hand !

However I can take another approach where I accept the abstraction and say ok ... TCP does this ...I need not know more and accept TCP connections are handled when I give this command ... and carry on with my work and then worry about these things later on .

What exactly do you guys follow ? I am perlexed to see many of them so good at both these things while I just seem to be having a hard time there :)

Do you really sometimes learn topics with abstraction or do you go find under the hoods stuff as much as possible ?

Mayve you could say I am facing a problem of overdesign which is a big problem and need some help to solve this :)

share|improve this question

migrated from Apr 10 '11 at 12:20

This question came from our site for professional and enthusiast programmers.

Question belong on programmers.stackexchange. Voting to migrate. – Darren Young Apr 10 '11 at 12:14
Heh, my curiosity almost always wins. I will just dive in an learn how the internals work. :) – Bjarke Freund-Hansen Mar 7 '12 at 8:39
up vote 3 down vote accepted

Your desire to understand how things really work, in my view, is a healthy drive you should indulge when you can. It's also probably a bit of anxiety you're feeling about learning something new, which is also natural. Wanting to see the details of implementation is a sign you are not confident in your understanding. Let yourself look at some source code now and then to remind yourself the thing you're studying is real.

The simplest way to satisfy your curiosity though, especially with a framework, is to write tests against the API. You can gauge anyone's grasp of a framework by reading their tests. Most labs you'll see in a industry tech course, in fact, are just simple test cases.

If you really need to save time -- and thinking about internals will certainly eat it up -- write questions down as you go. Asking questions that are eventually answered by further reading or tests is a classic symptom of learning anxiety. In this industry especially, people worry all the time about not learning fast enough. Slow down, consider how you would test the concept you're currently absorbing, take a 5-minute break. If you sense that you're anxious, then beware of looking at source code. In that case, you might just be trying to distract yourself from learning with an activity that is simply more comfortable for you.

share|improve this answer
Thanks for that mfe . I feel reading source code often leads me to investiage more as asbtractions these days are so huge in techonology that it seems hard to uncover . – Nishant Apr 10 '11 at 16:08

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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