Understanding of microcontroller datasheet
If you're going to design a circuit around a microcontroller and write its code, you need to know what you're doing.  That absolutely includes reading the datasheet of the micro.  There is no substitute for the person actually doing the design.

When you're ready to start writing the firmware, read the datasheet.  You do need to read all of it, but not to remember each specific feature.  The point is to remember what the various parts can do, not the details of how to do them.  Those can be looked up later.  However, you need to know that they exist.

As you read the datasheet, keep two things in your mind.

First, every time you learn about a new capability, think about how you could use it to advantage in your project, or realize that it's of no use to your project.  You start with a general idea of the firmware architecture and how it will utilize the hardware, but as you learn the detailed capabilities that can and should be modified.

Second recognize the difference between concepts and implementation details.  There is no point trying to remember implementation details like which bit in which register enables the UART RTS/CTS function.  When you write the UART code, you'll look up the details and set all the configuration bits as appropriate anyway.  What you do want to remember is that the UART has RTS/CTS capability, or maybe that UART 1 does but UART 2 doesn't, for example, assuming RTS/CTS is meaningful to your project in the first place.

The RTS/CTS example also works with the first point.  When discovering that the UART has this capability that you weren't expecting it to have, you stop and think for a moment whether you could take advantage of it in your project, even though you weren't initially considering that.

This last point also illustrates why you need to read over the datasheet during electrical design.  You can skim it more quickly then because you're not thinking about firmware details at that point.  However, discovering RTS/CTS capability on one UART and not the other may well cause you to change the electrical design.