Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> CS61A was awful for me and made me hate computer science.

Valid criticism. Think for most students, 61A has too steep of a learning curve for an introductory class. For people without any programming experience, it’s a bit too much too fast and with a class size of 2000+, you struggle for resources.

For those with prior experience, it feels like unnecessary training wheels. You learn a little bit of Python, SQL, and Scheme. You have to do environment diagrams (What Would Python Do) on paper, and learn how to use a debugger. Projects and tests have mad-libs style fill in the skeleton code.

In my experience, 61A is a tasting menu of computer science: you take it for the experience, and leave hungry and confused – but excited.

> I tested out of 61B.

OP, you really missed a lot by testing out. This class is half theory, half learn by doing. For example, you learn about red-black trees or Dijkstra's in lecture and then go to lab and implement it.

I know theory and algorithms seem bland at first, but look at the applications. https://www.cs.princeton.edu/~wayne/kleinberg-tardos/

Favorite aspect of this class was designing and then writing a smaller version of git. You had to write a design spec that was checked off, and then your implementation had to pass a test suite.

If that’s not software development, then I don’t know what it is.

> 61C taught me how computers actually work and simultaneously made me quit the major.

61C was not one of my favorite classes because of how low level it is (compilers, RISC-V, concurrency, etc.). But if you stopped taking classes before upper division, you missed out on a whole gamut of “practical” classes like algorithms (CS170) and operating systems (CS162).



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: