Both of mine were at their worst at about 3/4 years.
DD is an absolute angel now, never ever ever breaks a rule, always does as she is told, drives me to frustration with her mess but that's all.
DS1(3 1/2) is a little shit, there is no other way to describe it, he and I have a different language, I say something, he stares at me, obviously he mustn't understand English or something. It's still not terrible behaviour though IMO, he doesn't listen, everything he thinks is fun that I say no to, he ignores my no, everything he thinks is boring that I tell him to do, he ignores, BUT he still knows just how far he can push it, he won't get violent or swear for example but he will shout No and tell em he's leaving home
Just persevere and tell yourself 'It's because he is four', DP&I are saying 'it's because he is three' very often atm. but I'm consoled that DD was like this at this age.