At the end of the day, we write code not for its own sake, but to solve problems in real life. After realizing this I abandoned several pet projects that were basically going nowhere and only taking up time--they were not designed to solve a problem.
Also if you don't start something the right way, it is quite difficult to fix it. I spend more time now thinking about appropriate data structures, project layouts, etc. before I jump in.
People matter. It matters that you are factually correct, but how you treat people also matters. Learn how to treat people with tact and consideration, even when you disagree with them.
2. If you're new in a programming language and you're deploying to production for an important customer, make sure you get a code review first.
3. Writing software isn't the important part, solving problems is the important part. (https://codewithoutrules.com/2017/07/10/stop-writing-softwar...)
4. Productivity is about doing less work, by avoiding waste. It took a while to get all the related skills here, and most of them don't have to do with coding as such. (https://codewithoutrules.com/2017/10/04/technical-skills-pro...)
5. Testing comes in different forms, each with its own purpose. Spent years getting to a place where I could articulate how to choose, and then I gave this talk about it: https://www.youtube.com/watch?v=Vaq_e7qUA-4&feature=youtu.be...