I don't know if my mindset is what lead me to programming or if this is a virtuous circle, but I value how I approach concepts, ideas and people interactions in life, thinking clearly and consciously about problems and situations, including people problem, and I'd not be surprised to learn these things could be linked. There is also some creativity through out-of-the-box thinking to come up with solutions to random problems.
This stuff can be trained through other (analytical) activities than programming too, of course.
I do a lot of programming in my spare time and I don't see clear drawbacks specific to programming.
Approach life positively, be open-minded, be patient, your opinion is not necessarily the right one, don't be over-confident, spend energy into understanding the perspective of other people, etc. All this should be applied to programming too as soon as you work with other people anyway.
Programming does not make you antisocial in itself, and can certainly actually help if you leverage and transpose the rights skills at the right time. If you are the kind of people who are very analytical, even in interactions with people, that's a strength that can make you a very lovable, trusty person if you don't make it creepy. It can help you provide balanced, reasonable, valuable insight to someone who is confiding in you for instance. People may trust you for avoiding saying pleasant but false things, which makes your pleasant feedback more trusty. You'll find pleasant but true stuff to say anyway, thanks to your problem-solving mindset.
I also spend a lot of time with various people (most of them not being programmers) and going outside, and that's also a very important aspect of who I am. Programming does not prevent this.
1) Programming is a sedentary job, if you don’t take care of yourself (some sport, weight lifting, something keeping you active) you will feel physical strains over time.
2) Burnout is a possibility, I’ve seen programmers that had burnout, not self diagnosed but actual burnout. It was not pretty. Ever since I try to watch out for my mental healthy. It is easy to be put under enough pressure to break or even put yourself under that pressure (imposter syndrome …)
3) General negativity and naysaying. Part of the job is finding problems, debugging and generally poking holes in ideas so you don’t waste a lot of time implementing stuff that is impossible to begin with. Don’t let this become a part of you, don’t even let this take over in your job. It will rob you of the joy of programming.
That is what I gather from articles I’ve read over time and from myself. I am not aware of any research, just anecdotal evidence.
When you spend a lot of time concentrating your attention (as we do when solving our engineering puzzles) you tend to stay concentrated. It becomes a lifestyle.
And when you spend a lot of time concentrating on ideas, you tend to stay concentrated on ideas. Ideas are your world.
But ideas are not the world. The world is infinitely larger.
And concentration is brother to blindness. Which is to say, concentrating on X leads to ignoring Y, Z and Q.
Pardon me if this is vague.
As a solution, everyone will find different things that work for them, but doing things that have no relation physically/mentally to work (screen time, high logic use, software related problems, sitting) and essentially are on the opposite end of the spectrum, like hiking, swimming, tennis have helped for me.
- How do I know that this is true?
- What would otherwise have to be true for this conclusion to follow?
- How can I bisect this process to test a hypothesis?
So much wishful thinking and jumping to conclusions could be avoided if programming (and debugging more specifically) is a training to viscerally understand the scientific method.
There is probably also a virtuous cycle which reinforces how the scientist and engineer view their code, so it may be hard to untangle how much of that thought pattern was "innate" vs learned.
I think your question is interesting and I wonder if it may depend (in part) on one's motivations for writing software.
Problem solving is dominant in my way of thinking which can be good or bad depending on the context. It's helpful for giving advice but terrible from an empathetic and listening standpoint.
On the negative side, I have hard time reading emotional tone in text.
It does not aid in communication nor soft/social skills.
Check the "References" section on the above for a list of papers.
So, again, not a known neurological effect of programming, but an interesting correlation I've observed between many of the best programmers I've known and the condition of aphantasia.
There's also an effect on couples - my mother became radically more rational thanks to living with my father, an ME.
The other aspect: you don't put up with bullshit as readily especially of the propaganda/lying forms so common today.