

Ask HN: A Self-Taught Programmer's Library - ljordan

I search the web extensively looking for guidance and resources to build a curriculum that I can follow to learn to program.  I want to get out of my current job and into work building software.  I have some experience, but still consider myself a beginner.<p>One thing I noticed is that there are a huge amount of resources available but they are pretty widely dispersed.  It occurred to me that it might be helpful for beginner-types to have a place to go that collects pointers to these resources.  I can't be the only person with this idea, so why haven't I found  something like it?  Since I'm building my own study plan I've already found a lot of the content that would make the site.  Perhaps the site would elicit feedback/improvements and become a useful resource and place for self-motivated beginners to connect with fundamental topics of programming.<p>HN has impressed the hell out me as being a really cool group of people.  What do you think?
======
koenigdavidmj
MIT hosts a lot of their course materials online at
<http://ocw.mit.edu/index.htm> . Dig through some of their classes.

I'm not sure at what level you mean by 'beginner', but my recommendation is to
run through 6.001 (Structure and Interpretation of Computer Programs). MIT has
a new Python-based intro class that has since replaced 6.001, but the old
class is still a very well-baked and well-respected curriculum.

After that, if you want, dig into a couple data structures and algorithms
classes (like 6.006) to build up your theoretical background.

Next look into a software engineering course (theirs is 6.005). This should
get you a bit of feel for diving into a large system without getting lost, or
organising one of your own.

After that, just start poking around at things that look interesting. Build
something shiny. (That's the great thing about our industry---you can get your
tools for free, and build something useful without making a huge initial
investment. That would not happen in a lot of other fields.)

------
kmort
Such a thing is currently languishing as my #3 side project.

The idea is a curated directory of topical resources that takes into account
what you already know, and what you'd like to learn.

E.g. the "Scala" topic may take into your self-assessed familiarity with the
"Java" and "functional programming" topics to omit the learn-programming-with-
Scala links and jump straight to the Scala-for-programmers links.

The content exists only as curated links to external sites with a well-written
summary and sundry taxonomic information. User submissions will be welcome,
but reviewed and catalogued before being published.

A small recommendation shall operate as well. If you've given yourself a 2
(out of 3) for "JavaScript" and have flagged an interest in "Statistics" then
it'll recommend and tailor the "Data Visualization" page for you to include
only the relevant links for your level.

This came about after witnessing the dozens of "What language should I learn?"
and "How can I start ____?" threads that pop-up on Reddit, here, and various
other forums.

Sorry I don't have a link for you right now, but just wanted to let you know
you're not alone in missing a resource like this!

------
curt
The problem is that there are so many different areas that such a resource
would have cover, likely it would be quite hard to navigate. The difficulty is
that someone learning and someone experienced creating/adding to the site see
things differently and would look in different areas. For example, I haven't
done linear algebra in years but am currently relearning it since I'm working
on an extremely complicated problem that requires some very advanced
knowledge. With Google, Wikipedia, and Stackoverflow I can find almost
everything, it's just a matter of finding the correct terminology so I know
where to look and how to read the documentation.

I've taken a look at w3school and it gives a pretty good overview, enough so
that afterwords someone should be able to find what they need (I am biased
since I already know a few languages). I remember I first expanded beyond C
using codemonkey, though I don't know if they still exist or what state their
tutorials are in.

------
jbseek
Check out <http://www.reddit.com/r/carlhprogramming/>

+1 For MIT open courseware..

my advice is to just dive in you will pick it up.

