This article was good until it got ugly.

"As a result I've become more focused, more logical and smarter. But I've also become more detached from everyday life and less fun to hang out with. I'm not sure yet if the change is permanent, but I certainly hope that it can be undone :)"

I agree that coding is a constant learning process. But to suggest that this in some way makes you more detached from the world, and/or less fun to hang out with is ridiculously biased. I would like to believe the opposite is true. Programming and computer science in general have given me a sense of appreciation for the world and nature's algorithms that I could not have fathomed before. The social applications of strong logic and focus are infinite. Choosing to learn how to learn, or learning to program, does not mean you are choosing to become an introverted nerd or an extroverted socialite. I've learned nothing is really black and white (binary) like that.

As an example of how being more focused and logic can help, consider the scenario: You're talking with your girlfriend about who gets to be the designated driver one night, and all of a sudden the extra back rub you gave that one day three summers ago gets brought up as a bargaining chip in the argument. Reminding yourself and the other party to think logically and focus on the task at hand and not bring up things that are sure to spark dissension helps reduce these digressions and tangents during conversation. I think it is important that both parties in an argument at least can agree on what they're arguing about, and also at least on the scope of the argument. Now, I'm not just better at debate because of coding. My point here is that my life is enriched because can overlook the little things a lot more than I used to. I won't lecture my son for leaving his towel on the ground while it is wet when we're on vacation, because I have the focus to keep in mind what really matters: we're on vacation to relax and enjoy ourselves. This kind of easy-going behavior takes consideration and patience, given my short temper. Both consideration and patience are crucial to becoming at least a functioning programmer. It is even more than just patience and consideration though that are real life applications of traits strengthened through coding. When my friends and I are joking around, we tend to just morph and change jokes in a recursive manner to keep them interesting and to keep our lives exciting.

Being original is hard to do, and lots of original material is just old material tweaked a little bit. Our friend's name was Diego during the first iteration of his nick-name. Recursively and through several iterations, it changed to Diegs (Dee-eggs). Which changed to D-eggs. Which when he was very drunk became Grade D eggs. Which changed over time to just "Eggs." And you can use your imagination to guess how many different ways you can make eggs, and I can bet you almost all of them were used, and also used in conjunction ('fried, scrambled eggs') to address our friend, Diego.

Now, you sir, should not be convinced that learning to program makes you less attached to the world, and less fun to hang out with. On the contrary, you should embrace your powerful logic and focus and use it to enhance your life experiences and your disposition rather than to detract from them.