
Show HN: A sequence of online courses to learn web development from scratch - gautambay
http://www.mysliderule.com/web-dev
======
gautambay
My co-founder taught herself web development using online courses and
resources. This “Learning Path” outlines the resources she found most helpful,
and lays them out in a sequence that a beginner should be able to follow.

We realize this is _a_ curriculum, not _the best_ curriculum. We'd love your
feedback on whether this is useful, and what we might change or add.

Also if you’re so inclined, we’d love feedback on our product SlideRule itself
(a Yelp-like catalog of online courses), which you can access it by clicking
on “COURSES” in the header.

EDIT (based on some of the comments):

We're very encouraged to see the response to this.

1\. On which other subjects would you like to see such Learning Paths?

2\. If you're interested in helping us build more learning paths (on any
subject), we'd love to hear from you (in comments here or at
founders@mysliderule.com)

~~~
k__
How did she tackle OOP?

I'm trying to teach a friend of mine web-development, but she struggles with
OOP. Also I teached programming at a company I worked last year and all the
trainees had problems with OOP.

Somehow the basics of OOP came to myself rather easy. I only had problems with
the applied stuff, because all tutorials about OOP where with animals and
cars.

The people I try to teach mostly have problems with the basic concepts.

~~~
qqrsmith
Dan Grossman's Programming Languages class on Coursera includes a good
treatment of OOP in the later weeks.

[https://www.coursera.org/course/proglang](https://www.coursera.org/course/proglang)

~~~
manish_gill
To be honest, I pretty much lost interest in OOP. I found the ML/Racket parts
of the course much more interesting (and less confusing) - even though I
barely knew any FP and had actually studied some OOP. Perhaps I was biased,
either against OOP or Ruby, which was used to teach it. Hmm...

~~~
JimmyM
Same here, in terms of the practical elements of the course. I still found Dan
Grossman's lectures entirely engrossing, and I'm not _just_ saying that
because I noticed he was a HN user.

~~~
ctb9
I think those are different Dan Grossmans. (Dans Grossman?)

~~~
JimmyM
Ah, thanks for letting me know! That could have confused me.

------
2arrs2ells
This is a great list.

I do think 80+% of this material (maybe everything but the "learn to code"
piece) is covered in Michael Hartl's Rails Tutorial:
[http://ruby.railstutorial.org/ruby-on-rails-tutorial-
book](http://ruby.railstutorial.org/ruby-on-rails-tutorial-book)

That book singlehandedly took me from "crappy C programmer" to "someone with
enough knowledge to be dangerous" as a web dev.

~~~
atmosx
Yes, I found it weird that the book is not on this list, but clearly the
author is geared towards python - although web development might be the only
area where Ruby outshines Python.

~~~
frozenport
Python, through SciPy/NUMPY is well positioned for the future of web
development, which is a numerically driven world. I see Ruby as better PHP,.
Lastly phython is more universal, which is good. So I do think Python is a
really good choice for introductory programming.

~~~
alandarev
Not joining the debates, but can you give an oversight on why future web will
heavily rely on scientific application of the language?

------
ankitml
Devops is something not included by majority of web dev classes. Yet it is not
ignorable in this profession. Do include something on that.

~~~
k__
Yes, even if it's just the basics.

You have to structure your stuff good, so most of it can be automated. Doing
this later can be a real PITA.

~~~
iamwithnail
Seconded - I'm dipping my toe into this now, and it's baffling. I wish I'd
started earlier...

------
paulwithap
Cool idea, but as someone who as actually taken the courses in this list, the
order is all out of whack. There is no way someone completely new to
programming could jump into Udacity's CS253 and have any idea what is going
on. Even from CS101, there is a significant gap that you have to make up for
on your own.

~~~
parul
Also, Paul, bridge material between CS101 andn CS253 is included in section
3.1. Do let us know if you still feel there is a gap!

~~~
paulwithap
Thank you both for your responses! I speak from vivid memories of frustration
with that course. I didn't notice the bridge section you had put there.

I do really admire and appreciate what you're doing. I'm a self-taught web
dev, and the most overwhelming part was just figuring out what to learn next.
I'm glad someone is trying to solve that problem for others!

------
JoeAnzalone
This looks great! It reminds me of this Google Doc I put together a while
back, which you are free to copy/draw inspiration from. And I've already added
this page to it, so that should already be a good lesson on recursion :p
[https://docs.google.com/document/d/1jlJCxNG7XyCPpUNRybH1b2Pb...](https://docs.google.com/document/d/1jlJCxNG7XyCPpUNRybH1b2Pb-
GkKOtygG-m18Mk5q30/edit?usp=sharing)

~~~
gautambay
Thanks, this looks very comprehensive. Especially like the list of blogs and
FB pages, these are hard to find. Did you ever think about rank-ordering the
resources within each section?

------
Kurtz79
I really liked the Udacity course. It's by no means exhaustive or
representative of the ecosystem (it focuses on Python/Google App Engine, I
took it quite a while ago but I assume it has not changed), but introduces a
lot of basic concepts (client/server, templating, routing, caching, security,
cookies...) in a very concise and efficient way.

~~~
thinkpad20
I enjoyed that course a lot; I took it in its first run soon after I started
teaching myself programming. My only complaint with the course was that, for
me anyway, it left a lot of mystery in terms of answering how it's all
actually working. There were a lot of pieces, such as Django boilerplate code
and using Google App Engine, where they showed you how to use them in a
specific manner, but never really explained how they were working behind the
scenes. So I felt like there was a lot of magic, and that my understanding
didn't run particularly deep in some key areas. That said, the course covered
a huge amount of ground and I'm sure they had to be judicious with what got
covered. And I greatly enjoyed it. But I would have liked if they went with a
bit more of a ground-up approach, explaining how a server worked and how data
gets passed into the app, and then how that translated into Django's
operation, etc...

~~~
spez
Steve, the Udacity instructor, here.

I actually deliberately didn't use Django specifically because it's so
complicated for beginners (and for pros, IMHO). I was trying to avoid magic.
Webapp2, which is the web framework GAE users, and what we used in the course,
is about as simple as you can get without starting from scratch.

~~~
rattray
Hey Steve, thanks for your work in this course. It's a terrific thing for you
to do and it's my favorite course to recommend to beginners to webdev.

That said, the webapp2 decision is by far my biggest hesitation in
recommending it. Webapp2 just doesn't have the community support; whether
django is too "heavy" or flask too "light", they're both _popular_ , which
means they have great support, plugins, help on SO, and a lot of developers
familiar with them.

Webapp2 also hasn't seen a release since 2012[0].

I write this having recently completed a small consulting project where I
helped a team on GAE move from Webapp2 to django. The productivity gains just
from using django plugins and builtins was insane. They had been on webapp2
because their dev learned webdev on your course, and I think he would have
been much happier had the course included a more widely used framework. Lock-
in on Appengine is also a major issue; the work to move off can be enormous,
especially if you're using a framework designed for GAE.

Again, I totally understand the decision to use webapp2 and the course is
still a _huge_ net positive. But if you ever think about revising it, I'd
recommend considering another framework, and possibly even using Elastic
Beanstalk.

EDIT: I understand django can take a little more to get up and running, but
most people learning Python are going to have to learn it very soon anyway. I
learned how to program by doing the django tutorial, and didn't find it
burdensome at all.

[0]
[https://pypi.python.org/pypi/webapp2](https://pypi.python.org/pypi/webapp2)

~~~
spez
Sure, in the right hands Django (and Rails) and yield major productivity
boosts.

I personally don't like working in frameworks of that size because I find
myself fighting them to do what I want.

For the course itself, I really wanted the students to get as close to the
server as possible. Then, when some of them switch to the heavier frameworks,
they'll have a better idea of what the framework is doing and what is
possible. The course had a time constraint on it as well.

All in all, your anecdote reenforces my feelings on the topic :)

~~~
rattray
Fair! Thanks for your response.

------
rdudek
Really great stuff for beginners. Thanks for the list. I'll forward it along
to a few people who are interested but don't know where to start. However, it
does look very python-django specific route on the back-end side. My
suggestion, branch out the back-end side to include paths using different
frameworks and such?

~~~
gautambay
Good call! We built this one first because my co-founder taught herself
Python-Django, so this was easiest for us to create. But we'd love to branch
it out to RoR, etc.

------
blueblob
This is a neat idea. I disagree a little bit with the ordering. I think the
version control aspect should be placed a little bit earlier but I can see why
you would want to be seeing results of what you are doing before making sure
you keep track of your changes when just starting.

~~~
thinkpad20
Agreed. I'd put version control very early in the learning process of a coder.
If you know enough code to be writing actual things that do stuff, you can
benefit greatly from version control, and the earlier the better.

~~~
gautambay
Fair point.

------
ryangallen
I would also mix in Jeffrey Way's tuts for HTML, CSS, and jQuery. (They say 30
days but you can do them each in less than a week.)

[https://courses.tutsplus.com/courses/30-days-to-learn-
html-c...](https://courses.tutsplus.com/courses/30-days-to-learn-html-css)

[https://courses.tutsplus.com/courses/30-days-to-learn-
jquery](https://courses.tutsplus.com/courses/30-days-to-learn-jquery)

~~~
gautambay
Thanks, will check these out!

------
zeppelinnn
I'm really glad someone took the time to do this, and came with quite a
wholesome set of resources in the end. For someone who has moderate web dev
experience such as myself, I think it's also definitely useful for review as
well as the aspects of web dev you may be less/not at all familiar with.

------
markcmyers
Great list, but I think my newish book should be on it, since it takes a
unique approach that both beginners and veterans, but especially beginners,
really like, as evidenced by the rather wild Amazon reviews:
[http://amzn.to/1aOyqch](http://amzn.to/1aOyqch)

~~~
gautambay
Thanks, will check it out. We've leaned towards free resources where
available, though $5.99 shouldn't burn a hole in most pockets.

------
eriktrautman
It's a well put together list and a very useful website. You've done great
work pulling together a whole lot of courses and it's good to see them finally
being tied together into specific paths. Would you consider adding projects or
additional materials to the learning paths? I've found that's what our
students get the most value out of with in the project I've been working on
(the odin project -- [http://theodinproject.com](http://theodinproject.com))
because it gives the students a tangible result that unites the things they've
learned and they can add it to their portfolios. Often the MOOCs still hold
your hand a bit too much to be a complete solution. Happy to discuss --
erik@theodinproject.com

~~~
gautambay
Just checked out your profile and saw your post from a few days ago. Would
love to chat more and exchange notes. Will email you.

------
OafTobark
Is there a reason its start with CS253 then flies back to CS101 in section 3.
My prior understanding was CS101 knowledge is required for CS253 to make more
sense. It seems to jump around a lot aside from adding additional resources to
help learning during specific sections.

~~~
parul
My apologies if you found that disorienting! You are right that CS101 becomes
a prerequisite for CS253 (if you don't know python already). The reason I
started with CS253 is because, personally for me, it helped a lot to know the
top level concepts of "How web works" and the front-end (because that is what
a normal user sees) and then go into concepts of server side languages which
might seem too involved and dry to a beginner.

------
epeterson19
I would throw in the Django docs+tutorial combined with stack overflow. These
two resources combined are like having a personal tutor.

The django docs in particular are intuitive to follow and pretty
comprehensive. Then stack overflow is good for the stuff that's not in the
docs.

------
krmmalik
This is a great idea. I'd love to see something like this for other topics
such as Data Science, Digital Marketing, Lean Start-Up, Marketing Strategy
etc.

I'd love to help/contribute to the marketing related courses if you decide to
expand your subject offerings.

~~~
gautambay
Thanks, that's indeed the plan! We're working on a Learning Path on Data
Analysis, should be ready soon!

Checked out your profile. I'll be in touch if/when we decide to expand to
marketing.

~~~
krmmalik
Look forward to it :)

------
netcan
I wish more subjects/professions were accessible like this.

~~~
gautambay
We're working on it! Next up: Data analysis. Which ones would you like to see?

~~~
netcan
As an immediate step, data analysis sounds good. :)

As a theoretical, how about medicine, pharmacology, every flavour of
engineering, fine art, music, architecture.

Coding, graphic design seem to have a few things going for them that make them
a very natural fit for self learning online. Part of it is not needing much
outside of a laptop and an internet connection, but math needs even less and
you find far fewer autodidact mathematicians.

I suspect that not needing a curriculum is actually a part of it. I don't
dispute that having a curriculum available to you can be useful and that
following a curriculum will get you from start to finish will probably give
you a relatively efficient, high success rate path. But, I think that the more
self contained and small an effective quanta of learning is, the more suited
it is to self learning.

~~~
gautambay
Considering that learning is a means to an end for most people, another factor
is employers' willingness to hire a self-taught individual -- far greater in
areas like software development or design (where one can showcase one's skills
through a portfolio) than say medicine (where the only credential of accepted
value is a professional degree). Not saying that's the way it should
necessarily be, but the status quo presents a hurdle for self-learners _and_
content creators.

That said, we're in this for the long haul, and we definitely want to try and
push the boundaries in areas other than software/technology down the road.

~~~
netcan
Like I said, data analysis sounds great as a next week idea. Where can I hear
about it when it goes live?

~~~
gautambay
Well, the alpha version just went live at [http://www.mysliderule.com/data-
analysis-intro](http://www.mysliderule.com/data-analysis-intro).

We'll work on structure / organization and release an updated version later
this week.

~~~
netcan
Cool.

BTW, as a side note. I think a great idea for a data course would be

Learn to make [http://xkcd.com/980/](http://xkcd.com/980/) as its starting
point.

Where does he get this data. How does he work with it. Why is it represented
like this.

~~~
parul
some mindblowing numbers there. Thanks for sharing!

------
xmmx
This is really cool - thanks for laying out out like a progression! There are
so many resources on the internet I find myself relearning a lot of things
several times.

------
mrborgen
This is great. I have been looking for a service like this. A pain point when
navigating through tutorials and courses online is finding the proper material
for your skill level. Hope this service will be able lighten this task, and
provide suggestions based upon a users previously enrolled courses.

Are you planning on adding a feature like this?

~~~
parul
Definitely. Making the tool more intelligent and providing personalized
recommendations is on our mind. Priority++ based on your request.

------
infinitebattery
This is a great list! Also, check out this:

[http://www.reddit.com/r/cs50/comments/1nx2au/life_after_cs50...](http://www.reddit.com/r/cs50/comments/1nx2au/life_after_cs50/)

It's another really good list of courses :)

------
urs2102
Another great tool, especially if you're looking at Rails is:

[http://www.theodinproject.com/](http://www.theodinproject.com/)

It's in beta but it's pretty great from the looks of it.

------
jscn
FYI: I got a 403 error when I tried to sign up (CSRF verification failed). You
should probably override the default template for that error page, too. Nice
to see you're using Django, though!

~~~
parul
Hey, sorry about that! Could you please try again and see if the error
persists? If it does, please send me an email with your work setup & flow
details at parul@mysliderule.com

------
nickgrosvenor
Yes I agree, if you're wanting to learn web development, then rails is the way
to go, there's more resources for current problems and fixes in rails than
anything else.

~~~
parul
You are right, Nick. Rails is more mature in the number of resources available
and its dev-community. But increasingly around me, I see more people starting
to build on python. I have seen tons of learning material and bootcamps on RoR
but not even a fraction of that on Python/Django . That was one of the reasons
we thought that documenting our learning would be useful!

------
RankingMember
Added to my list of tutorials to attempt and hopefully steam through. I love
guided lessons like this.

------
listic
I would like to learn a different framework, but: Is it really recommended to
learn git in the end?

~~~
parul
I strongly think so. Even as someone who had used version control before
(CVS), I found Git fairly intimidating in the beginning. I feared it much till
I fell in love with it. Further, it is hard to make someone appreciate the
need for version control without getting them to write enough code first.

------
GhostHardware
Is Chrome Dev Tools really that much better than Firefox dev tools? What about
firebug?

~~~
parul
Not necessarily.. depends on your choice of browser. I prefer Chrome, but I
know a lot of web-devs, esp those are on Linux or those who have been coding
from pre-Chrome days, prefer FF/Firebug. Also, when developing for
compatibility with multiple OS/browsers - you sometimes end up using many. Ee
have even used "IE DevTools" to debug some of the IE specific issues :-)

------
username42
nothing about node.js ?

~~~
buckbova
I spent a good amount of time trying to find a decent good place to learn node
but couldn't find anything I liked.

I ended up buying Manning's Node.js In Action. It's not bad and I'm about
halfway through it. I'd like if it included some exercises instead of the
follow along approach.

[http://www.manning.com/cantelon/](http://www.manning.com/cantelon/)

Do you have any recommendations?

------
govilk
so how do you earn?

------
teemo_cute
There are lots of free udemy courses that teaches web development. Here's the
link:

[https://www.udemy.com/courses/Technology/?view=grid&price=fr...](https://www.udemy.com/courses/Technology/?view=grid&price=free)

You need some digging to find the courses that interest you, but it's well
worth it.

~~~
gautambay
We did look at Udemy, and in fact include one of their courses in the Learning
Path. Are there any others you think we should include?

~~~
jjsz
[http://www.theodinproject.com/curriculum](http://www.theodinproject.com/curriculum)
| [https://www.penflip.com/konoko.minoki/learning-computer-
scie...](https://www.penflip.com/konoko.minoki/learning-computer-science-with-
go)

