- The most time every engineer (and team in total) is spending on reading a code not writing. Optimizie for reading. Become a good writer. The best documentation is a well written code with comments, short simple functions, no abstraction.
- Instead of wasting time on reading about which design pattern is best and applying over 9000 patterns every time only because you know them, thinking what architecture you need to choose, benchmarking microperfomance - just do it. Just write a simple code which will solve a simple problem. If you just need a single constant or a plain function, define it and not write a whole Interface, Class with some patterns. Later you can change it.
- Invest time in self-development. Keep reading, learning, experimenting. (Tech < 50%)
- Learn your tools very well (OS, IDE and everything else you use every day), all the shortcuts and tips.
- Learn basic math, calculus, algorithms, data structures, software engineering principles and patterns
Can't say which one would be "greatest". Probably the greatest would be - being flexible and combining those "discoveries" together. But I definitely can say that productivity has no connection to programming, it works in every aspect of life.
So, learn the life.