caivano Wrote:I'm not sure about my ultimate goal but a long term goal would be to make a website with upload, download and review functionality. I started with Python as I did the Udacity CS101 course which used Python and enjoyed it so have just kept learning more.
Python is beautiful and very enjoyable, indeed. It can also be useful later on, even if you use a different language for web development.
I'll give you the overview of web development zeitgeist as it evolved. In my not very informed opinion, for what it's worth.
x-x years ago. PHP+MySQL, what else.
6-3 years ago. Yay, Django, we can make websites fast and Python is so pretty.
6-2 years ago. Ruby on Rails, man. Not just websites, web apps! And Ruby is so fun.
2-1 years ago. Node.js is the new hotness and Javascript is... nobody is quite sure but it keeps producing rainbows and unicorns.
Granted, things are always in flux and even good old PHP reportedly has a very decent framework these days. But Node is where the excitement is currently at (it's not a full-stack framework itself but there is a Cambrian explosion happening on top of it). There are a number of reasons - web developers like shiny new things, one language for the full stack is awesome, you need Javascript anyway if you do frontend.
As for the recommended curriculum path, depends on how hard-core you want to get. Unix is a must, you should be comfortable with the command line. Even the basics will go a long way. Also, developing on Windows - some do it, but it's better on Linux or OS X. With Git, you need the basics to get just enough operational competence but I wouldn't sweat it too much with the advanced stuff before you're even writing enough code.
caivano Wrote:If I was to do the Javascript path, what would be a sensible order to learn those things?
A basic full-stack JS web app could be something like:
=Backend=
- Static files server: Node.js (as an alternative to Apache or Nginx). Static files are your html, css, image files.
- Framework: Node.js modules like Express (as an alternative to Django or Rails).
- Application logic: just Javascript processed by Node.
- Database: commonly MongoDB rather than MySQL or PostreSQL.
=Frontend=
For interactivity in the browser you'll want to manipulate your HTML+CSS. Some choices are:
- HTML5 API (could vary depending on the browser)
- JQuery (helps with the browser zoo and makes complex stuff easier)
These would be the sensible basics. Things can get fancier from there, with build, test, lint, minification tools, frontend frameworks etc. For a solid database-driven application you'd be good with Node+Express, MongoDB, JQuery.