I think there's something to be said that if you REALLY enjoy what you're doing you'll immerse yourself into it with infinite willpower, and most importantly, you'll be ridiculously happy doing it. There simply aren't enough hours in the day when you're highly engaged in something.<p>If you find yourself fighting doing what you think you like doing, and get distracted easily then maybe you're not really doing what you should be doing.<p>That doesn't mean you should stop being a software developer, but you should be aware of that.<p>Maybe it's different for everyone but back in the day I was really into gaming. I don't mean casual gaming either.<p>I mean playing 12 hours a day, and min / maxing the shit out of every game I played. Basically playing for maximum efficiency, constantly improving and focusing 100% of my attention to it, for literally 10 hours straight without moving -- but then doing that with various games for like 4 years straight. Needless to say I got very little sleep in HS and my early 20s haha.<p>Think about that tho. While you may think "oh it's gaming", it was really high intensity thinking and unlike programming, it also required very good reaction times (at least in the games I played, such as Diablo II, Quake 3, etc.).<p>When I lapse into inactivity periods in software development I always think back to those gaming days. Why didn't I burn out gaming, when mentally it was even more draining than programming?<p>The only conclusion I can think of is, if I reach to check email, reddit, HN or youtube instead of working on software developer related tasks, then I must not enjoy it as much as I think I do (which I've accepted). Deep down I do enjoy it, but I don't enjoy it enough to sit there for 5 years straight working on things 12 hours a day.