Live data from Hacker News

Teach Yourself Computer Science

teachyourselfcs.com

61–70 of 85 posts

Re: Teach Yourself Computer Science

#61
post #6

I have many degrees in computer science, and have used almost none of the knowledge in programming jobs. So, the content is fairly useless, practically speaking. I've also found the more I focus on theoretical elements while at work, the more useless I become. The actually useful elements are big picture, and can probably be taught in one or two classes. Much more useful than technical knowledge are the abilities to…

I use my CS education every day. The trick was to take the bare minimum of theory and stuff my schedule with Systems: - Thinking about and fixing bugs related to OS scheduling, like, why doesn’t my time.Sleep work as expected? (Intro to Systems, Operating Systems). - Understanding the protocol layers involved in a network performance problem; writing network services to RFC specs (Networks and Distributed Systems). -…

There's IMO a kind of quadrant going on.

People without CS background who don't see where it would be useful

People with CS background who don't know how to use it

People without CS background who realizes where the science can be useful.

People with CS background who know where and how to apply it to every day problems.

Unless someone is building forms all day long (and even then), it's going to be useful. Sure, you can build apps without it. but they'll be mediocre instead of good.

Re: Teach Yourself Computer Science

#62

My theoretical knowledge of computer science can be approximated to zero, as is my knowledge of math, but for some time I worked as a programmer with good results; in my best days I could write about two hundred lines of C or Pascal in a few hours, then go home without testing them because the machine wasn't available and be complimented the following day because they compiled and worked without any errors. I still f…

Algorithms ( sorting, for instance) don't require knowledge of advanced math. Analysing the computational cost requires some math or math like thinking. Advanced math is linked with computing mostly because the roots of computing lie in mathematical logic. So you can become a master programmer without advanced math knowledge. In short, most algorithms 101 books should be accessible to someone who considers themselves…

Yeah, but a substantial amount of problems that are dealt with through computers _do_ require mathematical tools beyond that.

Statistics, for example, appears in any non-trivial computer science problem, like network congestion, analyzing proper parameters for algorithms, probabilities of getting lock contention, distribution of dispatched instructions, audio psychoacoustics, etc.

Computer vision and graphics programming requires a solid foundation of linear algebra and geometry.

In short, those tools are pretty necessary if you want to approach computer science as a science and as a tool for engineering beyond the very basics.

Re: Teach Yourself Computer Science

#63
post #6

I have many degrees in computer science, and have used almost none of the knowledge in programming jobs. So, the content is fairly useless, practically speaking. I've also found the more I focus on theoretical elements while at work, the more useless I become. The actually useful elements are big picture, and can probably be taught in one or two classes. Much more useful than technical knowledge are the abilities to…

I read this a lot. I am currently studying CS and I kind of regret it for that reason. Sure, the topics tend to be very interesting and I gained some real insights from some classes, such as OS, but I probably won't ever use this stuff when I start working. I kind of wish I did EE/ME or Math instead, especially because I actually quite enjoyed my math classes.

Having worked as a SFE while going to school I can say there are times where I had wished I didn't have this mentality. Don't know how many times I thought "I'll never use this" and blew it off only to a couple months later run into an edge case where I had to go back and relearn some stuff. OS was specifically one of the classes I've been going back over recently and frequently. I kinda realized as I've gotten older that I'll spend a decent amount of time reading over a lot of material that doesn't immediately click as being useful or is terribly interesting to read but when it comes up I get a lot of satisfaction out of the fact that I can say "OH READ ABOUT THIS" even if it was drudgerous. Plus I'd have to agree that it opens more doors and more interesting work, not just CRUD/web apps, when you have an in depth knowledge. Also if you're not challenging yourself to do difficult work then you're not going to have to dive that deep into the knowledge they teach you.

Re: Teach Yourself Computer Science

#65
post #10

Earlier quoted context omitted.

Is that surprising? Computer Science isn't meant to be a Practical Programming degree.

I doubt that parents or students who are spending tens of thousands of dollars on college and more than likely are leaving college with tons of debt are not expecting to be able to learn practical, marketable skills.

If they expect to learn practical programming skills then they've completely misunderstood what comp sci is. They want to be spending their money on vocational education instead.

Re: Teach Yourself Computer Science

#66
post #65

Earlier quoted context omitted.

I doubt that parents or students who are spending tens of thousands of dollars on college and more than likely are leaving college with tons of debt are not expecting to be able to learn practical, marketable skills.

If they expect to learn practical programming skills then they've completely misunderstood what comp sci is. They want to be spending their money on vocational education instead.

And be at a disadvantage in the market....

Re: Teach Yourself Computer Science

#67

I don’t really like the recommendation for SICP. The book expects a certain level of mathematical maturity from the reader and I think this level is significantly greater than the level that might be expected from the targets of this website. Mathematical maturity in this case can be broken into two parts: 1. Understanding what a proof is, what is required to prove some proposition, how to figure out and write a proo…

Do you think How to Design Programs (TtDP) is a good alternative to SICP? It seems gentler, but if one were to go the HtDP route, what would come after? SICP or something else? http://www.htdp.org/

I can't say for sure, but the TYSCS says "For those who find SICP too challenging, we recommend How to Design Programs."

Re: Teach Yourself Computer Science

#68
post #64

I think adding a concrete language (most probably C) and a course for OOP to the list might prove useful.

When you say "concrete language (most probably C)" are you referring to using one language throughout each subject?

Re: Teach Yourself Computer Science

#69
post #68
post #64

I think adding a concrete language (most probably C) and a course for OOP to the list might prove useful.

When you say "concrete language (most probably C)" are you referring to using one language throughout each subject?

Not one language per subject. A separate subject to have basics strong. I feel learning C as a subject and getting concepts like pointers right might prove useful while learning datastructures and algorithms. The article assumes learning a language is very easy. But for a self taught programmer its easy to fall into the trap of straightaway going to high level language like dynamically typed languages. It would be more appropriate to learn C followed by datastructures followed by compiler design in that order.

Re: Teach Yourself Computer Science

#70
post #59

Earlier quoted context omitted.

> I have many degrees in computer science If you have many I'm going to assume that's at least three. Surely that's a PhD then? Otherwise you've been standing still doing multiple bachelors or masters degrees, which wouldn't make any sense. If you've done a PhD and then go into a field which didn't need that research, then that's unusual. Why did you bother with the PhD?

I have a BS, MS and PhD in CS and Comp. Eng. I needed a job. Turns out my PhD wasn't such a hot commodity, at least in the DC area. For a GS type job, it can translate to automatic pay grade, and a contracting company may want a PhD on paper for their bids. Coding interviews might be a bit easier. But, the actual dev ops work I do, while I use a bit of distributed systems theory to understand things, is mostly orthog…

Would you do it again? Get the PhD, I mean.
Post reply on HN