Last week, I wrote what I believe is a very valid path to teach yourself web development, starting with no prior knowledge. It can be found on my blog here: http://bit.ly/1246qMU<p>Do you think I missed something? What would you consider a newbie web developer should learn as well?<p>I plan on writing a follow-up with your inputs.
I just started down the path to learn web development a week ago (after procrastinating it for years). My only prior programming experience was some BASIC and Pascal lessons I took in primary school and a bit of self-taught HTML.<p>I find codecademy.com to be a fun and well structured way to learn Python. To me it may well replace the "Python for Kids" book recommended in your blog post since codecademy is free and provides instant feedback on exercises (best way to keep the motivation high!). After completing the codecademy course I'll definitely get myself a proper book to learn the language in more depth.<p>One thing I'm struggling with is to find mini-projects that I can build and practice with as I learn more codes. As a beginner I may come up with a mini-project idea without realising how big the project can get to or the level of skill is required. If you could suggest a few project ideas with incremental difficulty as well as novel ways for a beginner to <i>think</i> about programming would be really helpful.<p>To me the most valuable part of your blog post was mapping out the Python > SQL > HTML/CSS > framework learning path. This was another question I had in mind ("what's next after Python?") because as a beginner I really had no big picture view of what skills I need to acquire. So thanks heaps for writing up the post and I look forward to reading your follow-up!
I liked the post (especially as I am a self trained programmer), but I think it's a little simplistic, and a few areas are missing and the order could use a little tweaking. Here are my suggestions:<p>1: HTML and CSS. I think this should be the first step. Simple static web pages. Even if you write good code in python, how can you get it to show in a web browser. Also a simple static page can be viewed from your hard drive in a browser. But that is no good so it leads into the next point...<p>2: Webserver/stack. Now this could be as easy as installing something like XAMPP or equivalents, or even installing apache, PHP, mysql etc. but here the learner can start to see the problems even with moving their simple static HTML pages to an actual server environment. And now they can start to make their boring static pageeager interesting by looking into the next step...<p>3: Python/Databases. As you say, start programming, but I would link it with databases. Again, a lot of ins and outs, and these can all be made easier by...<p>4: Frameworks. Now jump into Django and maybe bootstrap too. By now they will appreciate what the framework offers, and maybe have enough of a foundation to be able to make smart decisions about each.<p>Just my input, and I think it's great you're putting together this idea.
"Writing HTML is NOT programming"<p>- I'm in two minds about this.<p>"In the strict sense, a programming language is a way to issue instructions to a computer".<p>- That's not true. Strictly speaking, you are talking only about imperative programming languages. There are other programming languages which are declarative, you just declare the goals you want but not the instructions on how to achieve the goals. Strictly speaking again, HTML & CSS are declarative languages, that's why I can't decide whether it's true that writing HTML is not programming.<p>"First of all, you will need to learn what programming means. This will be done along learning your first language: Python."<p>- But you are talking about learning web development, JavaScript is THE language of the web (at least for now). So why Python? why not JavaScript?