Let's start with "why"
It's been almost a year(11 months to be precise) since I joined my first job. However, I got my first client in December and learned some very important lessons which I think every aspiring developer/student should know.
So if you're trying to land a developer job or if you're just starting one, I'm sure this article will help you.
1. You'll eventually find the solution.
I know we shouldn't give up and keep trying to solve a problem but sometimes it just becomes too hard. Oftentimes we just give up when it becomes too hard but when you're in a job that's not an option.
These are the times when you've to ask for help, you've to make the best use of google and you've to just keep trying. Most of the time the answer is just in front of our eyes.
Just don't give up & you'll find a solution.
2. Ask for help.
Now I know this sounds simple and it is. However, it's not always the easiest thing to do especially if you're shy or introverted(or maybe both).
Personally, I was terrified of asking for help at the beginning mostly because of imposter syndrome (it's a whole topic on its own).
I think apart from being shy and/or introverted this is the issue with most developers and the only solution is to take a deep breath and send that message asking for help. Trust me you'll thank me and the person who helps you.
Most of the time senior developers don't reply because they're genuinely busy and they know if you just give some time to your problem you'll find a solution. So, I don't see not getting a quick reply as something negative.
One more very important piece of advice when asking questions is to try everything you can possibly do. On top of that when you ask questions make them as elaborate as possible without any fluff.
Sometimes your problem can be solved with a single message.
3. The easiest solution is the right one.
Now, don't go out there implementing the most inefficient solutions just because they're easy. However, you don't always need the most efficient solution either.
As a developer, we all have at least a basic understanding of time and space complexity(if you don't I'd highly recommend learning some basics).
One thing many developers ignore is the time it takes to develop the solution and code readability for other developers.
This is why I believe in implementing the easiest possible solution which is easy to understand(readability) and doesn't take up all our time.
Now there are obviously exceptions to this rule like maybe some software used in hospitals can't be rushed. Even in such cases, code readability is still equally (I'd argue more) important.
Simplicity is the solution to all problems.
I hope this post helps someone and I'd love to listen to others' opinions on this topic as well.