

Ask HN: What is the ideal self-study computer science curriculum? - intellegacy

Hello HN, I'm looking for advice on two topics: 
1) whether to go back to school to study Computer Science
2) If I don't go, what is the ideal self-study curriculum?<p>Some background: 
I graduated with a BA in Business 6 years ago (I know, I know) and a few months after graduation I became interested in programming because I had an idea for a startup. I self-studied enough to get a job as a java programmer, which I stayed at for 1 year.<p>The job was decent enough, but I felt really limited in my coding ability - like I didn't understand 95% of what was happening in the code base. I could code my own module, sure, but my ultimate goal was to develop websites (or learn enough to build a game or application) and I felt I wasn't making progress in that area.<p>I left after a year because I thought I just didn't have it to be a (great) programmer. Recently, I've discarded that belief. I now want to learn the fundamentals of Computer Science. My problem is that beyond the introductory courses, which I'm taking online, I'm not sure where/how to continue.<p>Is it possible to get a full CS education online? Or should I go back to undergrad to get another BS in Comp Sci? 
And would they even accept me if I applied? 
Could finish in two years, with transfer credits?<p>Also, if I self-study, what is the ideal curricula, and what are the dependencies (prerequisites) for each?<p>for example, I understand there is a lot of Math required, but I'm unsure when exactly to take each course. Should I study Calculus in conjunction with Intro to CS? And then when do I tackle statistics, probability? What Math do I need for Data Structure and Algorithms? etc.<p>Your advice is much appreciated!
Thank you.
======
enoch_r
As a developer who majored in economics, I'd suggest just going to
<http://www.class-central.com> and taking any and every class that you find
interesting and think would be useful. That should at least get you beyond the
"introductory" courses--hopefully more higher-level courses will be offered in
the near future, too. Try taking difficult classes, regardless of whether you
meet the prerequisites--if the math turns out to be too difficult, just work
on the relevant math skills while you take the class.

I think the software world is uniquely situated to bypass a lot of the
outmoded educational models that we've built up over the years, where
education is 10% about learning and 90% about slapping down a degree that
"proves" you're intelligent and capable. This makes a lot of the trappings of
a traditional education unnecessary--if you take a class but don't have all
the prerequisites, you don't need to worry that your grades will suffer,
because your grades (if you even have them!) don't matter. If you're
interested and motivated, you'll learn a ton, and that's what will matter in
the end.

------
diab0lic
You may see diminishing returns when going back to get a second degree,
especially if you can display competence in CS topics in other ways; doing so
during an interview, completed projects, open source projects, etc...

This is all in relation to the "self taught" route, though I don't necessarily
advocate it. As for the math necessary for the degree, I'm someone who has
very little Math experience and have managed to start my M.Sc. in CS. With
that said -- don't be me. Its not that a lot of math is required, but it helps
a lot. This is true not only in mathematical ability but also the mindset it
requires. Solving math problems exercises your brian in critical thinking -- a
skill very necessary for programming.

Calculus, Linear Algebra, Statistics are a few domains of mathematics that
will bear some relevance.

As for actual CS topics that tend to be included in core curriculum, why not
just take a peek at what some good schools are doing:

<https://cs.uwaterloo.ca/current/courses/course_descriptions/>

I'll let you find the rest of the links.

~~~
intellegacy
Thanks for the link. That's weird, I was just looking at the University of
Waterloo CS program.

I've considered the M.Sc in CS but I honestly don't have the background for
it. I need to retake Calc. I don't have any algorithms or data structures
knowledge. I have taken literally no CS courses as well. Isn't a Masters in CS
more advanced than the Undergrad Curriculum? Or am I able to take undergrad
courses in the Masters program and get a M.Sc?

------
eranation
I created a blog post for some friends who asked a similar question (I keep it
updated with time)

<http://eranmedan.com/post/22359967135/codeschools>

