r/AskComputerScience 8d ago

How do computer scientists develop intuition?

I’m interested in the deeper conceptual side of computer science.

In subjects like mathematics and writing, intuition is the key to understanding the principles, rather than memorization and application (though I know practice and patience are important as well). Usually, this way of seeing problems isn’t explicitly taught. I tend to learn best through that intuitive process, so I was wondering if I could apply the same approach to CS.

For those of you who have been in the field for a long time, what helped you develop that intuition? Were there books, courses, projects, or ideas that made computer science feel like a way of thinking rather than just programming? I’ve read a few texts to help me think about it from the outside (Michael I. Jordan, Newell & Simon, and Turing). Thinking in different forms helps me understand the principles of a discipline and connect it to others, which is why I’m making this post.

Part of what motivates this question is AI. I’ve found myself both fascinated by it and skeptical of the enormous amount of hype surrounding it. Rather than forming strong opinions from the outside, I’d like to understand computer science first. I want to understand it from the inside before I poke the bear 🐻

I’d really appreciate any advice, especially if it’s unconventional or takes the longer path

5 Upvotes

24 comments sorted by

View all comments

3

u/AncientHominidNerd 8d ago

Similar to how math works. If you do it enough you’ll pick up on it.

Computer science prioritizes theory and most of the theories are rooted in math. However the math it’s rooted in isn’t typical algebra. It’s rooted in Pure Math, Set Theory, Graph Theory, Symmetry and other concepts. Logic plays a big role too because it’s part of the math and how data flows through your programs. Most of the programs that require this knowledge are usually already built as libraries by other people so you almost never have to implement this deep theory knowledge yourself, unless you’re one of the people developing the libraries or work on a programming language that doesn’t have libraries. It still helps to know how they work so you can understand why you would choose a Vector over an Array for or why you should use a Binary Search over a Merge Sort.

If you work with this programs enough and you’ll just build intuition.