Two categories of books had the most profound effect on me. They were novels and philosophy books. As a child, I had a very imaginative mind. After reading a novel, I would do a remix of the novel that swapped out one of the main characters with me. So I became very introvertive, mentally remoulding myself into a fictional hero. And since the more you think about yourself the more you know yourself, I was already laying the foundation of a deep self knowledge. Then when writings of Aristotle and Plato got into the mix, things shut up to a new level. At age 14 I was obsessed with finding answers to questions about my life and the world around me from the perspective of a philosopher. Like every other childhood obsession, I outgrew my obsession with philosophy but the seeds it sown in me lived on. It helped me form a habit of thinking hard about everything and from an impersonal and long-term platform. Like there are two "me": one "me" is the one in the situation I am analyzing and the other "me" is the objective judge looking in from outside. And that way I found it much easier to identify my weaknesses and my strengths.
I sometimes regard the world as one giant laboratory and I am both a specimen and a scientist in that lab. That it is my duty to identify all the unique features of this specimen, me, and to give it features I would like it to have. And that my entire life is an experiment.
The merits of my approach to knowing my strengths and weaknesses are debatable. But some things about it are not. I don't expect you to unfit yourself in the society and acquire a child-like creativity. And not everyone would like to regard his own life as an experiment. However, if you want to know your strengths and weaknesses, you will have to start with an empty list. You will need to put aside your preconceptions. You will need to objectively evaluate yourself. You will have to be creative enough to describe yourself in your own words, and not in the words of another person. And you will need to stare your weakness in the face like an unemotional judge, and letting it reveal itself fully to you. Knowing your strengths is very easy and you, most probably, already do. The tricky thing about strengths is learning to not use them as a cover up for your weaknesses. No one removes the effect of a rotten egg by mixing it with a lot of good eggs.
Knowing your strengths and weaknesses makes a lot of major life decisions easy. You will find the erratic winds of life more manageable and you won't be anyone's pawn. It also makes you a more daring and dear-ing person.