Live data from Hacker News

Teach Yourself Computer Science

teachyourselfcs.com

121–130 of 273 posts

Re: Teach Yourself Computer Science

#121
post #115

Can anyone with a CS undergrad from an elite US college (Stanford, Berkeley, MIT, Carnegie Mellon) comment on whether they feel their undergrad covered 100-200 hours worth of these subjects? As someone with an Australian CS degree, I feel like my curriculum covered less than half of this properly.

I went to Berkeley for undergrad. Anyone in the EECS department who was serious about a future in programming took, at a minimum, two courses on algorithms / data structures (CS61B / CS170), one of which was required for the degree. I suspect that's partially covered by what any crack-the-coding-interview study course would try to teach you anyways (dynamic programming, tree / graph traversal; NP completeness and red…

Thanks for the detailed reply.

Re: Teach Yourself Computer Science

#122
post #115

Can anyone with a CS undergrad from an elite US college (Stanford, Berkeley, MIT, Carnegie Mellon) comment on whether they feel their undergrad covered 100-200 hours worth of these subjects? As someone with an Australian CS degree, I feel like my curriculum covered less than half of this properly.

I went to Berkeley for undergrad. Anyone in the EECS department who was serious about a future in programming took, at a minimum, two courses on algorithms / data structures (CS61B / CS170), one of which was required for the degree. I suspect that's partially covered by what any crack-the-coding-interview study course would try to teach you anyways (dynamic programming, tree / graph traversal; NP completeness and red…

I would say ML has blown up in the recent years. In addition to 189, all CS undergrads are now requires to take EE16A+B which, although focused on circuits, teaches a bit of linear algebra needed for ML; and some take in addition 126 (probability) and 127 (linear optimization).

To add on to the parent comment, a 4 unit class is usually considered to have a 12 hour workload per week (180 hours a semester). [1] Two caveats to this: 1. There was controversy in the past from a CS professor that students should actually be putting in 20 hours per week [2]. 2. With some project or pset heavy classes, I don’t doubt that 20 hours was irregular. For example with 162 (operating systems), every week we had a tight schedule of lecture, discussion, homework assignments, group projects, and possibly a midterm to study for.

[1] https://academic-senate.berkeley.edu/coci-handbook/2.3.1

[2] https://www.dailycal.org/2019/03/10/uc-berkeley-computer-sci...

Re: Teach Yourself Computer Science

#123
post #110

Can anyone with a CS undergrad from an elite US college (Stanford, Berkeley, MIT, Carnegie Mellon) comment on whether they feel their undergrad covered 100-200 hours worth of these subjects? As someone with an Australian CS degree, I feel like my curriculum covered less than half of this properly.

That's definitely strange. I studied at a university in the Netherlands which implemented what I think was a European standard curriculum, and what this article mentions is a subset of the first two years of the undergraduate degree if I remember correctly. Some elective courses are missing, and AI though it is mentioned. We also used many of the books mentioned here. Also back when I did it there were more seperate…

I feel like a lot of my coursework was overstuffed with learning and re-learning waterfall vs agile, and fluff subjects like 'user-centred design' and 'professional computing practice'.

The latter was basically 'how to make a resumé' and 'how to not be an arsehole in email'.

Re: Teach Yourself Computer Science

#124
post #74

Earlier quoted context omitted.

Agree with this. I’ve got a medical degree as well as self taught developer for 15+ years. The longer you do it, the easier it becomes as the knowledge just kind of seeps through immersion. But I can imagine for a mind that’s new to either topic can feel quickly overwhelmed without significant motivation to overcome that learning inertia.

Would you say CS is generally easier, with a smaller body of fundamentals, and a front-end JS dev could swap places with a back-end C# dev and the two would get up to speed a lot faster than an orthopedist and cardiologist, with all the specialized information in those two fields? Medicine just comes off like a lot more memorizing of an enormous volume of disparate information compared to programming.

From a frontend dev perspective a complex system like a living human being is nature's monolith of legacy hacks on top of legacy hacks, but you're damn right it holds up under millions of requests per second

Re: Teach Yourself Computer Science

#125

Are you thinking or debating if getting a deeper understanding of CS will help you or your career? I am thinking of the same. Even though I have a Bachelor of Science (BSc) in Computer Science, it has been 14 years that I actually used any of it. I regret it sometimes since I know what it is to know how things work underneath the high level languages (PHP, JavaScript and Python for me). Lately I have started taking m…

Rust also seems like a great choice because of its close ties with WebAssembly. Web developers who learn it should have an advantage as the tooling starts to get better around WASM.

Re: Teach Yourself Computer Science

#126

Can anyone with a CS undergrad from an elite US college (Stanford, Berkeley, MIT, Carnegie Mellon) comment on whether they feel their undergrad covered 100-200 hours worth of these subjects? As someone with an Australian CS degree, I feel like my curriculum covered less than half of this properly.

I'm currently studying CS at UNSW and half of these subjects I've taken relevant courses, and the other half are in my future. Where did you have your experience?

Re: Teach Yourself Computer Science

#127
post #88

Earlier quoted context omitted.

How long did it take you to complete it on your own, including the exercises?

For the course I would estimate 120-180 hours spread over 6 weeks. I read the textbook over a couple of months, but I couldn't give you a good estimate in hours.

Thank you, that sounds very reasonable!

Re: Teach Yourself Computer Science

#128
post #32

Has anyone here learned a subject by going through one of these "teach yourself" lists? I've learned most of what I know about computers on my own, but it wasn't from following a list of textbooks. And when I've tried to follow a course like this for other subjects, despite my initial interest, I've found myself unable to make it through more than a couple chapters of the first textbook before running out of steam. B…

I personally think there is a lot of value in these things, particularly in cases where it's just impractical to go back to school/university or that tuition is unaffordable. Quite a few years ago I learnt software engineering and basic computer science through free, online resources (a few of which have already been mentioned in this thread), it got me a few successful interviews and eventually a job.

That was actually the first time I have self-taught myself anything with the aim of breaking into a field that had no experience with. It was difficult at the beginning because I had just quit the job I had back then and fell into depression for a personal, unrelated reason; but perhaps that was also the reason that I eventually had the drive and focus to get through what I would normally have found "boring" at the beginning — I had nothing better to do. The experience turned out to also be one that is empowering because now I feel like I could learn a lot of things by myself.

Not sure if it helps, but here are a few things base on personal experience of going through this type of syllabuses:

* Assuming that they are written by people who are good what they do and know what they are talking about, these syllabuses are usually to be followed through step-by-step unless explicitly stated otherwise.

* Different people benefit from different modes of learning. There is nothing stopping you from using auxiliary resources to help you to get through a syllabus.

* More often than not it takes a few reads of some text/attempts of an exercise for me to really understand something. In one particular case I read through a book three times, about half a year a part each time, before I felt that I really understood it; and when I finally understood most of it, I was only glad that I decided to try it again for a third time.

* I think it helps to have someone to talk to about what I was doing, it could be a close friend or family who doesn't understand anything about what you are studying. Alternatively, if what you are studying is "popular" enough and there are communities of people doing the same—get connected. Emotional support helps.

* I always try to interact with people who are at different skill levels. There is always a lot to learn from people who are much more experienced than I am; and explaining what you have learnt to someone less experience helps to consolidate what I have learnt.

* Focus is very important. Find what works best for your through experimentation: if you can sit through some given material for a couple of hours straight, great (but do take care of your health and at least get some stretches and water); if you regular breaks, that's also fine—just make sure you set an alarm clock and commit to getting back to it when it goes off.

On a somewhat related point, for freely available resources, I would buy a coffee or make donations where possible to people who devote their time to help others. :)

I hope you will find something that works for you! Good luck!

Re: Teach Yourself Computer Science

#130
post #32

Has anyone here learned a subject by going through one of these "teach yourself" lists? I've learned most of what I know about computers on my own, but it wasn't from following a list of textbooks. And when I've tried to follow a course like this for other subjects, despite my initial interest, I've found myself unable to make it through more than a couple chapters of the first textbook before running out of steam. B…

I graduated with a degree in BioSciences a few years ago, and elected to not do grad school like my peers. I saw no point of losing thousands of dollars to do a master’s in Bioinformatics/Data just to get a jr level job. That summer after graduation from undergrad I attempted to learn CS and go through OSS Computer Science program and TeachYourSelfCS to break into the industry. The problem was a lot of it wasn’t job…

Curious to know: do you feel that you are at any disadvantage to peers who came to your role who went through a traditional CS or computer engineering undergrad program?
Post reply on HN