I want to be honest about my starting point because I think it matters. I wasn't a complete beginner — I'd been using Excel for data work for three years at an advanced level. VLOOKUP, pivot tables, named ranges, fairly complex formulas. I knew data manipulation; I just knew it in Excel's language.
The motivation to switch was hitting Excel's limits: files that took three minutes to recalculate, analyses that needed more rows than Excel could handle, and the inability to automate repetitive monthly reporting without learning VBA (which felt like moving sideways).
Month One: Python Basics Without Data
I resisted skipping straight to Pandas because my first attempt at learning Python for data (about six months earlier) had failed because I didn't understand enough base Python. This time I spent the first three weeks on Python fundamentals: variables, data types, loops, functions, list comprehensions, file reading.
Resource I actually used and finished: Automate the Boring Stuff with Python (free online). It's practical, not academic, and by the end you've built things that are actually useful. I also did the first four weeks of Python for Everybody on Coursera while commuting.
Month Two: Pandas and Data Manipulation
With basic Python under me, Pandas started making sense because I could map most operations to something I already knew in Excel. groupby() is pivot tables. merge() is VLOOKUP. loc and boolean indexing is filtering. This translation approach made the learning faster — I wasn't learning data manipulation from scratch, I was learning a new syntax for familiar concepts.
The most useful practice: I took my existing Excel analyses — the ones I knew the answers to — and replicated them in Pandas. When the Python output matched Excel, I knew I'd done it right. When it didn't, I had a specific error to debug.
Month Three: Real Projects
At the eight-week mark, I started using Python for actual work instead of exercises. The first real thing I automated: a monthly report that previously took two hours of manual Excel work. In Python, once I'd built the script, it ran in four minutes. The first time it ran successfully and produced the correct output, I felt the "this is worth it" moment.
What Didn't Work
Data science courses that started with machine learning. I burned a week on a highly-rated Coursera course that immediately went into numpy arrays and scikit-learn without enough grounding in the basics. I wasn't ready for it.
Also: trying to learn everything before using it. The progress accelerated dramatically when I started doing real work in Python, even imperfectly, instead of waiting until I felt ready.