Go to the 2.94 docs and click down the HAL (Hardware Abstraction Layer) section to see how hal works
Then click on the button that says expand man pages
Take your time reading the man pages to learn what hal can do out of the box.
You only need to learn a bit of Python if you want to write or modify a GUI. Google has a very good Python course
Personally, Before tackling Python, I would learn how to write real time components using (a variant of) C and look at some examples in the linuxcnc source.
github.com/LinuxCNC/linuxcnc/tree/master/src/hal/components
copy a simple one like and2 and rewrite it into a different one like and3