This is my journey of improving my python skills. I am proficient in Javascript, but I noticed that JS does not have built-in support for DSA, such as deque, binary search, min-heaps, etc.
While interviewing an engineer, I can 'finesse' and mention the general form, which is usually enough. For example, while interviewing for company X, I needed to use a queue as part of my solution. JS does not have an optimized queue built in, so I used an array and made sure I followed FIFO using Shift and Push, which is an overall O(N) (for pop) solution. I told the interviewer that if I had more time, I would implement an O(1) (for pop) answer that this is okay.
However, while taking a coding assessment where time complexity is enabled (i.e., counts towards your overall rating), I cannot just use an array as a Queue; worst yet, since most coding assessments are timed, the time I used to implement a queue is time waste since I could've used python all along and avoid all of this. Not to mention all of the other DSA support Python has.
Having used Python as an undergrad, given that I am proficient in Javascript, I knew most of the basic features found in Python. However, I wanted to take the time to start from zero and learn how things are done. This book taught me new things, including list comps and general best practices.
No word or paragraph can explain this book's depth cover. The general layout consists of 5 mini-books, each focusing on one topic and diving into it. I strongly recommend this book, even if you have used pythons for years. I promise this book has something for you. I see myself reading this book five years from now and learning just as much.
Some books on algorithms are rigorous but incomplete; others cover masses of material but lack rigor. Introduction to Algorithms uniquely combines rigor and comprehensiveness. It covers a broad range of algorithms in depth, yet makes their design and analysis accessible to all levels of readers, with self-contained chapters and algorithms in pseudocode.
I am moving into Algorithms design and more design patterns. Leetcode with the new skills to get even more comfortable using Python. Interviews, interviews!