foundation.html 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337
  1. <!DOCTYPE html>
  2. <html lang="es">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
  6. <title>Taller de Programación Web - Bases </title>
  7. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/4.2.1/reset.min.css" integrity="sha512-Mjxkx+r7O/OLQeKeIBCQ2yspG1P5muhAtv/J+p2/aPnSenciZWm5Wlnt+NOUNA4SHbnBIE/R2ic0ZBiCXdQNUg==" crossorigin="anonymous" referrerpolicy="no-referrer" />
  8. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/4.2.1/reveal.css" integrity="sha512-8rXe5D6LberCopHR3L8wMNnnIhUQSQ5SfFjFtw2bk5AnrkI2eOk0S0QcqNh48/LLa4CapMLnAFaoulGrBI1D4Q==" crossorigin="anonymous" referrerpolicy="no-referrer" />
  9. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/4.2.1/theme/black.min.css" integrity="sha512-DKeDMgkMDBNgY3g8T6H6Ft5cB7St0LOh5d69BvETIcTrP0E3d3KhANTMs5QOTMnenXy6JVKz/tENmffCLeXPiQ==" crossorigin="anonymous" referrerpolicy="no-referrer" />
  10. <!-- Theme used for syntax highlighted code -->
  11. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/4.2.1/plugin/highlight/monokai.css" integrity="sha512-ITi+aXPAZ6cIHUIulO7jdT3gOiN9w4xIkyqJjFleAkjp2PLj0+oKmjIRlEjudk1bBvjNu4EkyFMstRzwZ+E0GA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
  12. </head>
  13. <body>
  14. <!-- slides -->
  15. <div class="reveal">
  16. <div class="slides" style="text-align: left;">
  17. <section>
  18. <h2>Taller de Programación Web - HTML, CSS, Javascript</h2>
  19. <img
  20. src="https://cdn.shopify.com/s/files/1/0538/4070/7773/files/logo-org-color-500width_200x.png" alt="esposible.org" style="background-color: white; width:300px;"/>
  21. <p
  22. style="font-size: 0.6em;">
  23. por<br/>Ivan Robles
  24. </p>
  25. <img src="media/cc.png" style="position: absolute; left: 0%;"/>
  26. <br/>
  27. <br/>
  28. <small><a href="index.html">Volver al Índice</a></small>
  29. <br/>
  30. <a href="https://creativecommons.org/licenses/by-sa/4.0/" target="_blank" rel="noopener noreferrer" style="font-size: 0.4em;">Esta obra está bajo una Licencia Creative Commons Atribución-CompartirIgual 4.0 Internacional</a>
  31. </section>
  32. <section>
  33. <h3>Acerca de mí</h3>
  34. <ul style="position: absolute; left:0%; text-justify: auto; font-size: 0.4em; max-width: 60%;">
  35. <li>Ivan Robles.</li>
  36. <li>Tengo 23 años, vivo con mi familia en la zona Metropolitana de Guadalajara, México.</li>
  37. <li>Soy Tecnólogo Profesional en Sistemas Informáticos egresado de La Escuela Politécnica de Guadalajara (4 años).</li>
  38. <li> Estudio la Lic. En Ing. En Sistemas Informáticos en la Universidad Latinoamericana UTEL con un avance curricular del 80%.</li>
  39. <li>Hablo Inglés fluido cuya habilidad me ha ayudado a formar mi carrera en TI.</li>
  40. <li>Tengo casi 4 años de experiencia trabajando en empresas del área de TI, siendo un año y medio aplicando mis conocimientos en programación y capacitandome.</li>
  41. <li>He impartido un webinar y un curso de Linux desde cero hasta administrador en la transnacional donde trabajo.</li>
  42. <li>Administrador Junior en sistemas Linux y entusiasta del Software Open Source.</li>
  43. <li>Programador Junior en Python y en Front-end enfocado a webapps.</li>
  44. <li>Desarrollo actualmente una aplicación web llamada "Workshops" basada en en el Framework Django que sirve como una plataforma para compartir cursos de manera sencilla y directa tanto para administradores como para el usuario de la plataforma, él código se encuentra en Sourceforge y Github, está en continuo desarrollo y actualmente con un fork en Flask en proceso.</li>
  45. </ul>
  46. <img
  47. src="media/myprofile.png"
  48. style="position: absolute; right: 0%; transform: scale(5);"/>
  49. </section>
  50. <section>
  51. <q>Internet se está convirtiendo en la plaza central de la aldea global del mañana.</q>
  52. <p style="text-align: right;">-Anónimo</p>
  53. </section>
  54. <section>
  55. <p><span style="font-size: 4em;">01</span> Fundamentos</p>
  56. </section>
  57. <section>
  58. <h3>Índice</h3>
  59. <ul>
  60. <li>Bases</li>
  61. <li>Internet</li>
  62. <li>Páginas Web</li>
  63. </ul>
  64. </section>
  65. <section>
  66. <h1>1. BASES</h1>
  67. <h3>Datos y Computadoras</h3>
  68. </section>
  69. <section>
  70. <h3>1.1 Datos e Información</h3>
  71. </section>
  72. <section>
  73. <p>La definición de "Dato" la RAE es:</p>
  74. <q>1. m. Información sobre algo concreto que permite su conocimiento exacto o sirve para deducir las consecuencias derivadas de un hecho. </q>
  75. </section>
  76. <section>
  77. <p>De acuerdo a <b>The Free Dictionary</b></p>
  78. <q>inform. Representación convencional de un hecho o idea que puede ser tratada por un ordenador.</q>
  79. </section>
  80. <section>
  81. <p>Ejemplos de datos con los que normalmente interactuamos:</p>
  82. <ul>
  83. <li>Nombres</li>
  84. <li>Números</li>
  85. <li>Letras</li>
  86. <li>Palabras en sí</li>
  87. </ul>
  88. </section>
  89. <section>
  90. <p>Por ejemplo, las palabras representan objetos reales o abstractos, cada letra del alfabeto representa un sonido que hacemos para representar a su vez palabras las cuales forman frases, oraciones, órdenes o pensamientos y que otros puedan saberlos.</p>
  91. </section>
  92. <section>
  93. <h2>En pocas palabras, el lenguaje escrito y hablado nos sirve para comunicar nuestros pensamientos a otros</h2>
  94. </section>
  95. <section>
  96. <p>Pero aquí está un detalle importante: Al igual que decir nombres, números y datos así sin más es inútil, así como necesitamos <u>articular</u> las palabras en oraciones, los datos organizados se convierten en <u>Información</u> </p>
  97. </section>
  98. <section>
  99. <p>En otras palabras, no nos enfocamos en los <i>datos</i> sino en la <i>información</i> que estos crean</p>
  100. <p>Son el objetivo de estudio y propósito en la Informática y por tanto de la programación en general, es por eso que abordamos desde esta instancia.</p>
  101. </section>
  102. <section>
  103. <p>Para comunicar la información a otros es necesaria la <u>codificación</u>:</p>
  104. <q>Codificar es representar
  105. los elementos de un
  106. conjunto mediante los de
  107. otro, de forma tal que a
  108. cada elemento del primer
  109. conjunto le corresponda
  110. un elemento distinto del
  111. segundo.</q>
  112. <br/>
  113. <br/>
  114. <p style="font-size: 0.5em; text-align: right;">- Fernando Berzal, Introducción a la Informática, 2004, pág. 4</p>
  115. </section>
  116. <section>
  117. <b class="fragment">Para nosotros:</b>
  118. <p class="fragment">Números, Alfabetos, imágenes, sonidos, gestos funcionan.</p>
  119. <br/>
  120. <b class="fragment">Para las Computadoras:</b>
  121. <p class="fragment">Todo se reduce a 2 posibles estados binarios: 0 y 1 </p>
  122. </section>
  123. <section>
  124. <p>Las medidas de "información" digital (o sea, las computadoras) son:</p>
  125. <ul>
  126. <li>Bit: 1 ó 0</li>
  127. <li>Byte: 8 Bits (normalmente)</li>
  128. </ul>
  129. </section>
  130. <section>
  131. <b>Computadoras:</b>
  132. <p>Por definición son:</p>
  133. <q>... es una máquina electrónica que permite procesar y acumular datos. El término proviene del latín computare ('calcular').</q>
  134. <p style="font-size: 0.5em; text-align: right;">- Definición.de , Enlace: https://definicion.de/computadora/ </p>
  135. </section>
  136. <section>
  137. <p>Las partes importantes son: </p>
  138. <img src="media/compu2.jpg" alt="">
  139. </section>
  140. <section>
  141. <img src="media/datos-info.png" style=" width:1000px" />
  142. </section>
  143. <section>
  144. Para sumarizar esta unidad tenemos:
  145. <p class="fragment"><b>Dato:</b> Representación simbólica acerca de un hecho, suceso o entidad.</p>
  146. <p class="fragment"><b>Información:</b> Conjunto ordenado de datos que forman un mensaje. Algo importante. Con un propósito.</p>
  147. <p class="fragment"><b>Informática:</b> “Ciencia que estudia el tratamiento de la información por medio de máquinas automáticas.”</p>
  148. </section>
  149. <section>
  150. <img src="media/data.png" style="transform: scale(2); display: block; margin: auto;"/>
  151. </section>
  152. <section data-background-image="media/bg1.jpg">
  153. <h3>1.2 Internet </h3>
  154. <p class="fragment" style="background-color:rgba(0,0,0, 0.3);">Porque las computadoras necesitan comunicarse también &#128515</p>
  155. </section>
  156. <section>
  157. <h2 class="fragment">Internet</h2>
  158. <p class="fragment">(De acuerdo a Wikipedia) “Es un conjunto descentralizado de redes de comunicaciones interconectadas, que utilizan la familia de protocolos TCP/IP”</p>
  159. </section>
  160. <section>
  161. <p>Esquema ejemplo de Internet</p>
  162. <img src="media/redes.jpg" />
  163. </section>
  164. <section>
  165. <img src="media/internet-2.png" style="background-color:white;"/>
  166. </section>
  167. <section>
  168. <p>Internet surgió por la nacesidad de poder transmitir y compartir información entre computadoras por lo que, internet no es más que un conjunto de protocolos para compartir información </p>
  169. </section>
  170. <section>
  171. <img src="media/tcp-ip.png" style="transform: scale(1.5); display: block; margin: auto;"/>
  172. </section>
  173. <section>
  174. <b>Modelos de Red:</b>
  175. <img src="media/net.gif"/>
  176. </section>
  177. <section>
  178. <p>El modelo de red más usado es el modelo de "cliente-servidor" </p>
  179. <p>- El Servidor (computadoras especializadas en un Data Center para almacenar y proveer a través de internet) las páginas web y datos necesarios a los usuarios.</p>
  180. <p>- El Cliente (computadora, laptop, tablet, smartphone que puede acceder al recurso) en el caso particular de las páginas web, debe tener un "user agent" que se traduce normalmente a un navegador web (Chrome, Firefoz, Safari, etc.) que pueda solicitar recursos por medio de los protocolos HTTP/HTTPS </p>
  181. </section>
  182. <section>
  183. <p>Estos son los protocolos más usados en las capas correspondientes en la familia TCP/IP:</p>
  184. <img src="media/protocols.png"/>
  185. </section>
  186. <section>
  187. <p>En particular vamos a ver el protocolo de aplicación HTTP y HTTPS.</p>
  188. </section>
  189. <section>
  190. <p>De acuerdo a Mozilla Foundation:</p>
  191. <q>HTTP, de sus siglas en inglés: "Hypertext Transfer Protocol", es el nombre de un protocolo el cual nos permite realizar una petición de datos y recursos, como pueden ser documentos HTML.</q>
  192. <p style="font-size: 0.5em; text-align: right;">-Generalidades del protocolo HTTP: https://developer.mozilla.org/es/docs/Web/HTTP/Overview</p>
  193. </section>
  194. <section>
  195. <p>Por otra parte, podemos considerar a HTTPS como una versión mejorada de HTTP, al implementar una capa de seguridad.</p>
  196. </section>
  197. <section>
  198. <p>Básicamente funciona así:</p>
  199. <img src="media/http-e.png" />
  200. </section>
  201. <section>
  202. <p>En más detalle es así una conexión HTTP/HTTPS:</p>
  203. <img src="media/https.png"/>
  204. </section>
  205. <section>
  206. <p>Principales Elementos Protocolo HTTP</p>
  207. <p> <b>URL (Uniform Resource Locator)</b>
  208. Un URI (Uniform Resource Identifier) que además proporciona la
  209. información necesaria para localizar
  210. y acceder al recurso se denomina
  211. localizador uniforme de recurso
  212. (URL, Uniform Resource Locator).</p>
  213. </section>
  214. <section>
  215. <img src="media/uri.png"/>
  216. </section>
  217. <section>
  218. <p>Entre los elementos más importantes tenemos, del lado del Cliente 'Request Methods' y del lado del servidor 'Response Status Codes'</p>
  219. </section>
  220. <section style="text-align: center;">
  221. <img src="media/cliente.png" style="transform: scale(1.5);" />
  222. </section>
  223. <section style="text-align: center;">
  224. <img src="media/servidor.png" style="transform: scale(1.5);"/>
  225. </section>
  226. <section>
  227. <h1>Página Web</h1>
  228. </section>
  229. <section>
  230. <p>Es un documento electrónico capaz de contener
  231. texto, contenido multimedia e hipervínculos que
  232. permiten acceder a otras, el mismo está en
  233. formato HTML auxiliado de CSS y Javascript
  234. para su funcionamiento y presentación. Con una extensión .html</p>
  235. </section>
  236. <section>
  237. <p class="fragment">Lenguaje de Marcado de Hipertexto: HTML (actualmente HTML5)</p>
  238. <p class="fragment">Lenguaje de Estilo en Cascada: CSS (actualmente CSS3)</p>
  239. <p class="fragment">Lenguaje de Programación: Javascript</p>
  240. </section>
  241. <section>
  242. <p>Porqué conviene aprender desarrollo Web Front-End:</p>
  243. <ul>
  244. <li class="fragment">Amplia Contratación</li>
  245. <li class="fragment">Trabajo Remoto y Home Office</li>
  246. <li class="fragment">Como emprendedor de una PyME, da presencia y seriedad a tu negocio con un sitio A TUS PROPIAS PREFERENCIAS Y NECESIDADES</li>
  247. <li class="fragment">Ayuda en preparación Integral de un Desarrollador Fullstack</li>
  248. <li class="fragment">Sueldos competitivos en todo México: desde 17k hasta >30k de acuerdo a Indeed, OCC y LinkedIn </li>
  249. <li class="fragment">Integra habilidades tanto Lógicas como de Diseño de Interfaces</li>
  250. </ul>
  251. </section>
  252. <section data-background-image="media/bg2.jpg">
  253. <h2>Herramientas y Recursos Necesarios para Empezar a Programar Páginas Web</h2>
  254. </section>
  255. <section>
  256. <p class="fragment">Requisitos Mínimos: </p>
  257. <ul>
  258. <li class="fragment">Navegador Web Moderno</li>
  259. <li class="fragment">Editor de Texto (opcional)</li>
  260. <li class="fragment">(Incluso se puede aprender/practicar a programar desde un Smartphone)</li>
  261. </ul>
  262. </section>
  263. <section data-background-image="media/bg2.jpg">
  264. <h1>Competencias y Habilidades</h1>
  265. </section>
  266. <section>
  267. <ul>
  268. <li class="fragment">Conocimiento básico de cómo se usa una Computadora, Tableta o Teléfono Inteligente</li>
  269. <li class="fragment">Conocimiento de las tecnologías HTML, CSS y Javascript</li>
  270. <li class="fragment">Habilidades de comunicación buenas para la colaboración en equipos y comunicación constante con el cliente así con jefes y compañeros</li>
  271. <li class="fragment">Conocimiento y/o Manejo de Librerías y Frameworks Javascript para desarrollo Front-End</li>
  272. </ul>
  273. </section>
  274. <section>
  275. <p>Habilidades Deseables:</p>
  276. <ul style="font-size: .8em;">
  277. <li class="fragment">Manejo de Sistemas de Versiones (como Git, Subversion, Mercurial, etc.)</li>
  278. <li class="fragment">Manejo de ciertos IDEs (Integrated Development Environment) como Visual Studio</li>
  279. <li class="fragment">Manejo de Plataformas Externas en el proceso de desarrollo (entornos de Pruebas, Chats [Teamcity, Slack], Github, AWS)</li>
  280. <li class="fragment">Terminal de comandos (normalmente GNU/Linux casi exclusivamente)</li>
  281. <li class="fragment">Node.js</li>
  282. <li class="fragment">SEO: Google Analitics</li>
  283. <li class="fragment">Nivel respetable de Inglés</li>
  284. </ul>
  285. </section>
  286. <section>
  287. <p>Otros:</p>
  288. <ul>
  289. <li>IDE Online (Cloud9, Repl.it, Hackerrank)</li>
  290. <li>Ciertos CMS (que tienen sitios prefabricados): Wordpress, Joomla, Wix</li>
  291. <li>Manejo de contenido Multimedia (imágenes y video)</li>
  292. <li>Bases de Diseño Gráfico</li>
  293. </ul>
  294. </section>
  295. <section>
  296. <p>Beneficios Psicológicos de la Programación de Software para las Personas:</p>
  297. <ul>
  298. <li class="fragment">Mejora Capacidad de Atención y Concentración</li>
  299. <li class="fragment">Más autonomía y mayor interés por la experimentación y el aprendizaje</li>
  300. <li class="fragment">Mayor orden y capacidad de comprensión</li>
  301. <li class="fragment">Mejor capacidad de cálculo y de lógica</li>
  302. </ul>
  303. </section>
  304. <section>
  305. <p class="fragment">Una habilidad super importante de principio a fin para toda tu carrera como Programador es...</p>
  306. <h2 class="fragment">Actitud de Aprendizaje Autodidacta</h2>
  307. </section>
  308. <section>
  309. <h1>FIN</h1>
  310. <a href="foundation.html">Inicio</a>
  311. <br/>
  312. <a href="index.html">Índice</a>
  313. </section>
  314. </div>
  315. </div>
  316. <!-- slides -->
  317. <!-- Configuration and modules -->
  318. <script src="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/4.2.1/reveal.min.js" integrity="sha512-/wlhXEDdbvt3WbfQwgZ4hRehxquuDDLja5DV0lyoW+5kSVaCaQV9EAEU6AmpAkXd+S5yV78TJK/+YqR0uy8h4Q==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
  319. <script src="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/4.2.1/plugin/notes/notes.min.js" integrity="sha512-v2co+5nr0bgHekutTzF5jAB0UAjM95dpCF7VVw7WsFCjfxonbQo8Vwl487tNYl0iHWHHGV4o5xKBp5ifyhJkWg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
  320. <script src="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/4.2.1/plugin/markdown/markdown.min.js" integrity="sha512-KSOrBsj0WKbq6xcEboor7XHEq+QQNVWXJ4IFXC/k7aR8ZATkUPA01ERRFMtkkApsGs71JpygBvs3eRNLammVoA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
  321. <script src="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/4.2.1/plugin/highlight/highlight.min.js" integrity="sha512-U3fPDUX5bMrn1wnYqjaK44MFA9E6MKS+zPAg9WPAGF5XhReBeDj3FGaA831CjueG+YJxYA3WaO/m33kMIoOs/A==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
  322. <script>
  323. // More info about initialization & config:
  324. // - https://revealjs.com/initialization/
  325. // - https://revealjs.com/config/
  326. Reveal.initialize({
  327. hash: true,
  328. center: true,
  329. slideNumber: true,
  330. // Learn about plugins: https://revealjs.com/plugins/
  331. plugins: [ RevealMarkdown, RevealHighlight, RevealNotes ]
  332. });
  333. </script>
  334. </body>
  335. </html>