I've tried that for a couple topics (Reinforcement Learning, Linear Algebra, Bayesian Stats) over the last six months and I found for myself it was much harder to retain information than spacing it out over several months and chipping away at it little by little (which I'm doing with Python, Algorithms, Control Theory). I personally prefer practicing interleaving, as I find that applying one subject to another make me remember a lot more of the concepts than block learning techniques.
Also in the grand scheme of things, three weeks isn't a lot of time. Granted, I'm not a fast learner!
Also in the grand scheme of things, three weeks isn't a lot of time. Granted, I'm not a fast learner!