In this analogy, would you say jumping into the jungle straight away is stupid? Brave? A great learning experience, if one survives?
I love learning stuff. Unknowingly, I followed a methodology. After learning different domains, now I call it 'zoo theory of learning'. You will know if you learnt a programming language from 'Hello World' (especially C programming language through the book by Kernighan & Ritchie). It goes like this,
- Learn individual components of the language like variables, for loop etc (like going to zoo to look at individual animals. By looking at them, you get a fair idea of animals, birds, reptiles. You won't be harmed because it is a controlled environment). Before venturing further down, you should spend as much time as available here, learning individual components, differences between different components. It is safe, because, you know, it is controlled. You write a python program, you execute it locally and see the results. The program may contain security holes, performance issues, and all other issues. But that is ok. It is local. It is safe.
- Next in step is going on a safari in a natural park. You are visiting the ecosystem. It is little more dangerous than above, but still you are with experienced guide and probably you won't die by doing stupid things. Equivalent for us? Get into an open source project and implement a module; or scratch your own itch and develop a module. Release it to the public. If you do it with Django or Flask, it is difficult to shoot yourself in the foot. May be someone will hack your program. Again, if you take help of existing modules, you should be lot more safe than you think.
- Once you get confident, go into the jungle and pitch a tent to observe the wild animals in their own eco-system. It is dangerous. But now you are an expert. You know how to safeguard yourself. Write a new framework, or start a new startup and take care of everything from design, development to marketing. Lot of risks, but you have knowledge and drive. You will survive.
Because of this method, I always look for a good tutorial that takes me from an absolute beginner level to a decent level. For learning Flask, a python framework, that tutorial would be, the The mega flask tutorial by Miguel. He takes you from writing a hello world to deployment in about 18 lessons.
I hope I have not abstracted the answer too much. BTW, I wrote about this method at my blog. You can read it there (Not much details than this answer).
Mistakes I did :
- I wasted much time in just reading, didn't practise the code.
- Didn't stick to any one resource to learn programming.
Recommended resources :
If you are just starting to learn web programming, you should follow the following websites
Depends on what you consider programming. I started making HTML things since 1996, you know: table layouts, no CSS, dial up connections. It was all static HTML with links and photos, nothing big.
I started off looking at source codes of other sites to see how they did it and shamelessly copied a lot.
Started working professionally in 2001 and learned CSS at the first company I worked for. At first it was a big hurdle, especially because the browsers back then weren't complaint, so you would think of a solution which then didn't work in 2 out of 3 browsers. This is in the time of IE 5, 5.5 and 6 (and Netscape!), so things have really improved since then ;)
From my point of view here's the things I would recommend:
- Read a lot of articles (CSS-Tricks, Smashing Mag, A List Apart etc. etc.)
- Subscribe to daily/weekly newsletters, Like HTML weeky, CSS weekly, JS weekly, RWD weekly. Lots of good stuff in there
- Don' t get intimidated by demo's and tutorials showing 'that one special effect you need to have'. There's a big chance you'll never use it in a production site anyway... but: look at code to see how it's done. Which brings me to my next point:
- Copy, copy, copy! And then change it to however you see fit. Learn how it works and improve from there.
- Don't expect to be an expert overnight. Experience comes from practice, running into weird problems, finding solutions and just building a lot of websites and apps. Each project will move you on, no matter how small.
That's about it really. :)
I picked up HTML in 1994, putting my first website online a year later. CSS wasn’t around back then. It lived on a tilde-domain since TLDs weren’t easily available and certainly not affordable. I learned everything i needed from a book, which has later turned into a website: selfhtml.org (It’s all written in german). The web was wild and small back then. :)
I never had a computer until high-school, we were doing Pascal initially in computer class and I got bored, got a copy of Delphi and started building free desktop applications that was useful to other people. It wasn't till my final year of high-school that we got dial-up internet and a new world emerged for me. Varsity, I was studying Engineering Science (Computer Science + Applied Maths + Electronic Entineering), first year, I was selling computers to help cover the cost of my studies, only in my second year did I discover that I could personally build websites and only another year later did I find some time to setup a PHP forum, restyle it and created my first web page. Varsity actually gave me internet access and would spend almost all my time on it since it was completely new to me.
My first ever web page was this one back in 2006, it never had much content on it: web.archive.org/web/20061005144731/http://w.. As you can see, it's still all tables and inline colours, CSS was still the new kid on the block and browsers was just starting to support to.
It's only in 2007 that I started building useful stuff on the web: web.archive.org/web/20070317152233/http://w..
In 2008 I built two sites that were paid projects, this is one of them: web.archive.org/web/20090423090753/http://w.. This was the second paid project I did, I see what I did in 2008 is still there exactly as I left it: audioauditing.com
2009 and onward I almost never touched a soldering iron again and focused solely on web development since I enjoyed it so much.