views:

160

answers:

6

Hi People,

I am trying to get into web development, specially interested building the front-end, UI part of websites while learning JavaScript maybe with AJAX technology. (I have a UI, HCI background.)

However, I have absolutely no previous knowledge about server-end web development either. To my understanding, frameworks like Django seem to pretty good at this (correct me if I am misunderstanding).

So the question is: how much Django, or Rails do I need to know, if my interest is primarily the user interface part of web development. Can I just let somebody else do the back-end stuff?

Pardon me for my imprecise choice of terminologies.

+1  A: 

Yes and no. Typically what people think of AJAX, such as posting a comment on YouTube and seeing the comment appear instantly with a thank you message, for example, requires a server side language handling the requests, looking up data and returning results as html snippets, JSON data, or XML.

However, an AJAX call can be made to static resources as well. You could have an XML file or html snippet stored statically on your web server and have it loaded. The uses for this sort of static loading are generally fewer because if you already have the static html or data in file next to your regular page, why not just put that data directly into the page?

Soviut
A: 

It helps to set up a local server and write a few lines of code to service your AJAX calls. You can do a lot of JavaScript learning with just a little back-end learning.

Nosredna
A: 

If you're new in web development you'd rather wait with Ajax and server-side languages until you've learnt the basics with HTML, CSS and JavaScript, especially if you want to mostly work with the user interface and not the funcionality.

Ivarska
+3  A: 

You need to know a bit about the server side. Here's what you need to know.

If you have a heavy JavaScript website, you're likely going to want to pass information from the server to clients with JSON (JavaScript Object Notation). This is just a way to format data into strings that JavaScript knows how to convert to objects.

So, each of your server-side functions that send data to the client will return JSON. If you have someone writing the server-side for you, that's all you should have to know. You're JS functions will receive JSON, and then you deal with it.

If you have to write the server-side yourself, then that involves 1) getting data from database 2) formatting the data 3) converting to JSON.

I have open-sourced a commenting widget that accepts JSON messages, and gives examples of how you would set up the Django server code. Maybe it will help you: http://www.trailbehind.com/comment_widget/

Andrew Johnson
A: 

As you said you can let somebody else do the back-end and focus on front-end (JavaScript, HTML, CSS).

You would need to communicate with the back-end developer when storing or processing data from the server.

As mentioned before back-end development knowledge would be useful but if you have someone doing it, it's not essential for beginning.

Raf
+2  A: 

You can make a career of front-end user interface development without know a ton about server code. You would do well though to have at least a rudimentary understanding of what happens on the server when you send it a request, where your data comes from, and what the life-cycle of a web page is. This assumes that you have the support of back-end developers. As you mentioned Ajax in your question that implies that you want your web sites to actually do something, which will require things to happen on the back-end (such as storage, manipulation of data, logging in a user, etc.).

As with all things, the more you know, the easier it will be to get what you want from the dedicated professionals. I would suggest that you learn about programming in general, not try an learn a language and framework. In particular, try to understand datatypes, server settings (like timeouts, post versus get, etc.), security and database interactions as they exist beyond JavaScript/ECMAScript. That way when a developer is explaining why they cannot do something you have requested or are offering alternatives, you are speaking the same language.

Rob Allen
great comment. the "big picture" of web development/programming design is actually what i am constantly going after.any recommended reading/sources??
ivanTheTerrible
Unfortunately, no. Most of the resources I would recommend to an end-to-end developer or pure back-end dev are very heavy on topics you really don't care about and would require more background information than they are worth. It may be sufficient to look through some of the "Head First" series and just follow a few general programming blogs like the SO blog. Anytime Jeff or Joel mention a blogger or podcaster try them out for a few weeks.
Rob Allen