Standard English
You can say, a person has a (good) knowledge of something:
He has an excellent knowledge of Putonghua.
The successful candidate will have a good knowledge of PowerPoint.
This form is used in spoken and written English but is quite formal.
In formal written English, usually in the context of job applications, we can say, a person has obtained, gained or acquired a (good) knowledge of something:
In my current job I have gained a good knowledge of Microsoft Excel.
We can also talk about someone having a specialist knowledge of something:
You will need a specialist knowledge of language teaching software such as...
When we are speaking less formally, instead of saying, to have (good) a knowledge of, it is far more natural to use the verb to know (a lot) about something:
He knows a lot about computers.
She knows a lot about the garment business.
In everyday spoken English, it would sound excessively formal and unnatural to say, gain a knowledge of sthg. Instead we would use learn about:
I learned a lot about banking when I did a work placement at HSBC.
The job is boring but I'm learning about the travel business, which is useful.
He worked in the jewelry trade for three years and learned a lot.
Back to common errors index