is civil engineering hard