感谢分享:)写得很朴实。
没有做过任何coding的人可以做出非常优秀的设计,譬如对于宏观的enterprise solutions。设计也有很多种称谓,solution design,architecture design,application design。在某些情况下,拥有coding的hands on经验应该在设计上有优势,特别是那些对性能要求高的微观程序/系统设计 -- 譬如手机的应用程序,我想嵌入式芯片产品也应该归入此类。
还有,项目管理当然可以不懂硬件了。IT项目管理可以硬件软件统统都不太懂。这并不是我们愿意见到的,不过有时这是事实,并且在理论上有其成立的依据:)
谢谢回复
你说得很有道理,硬件功能的强大使得运行在pc上的软件有足够的系统资源去支持,而windows上完善的开发系统像.net和j2EE也进一步把软件开发从低层的coding中解脱出来,这些使得现在pc上的application development高度抽象化。可能随着modeling language的发展,需要做的coding越来越少,而设计者所面临的问题也从软件技术上完全转移到应用层面上。嵌入式系统在目前应该说区别还是很大的。像Operating system, driver, protocol stack这些东西是C/C++甚至assembly的天下,而且没有像pc上那样好的abstraction, 设计者所面临的经常是纯技术的问题。这就需要对硬件所提供的facilities以及各种protocol相对熟悉, 而hands on的coding可以帮助理解,对将来的设计工作应该是有很大帮助的。
不过现在像微软这样的厂商强势介入嵌入式市场,如果将来可以dominant的话,那么在嵌入式系统上作开发可能也和pc上差不多了。smartphone的市场已经有这种趋势了。这对传统的pc软件开发者/公司也是新的机会。
关于IT项目管理,想问一下你说的是不是侧重于上述的第一种情况,也就是pc上的软件项目?感觉管理这种嵌入式系统的开发,没有技术背景还是比较难的。可能如果team比较大的话最高的项目管理者就可以从技术管理上解脱出来,侧重于协调和人员管理工作,不过这其实是把技术管理的职责完全下放到下一层的management, 还是有些隐忧的,主要是对下属的依赖吧。感觉这一行业搞技术的跳槽频率比搞管理的高很多,(可能这里太小了吧)一旦掌握技术的核心人员跳槽就是釜底抽薪,特别是一些highly specialized embedded products。当然如果公司很牛的话就不太担心这一点。
呵呵,这些东西讨论起来真的是可以长篇大论的。不过也是很有意思的。有机会可以聊一聊。
不过现在像微软这样的厂商强势介入嵌入式市场,如果将来可以dominant的话,那么在嵌入式系统上作开发可能也和pc上差不多了。smartphone的市场已经有这种趋势了。这对传统的pc软件开发者/公司也是新的机会。
关于IT项目管理,想问一下你说的是不是侧重于上述的第一种情况,也就是pc上的软件项目?感觉管理这种嵌入式系统的开发,没有技术背景还是比较难的。可能如果team比较大的话最高的项目管理者就可以从技术管理上解脱出来,侧重于协调和人员管理工作,不过这其实是把技术管理的职责完全下放到下一层的management, 还是有些隐忧的,主要是对下属的依赖吧。感觉这一行业搞技术的跳槽频率比搞管理的高很多,(可能这里太小了吧)一旦掌握技术的核心人员跳槽就是釜底抽薪,特别是一些highly specialized embedded products。当然如果公司很牛的话就不太担心这一点。
呵呵,这些东西讨论起来真的是可以长篇大论的。不过也是很有意思的。有机会可以聊一聊。