Getting started with Web Development
Recently I've received a question:
> Where did you learn web development? What is the best way to get started in web development?
Here's my response:
I've learned everything from books, video courses and by creating my own projects, and I think that it is the absolutely best way to go about it. All the information that you need is available for free on the internet, so you can learn everything just by using free(or very cheap) resources and practicing.
If you are starting from the absolute zero - I would suggest to just create a wordpress website and mess around with it, make and customize a blog for yourself or whatever you like, go from there. It is extremely easy to do, you will get your first experiences, and learn the basics of web development by osmosis.
Once you have done that - set out to learn and understand some basic skills. Here's the skills that you will need:
> Learn html and css It is the easiest thing to understand, you will learn it quickly, and enjoy the instant satisfaction of being able to create some pretty web pages.
> Learn some backend programming language, and a framework. Backend programming language is what lets you to create things like blogs and forums, this is what automatically generates pages on the "server side"(as opposed to the "client side" - in your browser).
I suggest to learn Python and Django. There are alternatives to that - like Ruby and Ruby on Rails, or a sad old php. But python is considered to be the best programming language for beginners, and it is used everywhere(even bitvid is created with it), it has a huge amount of tutorials and information, and you can apply it in any field. It is easy to learn and understand, it is elegant, beautiful, and it is awesome. So you can't go wrong with it.
> Learn the basics of database administration and sql. Just to understand what that is and what you can use it for.
Once you've done that - you will have a very solid foundation, and the kind of things that you are capable of creating will depend only on your experience. You will be able to start freelancing or making some projects for yourself and your friends, building portfolio, gaining some experience, and becoming more advanced.
It may seem like a lot - but don't worry about it, it will be much easier than it seems, and it is extremely fun.
You will also need to learn to use a bunch of tools, like a good text editor(start with sublime, move on to emacs or vim), git, vagrant, apache, etc - but don't worry about these things for now, you will naturally learn them when you will need to.
Here's some great resources for you to get started:
Code School (codeschool.com)
You can learn the basics of python from Bucky Roberts as well, or - you can go through the course "Learn Python the Hard Way" - despite it's name it is the easiest way to learn python that I'm aware of. Or you could just google and find enormous amount of information and free courses, and pick whichever one you like the most.
Tuts+ and Django Documentation
(go into this only after learning html/css/js) http://courses.tutsplus.com/courses/django-unchained Again, not free, but they have my favorite introductory course to django. You will learn it from the basics by creating your own hackernews clone - it is awesome and easy to follow. Or you can star with the official documentation - it is written extremely well, and contains a great tutorial for beginners (docs.djangoproject.com) After that you can read a great book "2 Scoops of Django".
That's pretty much it) This is the best way(that I'm aware of) for going from absolute zero to a solid intermediate(of course if you will practice and gain experience by making your own projects in the process).
I hope that gives you the general idea. At least this is the kind of post I would like to read 2-3 years ago. If anything is confusing or you have more questions - please ask, I will be happy to answer =)