Learning is the bottleneck
... You can’t accumulate all that knowledge just by writing some code every day. Read books, discuss them with others, read other people’s code, experiment, draw on a whiteboard, or take a walk and just think.http://verraes.net/2014/10/software-design-is-just-theory/