想成为计算机技术高手，一定要懂汇编吗？
一直觉得软件行业有个很有意思的现象，就是绝大多数人都觉得越是懂底层的人就越是牛逼。 不巧个人十来年前初中时开始用8086/8088汇编写一些小应用，后来大学到工作零零散散也写点，谈不上什么高手。但一直感觉汇编说白了就是一堆的MOV/CMP顶着寄存器和内存做各式各样晦涩的操作，外加INT各类硬件、系统中断满天飞，平时开发都是抱着一本手册四处查各种中断号及flag，熟练点的同事能背下中断，再熟练点的能看机器码如看汇编——一个同事经常自称“看尽天下A（ASM）片，心中自然无码（机器码）”:)。 个人觉得汇编说白了只不过是门语言而已，和c/java/c++本质上没有区别，只是你使用这门语言必须接触CPU寄存器、需要更好的关注和规划内存使用、需要了解各种硬件和系统级API（中断）、需要写更多行的代码、更容易出错、比高级语言更难写出优美的程序……这些……在我看来，除了让开发者更苦逼之外，实在看不出这门语言的好处。性能？现代编译器下的C语言早已和ASM相差无几。 如 @张运政 所说，要精通这门语言，确实需要比精通其他语言付出更大的努力，因此精通这门语言的人或许确实厉害，但这并不代表厉害的人一定要精通这门语言——充分不必要。 我更同意 @吴海波 的答案，编程并不只是操作系统和底层——如果只是这样那软件行业这几十年无数大师们的努力等于白费了，编程语言本身、软件设计、人工智能、软件工程、互联网……等等这些都是让编程变得丰富而有趣的元素。 是否懂底层不重要，在编程的路上坚持对美的追求，才是通往高手之路。 P.S. 这么老的问题怎么突然就火起来了，补充说明一下： 我无意贬低汇编，只是希望大家正视它——它并不神秘，也不是什么高大上——没有任何一门语言值得说高大上的。 但，术业有专攻，这点毋庸置疑。你拿Java在要求高性能的单片机上跑和用汇编写个taobao同样是扯蛋的事情。 编程是很美好的东西，而语言仅仅只是工具，在高手之路上，请不要被语言所羁绊。 P.P.S. 对不住让大神删帖了，我道歉。楼下几位的答案也非常客观理性，我都点了赞。 顺便再来几个栗子： 面向对象编程大师—— EJB终结者，Spring创造者—— Java语言的革新者，《Effective Java》作者—— JSON发明者，《JavaScript: The Good Parts》作者—— Ruby on Rails发明者—— Hibernate发明者—— …… 当然我相信大家也能举出各种与汇编相关的大师，也许以上几位也懂汇编（也许不懂），但至少他们所作的贡献是汇编无关的。