Assembly languages and machine code aren't the same. Assembly files are assembled into machine code. One can certainly learn machine code... but there's little use beyond the academics of it. In college I took a course where we created a very simple virtual machine (called Simple) with an Assembler that produced the byte codes used by this machine. Very useful academic exercise, but not all that useful in the real world. There's very little benefit in knowing the machine language of the architecture you're on, unless you're actually building said architecture. Knowing the Assembly language for your architecture is more than enough.

Can't agree with folks who think it's not useful to understand Assembly, though. It's important to understand how things work at that level, if for no other reason than to be able to diagnose some class of problems that you'll run into even when developing using high level languages.