Skill knowledge, such as programming or writing, takes time and practice.<p>Deep skill knowledge, the ability to work on hard problems, requires that you practice working on hard problems.<p>Studying the underlying knowledge that supports skilled performance, in programming that would be computer science, especially things like algorithms and data structures, can speed things up, but the practice is essential.