You need to have at least understanding of digital logic (gates and flops) and able to code in a HDL (including knowing what is synthesizable and what is behavioural, and know how the HDL code translates into digital logic). These are extremely important and required. That will make you a junior in digital design.
- Scripting: shell scripts as well as 1 interpreted language like Python.
- Embedded controller architecture and embedded software, knowledge of C for embedded is the way to go.
- Clocking (gating), reset and synchronization. Know the RIGHT way to do it.
- Memories (single port RAM, dual port, ROM, synchronous vs asynchronous, …).
- Internal bus protocols. There are so many but AMBA with AXI, AHB and APB are quite widespread.
- Communication interfaces. Start with low speed, I2C, SPI, … .
A junior digital designer usually starts with verification tasks (behaviuoral code) after which he will be allowed to start coding RTL.
Once you go further in the quest for expertise, you will learn about technology related stuff (the three tradeoffs: size, power, performance), todays verification strategies and IP, … . Synthesis, static timing analysis, power sims, gatelevel sims prelayout and DFT produces a netlist, goes to backend and comes back with real timing. The post layout static timing checks and post layout simulations with exact timing. Also post and pre layout formal verification and prototyping in FPGA.
Over the years you will learn more specifics and you will be more familiar with all kinds of embedded processors, internal bus protocols and external world communication protocols. A general overview is nice but for every step there are specifics that will be markers for interviews. They will indicate you are familiar with the matter towards another person familiar with the same matter.