I have been in software development for over 10 years now and I have changed quite a bit. I remember many of the first projects I worked on where I had zero ideas how to do some of the things that were needed.  I always found a way to do them, but when asked how, I often said, "I do not know". I am still occasionally tasked with things that I do not necessarily know how to do and I will still say that I do not know how to do it, but the difference now is I add on "but I will figure it out". If we always know how to do everything our jobs will quickly become boring. Our managers are not looking for us to know how to do everything, but they are looking for us to be able to figure out how to do it. Another important thing to be able to do is to have solutions to problems. Sure, something may seem almost impossible, but your boss is not looking for you tell him or her that is impossible.  They are looking for you to come up with solutions. Instead of saying "I do not think we can do that", say something like "this task is complicated, I believe I will try [x] or [y] to see if I can solve this problem". If you go to your manager with a problem make sure you also bring some possible solutions. This shows that you are a problem solver. This does not mean that you need to be able to solve everything yourself. Your manager is there to help, but help them help you. I would much rather have a slightly less skilled developer working for me who is a problem solver than a very skilled developer who needs everyone else to solve their problems for them. When I interview people I do not want to see someone who knows all of the answers immediately.  I want to see how someone thinks under pressure.  I want to see that they are problem solvers and can come up with solutions, or at least possible solutions. I want to see someone bounce ideas off of others. "I was thinking of trying [x] to solve problem [y]. I believe it will work because of [a], [b], and [c], but I cannot figure out how to get around the problem of [z]. What are your thoughts?". Many of the great problem solvers in the software industry have a similar mindset. They love difficult problems. They enjoy making the impossible possible. They are the type, when asked how they might solve one of these difficult problems, that will answer with a "no freaking idea, but I will figure it out". This type of attitude is also contagious. Newer, younger developers will see this type of behavior and try to copy or mimic it. If you do not enjoy problem-solving then software development is probably not for you. Always knowing the answer is boring. Most of the time there is more than one right answer, and more than one wrong answer.

Instead of saying "I do not know how to solve this problem." try "I am not sure how to solve this problem, but I am thinking of trying [x]."

Instead of saying "I am having a problem with [person's name]." try "I am having difficulties with [person's name]. I believe [y] may help.  What are your thoughts?"

Instead of saying "This task is impossible." say "This is a difficult task. I will need to come up with a few possible solutions. Do you mind if I run some ideas by you after I dig in a little deeper?"

Having the right attitude can take you far in this industry.