When you’re stuck with a programming problem, the easy (and even appealing) way out is to ask for help. After all, not only will you solve the problem faster, but you'll probably also end up with a much more elegant solution than you could've come up with by yourself. At first it can be enlightening, but the big issue with the continued use of this approach is that you’re not becoming better at solving the business problems on your own.
Learning through trial and error is one of the best ways to understand a problem and it’s underlying causes. By diving into a problem you get to know your system and tools much deeper, ultimately leading you to become a better software engineer.
If you're used to ask for help, changing to this way of learning might not be easy, but it’s not that hard either. You have to realize that you don’t need an experienced developer holding your hand throughout your career. Learn to be comfortable with not knowing, and look for a reliable source to guide your learning. There are tons of great open source repositories you can explore, and hundreds (or thousands) of books written by excellent programmers who document their knowledge for the less experienced. Use that. If you can, find a mentor or follow someone you admire. And lastly, try to teach something to the less experienced. It’s a great way to develop a better understanding of a subject you already know and want to master.