Live data from Hacker News

OSSU: A path to a free self-taught education in computer science

github.com

41–50 of 177 posts

Re: OSSU: A path to a free self-taught education in computer science

#41

why doesnt this exist for any other field? you never hear of a DIY mathematician or economist...further proves that tech is a trade not a profession

A mathematics example:

* https://github.com/llSourcell/learn_math_fast

* https://github.com/shanirivers/open-source-mathematics-degre... (draft)

Re: OSSU: A path to a free self-taught education in computer science

#42

Browsing throughout those courses I found out that more then 50% of them require you to either sign in with FB or Google in order to access them, so no thank you. Remember, if something is free then you're the product.

That saying applies more to stuff like gmail (free actual value but paid for with info) than the need to sign in.

Re: OSSU: A path to a free self-taught education in computer science

#43
post #2

This is a bit hypocritical coming from a self-taught dropout, but I have kind of grown to dislike a lot of these "learn programming on your own!" things/bootcamps/courses. This isn't because of some idea that it's bad to learn programming for fun, but more that I think it's kind of reductive to try and squeeze things down to a streamlined lesson to begin with...There's a reason college takes four or more years; it ta…

I'm one of the maintainers of the curriculum.

> I have kind of grown to dislike a lot of these "learn programming on your own!" things/bootcamps/courses.

I somewhat agree, though I don't really see the problem with "learn to code" style programs if learning to code is precisely your goal. What I don't like is the seemingly widespread belief that learning to code is equivalent to learning computer science, when computer science doesn't even have anything to do with computers (as specific pieces of hardware). OSSU/CS is not a "learn to code" program; it mixes coding with computer science, and it's expected that it would take years for someone to get through the whole list of resources.

The second thing I believe I agree with you about is that we reject "learn programming on your own". While many people are interesting in starting to learn something on their own, drop off rates are extremely high for MOOCs. Most people cannot learn things on their own, and most MOOCs fail to provide the support needed by students. That's why OSSU is a community of learners that support each other, not just a curriculum.

> a lot of the "extra" classes you're required to take actually do inform your perspective on a lot of career stuff. For example, I hated taking philosophy classes and thought they were "pointless", but I recently realized how much they have helped me with logical thinking, and being able to justify decisions I'm forced to make.

I totally agree with this, except for the fact that I loved my philosophy courses in college :-)

OSSU/CS, at least in its current state, is not a replacement for a well-rounded education. Since we are not an institution, we do not have any general education requirements. It would be better to think of OSSU/CS as a resource that someone with a bachelor's degree outside of CS might use before applying to grad school in CS, particularly to avoid taking expensive remedial classes. That is exactly how I'm using it myself. We also have people already enrolled in a CS program at a formal institution, but still using OSSU/CS to get a different perspective on the same topics.

Re: OSSU: A path to a free self-taught education in computer science

#44

why doesnt this exist for any other field? you never hear of a DIY mathematician or economist...further proves that tech is a trade not a profession

All it means is that the software engineering sector is more open to applicants with varying backgrounds. This shouldn't come as a surprise, given how relatively young and innovative the tech industry is.

There's nothing stopping someone from getting textbooks and learning the fundamentals to be a mathematician or economist, what stops that from getting them a job is the industry not being open to that.

The differentiator between "trade" and "profession" has traditionally been physical work vs intellectual work, not how tightly controlled the training is. For someone to describe something as complex as machine learning or building Netflix's backend as "a trade not a profession" is just absolutely absurd.

Re: OSSU: A path to a free self-taught education in computer science

#45
post #11

While it isn't directly related to the topic of the thread, is the Imposter's Handbook a suitable purchase for someone who didn't major in CS in college to "catch up"? I had two intro to CS courses during my undergrad and took several night courses while employed at my first job and did get a tech-facing career, but once I got that job I haven't had the energy to go back and tackle things like Data Structures and the…

I went back to college after having worked as a developer for a few years, which helped me focus on what mattered. That book looks like a good overview of many important CS topics.

I recommend the following topics (in roughly this order):

- Data structures

- Sorting algorithms

- Search algorithms

- Algorithmic complexity analysis (Big O) - Important

- Databases

And these topics that aren't in the book:

- Set theory

- Networking

- Security

- Encryption (learn what to do and what not to do)

My take on the rest of the book:

- The history of computing is interesting but not necessary to learn (plus there's a lot more than what's in that book)

- Software design patterns and principles are nice to know, but they're only useful when you're in a position to design the software (not likely for an entry-level job)

- Study functional programming before trying to learn lambda calculus, unless you like abstract math (guessing you don't)

- Learning how compilers work is not necessary unless you're working on a compiler or writing much low-level code (sounds like you're not)

- Testing is good to know, but it's not really that hard to figure out how to do

- Unix basics can be useful, depends on your situation

Re: OSSU: A path to a free self-taught education in computer science

#46

Does anyone have a similar resource for applied math? I am looking for something that goes beyond the standard calculus, linear algebra and stats material. For example, optimization, numerical analysis, stochastic processes, dynamical systems etc.

I'm one of the core OSSU team members. Unfortunately I'm not aware of any such resource, but I'm really interested in finding someone who can build an OSSU/Math curriculum!

Re: OSSU: A path to a free self-taught education in computer science

#47
post #2

This is a bit hypocritical coming from a self-taught dropout, but I have kind of grown to dislike a lot of these "learn programming on your own!" things/bootcamps/courses. This isn't because of some idea that it's bad to learn programming for fun, but more that I think it's kind of reductive to try and squeeze things down to a streamlined lesson to begin with...There's a reason college takes four or more years; it ta…

I'm one of the maintainers of the curriculum. > I have kind of grown to dislike a lot of these "learn programming on your own!" things/bootcamps/courses. I somewhat agree, though I don't really see the problem with "learn to code" style programs if learning to code is precisely your goal. What I don't like is the seemingly widespread belief that learning to code is equivalent to learning computer science, when comput…

Just a note, I realize that I came off as overly-hostile towards OSSU; not my intention, I don't know anything about it and I apologize if I gave the impression that I was criticizing it specifically.

> I somewhat agree, though I don't really see the problem with "learn to code" style programs if learning to code is precisely your goal.

I agree; nothing wrong with learning to code if you just want to learn to code. I get a little frustrated that a certain subset of people treat these MOOCs as a replacement or alternative to college.

Re: OSSU: A path to a free self-taught education in computer science

#48
post #2

This is a bit hypocritical coming from a self-taught dropout, but I have kind of grown to dislike a lot of these "learn programming on your own!" things/bootcamps/courses. This isn't because of some idea that it's bad to learn programming for fun, but more that I think it's kind of reductive to try and squeeze things down to a streamlined lesson to begin with...There's a reason college takes four or more years; it ta…

The issue I have with the "learn to ___ on your own" industry that's popped up is that it doesn't take into account accountability for the student. Take getting into shape as an example. Excluding obvious disabilities there's really nothing holding anyone back. Even with horrible schedules you can absolutely go out and join a gym, lose weight, and get ripped. Heck, you don't even need to join a gym. Everything you need you probably already have. And many people out there do. But the majority doesn't. Getting a personal trainer or joining a class adds accountability. On days that you don't want to train, well you have an appointment so you kind of have to or call it off.

In the end it takes the person pushing themselves. And unless the person has a real love for the material, people just won't. And it's kind of lousy that this is treated as a horrible personal failing when it's pretty much how people operate. Even a poor teacher at the very least adds accountability.

Re: OSSU: A path to a free self-taught education in computer science

#49
Personally I think this is great but I would spend less time on certain things and more time on others.

I think what people who are trying to train themselves for programming jobs need most is topics in software engineering. And in particular I have my own view of the most important parts of software engineering.

So I would put more emphasis on modern tooling, practical requirements analysis, hammer home the importance of iteration and closed feedback loops such as end-to-end testing and observing/interacting with users. Emphasize iterative requirements analysis and verification -- it's very easy to get on to the wrong path early on in a project and waste a lot of time. And for most projects the programmer is the person who is best equipped to really understand and steer requirements and this means they need to be assertive which is quite a challenging aspect that requires practice.

Also modules and components can be critical so they need to get beyond objects or functions to that level. And also they need to understand and have experience with package managers and registries. These are examples where things have changed over the years. In the past it might have been more important to, for example, have experience with assembly language, or something. But these days, for building new software or integrating existing, selecting and combining components is critical to leverage the massive amount of available code and systems and avoid reinventing the wheel. People disparage that as "glue" or "plumbing" etc. but it is a high-level skill that needs to be developed and I think in most cases a much more advanced approach than building everything from scratch. Also it takes practice to know which parts should be components and which parts should be custom.

Post reply on HN