
I'm a Y1 CS+Math student at Durham University in the UK. Last time I used manifold for academics, it helped me achieve almost perfect grades in A Levels (4A*A) by doing 17K flashcards as seen below.

I want to do a similar thing again. My current aim is to improve at CS, and I'd like some help. So, I'm making this as a place where you can put down suggestions on things I should do/be doing (for example read a specific book).
I will end up picking 6 suggestions (based on how impactful I think they would be based on looking it up and justification from commenter & if I would have found it without them) and award 1,000 mana each. I will do all 6 and update my progress in a market. Once I complete them, I will resolve the market to whichever one was most useful to me.
I will award the most useful one an extra 2500 mana.
This description will be updated at the bottom if there's any clarifications. There will be 1 suggestion per person in the final market, but you can suggest as many as you want to be picked.
Currently outside of my studies I am:
Doing 2 medium leetcodes a day
Reading OSTEP
Learning C++ via a small project and reading effective modern C++
Feel free to ask me questions
Do nand2tetris. Do some project (that look cool to you) from here: https://github.com/practical-tutorials/project-based-learning
Project Euler was fantastic for me. At the basic level, solving each problem is a great exercise, but what really pushed it over the top was generalizing every solution I could.
If you're not into algorithms, the generalized advice is to always understand the underlying facts. It's slow and isn't fun, but as you go you'll notice things never stop making sense, and you'll be miles ahead of your peers.
Good luck!
If you haven't already, absolutely read CODE by Charles Petzold
Will help you build a mental model of computers from the ground up. Literally. Basics of electricity, 1/0 AND/OR switches, boolean algebra, how physical switches can make an adding machine, bytes and ASCII text, memory, CPU, and so on, up to a working computer. Each chapter building perfectly on the previous. Extremely clear, delightful reading. Thank me later
This is a brand new and somewhat experimental approach but I think a new student would find value in asking these newer models like o1-preview to generate some code for a particular problem. But rather than just running it, and this is crucial, carefully review the output, think through each line without asking the LLM for more information, and try to guess what bugs or edge cases it will fail on. Then suggest those changes or test them.
Justification: I don’t think programmers with any real expertise are outclassed by current models but I do think a lot of how that expertise will be used going forward will include reviewing and thinking about code generated either directly by models or by less competent coworkers using models. Writing code just became a cheap skill but the immediate consequence will be a large volume of mediocre lines. More average, poor, and mediocre code will mean increased demand for experts who can parse through it and know what to keep and what to trash. An LLM cannot be held legally responsible and for the foreseeable future companies will want devs who can understand and either sign off or fix the output from endless faucets of text.
Advent of Code is coming up.
Also, depends on whether you mean theory or engineering. For the latter, actually the best way is to get a job.