多项选择题

以下关于硬件工程师需要掌握的技能描述中,哪些是正确的?()

A.熟悉常用电子元器件的功能与特性
B.能够阅读与理解电路图
C.掌握PCB设计原理与软件使用
D.精通C++编程语言
E.了解硬件与软件的协同设计流程