Seems to me, you’re dealing with a micromanager.
Personal recommendation - put things into writing. When you get your assignment verbally, write it down with assumptions you have to make to fill the gaps, and send it to the person who gave you the assignment, with the person responsible for your teams’ results in CC. Basically an “I heard you, and I’m starting the work as described below”.
Communication is one of the most important skills in software engineering, and this way you get to practise it while probing the social waters of dealing with management.
Try it, see how it goes, adjust accordingly.
Nope. You just grow confident to not notice the blunders, and learn to recover fast enough to not persist when it would be detrimental.
Native speakers making mistakes or not caring to stick to the rules is one of the forces behind languages’ evolution.