Blog‎ > ‎

Advice from John Resig

posted 16 Jun 2011, 12:46 by Dennis Ideler   [ updated 19 Jul 2011, 17:55 ]
John Resig 

Meet John Resig, original redditor, JavaScript programmer, creator of jQuery, ex-member of the Mozilla team, and now application developer at Khan Academy.

John was interviewed in June by Jared from Startups Open Sourced.
You can find the full interview here.

1. Advice on creating a successful project:
    Documentation gives your project an edge over undocumented projects.

Q: What set jQuery apart, why did it succeed?
A: jQuery was the first client side library released with documentation. Prototype [another JavaScript client side library] didn't get any documentation until 2007.

2. Advice on team communication and productivity:
    Public meetups in person, private meetups in IRC.
    Subteams have blogs with weekly updates.

Q: How does the jQuery team work remotely and stay productive?
A: The main issue is with communication. The team has changed apps numerous times, but currently they hold all meetings publicly and in IRC. All of the subteams (jQuery UI, Core, Grid, etc) are responsible for maintaining their own blogs of weekly updates.

3. Advice on design philosophy:
    Simple code and few use cases.
    Document everything.
    Cross-platform compatibility.

Q: What’s the design philosophy behind jQuery?
A: Keep the code simple, above all else. Simple code that works with fewer use cases is superior to more complex code that handles more use cases. Everything must be documented. Everything is immensely clear as to what is going on. Cross-platform compatibility is also very important.

4. Advice on new features:
    Whoever wants the feature gets to implement it.

Q: How are feature request conflicts or contentions handled?
A: If someone really wants a specific feature, it becomes their job to make the changes and improvements.

5. Advice on finding/becoming the ideal coworker:
   Ideal coworker must have a deep understanding of their field and go above and beyond.
   Grades do not matter, it's what you do outside of class.
   Do not be contempt with the bare minimum.

Q: Are there universal traits you look for when deciding to work with someone?
A: Depending on the project, the person must have a deep understanding of their field (e.g. Prototypal inheritance, functions, closures, as well as how the DOM works, browser quirks from IE 6/7/8, etc). In general, Resig looks for people who go above and beyond. Many students from M.I.T. were very smart and had good grades, but they did nothing outside of class; they knew Java and LISP, but they might not show initiative to do anything else. Looking at another candidate who does something like building several projects in Ruby on Rails is much more competitive and appealing to work with. Don’t be content to do the bare minimum. GPA is not a good indication (Resig had a bad GPA in college).

6. Advice for students:
    Contribute to open source or open source your work.
    Don't work in secret, broadcast your work, be proud of it.

Q: Advice for students?
A: If you contribute to an open source project, employers can see the code you write, how well you work with others, the documentation you write, how clear your API is, etc. Compared to someone who doesn’t have the same experience, it becomes much easier to hire you. You can go from “just another college student” to someone far above and beyond that. Nothing else matters except code in the end; it’s a complete meritocracy in the software industry.