Live data from Hacker News

Teach Yourself Computer Science

teachyourselfcs.com

251–260 of 273 posts

Re: Teach Yourself Computer Science

#251
post #150

Ha - super ironic that this would be atop HN today. I've recently decided to dive back into this journey as well. Anyway - I was watching the final lecture of David J. Malans CS50 course yesterday and found this awesome slide he shared. I screengrabbed it and now I share it with all of you. It's essentially "where to go from here and beyond" (by course) https://gyazo.com/919d9deef0d1767f685fab9b4bfc12fc

I re-uploaded that image to a host that doesn't require JS to view an image, because requiring JS to view an image is peak JS stupidity. https://i.imgur.com/yvA5Eiz.jpg

Wow, apparently Imgur is now redirecting their plain image links to pages which _do_ require JS for viewing. Thus, Imgur has now been removed from the list of image hosts that I use (and I suggest others to do so as well)

Instead, here's the actual image, without any the JS: https://i.postimg.cc/hjzXvrNc/yvA5Eiz.jpg

Re: Teach Yourself Computer Science

#252

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…

I'm almost halfway through this: https://plfa.github.io/

I was auditing a grad class at UT that used this book, then corona hit. Still plan to finish it eventually though

I'm not even really sure where I would get started working on an implementation or working on a paper. Are these projects open source?

Re: Teach Yourself Computer Science

#253
post #58
post #36

Earlier quoted context omitted.

I remember telling people to read "The Python Tutorial" on python.org , if they wanted to write Python. It takes a few hours for an experienced programer, and a couple of days for a beginner. People had difficulty starting.

A beginner might have trouble assimilating this information - too few examples, not enough entry level drilling on data types, operators, flow control and functions. For example they might forget to put quotes around a string or not know how to use two for loops, one inside the other, even if they know how to use one in isolation. It's hard to grok how to compose things even if the student saw how to use them in isol…

> not enough entry level drilling on data types [..] they might forget to put quotes around a string

Just want to emphasize that first part; I've seen the second in new hires who passed a coding bootcamp, and it's really weird to watch. One of them even had to see the error message and go back to the code and still puzzle over it for several seconds before realizing what was wrong.

Re: Teach Yourself Computer Science

#254
post #71

Earlier quoted context omitted.

How can you tell which one is right for you? So many computer scientist graduates I know ended up pursuing software engineering that I've mistakingly conflated the two.

it's really theory (CS) vs building things (SWE). As you want to build larger projects, or build them better, you rely on CS ideas to do that. So SWE is really engineering assisted by applied CS. I've been studying CS for about two years and am only now learning any real application development. You can study CS without ever touching a computer or building an application (though doing both those things will give you…

> but the physicist can learn to build and the engineer can learn theory.

So is this why frameworks exist? To abstract away the theory that proves something more "performant" or "sufficient", and allow the builder to do their thing?

Re: Teach Yourself Computer Science

#255
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.

I'd say that in CS, there's a lot more transferrable knowledge. In medicine, there's a lot of specialization and niche knowledge. The cardiologist would know very little about orthopaedic specialist, for instance. I was a GP myself, and likely knew more about medicine & surgery in general. Although I had less specific knowledge, I could integrate information better (eg. Project manager, if you will, vs database specialist).

So yes -- in CS, if you work in an area with a lot of general knowledge -- you are likely to get up to speed faster. In medicine, if you're a GP, you can probably undergo additional specialist training much quicker than someone who first pursued a single specialty first.

Re: Teach Yourself Computer Science

#256

Earlier quoted context omitted.

SICP sounds like a big waste of time when you can follow another guide in a language like Python and make applications along the way.

Yeah! Yeah! I'd say your onto something here buddy!

Agree/disagree, but after doing SICP myself, following other methods and making projects at the same time (or working on things I was interested in) forced me to learn a lot more than just doing some assignments in a language I would never use again.

Re: Teach Yourself Computer Science

#257

Earlier quoted context omitted.

it's really theory (CS) vs building things (SWE). As you want to build larger projects, or build them better, you rely on CS ideas to do that. So SWE is really engineering assisted by applied CS. I've been studying CS for about two years and am only now learning any real application development. You can study CS without ever touching a computer or building an application (though doing both those things will give you…

> but the physicist can learn to build and the engineer can learn theory. So is this why frameworks exist? To abstract away the theory that proves something more "performant" or "sufficient", and allow the builder to do their thing?

More or less yes. The idea is that a framework (ideally) does some feature A the "right" way and programmers using the framework gain the benefits of convenience and safety, often at the cost of flexibility. Frameworks will usually try and balance the power or depth of the domain its abstracting with ease of use.

A good framework will stop beginners from making critical mistakes, decrease the amount of code its users have to write, and offer professionals well-constructed ways around its handholding as needed.

Re: Teach Yourself Computer Science

#258

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…

Disagree. You need very good, structured, abstract thinking. Most people don't have that. Even many developers don't have that or aren't very good at it.

And even among the people who have it many can't stand stuff like programming - you have to have a particular type of mindset/disposition to be successful.

Re: Teach Yourself Computer Science

#259
post #180

Earlier quoted context omitted.

> 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 ba…

There's a wonderful initiative in Suffolk, East of England, run by somebody I knew many years ago. Basically it's an educational club and community interest charity run/founded by a Matthew Applegate to teach kids and young people across Suffolk (I think there were also talks of expanding it to Norfolk.) all sorts of tech things like robotics, programming, game design electronics, and probably more now.

I don't know what it is about his style of teaching but he completely changed my view of IT and the IT industry. Before then, my main tech knowledge was from the at the time terrible exposure you got in rural schools back in the 2000s and taking electronics apart to try and see how they worked. I thought programming was way beyond me as I didn't do well at all in school and had major self esteem issues as a kid. Matt is one of the key reasons I gained a serious interest in technology and has helped probably thousands more like me. He showed me all it takes to learn anything is time, effort, and a healthy dose of curiousity.

Maybe other educators could reach out to him and ask how he does things differently? I'd love to see things like this crop up nationwide, I feel it'd seriously change the knowledge base of tech issues for future generations.

Relevant Links https://twitter.com/CCCSuffolk https://twitter.com/CCCCFSuffolk https://twitter.com/Pixelh8 (Matt's Twitter.) creativecomputingclub.com (Website appears down for maintenance time of writing.) https://www.linkedin.com/organization-guest/company/creative...

Re: Teach Yourself Computer Science

#260

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…

> whatever reservations you might have about IQ tests, there's no doubt they match with programming ability

If you happen to have some article or research in mind it'd be interesting to read

(Or maybe you read sth long ago and didn't save any links / references)

Post reply on HN