Does a Programmer must know Assembly language?
It depends on what you plan on programming. Unless you are going to be doing firmware programming for hardware manufacturer, you will probably never use it. If you are going to write programs for windows, linux, mac or the web, you will never need to know it. I am not saying it wont be helpful to know what goes on at that level of programming, just that most modern programmers dont use it.