I recommend you not make your dream language as your first project. Instead, create a small and simple language as your first step. Perhaps a FORTH derivative. Learn from that. See where that learning takes you. Do you want to make a general purpose language? or one to formalize legal contracts? or one where you demonstrate something creative and new?
Definitely learn at least one assembly language (ARM has less legacy cruft than x86) because this is the basis of the interface between the computer and the higher level language. Modern technology like LLVM allows you to have an abstraction of the computer, but it is good to have detailed knowledge of real hardware. My start to learning a little about programming languages was this. I started from a computer engineering degree; so I had knowledge of hardware. I set my goal: I wanted to program a microcontroller using Python. I knew it was unlikely that I could fit the entire language and its libraries in the small memory of a late 1990s 8-bit microcontroller. First step was to get "Hello World" to work. I wrote that program in Python and "disassembled" the program into Python's bytecodes. From that I started to write a tiny interpreter supporting only the bytecodes I needed. I created the datatypes in C that I would need to hold the Python datatypes. I created execution frames (what a procedure becomes when it comes time to run it). I held off on ceating a memory management and garbage collection system until I absolutely needed it. I do NOT recommend you learn an interpreted language like Python. I just wanted to share the thinking of: start small, get that working, see what's next.