so learning algorithms will give me a better understanding of programming? I couldn't just read the python book and then try to build a simple program?
Think about chess. Learning Python is just learning how the pieces move. Learning algorithms, techniques and data structures is like learning openings, middle game tactics, strategies, etc...
It all depends on what kind of player you want to become. If you just want to play for fun then learn the rules and play. If you also want to be a good player, then you'll need more than that.
IMHO, real programming is 90% thinking and 10% writing code.
Here's a little problem: you have a list of n numbers. Can you find out which number, if any, occurs more than n/2 times in O(n)?
If you can solve it, then you're a good programmer otherwise you're just
a programmer.
That's my opinion. Others may think differently.