I am a particular person, I always say the truth, and I have serious difficulty to avoid saying what i think.
The only one situation that makes me able to stop my words is when I realize that my thoughts can be really offensive for the other people.
For example if I think that someone is ugly I will never go to him saying:
"Hey, try to improve your aspect, you are ugly"
(if the guy/girl isn't hurting me with the same words)
But usually, even if I don't say anything, people clearly understand what I'm thinking, cause I'm really expressive.
For example, some days ago a girl in a whatsapp group, sent a picture of her wearing a new t-shirt and I replied like:
"Nice t-shirt! It makes you look skinny!"
In that moment i didn't want to be offensive, it was a compliment, but considering that she is a bit "overweight" it looked like:
"Nice t-shirt! It hides that you are fat!"
When i noticed the possible misunderstanding i replied again explaining what i was trying to say but everybody assumed it as something offensive and my girlfriend told me that I didn't look nice with my words.
The good part about it, is that everyone ask me for a real opinion, cause they know that I will always say the truth even if it isn't nice.
I'm a promising young programmer in his second job experience with a real contract and (for someone with my age) a good salary.
This aspect of my personality sometimes can be a problem with my colleagues, making them think that I feel superior to them or just invading their own space.
I still really like to be helpful and I always offer myself to help when someone is in trouble with some code.
This is a nice thing in my opinion, but I met colleagues who felt offended cause i had less experience than them or just didn't want me to be there like i was really invasive.
Do I have to assume this as my personality and keep living this way or I have to try to moderate myself? If yes, how?