In short: it's always like this, sometimes more, sometimes less. And guess what: it's the main part of the job. As a developer you have to understand what the customer (your boss) needs (sometimes not what they say they want) and to figure out how to do that by yourself. It's nice to have colleagues you can ask, but it's like on stackoverflow. The accepted answer is not necessarily the right or good one. Often you have to work with bad documented legacy artifacts (code, api) and figure out what they do. Also the tech changes, you have to constantly keep up with changes and what was great years ago may now be outdated. My advice:
- Do not start coding until you are sure you understood what is to be done.
- if there is no user story to describe the task write it yourself
- write good tests for your code. It's an art. While thinking about corner cases you often find questions you did not think about at first
- if you don't know how to do it ask people around you, browse the web, read books. Develop the skills to figure stuff out. Most of the time noone knows the correct answer. It's your job to find it.
- do code reviews with others, usually both benefit from it
- write clean code
If you don't like your working environment then change it. Especially when you think you can't learn anything new there or it is no fun to work there. Go to meetings in your area (meetup or so) or online to meet other developers and ask them about their job. You get a feeling about what is considered a good job in your area. Good developers will always find a good job. Be one of them. As long as you think you're a god who can code anything, that's probably not the case. ;-) The best you can achieve is to be an expert in a very narrow field and to be good in some others.
You are aware that the impossible sections were on purpose to sell hint books and to make money with the telephone hintline which one could call being stuck?