Ask HN: What should I learn to become a computer scientist?
TL;DR: What does HN recommend as a course of study for an aspiring young pre-CS student?
TL;DR: What does HN recommend as a course of study for an aspiring young pre-CS student?
I would recommend, at 14, getting him utterly hooked on the mindset of CS and related subjects. Godel, Escher, Bach, etc. If you can get him fascinated with the field, he'll find all the information he needs on his own better than any list of required reading you'll get.
Jan van Eijck's »The Haskell Road to Logic, Maths and Programming« does exactly that: it introduces you to mathematical proofs, basic logic issues (including relations) and programming using Haskell. I'd wholeheartedly recommend it to someone who's not yet had much contact to maths.
I think if I'd seen this book when I was about that age, I'd have loved computer science.
It teaches python through building basic computer games. A fun way to learn.
Also start messing around with Python, there is no overhead and you can get started quickly.
Paying attention to math is important, but more important is honing your problem solving skills.
(Addressed everything to the OPs cousin for readability)
If you find the history class boring, try doing this. Instead of reading up all about and even in history in your textbook try to read one half (or a quarter if you feel overly adventurous) and then try to reason out what would you have done and why. Then read the other part and match your thinking with what actually happened. My history teacher used to do this type of exercises with us on a regular basis. This improved our critical thinking and ability to decide on strategies to tackle events in life.
computer programmer
software engineer
You might think they are the same thing but they're not. A computer scientist would end up in academia doing research. A computer programmer writing programs and a software engineer design then building systems.
Learning to program for a budding computer scientist is the worst possible thing to do. It contaminates the mind with what ever preconceptions the chosen language may provide. Ok, maybe Lisp and Scheme not so much - but still ...