Live data from Hacker News

Teach Yourself Computer Science

teachyourselfcs.com

241–250 of 273 posts

Re: Teach Yourself Computer Science

#241

Earlier quoted context omitted.

I'm self-taught too, and strictly interested in research-focused CS masters or PhD programs (as opposed to industry-focused cash-cows). I think I'm mostly interested in studying PL or program synthesis, but I'm also open to other ideas. How did you make that jump from self-taught to qualified for a PhD program?

I made this exact jump. The answer, for me, was a four year bachelor's degree. I was a self-taught software engineer, not a self-taught computer scientist. I was writing production code for fairly normal stuff, not proving theorems or implementing research prototypes of new ideas. So YMMV. If you can make it through TAPL or PFPL on your own, then you probably know enough to be useful to some random grad student somew…

[deleted]

Re: Teach Yourself Computer Science

#242

Having gone through all of these course myself, I'm wondering if this stuff is really relevant to today's workforce? Compiler Design? How to build an Operating System? I remember in a job writing my own BNF grammer and a a parser for it to optimize something or other and I got back basically "WTF" on the code review. I would say database fundamentals is a must, so is networking. But honestly the rest is iffy. When wa…

I wouldn't trust myself to sit down and code a red-black tree. I'm guessing if you find a GH repo with a RB tree implementation, there will be more than a few closed issues because these kinds of things often have many edge cases.

What is more important I think is to understand why a RB tree exists: what are its unique characteristics vs a binary tree, B-tree, AVL-tree, etc.

Same thing with hash tables. If you have never coded a hash table implementation, it may be puzzling to discover there are many, many hash tables, each with pluses and minuses. The real skill is being able to understand the trade-offs and choose a hash table implementation that will work for your specific problem. And when it falls down for some specific data, load factor, etc., understand why.

Re: Teach Yourself Computer Science

#243

One thing I'm always amazed by when casually talking to people about what I do is how they don't think they can do it. Many people think that software engineering and programming are some inscrutable thing. Sometimes I try to tell them that it is nothing special, it doesn't take a mega genius or math expert to do it. That the most important skill is just being able to solve real problems, soft skills and breaking pro…

I beg to disagree becoming a solid software engineer requires a lot of intelligence and persistence as well as a certain mindset.

Sitting down and staring at a problem for 10 hours with very little progress can be extremely demotivating for some.

To just get a job in software, the skills that are needed aren't really high though.

Re: Teach Yourself Computer Science

#244

One thing I'm always amazed by when casually talking to people about what I do is how they don't think they can do it. Many people think that software engineering and programming are some inscrutable thing. Sometimes I try to tell them that it is nothing special, it doesn't take a mega genius or math expert to do it. That the most important skill is just being able to solve real problems, soft skills and breaking pro…

It's usually the other way around for me. People I talk to generally think that they can be software developers without much effort.

I even met one guy who said that he wrote some HTML back in the day and it was easy, so he was thinking of making a career in software development as it wouldn't take him more than a few weeks to pick it up.

Re: Teach Yourself Computer Science

#245
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'm sure many do but clearly the hardest part isn't actually following a list. It's finding or creating the discipline necessary to actually go through the entire list.

Re: Teach Yourself Computer Science

#246
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 finished two courses on the list. All I feel is: I wish I had watch/read this earlier.

I thinks I had much more fun from these courses after I have done many real projects in these years.

Maybe you get bored because it's little bit easy and basic for you.

Re: Teach Yourself Computer Science

#247

One thing I'm always amazed by when casually talking to people about what I do is how they don't think they can do it. Many people think that software engineering and programming are some inscrutable thing. Sometimes I try to tell them that it is nothing special, it doesn't take a mega genius or math expert to do it. That the most important skill is just being able to solve real problems, soft skills and breaking pro…

Frustrating? It's our greatest luck! If people would accept how easy programming is we wouldn't get paid that good for it on all levels.

Some jobs are protected by difficult, mandatory, exclusive education: Law, medicine, piloting. Software development is one of the least protected areas and we also face the threat of outsourcing. To most companies we are an unpleasant cost factor in need of optimization.

Unless you plan to become a manager or owner who profits from cheaper labor cost and more potential employees to chose from, do your part to keep people away from programming.

Re: Teach Yourself Computer Science

#248
post #180

One thing I'm always amazed by when casually talking to people about what I do is how they don't think they can do it. Many people think that software engineering and programming are some inscrutable thing. Sometimes I try to tell them that it is nothing special, it doesn't take a mega genius or math expert to do it. That the most important skill is just being able to solve real problems, soft skills and breaking pro…

> the most important skill is just being able to solve real problems, soft skills and breaking problems into parts. As well as the ability to self learn and research. Seeing a very non-technical friend of mine being completely immersed in games like "Factorio" and "Satisfactory" where the entire game is essentially just putting constantly more complex and valuable resources together in automated ways is fascinating t…

> ... people that would have loved to get their hands dirty with micro-controllers, soldering, programming and all the other stuff that could help them solve real world problems, but they were just never given the chance

Anecdotally, this was _almost_ me. I ended up going to university to study CS much later in my life than most people, and only because of a fortunate meeting with someone who was from that kind of background and 'guessed' I would be into it, and if I didn't, who knows what crappy dead-end job I would've ended up in.

How lucky I am to have 'made it' into a career I enjoy, and how many other people are out there who would love to have this opportunity, but instead are working in dull, menial jobs, just like I was before uni, is something I think about often.

I'm not sure how we get more people involved. There are 'STEM ambassador' (https://www.stem.org.uk/stem-ambassadors) roles in the UK. I'm not sure of their efficacy.

Re: Teach Yourself Computer Science

#249

One thing I'm always amazed by when casually talking to people about what I do is how they don't think they can do it. Many people think that software engineering and programming are some inscrutable thing. Sometimes I try to tell them that it is nothing special, it doesn't take a mega genius or math expert to do it. That the most important skill is just being able to solve real problems, soft skills and breaking pro…

> Many people think that software engineering and programming are some inscrutable thing

It's not inscrutable, but it's not something everyone can do. And among those who can, not all of them necessarily enjoy it. It takes a high enough IQ (whatever reservations you might have about IQ tests, there's no doubt they match with programming ability) as well as an appropriate disposition.

I mean you wouldn't expect every single person to be able to play music or paint well enough to make a living out of it. I sure as hell wouldn't want to be a lawyer, I doubt I could even do the job at a mediocre level if my life depended on it. (Not that I dislike the field: I watch more law-related Youtube videos than I'd normally care to admit, which reinforces my belief that I'd suck at it.)

Re: Teach Yourself Computer Science

#250
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 finished university some time last century; so, most of what I know is self taught at this point. Also, software engineering is more of an apprenticeship thing than something a university professor without relevant software engineering experience can do.

I'm being harsh here because I used to have software engineering as a topic for my Ph. D. studies. Part of the reason I left the academic world (after a postdoc) was a bit of impostor syndrome where I realized I was telling others how to engineer software without having much experience engineering software. This always struck me as odd. I've since learned a lot about software engineering that was definitely not part of any computer science studies I know off.

I always think of college being more about learning to learn than to learn anything specific. Also the difference between university and a technical school is that the former tends to be exactly about being less about practical skills and more about skills you need to learn new stuff and ask critical questions. Quite a few projects I've been on over the years have also required me to dive into other domains. I've had to read up on metallurgy, geo spatial algorithms, and medical stuff at various points for different projects.

Post reply on HN