Design pattern is a general reusable solution to a commonly occurring problem
It is not compulsory, but using design pattern will reduce you work and the code will be in a structure manner
Design pattern can be used in any language you write the code
for basics of design pattern check this link
Design pattern