I forget the number of times I have written the same code in a different language. Technology changes all the time. If you are a professional developer, it may change from one project or task to another. How can we learn, use, and unlearn stuff so rapidly? I present a few points to ponder in no particular order.
Think in abstractions and patterns
The better your capacity to abstract and think in patterns, the more reusable your knowledge. Apply what you know works. Technology itself is an abstraction, think community and tools.
Read on the topic
Prepare. Go deep. Read a book. Read what the internet has to offer. The more prepared you are, the better you perform. Time is ticking.
Write a blog or book
Share your knowledge with the future you. A better you. Others may find it useful too. Improve over time.
Learn emotional detachment
Don’t reinvent. Don’t be too attached to your work. Appreciate feedback. Change. Move on. Unlearn. Relearn. Collaborate.
Experience is never going to substitute the fact that you need to be creative. Think originally. Have the courage to implement your ideas. If you don’t act, you’re getting nowhere. Practise.
Good tools are essential to doing a great job. Tools don’t have to be expensive, some of the best tools may even be free. Automate repetitive chores. Don’t hammer a screw, aka use the right tool for the right job. Methods and practices are also tools.
Listen. Watch. Observe. Every feedback you receive is an opportunity waiting to be explored.
Enjoy and wind down
Enjoy your work. Enjoy your life. Wind down. Difficult problems take time to solve. They may be easier for others who have already solved similar problems before. Socialize with them.