Take the 2-minute tour ×
Personal Productivity Stack Exchange is a question and answer site for people wanting to improve their personal productivity. It's 100% free, no registration required.

I think as a developer thinking on your feet is an essential skill, but it seems some people in our industry are a lot better at it than others. Experience in an area/technology obviously helps. I have a fear of answering a question incorrectly, so I tend to get nervous which has an impact on my performance, especially at interviews and in meetings.

I would like to become better at thinking on my feet, mainly around visualizing a programming problem and calling on past knowledge and experience to provide a verbal solution. So this question is aimed at the people who are good at it, is there procedure/technique you follow that enables you be good at thinking on your feet?

share|improve this question

migrated from programmers.stackexchange.com Mar 9 '13 at 15:19

This question came from our site for professional programmers interested in conceptual questions about software development.

add comment

6 Answers 6

Thinking on your feet is an essential skill for combat soldiers. The military drills and exercises recruits to behave as though they had developed this ability.

In the programming world people tend to be much brighter and yet a lot of what you see as 'thinking on their feet' is the result of lots of practice, reading and debating.

Programmers often provide a volley of quick fire answers to an easy question if only to impress themselves. Shooting from the lip comes all to easy for some of us ;-).

Harder questions get greeted with a peppering of questions and may be some answers which lead to more questions.

"There are no stupid questions, only stupid answers"

If you don't have a good answer ask a question. If the 'answer' does not feel right, ask questions. Even the brightest get it wrong sometimes. Never be afraid to ask questions.

In the meantime keep practising and reading and debating.

share|improve this answer
add comment

Mostly it's about getting over your fear of answering incorrectly. You're not expected to come up with a perfectly-formed answer all on your own in that situation. If you pay attention to people you consider good at thinking on their feet, you'll notice they take advantage of that fact.

One common way to propose an imperfect answer is to pose it in the form of a question, state the parts of it you are unclear on, and build off of other people's feedback. "What if we did X? I'm not sure it would be scalable enough though? What do you guys think?" That sparks a discussion on the scalability, sometimes confirming that it is scalable, and sometimes coming up with concrete reasons why it's not. If the idea works, great! If not, at least you eliminated one wrong answer, and you may have sparked an idea in someone else.

When you start paying close attention to people who are good at thinking on their feet, you'll start to notice how often their ideas are incomplete or even wrong. However, it doesn't matter because the ideas are never claimed to be complete, and they lead the group to a good answer in the end.

share|improve this answer
    
I like this answer. In my experience, to be 'great' isn't to always immediately come up with the correct answer, but to have the vision and ability to see the situation from multiple angles, and to be able to consider each one for its viability, or pros/cons when multiple solitions exist. –  Doug.McFarlane Mar 15 '13 at 18:55
add comment

This is something everyone goes through. From your text, I believe you are introverted by nature. Take Susan Cain's Quiz and you will see where you are.

I have a fear of answering a question incorrectly, so I tend to get nervous which has an impact on my performance, especially at interviews and in meetings

In her book she says that introverts are more nervous than extroverts and fear doing things wrong. Hence, they take all precautionary measures to get things right the first time. That is exactly what, I think, you are feeling right now.

You are doing perfectly normal and remember that the interviewers do not expect you to answer everything correctly. They expect you to do it confidently.

I would like to become better at thinking on my feet, mainly around visualizing a programming problem and calling on past knowledge and experience to provide a verbal solution

You do not always need a verbal answer. If there is a paper and pen in front of you, use it. If you can carry a notepad and pen with you to interview, much better. You are a programmer so I believe you must be aware of UML. It was invented because not everything can be verbalized. Sometimes things need to be visual.
You can always buy books that are target programming experts. These contain valuable experiences shared by veteran programmers. There are also books that contain questions most likely to be asked in an interview. Then there are books that contain programming puzzles. All of those should help.

P.S. I am a voracious reader of programming books

share|improve this answer
add comment

You have to get over your fear of failure. Start with what you think is the right answer and work it out until you or someone else shows you a better way. In programming this would happen during compiling, unit testing, code review, usability test, or a bug report.

This may be more of a problem when working with others in an environment that punishes mistakes. Start by making sure you don't do this to others. It may prevent them from retaliating.

You can present potential answers without sounding arrogant. Some cultures detest "know it alls."

Put your current thinking to the test and continue to stretch it by finding solutions and then reworking them when new data comes along.

share|improve this answer
add comment

What helped me:

I always try to see the big picture. I do an explicit effort to understand the context, my and my colleagues' roles and tasks, goals of project I am up to. Especially important is the basic understanding of the domain and business matters. This does not take a lot time, neither is hard, but makes you feel good at your job.

Never be afraid of asking. Asking is a real power!

Be curious and interested, don't think about your image - think about people's and project's goals. For a successful professional in software development, this is the only thing you should be interested in.

For easier question asking I suggest you to try the 5 Whys technique.

share|improve this answer
add comment

How do you become faster at walking? You can walk for half your life and still be a slow walker. You learn to walk faster by increasing the pace at which you walk.

How do you become a faster driver? You can drive for 20 years and still be a slow driver. In fact you might even drive more slowly than you used to. You learn to drive faster by driving at a faster pace.

With anything, you push yourself well beyond comfortable limits. You don't work longer hours on these. You do short, intense, very uncomfortable hours. I'd say one very difficult programming task a day is worth more than doing a year of simple scripting.

Learning to think on difficult questions faster is the exact same thing. You do it by pushing yourself. Push yourself harder and once it's as hard as it gets, push yourself to go faster.

If you have a choice on picking difficult tasks, go for the hard ones that you're not sure you can solve. You can only improve yourself by being uncomfortable. If that costs too much, train. Tackle hard problems outside the office. Professional sports players train when they're not on call, why shouldn't the rest of us do it?

I have a fear of answering a question incorrectly, so I tend to get nervous which has an impact on my performance, especially at interviews and in meetings.

What is the worst that can happen? Will they fire you? Delay your raise/promotion? Look down on you?

You need the feedback to improve. Good managers love employees who are willing to make mistakes as they're the ones who improve fastest.

As with everything else, the best way to avoid being nervous is to force yourself to go through situations that make you nervous. If things go wrong, you will still be nervous, but know how to handle the pressure. If things go right, you'll lose the fear. Win-win either way.

share|improve this answer
add comment

Your Answer

 
discard

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