Remix.run Logo
openasocket 2 hours ago

Biggest thing I can recommend is to focus on the fundamentals, even if it doesn’t seem like it’s something you would use in practice.

Learn data structures and algorithms. Understand finite state machines and context free grammars. Learn at least some mathematics. Discrete math, Boolean logic, and statistics. Learn how operating systems work, networking, databases, compilers, machine code, low-level details like registers and the cache hierarchy. Learn more obscure programming languages: like Lisp, Prolog, Haskell, and Forth.

You probably won’t use those in your day job, but they will open your mind to fundamentally different ways of thinking about problems. Honestly, just try to learn as much as you can about as many different areas of computer science as possible. Don’t worry about learning version control, the latest web frameworks, or working with AI, at least not until the very end.

You want to come out of college with two things: the ability to learn new things quickly, and having a wide breadth of knowledge to draw upon. As someone who regularly interviews candidates, that’s what I’m looking for more than anything else.

wreath 14 minutes ago | parent [-]

> Learn data structures and algorithms. Understand finite state machines and context free grammars. Learn at least some mathematics. Discrete math, Boolean logic, and statistics. Learn how operating systems work, networking, databases, compilers, machine code, low-level details like registers and the cache hierarchy. Learn more obscure programming languages: like Lisp, Prolog, Haskell, and Forth.

Also, these may seem like separate subjects but there is some overlap especially once you work with things like databases in production at some scale.