I have to give it to Dan -- everything he writes is interesting. He also contradicts himself a lot. For example, his whole piece about goals (or lack thereof) can basically be summed up as: (1) I don't know enough to give an authoritative opinion on this topic, (2) a year from now I will probably think what I'm about to say is stupid, (3) here is the best way to do X based on my anecdotal experience. Having said that I appreciate Dan going out of his way to point out how unqualified he is to give advice before he gives it, because lots of people give unqualified advice on the internet and at least Dan lets you know what you're getting. Actually Dan is a very smart and perceptive guy and probably more qualified to give this kind of advice than most people, which is why it resonates.
Here's the thing: in this case, Dan is catastrophically wrong. The crux of Dan's argument is this:
To get good:
1. Learn how to build habits
2. Habituate doing the things that you want to get good at in an easy-going, non-threatening way. Recognize that this will take time.
3. Once you've done that, set goals.
Science says otherwise. Take the first sentence from the abstract of this study published by the American Psychological Association, for example:
Results from a review of laboratory and field studies on the effects of goal setting on performance show that in 90% of the studies, specific and challenging goals led to higher performance than easy goals, "do your best" goals, or no goals.
Another study found that low performance is associated with either (1) poor "personal discretion," (2) unachievable goals, or (3) "do your best" goals with no creativity involved. Other studies have found repeatedly that goals improve individuals' work within teams or organizations. This is a relatively new field, but research in it has been extensive over the past few decades (and a lot of it has happened right here at Wharton).
The phenomenon that Dan himself seems to be experiencing is that motivation declines when the goal is "get better at X." This is exactly the wrong way to think about accomplishing something because it doesn't ask the essential question -- why? It's the "do your best" goals that the studies above reference that frustrate so many would-be gym-goers like Dan, and the way to achieve them is to change the context.
People come to me all the time with the basic question, "I want to learn programming. How should I start?" None of these people have any idea why programming would be useful to them, or indeed what you can achieve with programming; they just have a vague sense that it would "be a good thing to do." Most of the kids in the Computer Science course I TA'd as a freshman were not there to learn how to be computer scientists but rather because they thought that programming would make them better people.
It turns out that many people who start out with this perspective fail. They don't necessarily fail the course, but ask them to program "Hello, world" in 3 years and they won't have any idea where to start. Similarly, most people who decide they want to go to the gym "because it's a good thing to do" fail because there is no motivation to do so.
I advise these people that in order to usefully learn programming, they need to start with a project they want to accomplish for which programming is a possible way to successfully complete the project. Programming is not the end goal: code is merely one possible implementation. When you approach the problem this way, what was once an arduous task becomes simply an exciting step on the way to building something you can be proud of. Similarly, if you start out by saying you want to look fit enough to pick up girls/guys in time for beach season, going to the gym becomes one possible way to reach that goal, and a much less awful task. It also becomes a repeatable one because you know what to do the next time you have a similar problem and you're able to identify how your skills are useful.
In short: there are many different kinds of goals. If your goal is to get better at something, you'll be more motivated to do so if you put the task in the context of achieving a specific, achievable, and creative result you can be proud of.