Make sure before you ask a new question that you've spend time and effort working on your problem and attempting to find a solution through existing resources (both on SO, and the internet at large).
If you have clearly spent the time attempting to do the work yourself in a question that you ask here, and someone else is able to find an existing question on SO that answers your question it may be closed as a duplicate. If you made a good faith effort to find it and couldn't then that's fine. Someone helped you find the solution you needed, you got your solution, and the site stays less cluttered by having the question closed as a duplicate. This is all perfectly acceptable.
If there are questions that you know are related, but aren't sure how to apply their answers to your problems consider linking those other questions in your questions. Explain that they seem relevant, as well as why the solutions don't work for you, how your question is different (preventing you from using those answers) or what aspect of the existing answers you don't understand.
What you want to avoid is just asking questions here without putting any time or effort into either trying to solve your problem yourself, or trying to find existing solutions. It's also important to not only do this work but to make sure it's clear to the people reading the question that you did this work. (Don't just say you searched elsewhere, that doesn't mean anything; tell us what you found when you looked, and why it didn't help you. Show us the code that you tried to write and explain why it didn't work, rather than just saying that your solutions didn't work. That's how we know that you put time and effort into trying to solve this problem.)