Han tog oss med jQuery, det mest använda JavaScript-biblioteket på planeten. Sedan tog han oss Processing.js, en JavaScript-port i det populära dataprogrammet för visualisering av data. Nu är John Resig på uppdrag att uppmuntra hur människor lär sig programmering som dekan för datavetenskap för Khan-akademin. Mannen stannar aldrig (sover han ens?) Ger tillbaka till samhället och efter att ha blivit ute av allmänheten för en tid, tog jag upp med honom för att ta reda på vad han har gjort för att.
Omkring :) Men mer allvarligt bestämde jag mig för att spendera mer tid på applikations- och server-utveckling - något som jag inte spenderade mycket tid på när jag arbetade med jQuery på heltid.
Jag spenderade mindre tid på den dagliga buggfixningen av jQuery och ville se till att projektet skulle vara i goda händer när jag började jobba med andra saker. De har gjort ett utmärkt jobb att hålla biblioteket i bra form. Det är i goda händer!
Jag har arbetat med ett antal olika projekt. Jag skapade det ramverk som vi använder för att bygga övningar (tillgänglig på Github https://github.com/khan/khan-exercises), hjälpte till att bygga Khan Academy iPad ansökan, skapade datavetenskapsplattformen och jobbar nu med att internationalisera webbplats, vilket gör det tillgängligt på många språk till människor över hela världen.
Jag bestämde mig för att spendera mer tid på att göra applikation och server-sida utveckling.
Jag är verkligen upphetsad av det arbete som vi gör på Khan Academy. Vi har arbetat för att hitta sätt att lära grunderna för programmering till de som aldrig har programmerats tidigare. Dessutom hittar vi sätt att integrera datavetenskaplig utbildning med vår befintliga matematik och vetenskapsplanering - binda alla bitar tillsammans.
Det ger mycket mening och ger ett sammanhängande sätt att lära sig som andra programmeringsplattformar inte har. Att förstå algrebra är en viktig förutsättning för att förstå variabler, till exempel. Att förstå trigonometri är viktigt för att göra grafikarbete. Att kombinera allt detta tillsammans ger mycket mening. Åtminstone just nu fokuserar vi främst på vår befintliga K-12-publik. Hittills har vi haft cirka 2,9 miljoner användare av plattformen sedan vi lanserade den i augusti 2012.
Jag är verkligen upphetsad av det arbete som vi gör på Khan Academy.
Åtminstone just nu fokuserar Khan Academy huvudsakligen på material som är mer inriktat på personer i yngre ålder (förskola). Många elever använder materialet som ett komplement till sitt befintliga arbete - eller till och med som en del av en klass (beroende på skolan). Vi har sett några bra resultat från skolor som använder Khan Academy som en del av läroplanen, får eleverna att använda materialet i klassen och konsumerar både videon och övningarna i sin egen takt. På så sätt är Khan Academy väldigt annorlunda än många andra utbildningslösningar där ute (inte med fokus på högskolakurser) och fyller en oerhört värdefull nisch.
Vi använder JavaScript och Processing.js och en realtidsprogrammeringsmiljö för att ge studenterna ett enkelt sätt att komma igång och interagera med koden. Vi har nyligen funnit sätt att få eleverna att samarbeta på varandras arbete. När vi lanserade inkluderade vi möjligheten för studenter att "gaffla" varandras kod. Vi har lagt till på några sätt att göra dessa gafflar lätt att upptäcka vilket har resulterat i att ett antal studenter byggde på varandras arbete. Det är fascinerande att se det pågår!
Jag har arbetat med i18n för två projekt: ett är ett sidprojekt och det andra är Khan Academy-webbplatsen. Det har varit ganska utmanande; Vi har en stor webbplats med många delar av originalinnehåll som behöver översättas. Att få alla rörliga bitar organiserade och ge viss uppfattning är definitivt ganska knepigt. Lyckligtvis finns det många verktyg som redan hjälper till med dessa saker (till exempel använder vi Jed.js-biblioteket för att göra ett visst pluraliseringsarbete på kundsidan).
Ganska häftigt! Det är så bra att se så många människor får nytta av att använda den. Det är fantastiskt att även med nya webbläsare och API: er, är vi fortfarande inte på väg att ha en helt osynlig utvecklingsupplevelse för webbläsare. Det kommer närmare, och jQuery hjälper helt med det, men jag ser fram emot den dag då vi har ett verkligt enhetligt, lättanvänt utvecklings API.
Åh, det är alltid sniping. Jag tror att det finns en tendens att folk ser dåligt skriven kod som representativ för all kod skriven med ett bibliotek eller ett språk, och det är uppenbarligen bara inte så.
En speciellt svår fråga är att eftersom jQuery-användningen är så allestädes närvarande betyder det att nästan alla använder det på något sätt - inklusive personer som inte vet hur man programmerar alls och bara kopiera-klistra in kod utan att bry sig om hur det fungerar. Det bästa sättet att bekämpa detta är att försöka ge bättre pedagogiska material till dem som vill bli bättre programmerare, som det nya jQuery Learning Center
Åh, Selectors API, absolut (Selectors API är det som ger oss querySelectorAll
och tillåter oss att fråga för DOM-noder med CSS-selektorer). Amusingly, det faktum att jQuery populariserade användningen av CSS-selektorer för att hitta DOM-noder är vad som uppmuntrar sin standardisering till att börja med. Det är en kyckling-och-ägg situation :)
Som någon som skriver mycket JavaScript har jag spenderat mer tid med Node.js och PhantomJS. Dessa miljöer ger dig möjlighet att skriva JavaScript på serverns sida och göra alla typer av skript och programhantering. Det är jättekul att kunna skriva JavaScript och få det att fungera på både klienten och servern (till exempel att kunna dela logik för ett klient-serverspel).
Vi har sett några bra resultat från skolor som använder Khan Academy som en del av deras läroplan.
Jag tror att den största tingen att hända med webbläsare under de senaste åren är övergången till en snabbutlösningscykel, som drivs av Chrome-teamet och sedan tas upp av Firefox-laget. Att ha utgåvor som kommer ut var tredje månad istället för varje år (eller vart annat år) förändrar helt hur nya funktioner introduceras och används av utvecklare. Alla webbläsare som vill förbli konkurrenskraftiga kommer att behöva hålla fast vid detta breakneck-utvecklingsschema. annars kommer de säkert att ligga bakom.
Att öka tillgången för fler människor (och med en bra webbläsare!) Är verkligen en seger för alla. Vi har inte riktat in detta uttryckligen på Khan Academy, men det finns ett fantastiskt projekt som heter KA Lite som försöker få det att hända.
Jag tycker fortfarande att det är möjligt, men det är svårt att säga hur mycket fördel det skulle vara att göra det. Om koden redan var färdig kompilerad till bytecode och väntade bara i minnet, så skulle jag kunna föreställa mig att det skulle finnas några snabba uppstart. Med detta sagt satsar jag på att farten skulle vara mindre än de som tillhandahålls av prestationsförbättringar till DOM övergripande.
Det har verkligen varit en resa! Jag skrev huvuddelen av innehållet under 2008-2010, och min medförfattare, Bear Bibeault, har arbetat med det under 2011-2012. Jag tycker att det fortfarande är exceptionellt relevant för modern utveckling.
Den första halvan av boken omfattar bästa praxis och några av de svårare aspekterna av modern JavaScript-utveckling. Den andra halvan täcker DOM och allt du behöver veta för att skriva cross-browser-kod. Dessa två ämnen är fortfarande en ständigt närvarande del av JavaScript-utveckling idag och bör hjälpa alla från mellanliggande till avancerade utvecklare.
Antagligen inte! Åtminstone inte en traditionell tryckt bok. Jag är angelägen om att göra mer bloggar och artikelskrivning. Om jag någonsin skriver en annan bok, kommer det definitivt att vara självpublicerat och sannolikt i ebook-only form.
Jag älskar New York. Jag har träffat ett stort antal utvecklare här och jag har blivit förvånad över hur stark samhället är här med massor av möten, föreläsningar, hack-a-thons och andra händelser som händer. Medan jag bara har varit här en kort stund, känns det som att samhället bara växer starkare.
Att ha utgåvor som kommer ut var tredje månad istället för varje år förändrar helt hur nya funktioner introduceras och används av utvecklare.
Visst sak! Jag har spenderat mer tid på att utforska konst och har blivit fascinerad med en konstform i synnerhet: Japanese Woodblock Printing. Detta var en konstform i Japan som populariserades från början av 1700-talet fram till slutet av 1800-talet (och fortsätter vidare till idag, även om det är en nisch).
Utskrifterna avbildar den fantastiska världen av samurai, warlods, gudar, skönheter och natur. De är extremt levande och ser överraskande moderna ut. Jag har satt mina programmeringsfärdigheter att använda och har utvecklat ett verktyg för forskare som aggregerar utskrifter från ett antal museer runt om i världen och gör dem bildsökbara: http://ukiyo-e.org/ Jag har fått en mycket positivt svar från ett antal forskare, vilket har varit mest givande.