I remember that I was good at programming in high school, but when I finished it, I didn't do it like a job for exactly those reasons that you have listed... I know that I can do it, but I also know myself, which means that when I would hit that "coding wall", I couldn't sleep, talk, or take a break until I solve it! And that is a huge problem... Personal life suffers, and family, friends, and you...
Being a coder is a hard job and you have to create a mentality to disconnect immediately when you get up from that computer chair... :)
I have picked this post on behalf of the @OurPick project which will be highlighted in the next post!