Many employers may ask you to sign a Non-Disclosure Agreement, or NDA for job interviews, as a condition of employment, or for consulting. Generally, an NDA prevents you from using or disclosing the covered information. An NDA is a legally binding contract, so you shouldn't sign one without carefully reviewing it with a legal advisor. I am not a lawyer, of your legal advisor, and this isn't specific legal advice. This essay expresses my opinions and experiences for purely informational purposes -- you're crazy if you base critical legal decisions on some article you found on the web.
Before even considering an NDA, you should ensure that you would receive something of value for signing it. Signing any legal document -- especially one you didn't write -- creates a liability for you. In investor jargon, you're writing an option for your money and time, which the holder might exercise in the future. Your counterparty (the business) might decide to pursue damages even if you do nothing wrong.
For this reason, I don't sign NDAs to offer folks free advice. "Let me tell you my app idea" shouldn't need an NDA unless you're expecting a job offer.
If I don't expect a benefit to myself, the best I'll offer is a "Friend-DA." In other words, I'm willing to pledge my honest intentions as a friend, but I'm unwilling to commit to any legally-binding confidentiality agreement in exchange for nothing. Why assume the legal risk for no possible reward?
When I am willing to sign an NDA, I expect reasonable terms. In general, I require:
The period of non-disclosure needs an expiration date for the simple reason that human memory isn't great. How many bits of NDA information can I keep track of at once? Also, protecting information takes time and resources, especially if I have any records which must be kept secure.
The NDA should explicitly identify what information it covers as well. If the company is making batteries, covering "information and know-how for manufacturing batteries," is OK. I don't trade in battery manufacturing Covering "programming techniques," isn't OK; I know how to program, and I intend to disclose and use it. Programming is my trade; if they happen to teach me something new about programming, too bad! They might learn something about programming from me also.
There is always a chance that a company will end up in court. If that happens, the court might order you to disclose a piece of information. The contract should allow that.
If the company publishes a press release, "we make magic batteries," I should be allowed to share the fact that they make magic batteries. If it turns out that USA Today wrote twenty years ago about magic battery technology, I should be allowed to discuss what was in that article. An NDA which requires you to protect public information is unfair.
To sum up, while I'm not providing legal advice, I would take great care in signing any NDA. The terms of any NDA should treat you fairly; you should have some expectation of reward for keeping information secret. NDAs open you up to liability and take work to maintain. Any NDA should also limit the scope of what is covered and how long. Don't write a business a blank check.