Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Sometimes I get my best work done by having another co-worker looking over my shoulder while I explain my problem and the code to them. Or by teaching a new co-worker about our code or current issues. Rarely did the co-worker actually give me new information (though they might have spotted some obvious things I missed), but it seemed like the actual act of trying to tell my problem to the co-worker then made the solution obvious to me.

However, I have recently taken on a new job where I am the sole programmer, so I no longer have coworkers to go to, so I'm getting stuck and frustrated more than I'd like to. (The company consists of me, the CEO, and a part time designer)

Has anyone been in this situation before? Are there any solutions to this situation?

edit: One of the things holding me back, is that I can't ask many of the questions to my usual group of twitter or online friends because of NDA concerns.

share|improve this question

2 Answers 2

up vote 10 down vote accepted

How about Rubber Ducking?

See ThePragmaticProgrammer, p. 95. (The footnote (7) explains the origins of the term)

Place a rubber duck on your monitor and describe your problems to it. There's something magical about stating your problems aloud that makes the solution more clear.

DanielDennett has a good theory for why this helps. ...consciousness developed as a way to internalize talking to oneself. Speaking words triggers parts of the brain involved in moving the diaphragm, tongue, lips, vocal cords, etc.. Hearing words triggers parts of the brain connected to the ears. Speaking aloud can be a bad survival strategy, especially when you're thinking about the chief's wife, so we developed consciousness as an internal monologue. It works, but it doesn't exercise as many areas of the brain as speaking and hearing your own words...

share|improve this answer
1  
Thanks... Is there a way to do that and not feel like an idiot? :) It looks like the correct answer, so could you expand on it if you've ever actually done it in practice before? –  Bob Nov 6 '11 at 14:02
1  
@Bob: There isn't much to expand on. I personally don't need a rubber duck, as I like talking to myself aloud when I'm alone and that helps too. It's the process of forming a good formulation that will bring you the solution. Same can be achieved when writing questions on SO and thinking of an illustrative example. Read the linked page, it has some more details why this works. Also, no need to be embarassed if it solves your problem, just talk away. :) –  Xeo Nov 6 '11 at 14:06
2  
@Xeo - explaining the concept of "Rubber Ducking" would make this answer a lot better. –  ChrisF Nov 7 '11 at 12:47
    
it's really the only thing holding me back from accepting it as an answer. –  Bob Nov 10 '11 at 12:40
    
@Bob, ChrisF: I will edit the answer tomorrow, as I get access to a real PC then. Editing from my iPod Touch is a hassle... –  Xeo Nov 10 '11 at 15:27

Use StackOverflow, codereview and this site. Ask questions, use the chat feature.

Get some people you respect onto your IM, so you can bounce ideas of them as well.

edit: You don't have to go into the exact details/specifics. Most of the time, giving a representative example or use case should be enough to get a useful answer without compromising your NDA.

share|improve this answer
    
Sorry, thank you for reminding me of of why I asked the question here in the first place. My question has been edited. –  Bob Nov 6 '11 at 13:51
1  
@Bob I quite often start posting a question on StackOverflow, but then in the process of formally defining the issue I work out where I've gone wrong. Same can be achieved with a whiteboard if you don't mind talking to yourself! –  James Nov 6 '11 at 13:58
    
@James sort of a use of this answer with the rubber ducking one... I noticed a similar suggestion was made on the rubber ducking site itself. Thanks. –  Bob Nov 6 '11 at 14:20

Your Answer

 
discard

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.