

Im in - gsin

Hi everyone... I have been reading HN for about six months now.. firstly I'd like to say that this is a great community from which i've got invaluable information on not only startups but also many other useful links and info about programming and web developement in general. Also off topic stuff(like the hyperbrain ownerś manual) which I could really relate to. I didn't create an account for so long as I thought(and still think) that I didn't have much to contribute. I've been interested in the internet ever since the first dial up connections came to my town(i was 11 then i think) but because I went to a residential school I didn't have a lot of access. Now that I've finally got time(and a lot of it) I am gonna start pursuing web dev.<p>Now for the question part. I've been learning python since past 2 months and have picked it up quite well. I plan to start with some framework for server side now(probably Django). I have very less knowledge of HTML so I plan to learn that next and then learn Javascript for client side stuff. Am i on the right path? Any suggestions and recommendations would be appreciated.
Thanks
======
jdunck
Note that there's a _lot_ of bad webdev information on the web. Go to the
experts and the sources. Avoid random blog's advice on javascript especially.

HTML: <http://www.w3.org/TR/html4/> <http://www.sitepoint.com/books/html1/>

CSS: <http://www.sitepoint.com/books/cssdesign1/> <http://www.css-
discuss.org/>

JS:

See this timeless rant for a tiny example (countering all the bad advice you
see on a trivially easy feature): <http://youngpup.net/archived/popups.html>

You may wish to do some JS dev without a framework just to get a taste for the
terrible truth. Then get jquery or one of the other excellent tools.

JS quirks: <http://www.quirksmode.org/>

Books: [http://www.amazon.com/JavaScript-Good-Parts-Douglas-
Crockfor...](http://www.amazon.com/JavaScript-Good-Parts-Douglas-
Crockford/dp/0596517742/) [http://www.amazon.com/Pro-JavaScript-Techniques-
John-Resig/d...](http://www.amazon.com/Pro-JavaScript-Techniques-John-
Resig/dp/1590597273/)

Also, some good tools: wget curl firebug wireshark (neé ethereal) yslow

webby python code libs: <http://codespeak.net/lxml/>
<http://code.google.com/p/httplib2/> <http://code.google.com/p/simplejson/>
<http://labix.org/python-dateutil>

Relevant validators: <http://validator.w3.org/> <http://www.jslint.com/>
<http://jigsaw.w3.org/css-validator/> <http://feedvalidator.org/>

~~~
jdunck
Also note that requests and responses are bits on the wire.

Do not assume you can trust client data. Do not put client data directly into
SQL or back on the page. This includes headers. Nearly all aspects of a
request can be forged.

Security info: [http://www.slideshare.net/simon/when-ajax-attacks-web-
applic...](http://www.slideshare.net/simon/when-ajax-attacks-web-application-
security-fundamentals-presentation)

After you get security and basic dev down, you can start to worry about
scaling. It's important, but it's a nice problem to have. Deal with it later.

------
inerte
Yes, you're on the right path, but you'll need to walk it many times.

If you already have a startup idea, or let's be informal and say you have
pretty good idea for a website, don't build it first. You'll get frustrated,
cursing Javascript for not letting your awesome thoughts flow from your brain
to the screen.

Do like the game developers. Make Tetris, then Asteroids, then Arkanoids, then
a Pitfall clone. Start it easy.

I would say make a... wow that's old in internet times, make a Guestbook, then
a blog system, the add categories, comments, trackback, that stuff. You'll
know what it needs to be added, and that clear goal (not to mention the
abundance of online resources) will smooth your way.

~~~
ryanb
I think this is really good advice. Start building simple apps first to learn
the foundations (which is very important), then go after your grand ideas.

------
fiaz
There is no "right path" to your own success, there is only "your path" to
your own success. I suggest you dive into whatever you are most comfortable
first. Go where your curiosity takes you and learn to cultivate your curiosity
as you progress.

You are on the right track if you are comfortable with it. When you are
learning something new, there is very little you can do wrong in terms of
choosing a path. Many of us are constantly learning on a regular basis...

Good luck!

~~~
gsin
Thanks for the advice mate... Of course i'm prepared for failure.. I obviously
don't expect to learn a few languages and make something overnight to get
rich. As you rightly pointed out, it's curiosty that brought me here in the
first place.

------
greyman
The stuff you are learning is useful in and of itself. I'd say you are on the
right path, and continuously you will have to converge to something more
concrete, like implementing some more specific idea or project. You may know,
that not all websites are coded from scratch, for some projects it's good
enough to take some open-source content management system and just go ahead
with that. In other cases, you do coding.

So my advice would be, try to come up with some more specific idea for the
website and then implement it using available technologies. Good luck dude!!

------
maxklein
Yes, you'll be fine. But don't forget that the design of your user interface
is an important as the design of your code. Learn it too.

------
biohacker42
If you're just getting comfortable with server side, I suggest Web.py, then
Django or Pylons.

~~~
gtani
There's probably repositories for small complete tutorial apps somewhere in
django land, as for rails. This is the best way to bootstrap yourself, to
start with something that works, then start editing code , reading code and
books about code. Edit the style sheets, the routing, the queries , views and
controllers, see what breaks. Better yet, learn the unit testing framework at
the smae time. This is how a lot of Rails texts teach programming (TDD), and
it's very effective.

The trickiest parts: tracing how data flows in from a form thru validation,
sanitization, into sessions, gets tied together by associations foreign keys,
saved to database and then read out of DBMS, ... Javascript is the other
tricky part, i would leave it for last, even if you only have to support one
framework (JQuery) and one browser (firefox with firebug). The Oreilly
"Missing Manual to Javascript" is an excellent intro to Jquery and Javascript.
Parts that look tricky but are intuitive once you get the feel of it: REST,
routing,

Some other books people find helpful Jeremy Keith "DOM Scripting" and another
one he wrote, i can't remember the title. McFarlane CSS Missing Manual (same
guy who wrote JS miss'g manual). Crockford, "javascript, Good parts"

And while you're at it, spend some time poking around stackoverflow. The mini
tag communities around ruby, rails, python, haskell, erlang ... are really
nice.

------
gsin
Thanks a lot guys.. Will consider your advice. Much appreciated

------
noodle
your choices certainly aren't bad. as fiaz mentioned, there's no "right path".
if you're interested in web development, you're doing just fine.

