Getting out of the beginner mindset is as important as learning new skills to step up in your career.
Here are some tips that I believe can help in stepping up in your career.
The can-do attitude
All sorts of problems can be solved if you work on them long enough. Do not give up if stuck. Saying “I am stuck, but I have tried X, Y, and Z. Do you have any pointers?” to your lead is much better than saying “This is beyond me.
Read a lot of Code
Not just code in the projects that you are working on, but reference/framework source code, open-source. Ask your fellow developers, perhaps on Reddit too, about the good open-source examples for the language/tools of your choice.
Always have a Side Project
Do personal side-projects, share them with people, contribute to the open-source community. Reach out to people for help. You will be surprised how much support you can get from the community.
Fix it the right way
When given a problem to solve, try to identify the root cause and fix that instead of fixing the symptoms. And remember, not being able to reproduce means not solved. It is solved when you understand why it occurred and why it no longer does.
Never assume anyone is Stupid
Have respect for the code that was written before you. Be generous when passing judgment on the architecture or the design decisions made in the codebase. Understand that code is often ugly and weird for a reason other than incompetence.
It’s okay to not know things.
You don’t need to be ashamed of not knowing things already. There are no stupid questions, ask however many questions that would allow you to work effectively.
Limited by the title
Don’t let yourself be limited by the job title that you have. Keep working on self-improvement and go beyond your title.
For example - If you are a Android developer and you are curious in knowing what is happening in world and you think you need to learn data analytics/data science for that then you should go ahead and learn it.
Do your homework. Predict what’s coming down the pipe. Be involved in the team discussions. Even if you are wrong, you will learn something.
Get Domain Knowledge
Learn about the domain that you are working with. Understand the product end-to-end as an end-user. Do not assume things, ask questions and get things cleared when in doubt.
Not my Problem
Avoid what is known as “Somebody Else’s Problem Field” behavior.
Learn to communicate effectively — soft skills matter. Learn how to write good emails, how to present your work, how to phrase your questions in a thoughtful manner, how to give feedback, how to take feedback.
Don’t be a Know-it-all
Sit with the senior developers, watch them work, find a mentor. No one likes a know-it-all. Get hold of your ego and be humble enough to take lessons from experienced people.
Blindly taking advice
Don’t just blindly follow the advice of “experts”, take it with a grain of salt.
If you are asked for an estimate for some work, do not give an answer unless you have all the details to make a reasonable estimate. If you are forced to do that, pad it 2x or more depending on how much you don’t know about what needs to be done for the task to be marked ‘done’
Take some time to learn how to use a debugger. Debuggers are quite beneficial when navigating new, undocumented or poorly documented codebase, or to debug weird issues.
Try to turn any feelings of inadequacy or imposter syndrome into energy to push yourself forward and increase your skills and knowledge.
Think more than just code — know that your job is to provide solutions to the problems and not just to write code.
I completely agree with his guidance. I have experienced the same and I will suggest you to take his advice.