The cards and hole-punch are essential, but there’s one other thing you’ll need

How do you learn Data Science and Data Engineering?
Teach yourself Data Science in 24 hours?
But what if I forget it in the next 24 hours?
Data Science for Dummies?
Well, I’m no dummie, and I don’t think that’s spelled correctly.
Data Science Cookbook?
I’m not sure that Data Science is exactly like making a Beef Wellington, but I don’t know how to make a Beef Wellington, so maybe it is.
I can see the attraction of these simplifications, but they never worked for me, so let me offer an alternative simplification, with the crucial addition of this one weird trick.
Part One of my solution takes about an hour. Part Two, the weird little trick, takes 4 years, but believe me, it goes by so quickly you’ll swear it’s only 3 1/2.
Part One – The Cards
First, pick a set of inter-related subjects that are relevant to Data Science and Data Engineering as you wish to apply it. Here’s a sample set:
- Linear Algebra
- Stats
- Machine Learning
- Data (multiple database types)
- Programming (Python data science stack)
- DevOps (Kubernetes, etc.)
In each subject, look for a set of books and courses – find 10 candidates and winnow down to 4–6.
You should generally be able to form an opinion of potential learning resources by looking at whatever companion resources have been provided on GitHub by the author/instructor, and by reading reviews.
With your set of learning resources in hand (let’s say 40 resources over six subjects) get a stack of 15 blank cards. On each card write a subject, and the 4 to 6 resources you’re going to use for that subject, spaced out so that there’s room for hole punches under each resource.
On one or two of the cards, write "Dynamic Allocation" – you can do any subject/resource when these cards come up.
Next, given the amount of time that’s available to you for this effort, pick a card-block-time – the amount of time that you can spend on any card when it comes up. I’d say an hour is a minimum, 4 hours is a max. This is not about how much time it takes to finish a task, it’s about how much time you have available to focus on this effort in a single block.
For each of the resources, take a 5 x 6 card (this is getting expensive!) and write out the chapter/section numbers and headings. Put circles beside each that you think are going to be roughly equivalent to your card-block-time size. So if you think you can cover ten pages per card-block-time, then a chapter of 30 pages gets three circles beside it.
Now let’s run through the stack of 3×5 cards for the first time:
Whenever you sit down to "Learn Data Science", you grab the stack of cards and look at whatever is on top. You pick one of the four to six resources listed on the card, and apply yourself to that resource. You can use the same resource for the full card-block-time, or switch to another resource on the same card halfway through.
When the card-block-time is up, you take your hole punch, and make a hole under the resource(s) to which you applied yourself – one hole per half-card-block-time.
Put the card on the bottom of the stack. Next time you sit down to "Learn Data Science", you repeat the process with whatever card is on top of the stack.
As you make progress through your resources (e.g. completing a chapter), you can grab your stack of 5×6 resource cards and put a check in the circles beside the chapter/section headings that you completed. Progress!
Part Two – One Weird Trick
Over the next four years, on whatever cycle is appropriate to your lifestyle, with whatever time blocks are available to you, keep running through the stack of cards. There may be periods when you have more or less time available – no problem, you can reduce the size of the card-block-time, or adjust your own expectations about how much calendar time it will take for each round.
You can’t really "fall behind" in this system – and if you take time off, at your next opportunity, you grab the stack and do the card on top. The stack doesn’t care if you miss a few days or weeks.
Do this in rounds of four, so once you’ve done the full set of cards four times, staple them together and put them aside. Write out your next set of cards, with adjustments learned from the previous set. Add additional resources, remove ones you’ve exhausted or that didn’t work out, play with the sequencing.
After every couple of rounds, test yourself, to see if you’re getting better. I have two preferred methods for doing this. One is answering questions on sites like StackExchange. You can quantify this by the length of time it takes you to find a non-trivial question you can actually answer, and by the length of time it takes you to write out your answer (with code).
The second method is creating a solution to some small problem from scratch. By starting from scratch, you can more easily track the sophistication of your methods, and your speed of execution.
That’s it!
Well, there might be a bit more to it, but once you’ve got this card system running, it’s very easy to supplement, as long as you don’t run out of 3×5 cards.