Along with experimenting with code, other activities that may also yeild good results are reading articles or blogs written by senior software practioners, listening to podcasts, writing, and teaching.
Many articles written by senior developers are very insightfull, because they write about things that they have learned in the trenches. Some are also thought provoking and challenge conventional wisdom. Those who prefer listening will find that some podcasts are extremely informative. Writing and teaching is also a wonderfull way to learn. Both these activities make us think deeper about a topic and very often I have been surprised to learn that there is so much more to a topic that I thought I already knew well.
Jim mentions in his articles that most people who followed his advice were very pleasantly surprised with the results.