JavaScript Enlightenment: From Library User to JavaScript Developer