Hij bracht ons jQuery, de meest gebruikte JavaScript-bibliotheek ter wereld. Toen bracht hij ons Processing.js, een JavaScript-poort van de populaire datavisualisatie programmeertaal. Nu is John Resig op een missie om de manier waarop mensen programmeren als de decaan van de computerwetenschappen voor Khan Academy nieuw leven in te blazen. De man stopt nooit (slaapt hij zelfs?) En geeft terug aan de gemeenschap, en nadat ik enige tijd buiten het publieke oog was, heb ik hem ingehaald om erachter te komen wat hij heeft gedaan.
Rond :) Maar serieuzer, ik besloot om meer tijd te besteden aan applicatie- en server-side ontwikkeling - iets waar ik niet veel tijd aan besteedde toen ik fulltime aan jQuery werkte.
Ik besteedde minder tijd aan de dagelijkse bugfixing van jQuery en wilde zeker weten dat het project in goede handen zou zijn toen ik aan andere dingen begon te werken. Ze hebben uitstekend werk verricht door de bibliotheek in goede staat te houden. Het is in goede handen!
Ik heb aan een aantal verschillende projecten gewerkt. Ik heb het raamwerk gemaakt dat we gebruiken voor bouwoefeningen (beschikbaar op Github https://github.com/khan/khan-exercises), hielp bij het bouwen van de Khan Academy iPad-applicatie, maakte het Computer Science-platform en werk nu aan internationalisering van de site, waardoor het beschikbaar is in vele talen voor mensen over de hele wereld.
Ik besloot om meer tijd te besteden aan het ontwikkelen van applicaties en servers.
Ik ben erg enthousiast over het werk dat we doen op Khan Academy. We hebben gewerkt aan het vinden van manieren om de basisprincipes van programmeren aan te leren die nog nooit zijn geprogrammeerd. Daarnaast vinden we manieren om het computerwetenschapsonderwijs te integreren met ons bestaande wiskunde- en wetenschapscurriculum - waarbij alle onderdelen samen worden verbonden.
Dit is logisch en biedt een samenhangende manier van leren die andere programmeerplatforms niet hebben. Het begrijpen van algrebra is een belangrijke voorwaarde om variabelen te begrijpen, bijvoorbeeld. Het begrijpen van trigonometrie is belangrijk voor grafische werkzaamheden. Het is logisch om dit alles samen te combineren. Nu richten we ons in de eerste plaats op ons bestaande K-12 publiek. Tot nu toe hebben we ongeveer 2,9 miljoen gebruikers van het platform sinds we het in augustus 2012 hebben gelanceerd.
Ik ben erg enthousiast over het werk dat we doen op Khan Academy.
De Khan Academy richt zich op dit moment in de eerste plaats op materiaal dat meer is gericht op mensen van een jongere leeftijd (pre-college). Veel studenten gebruiken het materiaal als aanvulling op hun bestaande werk of zelfs als onderdeel van een klas (afhankelijk van de school). We hebben geweldige resultaten gezien van scholen die Khan Academy gebruiken als onderdeel van hun curriculum, waardoor studenten het materiaal in de klas gebruiken en zowel de video's als oefeningen in hun eigen tempo consumeren. Op deze manier is Khan Academy eigenlijk heel anders dan veel van de andere onderwijsoplossingen die er zijn (bijvoorbeeld niet gericht op college-cursussen) en vult een ongelooflijk waardevolle niche.
We gebruiken JavaScript en Processing.js en een real-time programmeeromgeving om studenten een eenvoudige manier te geven om aan de slag te gaan en de code te gebruiken. We hebben onlangs manieren gevonden om studenten te laten samenwerken aan elkaars werk. Toen we begonnen, bevatten we de mogelijkheid voor studenten om elkaars code te 'vorksen'. We hebben op een aantal manieren toegevoegd dat deze vorken gemakkelijk vindbaar zijn, wat heeft geresulteerd in een aantal studenten die afhaken van elkaars werk. Het is fascinerend om het te zien aan de gang!
Ik heb gewerkt aan i18n voor twee projecten: de ene is een bijproject en de andere is de Khan Academy-site. Het was een hele uitdaging; we hebben een grote site met veel originele inhoud die vertaald moet worden. Het krijgen van alle bewegende stukken georganiseerd en gegeven enige schijn van orde is absoluut vrij lastig. Gelukkig zijn er veel tools die al helpen met dit soort dingen (we gebruiken bijvoorbeeld de Jed.js-bibliotheek om wat meerzijdig werk te doen aan de clientzijde).
Best gaaf! Het is zo geweldig om te zien dat zoveel mensen baat hebben bij het gebruik ervan. Het is verbazingwekkend dat we, zelfs met nieuwe browsers en API's, nog steeds niet de volledige ervaring van een cross-browser ontwikkeling hebben. Het komt steeds dichterbij, en jQuery helpt daar absoluut mee, maar ik kijk uit naar de dag waarop we een echt uniforme, eenvoudig te gebruiken ontwikkel-API hebben.
Oh, er is altijd een sluipschutter. Ik denk dat mensen geneigd zijn om slecht geschreven code te zien als representatief voor alle code geschreven met een bibliotheek of taal, en dat is duidelijk niet zo.
Een bijzonder lastige kwestie is dat sinds het gebruik van jQuery zo alomtegenwoordig is, dit betekent dat bijna iedereen het op de een of andere manier gebruikt - inclusief mensen die helemaal niet weten hoe ze moeten programmeren en gewoon de code kopiëren en plakken, zonder er om te geven hoe het werkt. De beste manier om dit te bestrijden is om te proberen en beter educatief materiaal aan te bieden aan diegenen die betere programmeurs willen worden, zoals het nieuwe jQuery Learning Center
Oh, de Selectors API, absoluut (de Selectors API is wat ons geeft querySelectorAll
en stelt ons in staat om te zoeken naar DOM-knooppunten met CSS-selectors). Het is amusant dat het feit dat jQuery het gebruik van CSS-selectors heeft gepopulariseerd om DOM-knooppunten te vinden, in de eerste plaats de standaardisatie heeft aangemoedigd. Het is een kip-en-ei-situatie :)
Als iemand die veel JavaScript schrijft, heb ik meer tijd doorgebracht met Node.js en PhantomJS. Deze omgevingen bieden u de mogelijkheid om JavaScript aan de serverzijde te schrijven en allerlei soorten scripts en authoring van applicaties uit te voeren. Het is erg leuk om JavaScript te kunnen schrijven en zowel op de client als op de server te laten werken (bijvoorbeeld om logica te kunnen delen voor een client-serverspel).
We hebben geweldige resultaten gezien van scholen die Khan Academy gebruiken als onderdeel van hun curriculum.
Ik denk dat het grootste probleem dat browsers de afgelopen jaren hebben overkomen, de overgang naar een snelle release-cyclus is, voorgestaan door het Chrome-team en vervolgens overgenomen door het Firefox-team. Het hebben van releases die elke drie maanden verschijnen in plaats van elk jaar (of elk ander jaar) verandert volledig hoe nieuwe functies door ontwikkelaars worden geïntroduceerd en gebruikt. Elke browser die competitief wil blijven, moet dit halsbrekende ontwikkelingsschema bijhouden; anders zullen ze zeker achterblijven.
Het vergroten van toegang voor meer mensen (en met een goede browser!) Is echt een overwinning voor iedereen. We hebben dit niet expliciet gericht op de Khan Academy, maar er is een geweldig project genaamd KA Lite dat dit probeert te realiseren.
Ik denk nog steeds dat het mogelijk is, maar het is moeilijk te zeggen hoeveel profijt er zou zijn van dat te doen. Als de code al was vooraf gecompileerd in bytecode en gewoon in de herinnering wachtte, dan zou ik me voorstellen dat er een paar aardige versnellingen zouden zijn. Dat gezegd hebbende, ik wed dat de versnellingen minder zullen zijn dan die door prestatieverbeteringen aan de DOM in het algemeen.
Het is zeker een reis geweest! Ik schreef het grootste deel van de inhoud over 2008-2010 en mijn co-auteur, Bear Bibeault, heeft eraan gewerkt in 2011-2012. Ik denk dat het nog steeds uitzonderlijk relevant is voor de moderne ontwikkeling.
De eerste helft van het boek behandelt best practices en enkele van de moeilijkere aspecten van moderne JavaScript-ontwikkeling. De tweede helft behandelt de DOM en alles wat u moet weten om een code voor verschillende browsers te kunnen schrijven. Deze twee onderwerpen zijn nog steeds een altijd aanwezig onderdeel van JavaScript-ontwikkeling en zouden iedereen van gemiddelde tot gevorderde ontwikkelaars moeten helpen.
Waarschijnlijk niet! Althans niet een traditioneel gedrukt boek. Ik wil graag meer bloggen en artikelen schrijven. Als ik ooit nog een boek schrijf, zal het absoluut zelf-gepubliceerd zijn en waarschijnlijk alleen in e-boek.
Ik hou van New York. Ik heb hier een breed scala aan ontwikkelaars ontmoet en ik was verbaasd over hoe sterk de community hier is met tonnen meetups, lezingen, hack-a-thons en andere evenementen die gaande zijn. Hoewel ik hier nog maar kort ben geweest, voelt het alsof de community alleen maar sterker wordt.
Het hebben van releases die elke drie maanden verschijnen in plaats van elk jaar, verandert volledig hoe nieuwe functies door ontwikkelaars worden geïntroduceerd en gebruikt.
Natuurlijk! Ik heb meer tijd besteed aan het verkennen van kunst en ben gefascineerd geraakt door één kunstvorm in het bijzonder: Japanese Woodblock Printing. Dit was een kunstvorm in Japan die werd gepopulariseerd van de vroege 1700 tot de late jaren 1800 (en doorgaan tot de dag van vandaag, hoewel als een niche).
De prenten beelden de ongelooflijke wereld van samoerai, warlods, goden, schoonheden en de natuur af. Ze zijn buitengewoon levendig en zien er verrassend modern uit. Ik heb mijn programmeervaardigheden gebruikt om te gebruiken en heb een hulpmiddel ontwikkeld voor onderzoekers die afdrukken van een aantal musea over de hele wereld samenvoegen en deze afbeeldingen doorzoekbaar maakt: http://ukiyo-e.org/ Ik heb een zeer positieve reactie van een aantal geleerden, wat zeer de moeite waard was.