> (happy to receive recommendations)

One of the best books that helped me early in my programming career was "Getting to Yes: Negotiating Agreement Without Giving In". Some other books helped to varying degrees.

But the tough news is that, in my experience, the best way to learn people skills is in a very "public" way: by interacting with people. I wish I had understood this earlier and tried to learn less from books. Learning a foreign language is not much different. You make far quicker progress by speaking with other people than from any other method.

I did attend a people skills seminar that work paid for and found that to be super helpful. That's where I had the genuis realization that you have to actually practice interacting with people to get better at interacting with people! Duh! I would highly recommend any one or two day seminar where they include practice time with the other participants. It's a safe place to make mistakes and learn - that's what everyone is there for. Accidentally walking into the women's bathroom was not one of the mistakes I planned on making there, but hey, it was possibly the best place ever I could have made that awkward mistake. Ha!

In any case, lots of progress is attainable. I went from being (sometimes) nervous if I had to speak to a room full of three (!) people, to now having made dozens of public presentations in front of audiences as large as two hundred people. I've taught many classes. I have even done sucessful sales pitches, when there is no one better around. It took me decades, and a lot of mistakes to get where I am. Am I a super star at people skills? I don't think so. But I am way better than where I started and I look forward to and enjoy situtations that usually would have made me nervous in the past.

So if you really want to improve your people skills, you'll have to put yourself in social situations. Small doses are best at first. Like anything you want to learn, you should have a specific objective for what you are trying to learn each "practice session", and a way to measure success. Like learning a musical instrument or foreign language, if you practice fifteen minutes a day, you'll see very steady progress. If you practice once a month for a few hours, you probably won't progress much at all.

I hinted at a problem with this before: when you fail at learning people skills it's in a public way. Social mistakes can have social consequences. The point here is that you might want to avoid doing much of your practicing or "experiments" in social groups that are important to you: work for example. That doesn't mean you can't learn some things at work. Study your co-workers who are great a people skills. Spend as much time with them as you can (or can bear to) and pay careful attention to how they interact with others.

But try to find other places for the really difficult learning. Does everyone who joins a wood working club do so because they want to make a table? Or is it possible some of the folks there are hoping to meet their future wood working wife? Who cares? Same for you if you joined a club that has a minor interest to you, but you want to use it to improve your social skills. And I don't mean at all to imply that you can just do social experiments on people in the club with no regard to their feelings and to just use them. Of course not. But if you make a really embarassing mistake, and just cannot bring yourself to face those people again, well, it's certainly not going to effect your ability to pay rent, is it? It's far more likely you'll make some new friends there. Casual friends, permanent friends, temporary friends, your best friends, or even if you make no friends, it's just a club. People move on and forget.

Finally, I would also say to only do what you really want. There's plenty of room in the world for people who are good at something other than people skills. But if you do manage to make improvements, I think you will see it improve your life in every area in ways you can hardly imagine now. Hope some of that helps! Best of luck.