💾 Archived View for dioskouroi.xyz › thread › 29353904 captured on 2021-11-30 at 20:18:30. Gemini links have been rewritten to link to archived content

View Raw

More Information

-=-=-=-=-=-=-

Teach Yourself Computer Science (2020)

Author: truly

Score: 300

Comments: 51

Date: 2021-11-26 20:43:49

Web Link

________________________________________________________________________________

dang wrote at 2021-11-26 21:43:10:

Past related threads:

_Ask HN: Thoughts on teachyourselfcs.com?_ -

https://news.ycombinator.com/item?id=23731364

- July 2020 (1 comment)

_Teach Yourself Computer Science_ -

https://news.ycombinator.com/item?id=23588896

- June 2020 (265 comments)

_Teach Yourself CS Updated_ -

https://news.ycombinator.com/item?id=23054988

- May 2020 (1 comment)

_Teach Yourself Computer Science (2020 update)_ -

https://news.ycombinator.com/item?id=23045295

- May 2020 (1 comment)

_Teach Yourself Computer Science_ -

https://news.ycombinator.com/item?id=17581589

- July 2018 (81 comments)

_Teach yourself computer science_ -

https://news.ycombinator.com/item?id=17332944

- June 2018 (1 comment)

_Teach Yourself Computer Science_ -

https://news.ycombinator.com/item?id=13862284

- March 2017 (237 comments)

magpi3 wrote at 2021-11-27 01:45:57:

Love this website, and love how there are more and more resources for auto-didacts.

For anyone who wants to learn how to draw, check out drawabox:

https://www.drawabox.com

. The guy started out just wanted to share the basics and now I think he makes a living through that site.

EDIT: I should also add that I know drawabox is off topic, but it is IMO a great example of where education might be going. Carefully constructed resources and advice for self-motivated learners, and a patreon to support it. The people at teachyourselfcs.com can learn from this site.

TeeMassive wrote at 2021-11-27 06:31:18:

As someone who always struggled to draw _anything_, even stick figures, this site just seems like a new revelation to me.

boppo1 wrote at 2021-11-27 14:25:34:

Google "Darren Rousar The Sight Size Cast". The two approaches to drawing are constructive and observational. Internet guides like draw a box largely neglect the observational side.

pokepim wrote at 2021-11-27 07:00:25:

I wonder if there is something like this to teach computer graphics too.

ggambetta wrote at 2021-11-27 09:24:14:

I've written exactly that!

https://gabrielgambetta.com/computer-graphics-from-scratch/i...

rolltopdesk wrote at 2021-11-27 13:30:46:

I get a “you should go back-this site looks like it’s impersonating drawbox” message from that link.

arkj wrote at 2021-11-27 14:44:44:

Try without the www (

https://drawabox.com

). The certificate is not a wildcard one and only include the naked domain.

ack wrote at 2021-11-29 23:32:38:

yeah, www isn't redirecting. the link is

https://drawabox.com/

at_compile_time wrote at 2021-11-27 00:13:00:

I'm a self-taught programmer and I've been looking at this curriculum longingly for a while now. I've been working up the courage to quit a cushy but unfulfilling job to study CS full-time (also math and physics, but that's just for fun).

I fell in love with programming after I started working, and have spent the last 7 years automating everything I can in my job. I'm confident in my ability to solve problems, but I'm missing a solid understanding of the fundamentals.

I already have a BS in Materials Engineering, and I have mixed feelings about returning to university. Tuition has doubled since I graduated, and I'm perfectly capable of teaching myself. The authors of teachyourselfcs.com have some strong opinions on CS masters degrees, though I would consider it if I found a topic that really called out to me AFTER I had built those fundamentals.

I have plenty of savings, but I'm worried that my effort will be wasted if it doesn't come with an exclusive piece of paper at the end. Will it be an obstacle, or am I worried over nothing?

barry-cotter wrote at 2021-11-27 02:50:39:

Maybe do the Gerogia Tech Online Master's in Computer Science? If you're considering studying full time the fees ($10,000) are trivial compared to the foregone earnings. You don't even need to finish before you start interviewing.

https://omscs.gatech.edu/

Alternately go to the Recurse Center. They exist for people like you and make their money by helping you get a job afterwards.

https://www.recurse.com/

Or you could "just" learn in public and chronicle it. Make a Twitch channel or livestream on YouTube. Do enough that people you don't know personally will vouch for you for a FAANG interview. Do three months of Leetcode and go to a few meetups and someone will do that.

legerdemain wrote at 2021-11-27 05:03:48:

It should be pointed out that joining Georgia Tech's OMSCS is not trivial. It's a limited-enrollment, fully accredited master's degree program. You need strong test results and convincing letters of recommendation from former faculty or mentors to be admitted.

barry-cotter wrote at 2021-11-27 05:07:13:

OP has an Engineering degree. He is not going to have much trouble getting admitted. GA Tech has been quite clear that the goal is to admit everyone they think can pass who has a Bachelor's degree. They're not even aiming to make a profit, just cover costs. They're kings.

interroboink wrote at 2021-11-27 02:19:24:

I definitely got significant value out of studying CS in a structured/academic context after being self-taught; it helped a lot of concepts that I already fuzzily understood gel together. For instance, I had written little config file parsers, and even most of my own (mini) programming language, but taking a course on programming languages, studying grammars, lexers, parsers, etc. helped make everything click and feel less shaky.

I'm not sure the diploma is a huge deal, as long as you have some industry experience (sounds like you do) and can demonstrate your skills. Having some references who can vouch for you is good to have, too.

jmkr wrote at 2021-11-27 03:47:29:

> but taking a course on programming languages, studying grammars, lexers, parsers, etc. helped make everything click and feel less shaky.

I'm currently trying to learn all of this and wish I had completed my CS degree since you have peers going through the same thing, and a professor for office hours. I find it a little difficult to get through on my own, but I hope to get far enough to participate in PL.

tinfoil_knight wrote at 2021-11-27 12:43:36:

Check out

https://craftinginterpreters.com/

. I created a interpreter with the help of this book and it's been a great resource.

at_compile_time wrote at 2021-11-27 17:55:31:

This is the resource recommended by teachyourselfcs.com. I guess that's encouraging.

wwfzyn wrote at 2021-11-27 01:46:16:

You don't need a CS diploma but you need to know how to program. You'll get either a take home project or white board problems during the interview. If you can pass those, you aren't lazy, and you aren't a jerk you are hired.

bredren wrote at 2021-11-27 05:36:52:

This is not necessarily representative. Leetcode interviewing is so common now, it gatekeeps many companies.

By all means take courses. But before you quit to just take time off and self educate, read the long threads on here about what it is really like out there in tech hiring.

Be prepared not only to be good at programming, but great at tech interviewing which is not the same.

bobobob420 wrote at 2021-11-27 00:16:25:

Just watch YouTube videos about how everything works too. Operating systems , compilers, data structures , modern computer systems. Look up elementinfs of computing systems or whatever has all the info u need.

mastersip wrote at 2021-11-27 04:06:42:

https://cs1000.vercel.app

unbanned wrote at 2021-11-27 11:00:25:

>the courage to quit a cushy but unfulfilling job to study CS full-time

My advice would be, don't.

It will not make you a better developer. Most of the best software engineers I've come across are like yourselves; the worst ones are those with CS degrees.

musicale wrote at 2021-11-26 23:01:24:

I think the advice to avoid an MSCS should be taken with a grain of salt, particularly if you have an undergrad degree in CS and/or already know the material on this page.

While it is true that programs are cash cows and there is both potential debt and opportunity cost, you can learn a lot if you pick the right courses, such as well-taught graduate systems courses with a serious project component.

I have often wished that software I've seen, both commercial and open source, had been written by people who had a better understanding of computer systems, especially operating systems, databases, distributed systems, etc..

itsmemattchung wrote at 2021-11-27 00:02:40:

Agreed. Just finished earning my masters in C.S. from Georgia Tech and well worth it. Classes were intellectually stimulating, particularly compilers, distributed systems, and algorithms.

_wldu wrote at 2021-11-27 00:54:00:

Operating Systems and Algorithms at GT are top-notch. Some of the best in the world. That's one reason they are consistently ranked in the top 10 CS programs in the world.

Waterluvian wrote at 2021-11-26 23:22:46:

The cash cow thing depends on region. Up here my MSc was effectively free.

coyotespike wrote at 2021-11-27 01:20:21:

Yeah, I'm doing UT Austin, and they charge $1k a course, for a total of 10 courses - to me that is pretty cheap.

It's all through EdX, so still a cash cow for them, but reasonable for the student.

zelphirkalt wrote at 2021-11-27 10:10:58:

Not sure you understood already, but I think the GP means actually at no cost.

emodendroket wrote at 2021-11-26 21:33:32:

It's cool that there are more of these around; I remember I just kind of went to a few universities' CS program Web sites, looked at what courses you'd take to get the major and what books they used, and went from there.

soledades wrote at 2021-11-26 21:41:55:

Yeah, this is pretty comparable and does a decent job aggregating what you might find by doing that.

Also helps with the kind of decision paralysis and tendency to wander off course I’ve often experienced when doing the aggregating myself.

This syllabus has been instrumental in keeping me focused over the course of a year+

emodendroket wrote at 2021-11-26 22:05:05:

Yeah, I also think that my approach might have been less obvious if I hadn't already completed a college major in a different subject.

math_denial wrote at 2021-11-27 14:13:03:

I use this method for every subject I want to know deeply. After I have the foundational knowledge down I can create my own niche curriculum.

asdadsdad wrote at 2021-11-27 02:23:35:

Timeless quote from Bodik, from the article:

"Don’t be a boilerplate programmer. Instead, build tools for users and other programmers. Take historical note of textile and steel industries: do you want to build machines and tools, or do you want to operate those machines?"

gReaT resource.

micahbule wrote at 2021-11-27 00:39:22:

A good course/resource to go on a full and serious dive to CS:

https://github.com/ossu/computer-science

musicale wrote at 2021-11-26 23:01:24:

I think the advice to avoid an MSCS should be taken with a grain of salt.

You can learn a lot in a well-taught graduate systems course with a serious project component.

musicale wrote at 2021-11-27 23:13:48:

Apologies for the duplicate post - sometimes either the reply button doesn't seem to work (post doesn't show up) or I end up double-clicking it rather than single-clicking. There seems to be a time limit on deletion and editing unfortunately.

2OEH8eoCRo0 wrote at 2021-11-26 22:33:59:

Eerie. I was just browsing this site minutes ago. Good all-around guide but I wonder if it could use an update to include things like machine learning, cryptography, or safety-critical software.

thundergolfer wrote at 2021-11-27 12:35:26:

They respond to that update suggestion in their FAQ. Machine learning in particular is just not something they belief every type 1 engineer needs to know.

pkdpic wrote at 2021-11-27 03:37:44:

Ive been teaching at a top bootcamp for a while now and really enjoying it, in large part because we get a lot of lateral freedom to spend time going deeper on computer science topics and get a lot of excuses to do so with our current CS-heavy curriculum.

I just wanted to say this is exactly the kind of welcoming, positive resource that made the software industry feel so welcoming when I came back to it after a decade long hiatus. Its not perfect but it really seems like its never been so easy to find the resources you need to become not just a proficient developer but a fully engaged software engineer.

I'll be forwarding this to all my past, present and future graduates. Thank you for posting and for all the work that went into assembling this. :^)

Also if anyone has any other good resources for helping to shape new minds in the industry and make responsible / capable engineers please let me know!

JavaBatman wrote at 2021-11-27 03:13:26:

I did my undergrad in Economics but I want to transition to software engineering. But idk what stack to choose or what projects to work on. I also can't afford to leave my job to do a bootcamp either. So I'm stuck and it sucks.

asicsp wrote at 2021-11-27 03:54:51:

Perhaps data science and analysis? Check out

https://github.com/ossu/data-science

and

https://datacarpentry.org/lessons/

aero-glide2 wrote at 2021-11-27 01:27:19:

There's a discord group for this which isn't very active

https://jointeachyourselfcs.carrd.co/

Maybe we could make it active :)

ginger2016 wrote at 2021-11-27 21:07:57:

Is this blocked in India? I can’t access

The website has been blocked as per order of Ministry of Electronics and Information Technology under IT Act, 2000.

fellellor wrote at 2021-11-27 04:52:52:

Is there any place where you can discuss the textbook problems in this course?

aero-glide2 wrote at 2021-11-27 09:29:37:

There's a discord group

https://jointeachyourselfcs.carrd.co/

szemy2 wrote at 2021-11-27 17:23:13:

Are there any good similar sites for learning botanics?

grouphugs wrote at 2021-11-26 22:49:15:

these types of resources used to excite me so much, after entering the work force and everything else that followed after, i'm done. pay me or die

_wldu wrote at 2021-11-27 00:57:02:

I would argue that if you really understand binary search, then you understand half of CS Theory. You can apply that to DP, graphs, networks, etc. and solve most problems efficiently.

moffkalast wrote at 2021-11-27 00:08:09:

Computer science is overrated.

Computer engineering on the other hand... much more practical ;)

hliyan wrote at 2021-11-27 03:16:57:

I'm seeing this belief more and more among engineers these days. It's not even an admission of ignorance, but an explicit position they hold. "You don't need to know the chemical composition of the patty to flip burgers," one told me. All I was doing was trying to explain that he could be way more than a burger flipper if he learned more deeply.

moffkalast wrote at 2021-11-27 12:25:18:

If you ask me, the word computer scientist mostly applies to people in academia, and those spend most of their time teaching the same thing every year, or trying to get their papers accepted, and fighting workplace politics instead of doing something practical.

Knowing what something is isn't science, it's just being educated. Figuring out a new type of semiconductor or new sorting algorithm is science, and even that sometimes isn't. Something that I threw together one night that hasn't been peer reviewed isn't science, it's just engineering.

Obligatory SMBC:

https://www.smbc-comics.com/comic/2011-02-17

Rerarom wrote at 2021-11-27 14:03:52:

> trying to get their papers accepted

I think that to do that one has to spend (most of their) time writing those papers, and doing the research contained in them.

asdadsdad wrote at 2021-11-27 02:30:17:

good luck w/ that =)