工程师必须具备的素质有哪些