1. Basic understanding of any programming language (How to use arrays , lists , Strings and maps).
2. Some understanding on open source tools to automate and practice ( e.g Selenium )
3. Basic understanding of how automation works what are necessary things to start with automation ( e.g what are tools , IDE's , Jars ).
4. Understanding of concepts like object repositoy , Data repositiry , Locators ( how to find them).
5. Understanding of unit testing frameworks like junit , testng.
6. Then start with small small excersies like automating single page
7. Advance level you can understand how the frameworks are developed and used.
8. Try to learn basic concepts of build tools and CI tools.