There's no better way to learn SEO than to practice on your own websites. This way, you have somewhere to implement what you learn and see how it effects your ranking over time. Just don't keep checking your own site while signed in to Google or you will see an inflated ranking. Search incognito on Google and Bing. Also have friends across the country search for you too.
Buy a cheap hosting plan. They only cost about $5 a month. Find one that lets you add multiple websites and features one-click installs of popular content management systems like WordPress. Buy a couple of domains when they are on sale. You can get some deals, about one dollar a domain for a year when they are on sale. Learning WordPress is good as there are many sites built on the platform Get familiar with WordPress plugins for SEO.
Make yourself several sites about different subjects. Each time you learn something, incorporate it on your site. If you learn how to create alt tags for images, use best practices to create good tags. Practice writing content that engages readers. You may not get much traffic at first, but ask others about your content and whether they find it interesting. Get some free trials of SEO tools to do keyword research and see how they work, You can also find many free tools online to use to write keyword rich content.
As you update your blogs, read all the popular SEO blogs you can. SEO is constantly changes, you need to keep up with what is new. Keep track of your ranking as you do different things to see what is most effective, It can take months to see results sometimes, so you have to be patient. Keep plugging away and you'll learn. For more information click here https://www.reddit.com/r/SEO/comments/nt96jp/isthereawaytopracticeseoforfree/.