Hacker News new | comments | show | ask | jobs | submit login

Thank you for sharing! I've been looking for a well structured course to help me navigate through SICP.

It's kind of funny how at my university (one of the better public unis in the world, or so they say), there is no rigorous introduction to computer science. Sure, we have our architecture, and our data structures, OS, and algorithms, and even a "here's how to Java" introductory course. Yet there is no "This is the way to think like a computer scientist and how to understand as a computer scientist would" class.

The result? You can clearly tell there are a lot of people in the cs program who just sort of go by and learn all these periphery (but still important!) topics without ever touching the core principles. I've even seen seniors who are just clueless! I guess the idea is they're meant to figure it out for themselves through a eureka moment? That doesn't seem like a sound structure to me. I'm realizing that I, myself, fall into the lacking-understanding camp and I'm doing my damn best to rectify that. When I get my degree I want to be able to say I'm a computer scientist, and I want those words mean something. I'm hoping that SICP will truly help me understand the core principles.




My impression is that computer science education is light-years behind things like physics and math.

I feel a lot of it has to do with the amount of money you can make straight out of college even as a mediocre coder, compared to the low-paying, unrewarding mess that education currently is.

Good on you for trying to do things right :) I was lucky to take the non-self paced version of CS61A, and I do think the class is top-notch. But even then there's tons of room for improvement, but no one has the time. We're all too occupied with our start-ups here (professor was amazing, but it says a lot that he was a full-time employee of Google while he taught our class).


I don't know if it's that, or if it's just that it's muddled.

Physics is really two different fields: There's Physics for people who want to a rigorous understanding of the underlying theory, and possibly also want to become research scientists or academics within the field. And there's engineering and all its subfields for people who are primarily interested in applying that knowledge to make stuff.

There's the potential for CS to be broken up along similar lines, but it hasn't happened. I'd argue that this does students a great disservice, since it's hard for someone getting in at the ground level to tell what a program's real focus is just by reading the course catalog.

I took the SICP route and I'm very glad I did. But plenty of my classmates hated it, and I don't see a problem with that. It's terribly dry stuff, and there are plenty of people who've got only a high level grasp of the theory and still make amazing software and make it well


That's a good point. I like the fundamentals and really digging in, and for my friends who don't I ask why learn less about the fundamentals of what you're doing!? Those same friends seriously questioned their life choices during the theory/core classes. They later found their calling when they had a chance to explore things like web dev or mobile dev and they're happy now.

Different strokes for different folks.


I like Richard Gabriel's proposal for a Master of Fine Arts in Software Development degree program. It focuses more on the craft aspects of building software since we still don't know how to do true software engineering in the general case.

http://www.dreamsongs.com/MFASoftware.html


In 1998 my university offered CS, CE and EE degrees (I'm throwing in the EE to make it clear that the CE was software oriented).


You can definitely tell that a number of people are in it without necessarily being dedicated to cs. A bunch of people want our cs program to basically be a vocational school, and in some ways it kind of already is. We learn a trade that we can practice even while students, and people pay us students good money at internships! That's a pretty special opportunity. But the amount of disdain the average student here has for a topic like operating systems is kind of surprising to me.

I could be wrong, but as a casual observer who isn't yet in the workforce it seems to me that the people who put up with the rigor of the more difficult and less sexy topics (e.g. a solid understanding in algorithms à la CLRS) are not only just as well compensated as those who prefer to focus on what they think are marketable skills that industry is looking for, but they grow faster and further. These sorts of people (again, in my casual observer's eye) don't get pigeon-holed into a technology stack, but can easily jump into new topics if they think they're sufficiently interesting.

It's at least true for my friends in compsci who I have the most respect for as programmers. They seem like they can do anything!


>> It's kind of funny how at my university (one of the better public unis in the world, or so they say), there is no rigorous introduction to computer science. Sure, we have our architecture, and our data structures, OS, and algorithms, and even a "here's how to Java" introductory course. Yet there is no "This is the way to think like a computer scientist and how to understand as a computer scientist would" class.

As an EE working with computers (albeit at a lower level), I'd think the topics concerned with implementation of computers (computer architecture, operating systems, algorithms etc) hold more 'fundamental' status in my book. I guess it depends on where you belong in the stack.

Having said that, I definitely feel that I could benefit from the knowledge of more abstract issues that SICP addresses.


A bit off-topic here but I think learning peripheral information has become a norm. Last year I was trying to learn Data Science and completed the "specialization" from Coursera. But then there were sometimes when I was unclear on certain topics being discussed by blogs I followed. So I tried googling to see how to really learn in-depth about Data science. I landed on this page: http://www.quora.com/How-can-I-become-a-data-scientist

The detailing given in some of the answers meant I had to go back and strengthen some of the basics and learn things in depth rather than peripheral information.




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact

Search: