{"id":514,"date":"2013-04-09T14:00:57","date_gmt":"2013-04-09T14:00:57","guid":{"rendered":"http:\/\/www.dtic.upf.edu\/~jagenjo\/?p=514"},"modified":"2013-04-09T14:00:57","modified_gmt":"2013-04-09T14:00:57","slug":"recursos-javascript","status":"publish","type":"post","link":"https:\/\/tamats.com\/upf\/?p=514","title":{"rendered":"Recursos Javascript"},"content":{"rendered":"<p>Es importante recordar que para programar en Javascript en la web lo primero es conocer como funciona la web, eso incluye saber un poco de HTML y CSS. <a href=\"https:\/\/docs.google.com\/presentation\/d\/1j6CqGnWdBiWGyxFVLZBjIADFpv0aUj65zHpsri5bMHs\/edit?usp=sharing\">Estas slides<\/a> introducen a algunos de los conceptos. Tambien suele ser util saber algo del protocolo <a href=\"http:\/\/code.tutsplus.com\/tutorials\/http-headers-for-dummies--net-8039\">HTTP<\/a>.<\/p>\n<p>Aqu\u00ed hay un listasdo de enlaces utiles a presentaciones y cursos relacionados con el desarrollo de aplicaciones web en Javascript.<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/ericelliott\/essential-javascript-links\">Gran listado de links actualizado<\/a><\/li>\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Guide\">Javascript Guide from Mozilla<\/a><\/li>\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Reference\">Javascript Reference<\/a> todas las clases de Javascript explicadas.<\/li>\n<li><a href=\"http:\/\/bonsaiden.github.io\/JavaScript-Garden\/\">Javascript Garden<\/a>, aqu\u00ed se repasan todos los conceptos vitales uno a uno.<\/li>\n<li><a href=\"http:\/\/ilikekillnerds.com\/2015\/03\/things-every-javascript-developer-should-know\/\">Things you must know about JS<\/a><\/li>\n<li><a href=\"http:\/\/eloquentjavascript.net\/\">Eloquent Javascript<\/a> libro entero para empezar desde cero.<\/li>\n<li><a href=\"http:\/\/cjohansen.no\/talks\/2012\/sdc-functional\/\">Javascript functional<\/a> Trucos para optimizar la sintaxis del codigo (usando map, foreach, reduce, etc).<\/li>\n<li><a href=\"https:\/\/docs.google.com\/presentation\/d\/1DNljLkRpe9LIDfcqcpHzdLvEOyuVH4d1y9dtAJBr1I8\/preview#slide=id.gbba09f01_0184\">Chrome Dev Tools<\/a> Trucos utiles para debugar en Chrome<\/li>\n<li><a href=\"https:\/\/github.com\/rwaldron\/idiomatic.js\">Idiomatic.js<\/a> muchos recursos sobre el correcto uso de Javascript<\/li>\n<li><a href=\"http:\/\/www.codeproject.com\/Articles\/687093\/Understanding-JavaScript-Object-Creation-Patterns\">Understanding JavaScript Object Creation Patterns<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/samdutton\/simpl\">Simpl<\/a>, examples of Javascript of almost everything.<\/li>\n<\/ul>\n<h3>Conceptos elementales sobre Javascript<\/h3>\n<p>Este es un listado de conceptos que todo programador de Javascript deberia conocer y dominar para evitar errores frecuentes.<\/p>\n<ul>\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Guide\/Working_with_Objects\">Objects<\/a> y <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/Object\/prototype\">Prototype<\/a>.<\/li>\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Reference\/Operators\/this\">this<\/a>, c\u00f3mo funciona la palabra reservada this.<\/li>\n<li><a href=\"http:\/\/recurial.com\/programming\/understanding-callback-functions-in-javascript\/\">Callbacks y la clase Function<\/a>, qu\u00e9 se puede hacer con las funciones.<\/li>\n<li><a href=\"http:\/\/howtonode.org\/why-use-closure\">Closures<\/a> y <a href=\"http:\/\/www.adequatelygood.com\/JavaScript-Scoping-and-Hoisting.html\">Scoping &#038; Hoisting<\/a> (desde donde puedo acceder a esta variable)<\/li>\n<li><a href=\"http:\/\/www.html5rocks.com\/en\/tutorials\/async\/deferred\/\">Asyncronous code<\/a><\/li>\n<li><a href=\"https:\/\/developer.mozilla.org\/es\/docs\/XMLHttpRequest\">XMLHttpRequest<\/a> para hacer peticiones HTTP desde javascript<\/li>\n<li><a href=\"http:\/\/callbackhell.com\/\">Callback hell<\/a> c\u00f3mo evitar el codigo espagetti<\/a><\/li>\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Typed_arrays\">Arrays tipados<\/a>, no son imprescindibles pero son muy utiles y son necesarios si trabajas en WebGL.<\/li>\n<li><a href=\"https:\/\/github.com\/airbnb\/javascript\/blob\/master\/README.md\">Guia de AirBNB para programar JS correctamente<\/a>.<\/li>\n<\/ul>\n<h3>Programar directamente en la web<\/h3>\n<p>Existen algunas webs donde puedes programar Javascript directamente en la web lo cual puede resultar util para testear conceptos.<\/p>\n<ul>\n<li><a href=\"http:\/\/tamats.com\/apps\/simplecanvas\/\">Simplecanvas<\/a>, herramienta para programar graficos 2D en la web.<\/li>\n<li><a href=\"http:\/\/livecoder.net\/\">Livecoder.net<\/a><\/li>\n<li><a href=\"http:\/\/jsfiddle.net\/\">JSFiddle.net<\/a><\/li>\n<\/ul>\n<h3>Cursos online<\/h3>\n<p>Estos son algunos cursos online muy completos donde aprendes a programar en javascript desde cero, paso a paso, con ejemplos interactivos.<\/p>\n<ul>\n<li><a href=\"http:\/\/www.codecademy.com\/en\/tracks\/javascript\">Codeacademy.com Javascript<\/a><\/li>\n<li><a href=\"http:\/\/www.learn-js.org\/\">Learn-js.org<\/a><\/li>\n<li><a href=\"http:\/\/www.codeavengers.com\/\">Codeavengers<\/a><\/li>\n<li><a href=\"https:\/\/www.udacity.com\/course\/ud804\">Udacity: Javascript Basics<\/a> [de pago pero con trial]<\/li>\n<li><a href=\"https:\/\/www.udacity.com\/course\/ud015\">Udacity: Object Oriented Javascript<\/a> [de pago pero con trial]<\/li>\n<\/ul>\n<h3>Librerias utiles para aprender<\/h3>\n<p>Para aprender Javascript nada mejor que usar algun ejemplo pr\u00e1ctico, estas librerias te permiten obtener resultados visuales muy facilmente, haciendo el aprendizaje m\u00e1s llevadero.<\/p>\n<ul>\n<li><a href=\"http:\/\/p5js.org\/\">P5.js<\/a>, c\u00f3mo processing pero m\u00e1s simple.<\/li>\n<li><a href=\"http:\/\/processingjs.org\/\">Processing.js<\/a>, port de la libreria en C++ a JS.<\/li>\n<li><a href=\"http:\/\/paperjs.org\/\">Paper.js<\/a>, similar a flash, usa SVG.<\/li>\n<li><a href=\"http:\/\/www.pixijs.com\/\">Pixi.js<\/a>, para hacer juegos 2D (<a href=\"http:\/\/www.pixijs.com\/examples\/\">mirad los ejemplos<\/a>)<\/li>\n<li><a href=\"http:\/\/threejs.org\/\">Three.js<\/a> para programar en 3D de manera simple.<\/li>\n<\/ul>\n<h3>Aprender jugando<\/h3>\n<ul>\n<li><a href=\"http:\/\/codecombat.com\/\">CodeCombat<\/a><\/li>\n<\/ul>\n<h3>Charlas<\/h3>\n<ul>\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=8aGhZQkoFbQ\">What the heck is the event loop<\/a> (<a href=\"http:\/\/latentflip.com\/loupe\/?code=Cgp2YXIgeCA9IGZ1bmN0aW9uIHgoYSl7CiAgICByZXR1cm4gYTsKfQoKZnVuY3Rpb24geShiKXsKICAgIHJldHVybiB4KGIpOwp9CgpmdW5jdGlvbiB6KCl7CiAgICBmb3IgKGkgPSAwOyBpIDwgMTA7IGkrKyl7CiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpe2NvbnNvbGUubG9nKHkoaSkpfSwgMTAwMCk7CiAgICB9Cn0KCnooKTs%3D!!!\">demo app<\/a>)<\/li>\n<li><a href=\"https:\/\/speakerdeck.com\/anguscroll\/the-politics-of-javascript\">Javascript Politics<\/a><\/li>\n<li><a href=\"https:\/\/www.destroyallsoftware.com\/talks\/wat\">Wat<\/a><\/li>\n<\/ul>\n<h3>Otros enlaces utiles<\/h3>\n<p>Algunos enlaces extra<\/p>\n<ul>\n<li><a href=\"https:\/\/hackernoon.com\/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f\">How it feels to learn JavaScript in 2016<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/blakeembrey\/code-problems\">Javascript problems from Job Interviews<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/kripken\/emscripten\">Emscripten<\/a>: Convertir C++ en Javascript<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Es importante recordar que para programar en Javascript en la web lo primero es conocer como funciona la web, eso incluye saber un poco de HTML y CSS. Estas slides introducen a algunos de los conceptos. Tambien suele ser util saber algo del protocolo HTTP. Aqu\u00ed hay un listasdo de enlaces utiles a presentaciones y [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/tamats.com\/upf\/index.php?rest_route=\/wp\/v2\/posts\/514"}],"collection":[{"href":"https:\/\/tamats.com\/upf\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tamats.com\/upf\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tamats.com\/upf\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tamats.com\/upf\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=514"}],"version-history":[{"count":0,"href":"https:\/\/tamats.com\/upf\/index.php?rest_route=\/wp\/v2\/posts\/514\/revisions"}],"wp:attachment":[{"href":"https:\/\/tamats.com\/upf\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=514"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tamats.com\/upf\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=514"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tamats.com\/upf\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=514"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}