Live data from Hacker News

Ask HN: How do I choose the right resource to learn CS fundamentals?

news.ycombinator.com

11–20 of 93 posts

Re: Ask HN: How do I choose the right resource to learn CS fundamentals?

#11
post #3

Check out https://www.teachyourselfcs.com

Seconding this - I've used it to teach myself a few subjects so far (a couple of subsections of Operating Systems and I've started on Computer Architecture) and their suggested materials have been good.

Re: Ask HN: How do I choose the right resource to learn CS fundamentals?

#12
post #3

Check out https://www.teachyourselfcs.com

+10 for this. I will elaborate further, hoping this gives you a good starting template.

- Programming: Learn two languages: Python and C

- Algorithms and Data Structures: Implement each data structure in the two languages above and implement a few algorithms of each type.

- Computer Architecture: For the referred excellent book, implement all assignments in any one language. Go head and burn the design on an FPGA, get the computer running on real hardware.

- OS: Having done ECS above, you should be in good shape to write your own OS: there is xv6, Xinu, Minix and many to choose from. Again have your OS running at least in a VM.

- Computer Networking: Write your own HTTP server in C.

- Math for CS: I would say focus on learning math essential for games, some linear algebra and leave it there. When you encounter a relevant field; AI or games, you should be in a position to pick up more math if required.

- Databases: Recently a book has been published on database internals, which is strongly recommended. Work through this book.

- Languages and Compilers: Learn a lisp, write a lisp interpreter (should introduce you to some FP concepts) and then working through Concepts, Techniques and Models of Computer Programming should be a good foundation.

Whether you are a student or working full time, these above are time consuming but well worth the ROI if you put in the effort. Be creative and ensure that you publish all your work as part of your portfolio. Good luck!!!

[1] https://www.amazon.com/Database-Internals-Deep-Distributed-S...

Re: Ask HN: How do I choose the right resource to learn CS fundamentals?

#13
Can you share your reason to go it alone, or why you ruled out a traditional learning option?

One of my favorite mentees came in to a software development job from a biochemistry background. She’s got a knack for it and did a great job self learning a lot of basics, but I really saw some awesome improvement after she did a “CS masters bridge program” through NYU- https://engineering.nyu.edu/academics/programs/bridge-progra...

I guess it’s really meant to get you into a grad program, but I know she got a ton out of it as a career programmer.

Re: Ask HN: How do I choose the right resource to learn CS fundamentals?

#15
post #2

I really recommend Lynda ( now linkedin learning) not free (but remaking accounts works ofcourse), unless you signup via new york or LA library. also khan academy: information theory is really great: https://www.khanacademy.org/computing/computer-science

Any specific courses that you'd recommend on LinkedIn Learning?

Re: Ask HN: How do I choose the right resource to learn CS fundamentals?

#16
There's an abundance of material online to get through an entire CS program on your own, if this is your desire. The problem I've seen with self-study, unless you are disciplined, chances are you will not stay the course, even if you follow a plan, unless you're single, with plenty of time/energy to burn toward a program.

My suggestion would be to enroll in a college and pay for your education. This way, you'll be more motivated because the pace will be imposed and it will cost you more than your time if you don't do the work required to pass and more importantly, learn something of value.

Re: Ask HN: How do I choose the right resource to learn CS fundamentals?

#17
To be honest I think self study can only take you so far (unless you are incredibly self disciplined). I’d recommend trying to get into OMSCS. If you have an undergrad degree you can do some nano degrees in algo/ai then you should be able to get in. If you don’t have an undergrad degree there are a few high quality online undergrad degrees you can do part time - then do OMSCS. It’s a long journey but will get you to high CS mastery.

Re: Ask HN: How do I choose the right resource to learn CS fundamentals?

#18

> I am attracted by the resources/online/books posted by courses in UCB/Princeton/MIT/Stanford/CMU. At the same time I get boggled down and overwhelmed that I have soooooooooo many materials to cover. I think you'd be better served by doing a lot of courses from the same institution. If you choose courses that were designed to fit together, you'll have a lot less wasted time from overlapping material or holes from mi…

> I think you'd be better served by doing a lot of courses from the same institution. If you choose courses that were designed to fit together, you'll have a lot less wasted time from overlapping material or holes from missing material.

I agree regarding choosing materials from a singular institution. Thing is, not all the institutions have all the courses and materials online. This in turn results in choosing specific courses from specific institutions which are available online. But the caveat here is that when I intermix the courses from different institutions, I find the prerequisites to be different since different institutions cover same/similar courses in different depths/breadths. For example, Databases in CMU are at a much higher standard than that of Stanford's.

> What is your goal exactly?

Goal is to learn since my undergrad is not in CS. I would not be able to afford a masters for the next 2-3 years so I am trying to use the intermediate time to get myself the undergrad curriculum knowledge I never had. I hope this would help me with enhancing my day to day job and also help me prepare when I apply for my masters/PhD.

Re: Ask HN: How do I choose the right resource to learn CS fundamentals?

#19

Can you share your reason to go it alone, or why you ruled out a traditional learning option? One of my favorite mentees came in to a software development job from a biochemistry background. She’s got a knack for it and did a great job self learning a lot of basics, but I really saw some awesome improvement after she did a “CS masters bridge program” through NYU- https://engineering.nyu.edu/academics/programs/bridge-…

In my country I cannot go for a second bachelors since it is age restricted. The ones which I can attend are extremely expensive for which the ROI is not worth it. My undergrad is in EE.

If it's not too much to ask, would you mind being my mentor online in some way? I would really like to learn from someone with some direction and hold myself with some accountability too.

Re: Ask HN: How do I choose the right resource to learn CS fundamentals?

#20

The two courses that give the basic CS foundation needed are: nand2teris.org and cs50.net See if you can solve all the projects & assignments in these courses. These cover a lot of ground. Once you are done with these two courses end to end, you will get a fair understanding of many of the computing big ideas.

If the student knows almost nothing, these are really good as they cover the most simple things.

If you already programming, they may be too basic.

Post reply on HN