工程师应该具备哪些能力