Should a web designer know JQuery? - javascript

I have been doing web designing for quite some time. My question is:
Should a web designer know JQuery at all?
Thanks

Not necessary but it is good to have that weapon in your web design arsenal if you want to make your web pages full of life.
In fact, Jquery has been made such that it becomes very easy for the designers to get started with it. For example, see its selector machensim, it is pretty similar to CSS selectors, something designers are always used to.
For example, Chris Coyier is famous web designer and guess what he knows JQuery and he creates amazing lively pages.
Finally, have a look at this great resource:
jQuery for Designers

Most of the people I know with the job title "Web Designer" (as opposed to "Web Developer") are concerned only with design and not with the technical details of implementation.
So, for their jobs, it is important to know what jQuery can make possible (i.e. nothing that they shouldn't already know is possible from a broader understanding of what JavaScript can achieve), but not how to use it.
More knowledge is always good, but a designer would probably be better off learning more about subjects such as usability, accessibility, information architecture, colour theory and so on first.

My personal view is that a web-designer shouldn't be expected to know how to program in jQuery. However, I do think they should:
Have a good awareness of what jQuery is, what it is useful for and how it can be used appropriately to enhance a site. This also means understanding what cannot be easily done with jQuery. Be aware of the possibilities and the limitations.
They should be able to integrate and style off-the-shelf plugins that don't require much more than following basic instructions.
A good designer must keep up with how jQuery is being used "out there" in the web, enabling them to see how it can enhance interfaces and solve common problems. Like everything in the fast-moving world of the web you need to keep on top of the trends and also be able to distinguish between fads and genuine innovation.

HTML is about structuring content
CSS is about presenting your content
JQuery is about behavior and interaction with content
A good designer should be able to deal with challenges in all 3 areas.

First, some traditional analogies:
Should a race car driver know how the race car engine works?
Should she know how to fix it and tune it?
Should she know how to improve the engine and design a new part for it?
The answers:
No. Not necessarily.
Could it help, in certain situations, to:
increase productivity,
make html and css cleaner,
make better visual design decisions,
make better interaction design decisions,
better understand what is possible to design (improve creativity)
Yes. Yes definitively.

Web Designer should (must?) know jQuery exist. Should also know its basic capabilities so that his designs could include some cool stuff that is really easy to do with jQuery.
I wouldn't expect much more from a designer.

No. I don't think it's a part of designing if you know its additional knowledge you have & it also helps you some other way. But i think javascript & javascript libraries are not a cup of tea of Web Designer. I think you should concentrate on CSS, HTML & if possible FLASH.

If you're trying to get by in the computer industry by learning as little as possible, I think you're setting yourself up for career suicide.
Given two web designers of approximately equal design ability, whom would you pick for your project? The one with Javascript knowledge or the one who doesn't?

If a web designer is a programmer or want to be one, yes. But if not, he/she should not learn it, separation of concerns. I wanted to close this question, seems not a programming one, but I'm interested to read others' ideas :-)
But based on Sarfaz provided link, i think you should learn it. jQuery seems, is like the Excel Macro of web, you need to learn some Macro programming in order to spiffy up your spreadsheet(aesthetic-wise and functionality-wise), in the same vein that the best way to spiffy up your website appeal is by using jQuery

Related

what does a web framework take care of for the programmer?

If the framework manages the HTML/ CSS/ javascript, does a programmer still need to know the javascript language? Or is that taken care of in the abstraction of the framework?
I wanted to make a graphical game/ application using the html5 canvas/ webgl/ whatever other libraries are available to do so. Would it be more effective for me to go through a web framework such as django? I'm not really sure what advantages it offers. I think that if I wanted to create a well designed dynamic site in an effective way, I would use a framework. But if I didn't care about appearance, or if I'm just learning, then am I better off just playing with javascript and html5 first?
In my opinion, you could easily use a framework to simplify your development but remember this: With every framework or tool that simplifies development, you lose a bit of control.
Eventually, you will come to the point where you need to understand css/JavaScript, or whatever the underlying technology is, in order to accomplish some task. In that situation you'll be at a point where you need to learn the "hard" stuff.
Even before you get to that point, however, I'd strongly recommend learning the basics of the underlying technology so that you can see what the tools do. There are many reasons for this, but the most important ones are:
As mentioned previously, sooner or later you'll need to anyway.
If you don't know the underlying technology, you'll struggle and waste a lot of time trying to understand why the pages/apps generated by the framework don't behave the way you want them to.
Troubleshooting is harder
It's really easy for a novice developer to pick up a framework and start doing really stupid things with it. Things that can lead to security holes, leaking sensitive data, exposing yourself and customers to risk.
Some frameworks, of course, protect novice developers from things like SQL Injection, etc, but not all. It takes someone who understands what the tools are doing "under the hood" to tell the difference.
Of course, there is a limit to how much you need to know.
As an analogy, it would be foolish to drive a car without taking the time to learn the basics of how it operates, and how to be safe with it. But to drive a car, you don't need to know how to take apart the engine. If you're one of the guys who wants to be able to take apart the engine (and put it back together), great! You'll be one of the experts in at least one area of the automotive field.
The same goes with development. Different people need/want different depths of knowledge...
But for the web, at least knowing the basics of HTML, css, and JavaScript is a must. It's like learning the difference between Diesel and Gasoline before filling up your tank. It's basic knowledge every web developer needs.
A framework is often developed for the purpose of making larger tasks easier by taking several steps and making them user-friendly. In addition to this, you'll often find that they include configuration files and auto-installers to ease the setup of server components (databases, for instance) so that non-technical users have an ease of use.
The largest issue with this, however, is when users run into errors or warnings that they are unable to debug because the basis for the problem can only be acknowledged with (often) small amounts of expertise in the core languages that the framework was based on.
Quite simply put, you may not need to learn Javascript to use your said library, but it is highly suggested that you understand the inner workings so that you may easily debug and solve problems you have in the near future.
Enjoy and good luck!

Writing a single page client-side only webpage

I'm considering to try out an idea, mostly for fun, and my question is if this is reasonable and if there are any libraries or frameworks that could make this experiment a little easier.
So, the idea: Basically it is to write a new UI for a website I've developed, but doing it with client-side code only. I can read/write data using ajax, since my existing website has an API that allows me to perform all kinds of queries. This allows me to use JavaScript for the whole thing and theoretically put all of the code in a single file.
Obviously there are limitations to circumvent; bookmarking, page refreshing, the back-button etc. But these limitations are what makes it interesting, right? :) I'm not so worried about search engine indexing, since one has to be logged in to use the site anyway.
The site itself is not overly complex, but it is not simple either. There are four different levels of users, multiple languages and quite a lot of data to be presented.
Is this a bad idea? If so, why would you advice against it? And do you know of any JavaScript frameworks or libraries that could make this easier? (And no, I'm not looking for an abstraction like Google Web Toolkit; I would like something purely JavaScript)
One of my coworkers did this. A nice feature of this concept was that you don't have a ton of POSTS whenever the user 'changes pages', since they are actually not ever changing a page until they submit their data for the final time. He did this for product registration software, which was nice. Our servers were only taking a hit when the user initially requested the page, and then when they submitted it.
The major, MAJOR downside to this concept is that most web developers are not expecting this. My coworker (and you) have a cool idea - but unless it is well implemented, with comments, 100% valid HTML, and a host of other good design principles in place, it can be confusing since most web developers have basically never seen this done before. His site was a nightmare to work with, as he did not actually know what engineering web software meant, and it was all slapped together. My organization never pursued this (potentially useful) idea because his implementation was so poor.
So, when I looked at this idea here were the trade-off I came up with:
1.) You cannot require any server-side interaction during intermediate pages.
2.) The initial page loading is longer, but there are no intermediate page requests (better optimization).
3.) This is vastly different than anything anyone usually does, which means you need to be especially careful with documentation.
4.) This design concept facilitates totally stand-alone web software to be easily deployed without the web.
5.) You might be increasing complexity for avoiding page loads, but maybe not. I'm not sure.
All together, I think it just depends on what you want to accomplish. My coworker really just wanted to see if he could do it, which he could. However, how he did it was really pretty bad, to the point where everyone else connected his poor implementation with a poor idea it was fairly sad.
Mostly, I think if you follow good web design practices this wouldn't be too bad of a thing to pursue. What are your goals though?
I'm sorry I couldn't directly answer all of your questions. I hope my experiences are still helpful in answering if I think it is a bad idea or not.
-Brian J. Stinar-
SproutCore is one of the best out there when it comes to really being built from the ground up for single-page, potentially complex applications. Unlike some others like GWT or Cappucino, SproutCore is really about using JavaScript directly. They aren't the only one though. You might also want to look at JavaScriptMVC and qooxdoo.
Personally, I've built an extremely large and complex single-page application using JavaScript. It is currently around 100,000 lines (including comments/whitespace). To give a sense of scale, jQuery is around 6,000. To reach that size, I built my own framework, build tools etc. and it is extremely maintainable. You're asking if it can work, and I can tell you that it does, but you do need a little infrastructure if you're looking at doing something big. (BTW, there's a lot of lazy loading - its not 100,000 lines all at once!)
I also wouldn't really recommend this method for anything other than a web application. As pointed out, its still difficult for SEO, and may be strange for some users.
You're looking for ExtJS
I did my site like that in jquery, backed by spring mvc 3. For me it works fine and you have a lightweight, flashy feling while on it.
If you have time to dig in javascript seriously... it is really good exercise.
The only thing I really need to add is SEO, since spiders see only intial html. If it is important for you, i think backend static files and sitemap would be good enough solution.
I found something very light-weight that provides the basic needed functionally without forcing you into a whole framework. It's called Sammy and is inspired by Ruby's Sinatra: http://code.quirkey.com/sammy/
Very recommended!
Alternative: code the same in Java. Take a look to ItsNat
Think in JavaScript but code the same in Java in server with the same DOM APIs, in server is way easier to manage your application without custom client/bridges because UI and data are together.
Regarding SEO, bookmarking etc in single page there are solutions, take a look to the Single Page Interface Manifesto

Finding the joy of Javascript or searching for another UI-focused languages?

I'm a GUI designer/interactive musician wanting to improve my programming chops. I already know the basics(variables, loops, arrays, if/else, some logic), but I'm looking to learn in a structured way. I've seen some great books/tuts on Python and Processing (and even Flash)that aim to teach the fundamentals of programming in a fun and accessible. I've drooled on these books and considered learning Python many times, but to be honest, I don't know if these languages could be usefull for me on a professional sense. I need something directly related to interactive interface scripting/programming and JS seems to be my best bet (I've been trying AS3 but the OOP stuff made it somewhat hard for me).
I know JS can be fun (Jquery is). But I just can't find learning sources that are as compelling as the aforementioned material. All I find are tutorials and books that teach web development topics, such as form validation and ajax. I've tried looking for JS game frameworks, but all of them seem to be built for experienced developers and lack documetation or begginer's tutorials.
So, any directions on finding the joy in JS? Perhaps suggestions on other UI-focused languages ?
Thanks for reading this long question.
Have you had a look at Head-First Javascript? It seems to me to be a programming tutorial that's not inferior to the best ones available for, say, Python -- sure, it deals with web programming too (while a Python-based book might not), but, why's that extra info a bad thing?
Javascript isn't so much a "joy" as it is a "necessary evil". jQuery just makes it less evil. Actually that's not entirely fair: part of the "evilness" of Javascript is just all the cross-browser difference, not the language itself (which is actually quite modern).
But like learning anything, I don't think it's all that fun if you're just learning for learning's sake. Even a good book, tutorial or other resource won't do that (at least for me). I find it far more rewarding (and successful) if I have something in particular I'm trying to achieve or do.
If you know basic control structures and syntax then you know enough to pick something and try and implement it. You'll get stuck along the way (a lot early on) as you try and figure out actually how to do things. You'll probably do some of them really badly but that's OK. All that experience gives you a useful context when you do more reading and can appreciate the actual problems that something is discussing or solving.
If you are really looking for the joy of GUI programming, then I suggest you C#. Get yourself VS 2008 or above.
Just imagine, you have a great GUI designers that allow you to script you layout through drag and drop, and all you have to do, is to fill in the proper event and the program will just run like magic. Hand coding is kept to the minimum
Any programming language popular enough to have books written about it that you've seen in stores will be professionally useful to you. I think you have a good approach in looking for something that excites you. If those Python books make your heart race, pick one up and dive in. If you find something else that you love, go for it. You're gonna need that love to get you through all the hard work and frustration of learning to program.
You might want to take a look at Tcl/Tk. Although the language is sort of arcane, and the library is at least in principle available in other languages, notably python and perl, the toolkit in its native language is really very clear and concise.
I think you want to work on web interface programming not GUI (windows forms)..
Jquery is the best way to go and when it comes to web dev there is no escaping from Javascript.. I try and comiple some good sites .. give me some time
I suggest finding the joy in JavaScript. It sounds to me like your market may be in the browser, in other words, downloaded applications aren't what you're looking for. If this is the case, you don't have much of a choice: JavaScript or Flash.
If you had trouble with OOP, I suggest you find the joy in that first. As the joy of both JavaScript and AS3 (as you already know) can only be found once you find the joy in OOP, which will server you far better as a programmer in general.
As far as books, I recommend, JavaScript The Good Parts by Douglas Crockford, who is widely considered one of the top authorities on the subject.
Ok this is an old post, hope this still be useful to you. Try this book: "Modern Javascript Develop and Design" by Larry Ullman, he's a great author with a very clear and easy to follow style. I have learn PHP basic, intermediate and advanced with his books, even some OOP, so I think this could be a great tool for your learning path.

Introductory JavaScript programming task for an expert developer

What would be a good mini-project to get intimate with JavaScript, as an advanced 'introduction' to the language? I want to actually code an application in JS, not hook up bits of it to enhance a web application.
A lot of stuff you could learn by doing an RSS reader on a page. Google shows what can be done. The whole lection concentrates on javascript, network access, security restrictions and medium data mangeling.
If you have the ability to do any sort of backend programming than AJAX is really neat to do. You can get a lot of good effects with less efforts. A good thing to build on up.
I would argue that if you're really an advanced programmer then the exercises above would not really give you any insight into the language as they are just variations on things you probably have already done. Javascript's strongest suit is it's LISP style ability to grow. Write something AI(ish) that creates new functions. Most people don't utilize the language in this way, but, its ability to augment its own classes on the fly is, I would argue, it's most unusual and most powerful feature.
Although not a project, watch the Douglas Crockford videos at YUI theater.
The biggest web based Javascript projects are going to deal with the DOM. Do some nifty stuff with JQuery. Make a table with rows that highlight when you hover. Make them update themselves through AJAX and JSON when you click on them.
If you're really looking for something magical and usefull write a scrollable table with fixed headers and footers for IE8.
If you want to stay away from the WEB use the JDK 1.6 and run Javascript code in that. You could do TONS with that.
Whenever I'm trying to get familiar with a language, I will work on Project Euler problems with it.
I would implement a simple game like sokoban first.
The second application would be an AJAX-based multiuser chat application, first fetching other people's responses by polling, later with AJAX push.
Interesting question.
Really you could do any sort of application. In order to make sure you're using the latest and greatest stuff, I'd try making a simple CRUD style application using DHTML and AJAX. Perhaps a contacts list or calendar. If you're feeling really energetic, you could write the back-end in JavaScript as well.
Unless you want to get really friendly with the DOM and browser compatibility, I'd learn Javascript through the mask of one of the nice frameworks like Jquery or Prototype.
The Holy Grail - a WYSIWYG editor. They wouldn't need to complete it, but just seeing their plan of attack would be interesting. Plays right into patterns and OO.
I suggest you create a Google Gadget. You can create one for free and perhaps make something useful out of it. If you don't have a Google account, sign up for one. Then add the Google Gadget Editor to begin writing your code.
With the gadget, you'll be able to mess with JavaScript, JSON, CSS, etc. Furthermore, you'll be able to store the file on Google's server so you can work on it from any computer.
I created a simple RSS reader and wrote JavaScript to get the feed (using Google's API) then dealing with that JavaScript object because it came back as JSON. I then developed some JavaScript to hide/show div tags.
It was a good starter project for me to learn JavaScript.
Get JavaScript the Good Parts by Douglas Crockford. Also check out his web site: http://www.crockford.com
Key reason: just because JavaScript looks like C/C++/Java/C# doesn't mean it actually is like them. Things are significantly different. I suggest reading his book to get a grasp of those differences.
Otherwise, I would look at the JQuery web site. JavaScript is cool and all, but a good framework will save you from a lot of the pitfalls and make you much more productive faster.
try making an advanced AJAX application like for example try to recreate the google calander.
How about a firefox plugin to monitor StackOverflow? It could use RSS to monitor feeds and let you know when new questions are asked with your tags.
It could also be grown as your js skills progress.
Write yet another javascript framework, but focused specially in something, ie game programming.

How to convince my fellow .NET developers that learning jQuery will be beneficial

I have a few .NET developers who only want to use the MS AJAX Toolkit and think JavaScript (and any JS Library) is evil. I tried to explain that if you treat client-side development like a grown-up language you can build maintainable code ... but I assume that the classic ASP days have left a mark on these guys. Anyone have a suggestion to help convince this type of developer that learning jQuery will actually benefit them in the long run as the industry is trending back to "lets get close to the metal again" w/ MVC for example?
Tell them microsoft endorses jquery and that it's shipping with MVC
If they don't realize that jQuery is the bee's knees - they're living under a rock - tell them about all of the people that are using jQuery (Google, Dell, MLB, Bank of America.....the rest of a good list is in the middle of the jQuery home page) - or just tell them that every time they go to their Netflix account they are using jQuery or if they visit the president's web site (which could backfire I guess.... ;)
Emphasize that learning a 'technology' that is becoming that ubiquitous can only help your career.
Point them to this article by Scott Guthrie.
Quick quote from the article explains all:
I'm excited today to announce that
Microsoft will be shipping jQuery with
Visual Studio going forward. We will
distribute the jQuery JavaScript
library as-is, and will not be forking
or changing the source from the main
jQuery branch. The files will
continue to use and ship under the
existing jQuery MIT license.
Ask if they like server-round-trips. (To make them understand that client-side-stuff is necessary.)
Ask if they want to write code that works in 3 different places at the same time? (To make them understand the need for a library that almost erases browser differences.)
Show them a list of who's using jQuery.
If they fancy elegant code, they will get what you're saying. Otherwise I think they'll be really hard to convince.
Implement something that has value for your organisation/clients using jQuery to prove that it works well in your context - even better if it's something that would be difficult to implement, more complex or take longer in the MS AJAX Toolkit.
Developers often find practical examples of running code in a context that applies to them more persuasive than general endorsements or lists of who else is using it (every practical technology can come up with a good list of users).
And if your developers don't like JavaScript, perhaps you should ask them what they think the AJAX Toolkit is running on the client side. The AJAX Toolkit is a JavaScript library on the client side - just one that's designed to be easily integrated into ASP.NET.
Getting up to speed on the dominant tool in a given area is always a good idea. JQuery is the dominant JS library. For some anecdotal evidence, take a look at the tags here on StackOverflow:
JQuery: 1809 items
asp.net-ajax: 272 items
ajaxtoolkit: 54 items
Tell them they can do more with less - and understanding jQuery/javascript will help them understand AJAX.NET even more. It's a big huge leaky abstraction in my books - since switching to jQuery it made web programming more fun and I could build way cooler apps.

Categories