Finally, I started studying algorithms – after delaying delving into algorithms for a long time; I ultimately had no choice but to learn it. So pronto I picked up a book – Problem solving with Algorithms and Data structures using Python – and started with gusto. Having little Python skills, I was somewhat worried that my lack of experience was going to make it more difficult for me.
However the book is quite easy to read and I found myself learning faster than I expected – maybe this was due to my improved experience writing interpreted languages, maybe not. All the same thanks be to God who made it so easy. Compared to Java, Python is great for implementing algorithms; it makes life a whole lot easier, Java was such a pain. Python, which sometimes reads like English, makes it easy to write Stacks, Queues and other abstract data structures. Complex algorithms are also easy to write and test in fewer lines.
Alhamdulilah I’ve gotten to study classical topics such as modular exponentiation, greatest common denominator, fractals and the towers of Hanoi. Compared to Java solutions, Python solutions are elegant, simple and light. While I still don’t understand some of the algorithms fully, it’s a start and insha Allah I hope to be confident one day…
One thing: I’ve fallen in love with Python and I hope to learn more of the language as I go along.