You haven't mentioned which hard skills you've already mastered.
* Abstract reasoning - everything in programming is abstraction
* Critical thinking - is the first way you've thought of to solve something actually an optimal way? how could you improve it?
* Problem decomposition - solve large problems by breaking them down into smaller component problems
* Multiprocessing/multithreading and IPC - at some point one process/thread isn't enough
* Networking fundamentals - may not contribute directly to better programming per se but will for sure help with debugging/troubleshooting