├── README.md ├── animacionesWeb.md ├── desarrolloWebProf.md ├── fundamentosJS.md ├── inglesTecnicoProfesionales.md ├── jQuery-JavaScript.md └── postCSS.md /README.md: -------------------------------------------------------------------------------- 1 | # notas-clases 2 | 3 | Notas y resumenes o referencias de las clases de Platzi. 4 | 5 | -------------------------------------------------------------------------------- /desarrolloWebProf.md: -------------------------------------------------------------------------------- 1 | Por qué index.html? 2 | 3 | https://desarrolloweb.com/articulos/documento-por-defecto.html 4 | 5 | 6 | # Resumen - video 2 7 | 8 | ## Cómo se construye una página web? 9 | 10 | **Frontend - Backend** 11 | 12 | **Frontend:** La parte visible para el cliente de un sitio web o un web app. 13 | **Backend:** La parte invisible para el cliente de un sitio web. Conexión entre back y front, bases de datos, procesos de servidor, host, url, etc. 14 | CRUD - Create - Read - Update - Delete (funciones básicas del backend) 15 | 16 | **HTML - CSS - JS** 17 | 18 | **HTML:** HyperText Markup Language - sistema de texto tageado que permite estructurar las páginas web. 19 | 20 | 21 |
22 |
23 | 24 | 25 | **CSS:** Cascading Style Sheet - código para dar estilo, color, tamaños, espaciados y animaciones a las páginas web. 26 | 27 | body{ 28 | margin: 0; 29 | } 30 | 31 | **JS:** JavaScript - código de programación para agregar interacción de las páginas webs con el usuario. Manipulación de datos (variables) en el front, animaciones complejas, etc. 32 | 33 | document.getElementById(‘id') 34 | 35 | 36 | ____________________________________________________ 37 | 38 | # Resumen - video 4 39 | 40 | **Qué es internet?** 41 | Es un conjunto descentralizado de redes de comunicación interconectadas. 42 | Muchas computadoras que se conectan entre sí. 43 | 44 | **Protocolos** 45 | Conjunto de reglas que posibilitan la comunicación en internet entre todo tipo de dispositivos. 46 | 47 | **WWW:** World Wide Web, es uno y el más conocido y usado de los protocolos de internet. 48 | Es un sistema de distribución de documentos de hipertexto interconectados y accesibles vía internet. 49 | 50 | **Hypertexto:** texto que contiene enlaces a otros textos. 51 | 52 | **FTP:** Transferenca de archivos entre sistemas conectados a una red. 53 | 54 | ## Tipos de dispositivos conectados a una red: 55 | 56 | **Servidor:** computadora que contiene datos o archivos para ser consultados 57 | **Cliente:** computadora o dispositivos de usuarios que consultan esos datos o archivos. 58 | 59 | **P2P:** Peer to Peer - Todos conocemos el Torret, no? =D 60 | 61 | **Tecnología de la información:** Es la aplicación de equipos de telecomunicación para almacenar, recuperar, transmitir y manipular datos, con frecuencia utilizado en el contexto de los negocios o empresas. 62 | Información rápida e instantanea para resolver problemas de forma automática. 63 | Las peticiones van a los servidores (en Alaska =). 64 | 65 | ## Tipos de comunicación: 66 | 67 | **Síncrona y Asíncrona** 68 | 69 | **Síncrona:** comunicación en tiempo real. Ej video chat. 70 | 71 | **Asíncrona:** comunicación en tiempo no real. Ej un email. 72 | 73 | ____________________________________________________ 74 | 75 | 76 | # Resumen - video 5 77 | 78 | ## Cómo funciona HTML 79 | 80 | HTML es un tipo de Markup Language. 81 | **HyperText Markup Language** 82 | 83 | Un sistema de hipertexto que se enfoca en la diferenciación y síntesis en un texto con etiquetas. 84 | 85 | Estructura básica: 86 | 87 | 88 |
89 | 90 | 91 | 92 | The tag tells the browser that this is an HTML document. 93 | 94 | The tag represents the root of an HTML document. 95 | 96 | The tag is the container for all other HTML elements (except for the tag). 97 | 98 | 99 | 100 | **Etiquetas comunes:** 101 | 102 | Títulos encabezados: 103 | 104 |

105 |

106 |

107 | 108 | Crear secciones o agrupar contenido: 109 | 110 |
111 | 112 | Para crear párrafos: 113 | 114 |

115 | 116 | Para determinar una sección definida: 117 | 118 | 119 | 120 | 121 | ____________________________________________________ 122 | 123 | # Resumen - video 6 124 | 125 | ## Etiquetas y sus atributos 126 | 127 | **Etiquetas:** las etiquetas son fragmentos de texto rodeados por corchetes angulares (< >) con funciones y usos específicos. Marcan un _comienzo_ y un _fin_ y en el medio se coloca el contenido formateado por la misma etiqueta. 128 | 129 | inicio contenido fin 130 |

Este es un título

131 | Las etiquetas pueden contener **_Atributos_** 132 | **Atributos:** afectan al elemento por su presencia o enriquecen la definición de la misma. 133 | 134 | Existen también las etiquetas meta o _"meta tags”_. 135 | Estas se incorporan en el encabezado de una página web. 136 | Son información útil para navegadores y otros, mientras son invisibles para los clientes. 137 | Por ej. Los robots de google se valen de esta información para indexar sitios. 138 | 139 | 140 | 141 | 142 | 143 | Etiquetas comunes: 144 | 145 | // sección específica 146 |
// secciones 147 | // texto sin formato 148 | “Image” //imágenes 149 | link // links 150 | // caracteres especiales 151 | 152 | Aquí está el [link](https://developer.mozilla.org/es/docs/HTML/HTML5/HTML5_lista_elementos) a la lista de HTML5 tags. 153 | 154 | 155 | _______________________________________________________________________ 156 | 157 | # Resumen - video 9 158 | 159 | ## Cómo funciona CSS 160 | 161 | **[CSS](https://es.wikipedia.org/wiki/Hoja_de_estilos_en_cascada ):** Cascading Style Sheet - Hojas de Estilo en Cascada 162 | 163 | Definen la apariencia de un documento HTML. 164 | 165 | Para que nuestros estilos CSS se apliquen correctamente a nuestras páginas web, debemos utilizar la etiqueta link con el atributo href y la ruta a nuestro archivo .css: 166 | 167 | ```HTML 168 | 169 | 170 | 171 | 172 | 173 | 174 | ... etc ... etc…. 175 | 176 | 177 | 178 | 179 | ``` 180 | 181 | Se llaman “Estilos en Cascada” porque precisamente este nombre alude al funcionamiento estructural del lenguaje y cómo es interpretado por el browser. Siempre se lee en cascada, de arriba hacia abajo (+ abajo o más cerca del elemento, más importante) y se hereda hacia "objetos hijos”. 182 | 183 | 184 | **Selectores** 185 | Los selectores son _**palabras claves**_ que CSS utiliza para apuntar a los elementos de HTML que contengan esa _**palabra clave**_ como un atributo _**class**_ o _**id**_ en su tag. 186 | Respetando ciertas convenciones entre programadores, puedo darle a los _class_ o _id_ el nombre que quiera siempre que se respete el mismo para el mismo elemento tanto en el código CSS como en el HTML, de otra manera no funcionaría. 187 | 188 | 189 | Ej **class**: 190 | 191 | ```css 192 | 193 | .box{ 194 | margin: 0; 195 | } 196 | 197 | 198 | ``` 199 | 200 | ```html 201 | 202 |
203 |

Some Title

204 |
205 | 206 | 207 | ``` 208 | 209 | El selector **class** se declara con un “.” previo al keyword en el código CSS y entre comillas y sin punto precedente en el código HTML. 210 | 211 | Ej **id**: 212 | 213 | ```css 214 | 215 | #box{ 216 | margin: 0; 217 | } 218 | 219 | ``` 220 | 221 | ```html 222 | 223 |
224 |

Some Title

225 |
226 | 227 | 228 | ``` 229 | 230 | El selector **id** se declara con un “#” previo al keyword en el código CSS y entre comillas y sin “#” precedente en el código HTML. 231 | 232 | El **id** sólo puede apuntar a un elemento único dentro del DOM. 233 | 234 | Dentro de los selectores en el documento CSS entre “{}” se definen los estilos de acuerdo a las **propiedades**. 235 | Existen propiedades de ancho, alto, margen, relleno, color, etc. 236 | 237 | 238 | Sintaxis en CSS: 239 | 240 | ```CSS 241 | 242 | body{ 243 | background-color: rgb(0,0,0); // define un background negro 244 | } 245 | 246 | 247 | ``` 248 | 249 | El código CSS puede usarse en los tags HTML con el atributo **style**, dentro del de un documento HTML dentro de la etiqueta ** 275 | 276 | 277 | ... 278 | 279 | ``` 280 | 281 | Etiqueta : (uso recomendado - buenas prácticas) 282 | 283 | ```HTML 284 | 285 | 286 | 287 | 325 | 326 | ``` 327 | 328 | Dentro de la etiqueta ** 337 |
338 | ... 339 | 340 | ``` 341 | 342 | O en un tag para invocar un documento externo con código JS (conviene antes de cerrar la etiqueta body). 343 | 344 | 345 | 346 | ________________________________________________________________________ 347 | 348 | 349 | # Resumen - video 12 350 | 351 | ## Paper wireframe 352 | 353 | Qué queremos hacer? 354 | 355 | Primero comunicamos nuestro producto. 356 | Procuramos tener los CTA (call to action o los botones) visibles para el usuario. 357 | 358 | Agregamos el logo en la esquina superior izquierda, ya que la visualización de los usuarios es en la diagonal de izquierda a derecha de arriba hacia abajo. 359 | Los elemento principales deberíamos ponerlos en esa línea. 360 | 361 | Sólo agrego los elementos que se que voy a usar efectivamente en el sitio. 362 | 363 | Lo importante es que hagas un “Paper Wireframe” rápido, en menos de 10 minutos, si no, no vale la pena que hagas uno. 364 | 365 | Me pongo en el lugar del usuario. 366 | 367 | 368 | 369 | _________________________________________________________________________ 370 | 371 | 372 | # Resumen - video 14 373 | 374 | ## Diseño de interfaces con XD 375 | 376 | Una vez listo el Paper Wireframe puedo pasar el diseño a digital en un programa de edición. Esta es la instancia previa a la maquetación así que debe ser lo más exacta posible. 377 | 378 | Lo primero y básico, a demás de importante es definir us set de colores antes de comenzar a diseñar. Esto nos dará una “plantilla” para utilizar colores uniformes. 379 | También se pueden definir tamaños, fuentes, etc. 380 | 381 | En XD puedo generar “Symbols” a partir de varios elementos para así poder reproducirlos idénticos en cualquier parte del diseño. 382 | En la pestaña “prototype” de XD puedo generar links entre páginas del documento. (Cmd + enter para probar). 383 | 384 | 385 | ___________________________________________________________________________ 386 | 387 | 388 | # Resumen video 18 389 | ## Fuentes personalizadas y variables de CSS 390 | 391 | ```CSS 392 | 393 | :root{ 394 | —green-1: green; 395 | —green-2: #454345; 396 | —width-1: 100px; 397 | —width-2: 200px; 398 | } 399 | body { 400 | background: var(—green-1); 401 | } 402 | 403 | ``` 404 | 405 | 406 | ___________________________________________________________________________ 407 | 408 | # Resumen video 21 409 | 410 | ## Reglas responsive 411 | 412 | Responsive Design consiste en crear estilos que se adapten a cualquier tamaño y posición de nuestros dispositivos electrónicos. Para esto, la mayoría de elementos organizados horizontalmente deben pasar a organizarse verticalmente. 413 | 414 | La forma de añadir código CSS que se ejecute para tamaños de pantalla específicos es la siguiente: 415 | 416 | @media (max-width: 600px) { /* 600px es solo un ejemplo */ 417 | /* Todos nuestros estilos responsive */ 418 | } 419 | 420 | 421 | 422 | _______________________________________________________________________________ 423 | 424 | # Resumen video 22 425 | 426 | ## Animaciones y transiciones 427 | 428 | Animation es una propiedad de CSS3 para generar animaciones con CSS. 429 | 430 | En la sintaxis, es indispensable agregar un **animation-duration** y un **animation-name** al elemento que queremos animar para que la animación funcione. 431 | Luego con el keyword **@keyframes** y el nombre se la animación veteado en **animation-name** generamos la animación con los keywords **from{}** y **to{}**. También puede usarse %. 432 | Dentro de los {} se agrega la propiedad CSS que se desea animar. 433 | Para hacerlas funcionales en la mayoría de los browsers copiamos las propiedades **animation-duration** y **animation-name** con el prefijo **-webkit-**. 434 | Lista de propiedades animables [aquí](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties). 435 | 436 | Ej: 437 | 438 | ```CSS 439 | 440 | .fade-in{ 441 | animation-name: fadein; 442 | -webkit-animation-name: fadein; 443 | animation-duration: 2s; 444 | -webkit-animation-duration: 2s; 445 | } 446 | @keyframes fadein { 447 | from{ 448 | opacity: 0; 449 | } 450 | to{ 451 | opacity: 1; 452 | } 453 | } 454 | 455 | 456 | ``` 457 | 458 | __________________________________________________________________________________ 459 | 460 | 461 | # Resumen video 23 462 | 463 | ## Librería vs Framework 464 | 465 | **Framework** 466 | Un framework es un marco de trabajo para hacer más rápido el trabajo. 467 | Se puede decir que es un molde a partir del cual puedo generar elementos con la misma base e ir modificándolos. 468 | 469 | Ej: Bootstrap - Foundation 470 | 471 | **Librería** 472 | Conjunto de rutinas, funciones que tiene un objetivo. 473 | En general ahorran código o automatizan ciertas partes del mismo. 474 | 475 | 476 | ___________________________________________________________________________________ 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | -------------------------------------------------------------------------------- /inglesTecnicoProfesionales.md: -------------------------------------------------------------------------------- 1 | # Curso de Inglés Técnico para Profesionales 2 | # 3 | # Index 4 | # 5 | 6 | ## [Section I - How to create a professional profile?](#sec1) 7 | ### [01 - Why is it important to work on our professional profile?](#clase1) 8 | ### [02 - Glossary - How to create a professional profile?](#clase2) 9 | ### [03 - Using specific vocabulary for careers in IT](#clase3) 10 | ### [04 - How to create a successful profile?](#clase4) 11 | ### [05 - Creating your curriculum vitae](#clase5) 12 | ### [06 - Preparing yourself for a job interview](#clase6) 13 | ### [07 - Challenge: Your job interview](#clase7) 14 | 15 | # 16 | 17 | 18 | ## [Section II - How to use English in the workplace](#sec2) 19 | ### [08 - Glossary - How to use English in the workplace?](#clase8) 20 | ### [09 - Vocabulary for the workplace](#clase9) 21 | ### [10 - Good strategies for writing in the workplace](#clase10) 22 | ### [11 - Making presentations in the workplace](#clase11) 23 | ### [12 - Understand and apply computer ethics](#clase12) 24 | 25 | # 26 | 27 | ## [Section III - How to create content to enhance your professional profile](#sec3) 28 | ### [13 - Creating content for enhancing your professional profile](#clase13) 29 | ### [14 - How to use English in your social networks?](#clase14) 30 | ### [15 - Writing good blog posts](#clase15) 31 | 32 | # 33 | 34 | ## [Section IV - English for programming, marketing and business](#sec4) 35 | ### [16 - Vocabulary for Programming](#clase16) 36 | ### [17 - Listening Exercise: Programming Languages](#clase17) 37 | ### [18 - Best strategies to learn English](#clase18) 38 | ### [19 - Vocabulary for Marketing](#clase19) 39 | ### [20 - Marketing strategies](#clase20) 40 | ### [21 - How to create good copy for marketing campaigns](#clase21) 41 | ### [22 - Business vocabulary overview](#clase22) 42 | ### [23 - Tips for creating a successful pitch in English](#clase23) 43 | 44 | # 45 | 46 |
47 |
48 |
49 | 50 | # Section I - How to create a professional profile? 51 | 52 |
53 |
54 | 55 | ## 01 - Why is it important to work on our professional profile? 56 | 57 | Topics of this course: 58 | 59 | + Why is it important to work on your professional profile. 60 | + How to create your CV 61 | + Perform in job interviews 62 | + Crete content for your workplace 63 | + Create content for your social networks 64 | 65 | > ..."I recommend to you to pay special attention to the vocabulary that you are going to learn in this course and then adapt it to your own personal needs."... 66 | 67 | **What are you going to learn in this course?** 68 | 69 | We are going to be working on: 70 | 71 | + Your professional profile 72 | + How to communicate in your workplace 73 | + How to deal with the tech world industry (you are going to be lerning a lot of vocabulary about the tech world industry. + How to create content for your personal uses. 74 | 75 | _Why is it important to work on our professional profile?_ 76 | 77 | There are different reazons for this: 78 | 79 | + if you work in your proffesional profile you may have a better job; 80 | + you maybe offered better salaries; 81 | + you can create a position and recognition from your colleges in your industry. 82 | 83 | _How can you improve your profile?_ 84 | 85 | + Writting a good and descriptive professional profile; 86 | + Creating a new or updationg your CV; 87 | + Preparing yourself for an interview; 88 | + Being able to communicate in your workplace: emails, reports, presentations, etc; 89 | + Create content for your social networs; 90 | + Creating a professional portfolio; 91 | + Participating in events. 92 | 93 | 94 | ### [Volver al índice](#title) 95 | 96 | 97 |
98 |
99 |
100 | 101 | ## 02 - Glossary - How to create a professional profile? 102 | 103 | **Analysis:** Detailed examination of something 104 | 105 | **Bachelor degree:** Is an undergraduate degree awarded by universities 106 | 107 | **Backend developer:** A programmer who creates the backend of a website, software or information system 108 | 109 | **Business:** A commercial activity 110 | 111 | **Careers:** An occupation undertaken for a significant period of time 112 | 113 | **CEO - Chief executive officer:** The highest ranking person in a company or other institution 114 | 115 | **Cheerful:** Happy and optimistic 116 | 117 | **City of residence:** The city where a person lives 118 | 119 | **Collaborate:** To work jointly with someone 120 | 121 | **Colleagues:** A person with whom you work 122 | 123 | **Communications:** The act of exchanging information 124 | 125 | **Company:** A commercial business 126 | 127 | **Confident:** Feeling or believing trust in oneself 128 | 129 | **Content marketing:** A type of marketing which is focused on creating content to attract clients 130 | 131 | **Copy-writing:** Act of writing text for advertising purposes 132 | 133 | **Curriculum Vitae - CV:** A brief account of a person’s, qualifications, and previous occupations 134 | 135 | **Curious:** Eager to know and learn things 136 | 137 | **CTO - Chief technology officer:** The person in charge of technology operations within a company 138 | 139 | **Descriptive:** A detailed characterization of something 140 | 141 | **Design:** A plan or drawing that shows the functionalities of something 142 | 143 | **Designer:** A person who plans the functionalities of something 144 | 145 | **Determined:** Having a firm decision or thought about something 146 | 147 | **Draw:** Produce a diagram of a person, an animal or an object 148 | 149 | **Entrepreneur:** A person who owns a business or company 150 | 151 | **Experience:** The events a person has lived and that has left impression 152 | 153 | **Event:** A thing that happens or takes place 154 | 155 | **Feedback:** Information about the performance of a person in a given task 156 | 157 | **Fields:** A particular branch of study 158 | 159 | **Frontend developer:** A developer who creates websites or web applications with which the user can interact directly 160 | 161 | **Goal-oriented:** Focused on achieving one objective only 162 | 163 | **Graduate education:** Degrees obtained after the bachelor education 164 | 165 | **Growth:** Something that has grown over time 166 | 167 | **Growth team:** The team that is in charge of expanding the value of a company 168 | 169 | **Job:** A paid position of regular employment 170 | 171 | **Junior:** Low or lower in rank and status 172 | 173 | **Illustrator:** A person who draws and creates pictures 174 | 175 | **Improve:** To make or become better 176 | 177 | **Interview:** A meeting of people face to face 178 | 179 | **Leader:** A person who commands a group 180 | 181 | **Logic:** Reasoning conducted according to strict parameters of validity 182 | 183 | **Marketing professional:** A person who is in charge of running marketing campaigns 184 | 185 | **Master’s degree:** A degree awarded by university upon the completion of a course of study demonstrating master knowledge of a field 186 | 187 | **Portfolio:** A folder which contains samples of work, like drawings, projects and outcomes 188 | 189 | **Position:** The role that a person assumes in a company 190 | 191 | **Product areas:** The area in charge of developing a product 192 | 193 | **Proactive:** Controlling the situation and proposing new solutions 194 | 195 | **Professional profile:** A short description of a person in their professional dimension 196 | 197 | **Programmer:** A person who writes computer programs 198 | 199 | **Project:** An enterprise that is planned to achieve a goal 200 | 201 | **Project Manager:** The person in charge of a project 202 | 203 | **Organize:** Arrange something systematically 204 | 205 | **Outgoing:** Friendly and sociable 206 | 207 | **Outstanding:** Exceptionally good 208 | 209 | **Recognition:** The acknowledgement of a person within a given field 210 | 211 | **Research:** The systematic study of a field 212 | 213 | **Sales:** The exchange of commodities for money 214 | 215 | **Sensitive:** Highly responsive or susceptible 216 | 217 | **Senior:** With high or higher rank 218 | 219 | **Skill:** The ability to do something 220 | 221 | **Speciality:** A subject of study or line of work 222 | 223 | **Social networks:** A network of social interactions. A website dedicated to social interactions 224 | 225 | **Social relationships:** Any relation between two individuals 226 | 227 | **Sociable:** Willing to talk, interact with others and engage in social activities 228 | 229 | **Software:** Programs used by a computer 230 | 231 | **Start-up:** A newly established business 232 | 233 | **Strategy:** A plan to achieve a specific goal 234 | 235 | **Strengths:** The things a person considers his or her qualities 236 | 237 | **Stress:** The state of mental tension 238 | 239 | **Support professional:** A professional in charge of assisting customers 240 | 241 | **Talent:** Natural aptitude or skill 242 | 243 | **Task:** An activity to be done 244 | 245 | **Teamwork:** The action of a group, especially when is effective 246 | 247 | **Tech-world:** Industry of technology 248 | 249 | **UI designer:** The person in charge of designing the interface for the user 250 | 251 | **Update:** Bring something to a new version 252 | 253 | **UX designer:** The person in charge of designing the user experience 254 | 255 | **Visualize:** Form a mental image of a person, an object or an event 256 | 257 | **Wardrobe:** A person’s entire collection of clothes 258 | 259 | **Weaknesses:** The things that a person considers he or she needs to work on 260 | 261 | **Webinars:** A seminar conducted over the internet 262 | 263 | **Workflows:** A sequence of processes to complete a specific task 264 | 265 | **Workplace:** The physical place in which a person performs his or her work 266 | 267 | 268 | ### [Volver al índice](#title) 269 | 270 |
271 |
272 |
273 | 274 | ## 03 - Using specific vocabulary for careers in IT 275 | 276 | Hi again, 277 | As I told you we are going to be working in your professional profile. 278 | To do this, we need to know what types of careers are there in the tech world. 279 | 280 | There are many different careers in the tech world. If you don't know what you want to do yet, you can answer the following questions to have an idea or a hint about what is it that you want to do. 281 | 282 | So answer the following questions: 283 | 284 | + Do you like numbers and logic? 285 | + Do you like sales, communications and strategy? 286 | + Do you like to draw and design? 287 | + Do you like business and social relationships? 288 | + Do you like projects? 289 | 290 | Take a minute to answer this questions. You can leave your answers in the discussion board and then we will all revise them together. 291 | 292 | Now, if you like logics and numbers probably you can be a _Programmer_ and work in computer science. 293 | If you like sales, communications and strategy you can be a _Marketing Professional_ and work in the _Growth Team_. 294 | If you like to draw and you have a talent for it, you can work in _Design_ or in a _Product Team_. 295 | Also if you like business and social relationships you can be an _Entrepreneur_ and create your own _Start-Up_. 296 | Also if you like projects you can be a _Project Manager_ and work in project areas. 297 | 298 | There are different job positions in the tech world. 299 | Here I present you a list of the most commun job positions you can find. 300 | 301 | Some of there are: 302 | 303 | + Designer 304 | + Marketing professional 305 | + Growth expert 306 | + Communications leader 307 | + Programmer / Dev / Coder (Junior/Senior) 308 | + CEO - Chief Executive Officer 309 | + CTO - Chief Technology Officer 310 | + Frontend programmer 311 | + Backend programmer 312 | + UX/UI designer 313 | + Support expert 314 | + Business developer 315 | + Product Manager 316 | + Project Manager 317 | + Illustrator 318 | + Support Professional 319 | 320 | Here at Platzi we have all this job positions. I just picked some special profiles so you can have an idea of who they are and what they do at Platzi. 321 | 322 | The first one is Juan Pablo Rojas. He is the leader of Growth and he specialises in Marketing. 323 | Leonidas Esteban, most of you know him. He is a Frontend developer and he works here in our team. 324 | Tyfis is in charge of communications, so she can be a communications leader. 325 | You know Fredy. Fredy is our CEO. 326 | And Christian is our COO, Cheaf Operations Oficer. 327 | Also we have Sergio Safra who is in charge of Developing Businesses or Buss Dev. 328 | 329 | So here you have some of the job positions and profiles that we have here at Platzi, so think about your own position and what is it that you want to achieve in your professional life. 330 | 331 | To do this I ask you to answer the following questions. 332 | 333 | + What fields do you like? 334 | + What is your position in this moment? 335 | + What do you want to be in the future? 336 | 337 | I am going to give you my example so you can have a model and then answer in the discussion board. 338 | 339 | > I like education, marketing and sales. In this moment I am an education analyst at Platzi. In the future I want to have a job in business education. 340 | 341 | So, think about yourself and answer the questions in the discussion board. 342 | 343 | Ok! So, remember, your task is to answer the questions that I'll post here. 344 | First: 345 | + What fields do you like? 346 | 347 | Second: 348 | + What is your position at the moment? 349 | 350 | And third: 351 | + What is it that you want to be in the future? 352 | 353 | Use the model that I posted here with my own answers. This you are going to find in the files section here. 354 | And then you can answer your questions in the discussion board. 355 | Remember that everyone is going to see your answers and I personally will be checking your answers to see if they're correct. 356 | 357 | In the next video I am going to tell you how to create your professional profile. 358 | So, I'll see you there. 359 | 360 | 361 |
362 |
363 |
364 | 365 | ## 04 - How to create a successful profile? 366 | 367 | In this video we are going to learn how to create your professional profile. But to do that you need to realize or identify what are your skills and abilities, what are the things that you can or can't do. 368 | 369 | For this I have created three maps. In this map you have the things that you _**can do**_, the things that you _**like to do**_ and the things that you are _**very good at**_. 370 | This information will help you create your professional profile and you will see how. 371 | 372 | In my personal case, what are the things that I can do. 373 | Well, 374 | 375 | I can: 376 | 377 | + teach 378 | + write 379 | + create content 380 | + and many others 381 | 382 | But this things are not necessarily the things that I like to do, maybe there are other things that I like to do. And this ones are, for example. 383 | 384 | I like to: 385 | 386 | + participate in events 387 | + research 388 | + work with students or 389 | + work with teams 390 | 391 | Probably I'd like these things, but it doesn't really mean that I'm very good at those things. 392 | So, for these I decided to include this one too. 393 | 394 | What are the things that I'm very good at?: 395 | 396 | + writing 397 | + teaching 398 | + creating content 399 | 400 | With this information I am going to be able to create my professional profile. 401 | This is what is going to gide me through my professional description. 402 | 403 | And this is what you have to do right now; sit down and in a peace of paper write: 404 | 405 | + the things that you can do; 406 | + the things that you like to do; 407 | + the things that you are very good at; 408 | 409 | And in the second part of this video I am going to show you how to use this information and put it in your real professional profile. 410 | 411 | > ### Task 412 | 413 | + can do; 414 | 415 | - frontend development 416 | - wordpress sites from scratch 417 | - find and solve errors 418 | 419 | + the things that you like to do; 420 | 421 | - always learn 422 | - logic 423 | - game programming 424 | - AI 425 | 426 | + the things that you are very good at; 427 | 428 | - project managing 429 | - find and solve errors 430 | 431 | 432 | 433 | Now that you know the things that you can do, that you like and that you are very good at, you can start working on your professional profile. 434 | Remember that a professional profile is a very short paragraph that describes you as a professional and also as a person. 435 | 436 | Here we are going to start by describing you as a professional, so we have some examples: 437 | 438 | + Experienced UX designer 439 | + Junior frontend programmer/ developer 440 | + Senior backend developer/ programmer 441 | + Growth and marketing expert 442 | + Communications leader 443 | 444 | And with the vocabulary that we learned in the previous videos you can start thinking about your job position and how to describe it. 445 | 446 | In my personal case I am going to be 'an experienced education expert and instructional designer'. 447 | 448 | But that is not enough, you need to describe more, give more details. 449 | So here we are complementing that part with more information. 450 | 451 | + Experienced UX designer with deep knoledge on user research and analysis 452 | + Junior forntend developer with experience in Angular 453 | + Senior backend developer with extensive experience in Python and Django 454 | + Growth and marketing expert with experience in creation of inbound and outbound campaigns 455 | + Communications leader with experience in copy-writing and content marketing strategies 456 | 457 | So, think about yourself, describe yourself in the position that you are right now and also think about your experience, what is it that you know how to do very well. 458 | 459 | Here we have some examples of adjectives that can help you describe your personality, but remember that there are many others that you can find in the files system. 460 | 461 | We have: 462 | 463 | + Outgoing 464 | + Curious 465 | + Proactive 466 | + Sociable 467 | + Goal-Oriented 468 | + Cheerful 469 | + and many many others... 470 | 471 | So with this adjectives you can continue complementing your professional profile. 472 | So, here I show you my professional profile description: 473 | 474 | > Experienced education expert and instructional designer with over 10 years of work in curriculum and pedagogical material design. Outgoing, determined and goal-oriented, very good at working and collaborating with people. 475 | 476 | In the last part you can recycle the vocabulary that you listed when we did the maps, remember? 477 | 478 | After that you are going to include your academic achievements. It's important to include them because many employeers are looking for that information. So, at the end of your description you just include the title that you got. 479 | 480 | So, again: 481 | 482 | > Experienced education expert and instructional designer with over 10 years of work in curriculum and pedagogical material design. Outgoing, determined and goal-oriented, very good at working and collaborating with people. Has a Master's Degree in Foreign Language Teaching. 483 | 484 | If you have more or if you have less, it doesn't matter but is important that you include this information. 485 | 486 | Now it's your turn. You are going to write your own professional profile using this as a model for yourself as an example for yourself and recycling all the vocabulary that we have been using througout this lessons. 487 | 488 | Leave your professional profile in the discussion board and we all check it so you can identify what mistakes you have and how you can best correct them. 489 | 490 | This is just the begining of creating your professional profile. 491 | In the next video I will teach you how to create your CV and how to address the most important things that employeers want to see there. 492 | 493 | ## Task 494 | 495 | > Junior frontend developer with over 5 years of work in wordpress creating and administering sites and 1 year experience with javascript. Goal-oriented, determined and curious, very good at error solving and testing apps. 496 | 497 | 498 | ### [Volver al índice](#title) 499 | 500 |
501 |
502 |
503 | 504 | ## 05 - Creating your curriculum vitae 505 | 506 | All right, we already have our professional profile created. 507 | So, here we are going to learn how to create our curriculum vitae. 508 | 509 | There are many styles and designs for CVs. You can select the one that you like the most and that adjust better to your style. 510 | 511 | Here we have one example. 512 | This one is from Chris Walker, he is a photographer, and if you see here he doesn't have a description, but in many others we use this description to give a general overview of who we are as a professionals. 513 | 514 | We have a profile, we have education, skills, software, experience and general achievements. 515 | 516 | Here we have another one, that is Cesar Hernandez, he is a sales representative. And here as you can see, he has a very short description of himself. Then he uses education, skills, interests, work experience and some references for the possible employers to get some information about him. 517 | 518 | The first thing that you need to focus on is your _**experience**_. 519 | In here I show you two examples of the ones that I use in my personal CV. 520 | 521 | The first one is a very short and concise example from my experience at Platzi. 522 | 523 | ```Platzi``` is the company and ```Educational Analyst``` is my job position. 524 | Here I wrote some of the tasks that I develop at Platzi. 525 | 526 | The first one; ```Curriculum Design```. 527 | The second one; ```Create Courses Syllabus```. 528 | And also; ```I worked on designing courses```. 529 | 530 | So, as you can see this type of description is very adaptable to this type of CV which is very short and concise. 531 | 532 | On the second example you are going to find that is more descriptive. 533 | 534 | I also write the company; ```Universidad del Rosario```. 535 | The position, ```Associated Professor```. 536 | And then some of the tasks that I developed. 537 | 538 | As you can see, this are longer sentences, which are more descriptive of the tasks that I developed. 539 | You can use either one, but the important thing is that they adapt to this style that you are using. 540 | 541 | After this, you are going to need to put your personal information. 542 | 543 | ```City of Residence```, in my case, Bogota, Colombia. 544 | your ```Telephone number```, this is of course not a real telephone number. 545 | Then your ```facebook account```. Remember that a lot of employers check your social media to check that you are not a psyco. 546 | ```Twitter```, and of course, your 547 | ```LinkedIn profile```. 548 | 549 | After that, you can include your education. 550 | In english is very common to use short names for the programs that you coursed. 551 | 552 | So the first one is Bachelor, BA stands for Bachelor. In this case ```Bachelor in teaching english as a foreign language```. 553 | Then the institution and then when you finished it. 554 | Then MA stands for ```Masters Degree. Masters Degree in foreign Language```. 555 | Again the ```institution``` and the ```year```. 556 | And againg MA in whatever field that is that you are studiying. 557 | 558 | It is important to include ```software```. 559 | Most companies are pending on how capable you are to use different types of software. 560 | Here I put some of the ones that I know how to use and that mayght be useful for the position that I am performing in. 561 | 562 | ```In Design and Development:``` 563 | ```Illustrator, Sketch, Adobe XD, Sublime, Atom``` 564 | 565 | ```Marketing and Business:``` 566 | ```Google Analytics, Google Adwords, Facebook Ads``` 567 | 568 | ```Project Manajement:``` 569 | ```Slack, Dropbox, Google Suit, Telegram, Timely``` 570 | 571 | Aditionally you need to include your ```skills```. 572 | Why is it important to describe your skills? 573 | 574 | Employeers are going to look for particular things that you can do. In my case I have ```hi skills in teaching```, also in ```participating conferences and events```, in ```curricular design```, project managmement, digital marketing, inbound and outbound, is not as much as the others but I still have this skills; and finally ```writting```. 575 | 576 | So think about your skills and assign a score for each one of the skills. 577 | For instance if you are very good at designing you can have five stars or five pluses in your designing skill. 578 | 579 | So, make a list of your skills and then score them to see how good you are in this skills. 580 | 581 | Now is your turn to start creating your own CV. 582 | So, in this moment, use all the information that you wrote about yourself and create this curriculum vitae. You can share in the discussion board your image of your curriculum vitae and remember that at this point you can start working on your professional portfolio. 583 | Professional portfolios are made of all the projects that you have created, so this ones show everyone everything that you can do and your skills. 584 | 585 | So, in the next video I'm going to start showing you how to prepare yourself for a job interview. 586 | 587 | 588 | ### [Volver al índice](#title) 589 | 590 |
591 |
592 |
593 | 594 | ## 06 - Preparing yourself for a job interview 595 | 596 | Hello again. 597 | In the last video, we created your CV. Now it's time to start preparing for a job interview. 598 | And it's true that sometimes interviews can be a little scary and intimidating. But if you prepare yourself you are going to find this task a lot more easier. 599 | 600 | This video has a listening exercise, so be prepared to take notes and answer some questions. 601 | 602 | For the first part you need to be aware of your strengths and your weaknesses. 603 | Also you need to prepare your wardrobe and you need to visualize yourself in the job interview. 604 | 605 | So, the first thing that we are going to do is to create the list of strengths and weaknesses. 606 | 607 | In my personal case, my ```strengths``` are: 608 | 609 | + **Teamwork** 610 | + **Sociable** 611 | + **Organized** 612 | + **Goal-oriented** 613 | + **Creative** 614 | 615 | And my ```weaknesses``` are: 616 | 617 | + **Details** 618 | + **Too many tasks** 619 | + **Sensitive** 620 | 621 | But is necessary for us to explain in more detail what this means. 622 | So, prepare for the listening exercises. 623 | 624 | So, here are the instructions for this listening exercise. 625 | 626 | First, you need to: 627 | 628 | + Listen and take notes 629 | + Read and compare it with your notes 630 | 631 | There are two parts in this listening exercise. The first one is concentrated on strengths and the second one on weaknesses. 632 | 633 | ## Strength Exercise: 634 | 635 | My notes: 636 | 637 | > I think one of my strengths is that I am very good at teamwork. I can help people be organized, I support my team and I make sure everyone does their its task. 638 | 639 | > I think one of my strengths is that I am very sociable. I get along with people and they feel confortable with me. 640 | 641 | > I consider that I am very organized. I know the tasks that are pending, I organize my days with my tasks in mind. I try to keep lists of the things I need to do. 642 | 643 | Here you have the text for the listening exercise. Compare it to the notes that you took. 644 | 645 | 646 | ## Weaknesses Exercise: 647 | 648 | Ok, so now, lets go to the second part of this listening exercise. Remember that this one is focused in my weaknesses, so again, listen and take notes. And then, read and compare. 649 | 650 | For weaknesses: 651 | 652 | > I consider that sometimes, details can be difficult, especially when I have long workflows. 653 | 654 | > Sometimes I work on too many things at the same time, and it becomes hard. 655 | 656 | > When I have too much stress, I sometimes get too sensitive. 657 | 658 | Now, read and compare your notes with the text. 659 | 660 | # 661 | 662 | All right, now you know what your strengths and weaknesses are. It is time for you to visualize yourself in your job interview. 663 | So here I give you some questions that you can answer to prepare for this job interview: 664 | 665 | + When do you feel confident? 666 | + In my case I feel confident when I know about the topic. 667 | 668 | + What are your qualities? 669 | + In my case, my qualities are; I am very sociable, I am creative and I am very proactive. 670 | 671 | + Why do you think this company needs you? 672 | + In my case I think the company needs me because I know about pedagogy and curricular design. 673 | 674 | + How can you exceed the position expectations? 675 | + I think that I can exceed the position expectations because I know a lot about pedagogy and I can teach a lot of people to replicate those things. 676 | 677 | So, the task for this video is going to have two parts: 678 | 679 | + Create your own list of strengths and weaknesses. 680 | - Remember to be descriptive; tell us why do you think this are your strengths and you weaknesses. 681 | 682 | + Answer the questions: 683 | 684 | - _When do you feel confident?_ 685 | - _What are your qualities?_ 686 | - _Why do you think this company needs you?_ 687 | - _How can you exceed the position expectations?_ 688 | 689 | Live your answers in the discussion board and remember that everyone is going to give you feedback. 690 | 691 | 692 | 693 | ## Task 694 | 695 | + **Strengths** 696 | + Ordered and detailer 697 | + Logical and pragmatic 698 | + Active learner 699 | + Artistic Sensibility 700 | + Goal-oriented 701 | + If you're going to do something, do it well 702 | 703 | + **Weaknesses** 704 | + Obsessive 705 | + Perfectionism 706 | + Details can make me lose focus 707 | 708 | Questions: 709 | 710 | + **When do you feel confident?** 711 | > I feel confident when I know I have experience in what I'm doing. But I feel confident too when I have new defies. 712 | 713 | + **What are your qualities?** 714 | > I am creative, I am always learning and I don't give up easily. 715 | 716 | + **Why do you think this company needs you?** 717 | > I am responsible, punctual, and I have many experience of the stack. 718 | 719 | + **How can you exceed the position expectations?** 720 | > At first quickly adapting myself to the workflow of the team, and then bringing new ideas to improve it. 721 | 722 | 723 | 724 | ### [Volver al índice](#title) 725 | 726 |
727 |
728 |
729 | 730 | ## 07 - Challenge: Your job interview 731 | 732 | Up until here you know how to create your professional profile, your CV and how to prepare for job interviews. 733 | 734 | Now, we are going to show you an example of an interview, a real interview, and the most common questions that you can encounter here. So, take notes and be prepared. 735 | 736 | > **Nicole:** Hi Paula, welcome, how are you? 737 | 738 | > **Paula:** Hi Nicolle!, good, and you? 739 | 740 | > **Nicole:** I'm very good, thank you. Ok Paula, tell me a little bit about yourself. 741 | 742 | > **Paula:** Well aaa, what can I tell you? I'm an education expert. I have experience in curricular design, in structional design. I have worked in different universities... That's mainly it. 743 | 744 | > **Nicole:** Ok, good. And what are you doing right now? What it's your job position? Are you currently looking for a job? Tell me about it. 745 | 746 | > **Paula:** Well, in this moment I'm working as an education analyst at Platzi. But I would like to continue expanding my horizons and yes, I'm looking for a better position right now. 747 | 748 | > **Nicole:** Great, let's talk about your strengths. Tell me a little bit about what you think are your best strengths. 749 | 750 | > **Paula:** Well, I think I'm a very organized person. I also have abilities to work with people, so I would say that team work is one of my strenghts. And I'm very goal-oriented; every time that I proyect something I try to accomplish it. 751 | 752 | > **Nicolle:** Ok, very good. So, tell me a little bit about your weaknesses. 753 | 754 | > **Paula:** I think that some times I have problems with details, like those specific things that are important but are not like the core of my workflows. So I need to be writing lists and be really careful with the tasks that I have pending. 755 | 756 | > **Nicole:** Can you tell me about, maybe if you had a problem with details in the past or recently, so we can know more about yourself? 757 | 758 | > **Paula:** Well, I would say that, well, the other day I sent an email by mistake and I think that is not something that is really like crucial, but it gives the impression that I'm not super careful with details. 759 | 760 | > **Nicole:** Ok, so, you've actually never had like a real problem with this ... ammm detail ...amm weakness? 761 | 762 | > **Paula:** Well, I cannot think of any situation that was like really serious ...aaa but is because what I'm saying; it's something that is detail and not something that is the core of the things that I have to do. So, I thinks it's a problem and I'm working on it, but aaaa I know it doesn't have that huge impact on the things that I do. 763 | 764 | > **Nicole:** Ok, thank you. So how do you think you can exceed the position expectations? 765 | 766 | > **Paula:** Well, I know that you are looking for a person that is able to design curricular here and I think that I have a lot of experience in this area and I know that I can give you all the knowledge that I have and all the experience that I have so we can create great courses and we can like teach teachers how to be better at their job. 767 | 768 | > **Nicole:** Ok, great. Well, thank you very much for this interview. We will contact you very soon and will see you very soon. 769 | 770 | > **Paula:** Ok, thank you very much Nicole. Bye. 771 | 772 | > **Nicole:** Byye. 773 | 774 | 775 | As you can see, the most common questions can be related to how you describe yourself, what are your strengths and what are the weaknesses. But remember that conversations develop, so it's important that you are prepared for expanding details and tell more about yourself. 776 | 777 | 778 | ### [Volver al índice](#title) 779 | 780 |
781 |
782 |
783 | 784 | # Section 2 - How to use English in the workplace 785 | 786 |
787 |
788 | 789 | ## 08 - Glossary - How to use English in the workplace? 790 | 791 | 792 | 793 | **Accomplish:** Achieve or complete something completely 794 | 795 | **Apps:** A program or software that is designed to fulfill a particular purpose 796 | 797 | **Argue:** Give reasons and evidence to support an idea 798 | 799 | **Assert:** State a fact forcefully 800 | 801 | **Assertive:** Having a confident personality 802 | 803 | **Audience:** A group of spectators in the display of something 804 | 805 | **Attack:** Take aggressive actions against something or someone 806 | 807 | **Attentive:** Paying close attention to something 808 | 809 | **Avoid:** Keep away from doing something 810 | 811 | **Aware:** Having knowledge of an event or a fact 812 | 813 | **Behavior:** The way in which a person acts or conducts oneself 814 | 815 | **Boss:** A person who is in charge or a business 816 | 817 | **Brands:** A type of product manufactured under the name of a specific company 818 | 819 | **Carefully:** In a way that avoids mistakes and errors when doing something 820 | 821 | **Challenge:** A task that needs great mental or physical effort to be achieved 822 | 823 | **Channel:** The way or media through which information is conveyed 824 | 825 | **Chat:** A digital channel frequently used in informal communication 826 | 827 | **Claim:** Assert or state something 828 | 829 | **Clarify:** Make a statement more comprehensible 830 | 831 | **Clients:** A person or company who uses the services or products of a company 832 | 833 | **Concise:** Giving enough information clearly and using a few words 834 | 835 | **Conclude:** Get to a judgement or position 836 | 837 | **Context:** The circumstances that from the setting for an event 838 | 839 | **Confirm:** Establish the truth or correctness 840 | 841 | **Control:** The power to influence or change people’s behaviors and the functionalities of things 842 | 843 | **Cover:** Put something in front or over something else 844 | 845 | **Coworkers:** A person with whom one works 846 | 847 | **Data:** Facts and statistics collected together for reference or analysis 848 | 849 | **Encrypt:** Cover information into code, especially to prevent unauthorized access 850 | 851 | **Demonstrate:** Clearly demonstrate the existence of something 852 | 853 | **Digital communication:** The exchange of messages and meaning through digital media 854 | 855 | **Direct:** Without intervening factors 856 | 857 | **Discover:** Find unexpectedly during research 858 | 859 | **Email:** Messages distributed through by electronic means from one user to a recipient or a group of recipients through a network 860 | 861 | **Employees:** A person employed for wages or salary 862 | 863 | **Ethics:** Moral principles that governs a person’s behavior 864 | 865 | **Experiment:** A scientific procedure to make a discovery 866 | 867 | **Find:** Discover something by chance 868 | 869 | **Fluent:** Easy to express oneself easily and clearly 870 | 871 | **Formal:** Done in accordance with convention and etiquette 872 | 873 | **For starters:** First of all, to start with 874 | 875 | **Fraud:** Criminal intention intended to result in financial or personal gain 876 | 877 | **Hack:** Gain unauthorized access to data in a system or computer 878 | 879 | **Hard drive:** A disk drive used to read from and write to a hard disk 880 | 881 | **Harassment:** Aggressive pressure or intimidation 882 | 883 | **Interact:** Act in a way as to have an effect on each other 884 | 885 | **Internet:** A global computer network which facilitates communications 886 | 887 | **Intimidating:** Something that frightens someone 888 | 889 | **Intrusive:** Causing disruption or annoyance through being unwelcome or uninvited 890 | 891 | **Involved:** Something or someone included in a situation 892 | 893 | **Letter:** A written or typed communication usually sent in an envelop by messenger 894 | 895 | **Message:** A communication sent by any channel 896 | 897 | **Mission:** An important assignment given to a person to complete 898 | 899 | **Microphone:** An instrument used to convert sound waves into electrical energy variations 900 | 901 | **Necessary:** Needed to be done, achieved or present 902 | 903 | **Notepad:** A pad of blank paper to write notes 904 | 905 | **Objectives:** A thing to be achieved 906 | 907 | **Organizations:** An organized group of people with a common goal 908 | 909 | **On behalf of:** To speak for someone or an organization 910 | 911 | **Password:** A secret word or phrase used to get access to a place 912 | 913 | **Pertinent:** Relevant or applicable to a particular matter 914 | 915 | **Permission:** The official authorization to do a particular thing 916 | 917 | **Privacy:** A state in which one is not observed by others 918 | 919 | **Prove:** Demonstrate the truth or existence of something 920 | 921 | **Providers:** A person or entity that provides something 922 | 923 | **Purchase:** Acquire something by paying for it 924 | 925 | **Regularly:** With a constant or definite pattern 926 | 927 | **Reject:** Dismiss as inadequate and unacceptable 928 | 929 | **Relevant:** Closely connected or appropriate to what is being considered 930 | 931 | **Report:** A account given of a particular matter 932 | 933 | **Rigid:** Not being able to be changed or modified 934 | 935 | ****Rob:** Take property unlawfully from a person by force 936 | 937 | **Security:** The state of being free from danger 938 | 939 | **Sequence:** A particular order in which related things follow each other 940 | 941 | **Short:** Measuring a small distance from end to end 942 | 943 | **Specific:** Clearly defined or identified 944 | 945 | **Statistics:** A fact or piece of data obtained from a study 946 | 947 | **Successful:** Accomplishing a desired goal 948 | 949 | **Suitable:** Right or appropriate for a particular person 950 | 951 | **Summary:** A brief statement or account of the most important points of something 952 | 953 | **Test:** A procedure intended to determine the quality of something 954 | 955 | **To begin:** To start 956 | 957 | **Uninformed:** Not having the necessary information 958 | 959 | **Unnecessary:** Something not needed 960 | 961 | **Verify:** Make sure something is true, accurate or justified 962 | 963 | **Tricky:** Something that is difficult or problematic 964 | 965 | 966 | ### [Volver al índice](#title) 967 | 968 |
969 |
970 |
971 | 972 | ## 09 - Vocabulary for the workplace 973 | 974 | Communications in the workplace can be tricky, however you can always follow these tips to understand the best ways to interact with coworkers, clients, providers and of course your boss. In this article we are not talking only about digital communication, but all kinds of communication. For this reason, it is necessary that you pay attention to all the people involved, the way in which the message is sent and how it might be received, the context where the message is sent, the channel you choose to send the message, amongst other aspects. 975 | 976 | When communicating with people in the work environment it is necessary to consider who you are talking to. It is different if you are talking to your boss than to a colleague that you consider your friend. Additionally, you need to be careful with the channel that you select. Using email might be perceived as more formal than using chat. Paying attention to the context in which you are speaking or sending the message is also relevant for the way people understand. 977 | 978 | Asking questions might also be something challenging, especially for new employees. In certain occasions getting used to the **company’s way of communicating** could be intimidating. Nonetheless, asking questions is a skill that all employees need to develop. There are different types of questions you can ask according to the situation. There are direct questions, which are simple and basic, it is truly something you do not know. Also, there are control questions, which are more oriented to confirm something that you already know, sometimes they clarify if the person is uninformed or lying. You can ask summary questions which are more focused on verifying you have understood all the information. Remember not to ask unnecessary questions, so always evaluate if they are relevant and pertinent. 979 | 980 | In sum, having successful communications depends on several aspects like knowing the people you are communicating to, the context in which you are involved, the message you need to deliver, the channel you select, the person who receives the message, the pertinence of the message, and the importance of asking the necessary questions. Always try to evaluate the way in which you communicate, and you will be able to be more successful and assertive. 981 | 982 | 983 | 984 | ### [Volver al índice](#title) 985 | 986 |
987 |
988 |
989 | 990 | ## 10 - Good strategies for writing in the workplace 991 | 992 | In the previous reading, you learned about why is it important to communicate in the workplace. In this video we are going to concentrate on writing and how to improve your writing in the workplace. 993 | 994 | For this, we are going to analyze three structures: 995 | 996 | + The first one is emails 997 | + The second one is reports 998 | + And the third one is chats 999 | 1000 | ### How to write emails? 1001 | 1002 | Is important to take into account that people do not always have a lot of time to read your emails. So, every time that you write one, you need to be concise and short. 1003 | I'm going to show you two examples of emails and we are going to decide which one is effective and which one is not. 1004 | 1005 | The first one is very very long email. As I told you, people is not ready to read this long information. It's better that you summarize your information and give it in small chunks. 1006 | 1007 | In the next one we have a better example of an effective email. Here you can see that this is short, it's concize and it's divided in to little chunks. 1008 | 1009 | Now, how to write an email? 1010 | What steps can we follow in order to do it? 1011 | 1012 | Before that, I need you to take into account that sometimes we want to say a lot of things, but this things that we want to say are not always relevant, so we need to find a balance between what is it that we want to say and the things that are relevant for the person that is receiving the email. 1013 | 1014 | Here we have this steps: 1015 | 1016 | + Select a subject: Be clear and concise: 1017 | _for instance in my example would be:_ Tasks and deadlines. 1018 | 1019 | + Greet according to the profile of the recipient. 1020 | It's not the same if you are writing to the president of the company or to a CEO of a company, or if you are writing to one of your close clolleges. 1021 | 1022 | + Explain the purpose of the email in the first part. 1023 | Here we have an example: 'I’m writing to you to remind you of the pending tasks and their deadlines.' 1024 | 1025 | + The next part is very important: Write bullets to list the information. This means try to summarize the information in small chunks. 1026 | Here I give you some: 1027 | + Determine the project’s budget. 1028 | + Select the team for the project. 1029 | + Arrange a meeting to go over plans. 1030 | 1031 | + Finally, you need to include a (_Write a_) goodbye line. 1032 | Here I'm using: 'Look forward to hearing from you, Paula.' 1033 | 1034 | Of course that there are many other options that you can use. And in the file section you are going to find a list of some of the expressions that you can use throughout emails. 1035 | The most important thing here is to have a clear structure and be as concise as possible. 1036 | 1037 | So, here we have an example that can be useful for you in order to create your own emails. 1038 | 1039 | Example: 1040 | 1041 | >Subject: Website Project 1042 | Hello dear David, 1043 | I’m writing you to inform you about our meeting next week. In this 1044 | meeting I hope we can go over the details of the project: 1045 | - Branding 1046 | - Landing pages 1047 | - Payment system 1048 | So, see you next Monday at my office 795 Folsom St, 11:00 am. 1049 | Regards, 1050 | Paula 1051 | 1052 | The first is the subject and here we use: "Website project". Then we have a greeting line that is: "Hello David" or "Hellow dear David", it shows a little bit of closeness. And then the body of the email. 1053 | 1054 | >I’m writing you to inform you about our meeting next week. In this 1055 | meeting I hope we can go over the details of the project: 1056 | - Branding 1057 | - Landing pages 1058 | - Payment system 1059 | So, see you next Monday at my office 795 Folsom St, 11:00 am. 1060 | Regards, 1061 | Paula 1062 | 1063 | As you can see here are the reset different goodbye line, but still the structure is the same. So all of this expressions you can use them and here I present to you some others useful expressions. 1064 | 1065 | Useful email expressions 1066 | 1067 | + If you are introducing the email: I’m writing to inform you… / I’m emailing you to.. 1068 | + If you are answering questions: I hope this clarifies your doubts 1069 | + If you want the recipient to do something: I would appreciate if you… 1070 | + If you are expecting an answer: Look forward to hearing from you. 1071 | + If you have been waiting for an answer: In reference to my email on July 20th 1072 | 1073 | All of this expressions you can use them according to the necessities that you have in the email that you are writing. 1074 | 1075 | ### How to write reports 1076 | 1077 | Now, as I told you, the second part it's related to reports. 1078 | Wherever you are, in a work place environment, you are going to be needed to present reports. 1079 | So what is the structure of a good report? 1080 | 1081 | First you need to take into account that people need to understand the data of the report that you are presenting. 1082 | Focus on data and statistics. Additionally be able to explain, first the introduction of the report and then the conclusions that you drew from this report. 1083 | 1084 | Whenever you are presenting a report using this types of expressions is going to help you to be clear and to explain in more detail what is it that you did. 1085 | 1086 | When giving reports the following expressions are very useful: 1087 | 1088 | If you want to assert something: 1089 | + Argue, assert, claim 1090 | 1091 | If you want to show conclusions: 1092 | + Discover, find, conclude 1093 | 1094 | If you want to show findings: 1095 | + Demonstrate, prove, test 1096 | 1097 | If you want to compare: 1098 | + Given that x is significantly higher than y… 1099 | 1100 | So, the important thing is that; first, you identify what is the structure that you have for the report and then you can start using usefull expressions to make it more clear. 1101 | 1102 | Finally, we have: 1103 | 1104 | ### How to interact in chats 1105 | 1106 | And here I want you to think that chats are a little bit more informal that other types of channels, for this reazon you can use different expressions that are more common in informal communication. 1107 | 1108 | **Here you have some examples of chats:** 1109 | When communicating at work via chat you can shorten messages through the use of expressions such as: 1110 | + A.s.a.p. = "As soon as possible." 1111 | + Idk = "I don't know" 1112 | + FYI = "For your information" 1113 | + BRB ="Be right back" 1114 | + OT = "Off the topic" 1115 | +Thx or Thks = "Thanks" 1116 | 1117 | There are many many many ways to write in chats in a shorten way. And as I told you, in the glosary this information will be expanded so you can have more ideas on how to implement this in the communications that you have via chat. 1118 | 1119 | To finish this video, I would like you to write an email in which you apply to a job position. 1120 | The idea is that you recycle not just the expressions that we learned in this lesson but also the expressions that you learnt in the previous units. The idea is that you can talk to about yourself and describe yourself using all this vocabulary. 1121 | Remember to be concise and short and also you can share it in the discussion board where we all will be checking your email and giving you feedback. 1122 | 1123 | 1124 | ### [Volver al índice](#title) 1125 | 1126 | 1127 |
1128 |
1129 |
1130 | 1131 | ## 11 - Making presentations in the workplace 1132 | 1133 | So, whenever you are at the work you are going to need to communicate your ideas orally, for instance when you make presentations. 1134 | Presentations always need to have a structure and you need to actually think very well what is it that you are going to communicate. 1135 | 1136 | In this video I am going to show you how to structure your presentations and how to use specific vocabulary and expressions to create your presentations. 1137 | 1138 | + The first thing that you need to decide is what is the structure that you are going to follow and also the topics that you are going to cover. 1139 | + After that you need to decide what is the sequence that you are going to present. 1140 | + And finally you are going to think about what is the conclusion that this presentation leads to. 1141 | 1142 | 1143 | >First, we need to structure the presentation, for this answer 1144 | the following questions: 1145 | - What topics do you want to cover? 1146 | - What is the sequence that you need to follow to be clear? 1147 | - What is the result or the conclusion of your presentation? 1148 | 1149 | 1150 | There are some expressions that you can use for this. 1151 | For example here we have the following expressions: 1152 | 1153 | >Second, you need to start working on the opening of your 1154 | presentation, for this you can use the following expressions: 1155 | 1156 | - To begin… 1157 | 1158 | - On behalf of… 1159 | 1160 | - For starters… 1161 | 1162 | You need to decide how is it that you are going to start your presentation. 1163 | 1164 | If it is a very formal presentation I would suggest that you use terms like: 1165 | 1166 | + On behalf of our organization. 1167 | 1168 | Or if you are going to present something that is not as formal, you can use expressions for instanse like: 1169 | 1170 | + For starters... 1171 | 1172 | Here I present to you an example that can useful and that you can adapt to your presentations. 1173 | 1174 | An example could be: 1175 | 1176 | ``` 1177 | 1178 | To begin I would like to tell you about the experiment that we 1179 | carried out in the product department. We run some tests with 1180 | users who saw different versions of the platform. In here we 1181 | wanted to identify the things that made users be more 1182 | engaged with the platform. 1183 | 1184 | ``` 1185 | 1186 | As you can see here, it's not just the beginning of the presentation but you start telling your audience what is it that you did. 1187 | 1188 | Sometimes we present experiments that we carried out in different departments and this is what we are doing here. For this is very important that you are careful with the conjugations of the verbs that you are using, especially because the experiments were run in the past tense. 1189 | 1190 | So, here, as you can see, we are describing what were the actions that the department took and what were the things that we did during this experiment. 1191 | 1192 | So, after you have described what is it that you did in the experiment or whatever it is that you are presenting, you are going to be more detailed in the things that you found througout your experiment. 1193 | For this, here, I present you some expressions that are useful for you in order to give count of whatever you did in your experiment. 1194 | 1195 | **Body:** 1196 | 1197 | ``` 1198 | After having described the experiment or treatment you 1199 | developed, you can start to present conclusions. For this, you 1200 | might need some expressions such as the following: 1201 | 1202 | - Throughout this experiment we discovered that… 1203 | 1204 | - Also, we identified trends that showed us that… 1205 | 1206 | - The data revealed that… 1207 | 1208 | 1209 | ``` 1210 | 1211 | So, the important thing here is that you use expressions and terms that show the audience that you know exactly what you're talking about and that you have analyzed the data as well. 1212 | 1213 | In the end you need to present what is it that you found in the experiment and how your team and the company can take action upon it. 1214 | 1215 | 1216 | **Conclusion:** 1217 | 1218 | ``` 1219 | 1220 | In the end, you need to present the conclusions of your experiment and the further actions that you might take. In this section you can use phrases as: 1221 | 1222 | - With all this information, we have concluded that… 1223 | 1224 | - It can be assumed that… 1225 | 1226 | 1227 | For further actions you can use: 1228 | 1229 | - It is necessary that we… 1230 | 1231 | - There are some things the company can do… 1232 | 1233 | ``` 1234 | 1235 | And that is precisely the task for this video. 1236 | You are going to create a presentation with all the vocabulary and structures that you have learnt, and you are going to upload it in a youtube video. Then you can share it in the discussion board where everybody can give you feedback. 1237 | 1238 | Remember to use vocabulary to have a clear structure and also pay a lot of attention to your pronunciation. We will give you feedback and you will identify the things that you can improve. 1239 | 1240 | 1241 | ### [Volver al índice](#title) 1242 | 1243 |
1244 |
1245 |
1246 | 1247 | ## 12 - Understand and apply computer ethics 1248 | 1249 | Hello again. 1250 | So, in this video we are going to concentrate on your listening skill. 1251 | 1252 | What is it that we are going to be talking about? 1253 | The idea is that you listen to the lecture and unswer the following questions according to the exercise. 1254 | 1255 | 1256 | ``` 1257 | 1258 | Listen to the lecture and answer the following questions according to the exercise: 1259 | 1260 | - What crimes are most common in the techworld? 1261 | - Why is it important to protect our information? 1262 | - Why are so many people victims of internet crime? 1263 | - Why is it necessary to be careful when we give permission to our apps? 1264 | 1265 | 1266 | ``` 1267 | Right now you are going to listen and take notes to answer the questions. 1268 | 1269 | 1270 | > There are many ways in which the internet, may be dangerous for people's privacy. As in TV series we are exposed to being hacked, being victims of internet fraud, have our identity duplicated and more. Therefore it is necessary for everyone who uses technology to learn how to protect their information so they avoid attacks and hacks from people with cruel intentions. 1271 | Passwords needs to be our first concern. In numerous occasions, people complain about their passwords being robbed, they do not realize that their are not careful enough with their privacy. When they go to the ATM they do not cover their password, they are not attentive of their card when making a purchase or they simply keep their pass on a notepad on their cell phones. 1272 | In addition we need to be aware of the permissions we give to the apps we use. Lately, we have seen that social media is showing us ads from the things we discuss about in our conversations. 1273 | Is normal to see this type of things when we have give permission to the app to access the microphone of our cellphone. The same with the camera from our computer or our cell. 1274 | Finally, it is necessary to remember that computer security and ethics is "everyone matter". All people can be victims of fraud and harassment. It is important that we all collaborate to avoid this problems and reject this type of behaviors. 1275 | 1276 | 1277 | 1278 | So, we have finished our listening exercise. Remember that there are four questions that you need to answer in this exercise. 1279 | 1280 | - What crimes are most common in the techworld? 1281 | - Why is it important to protect our information? 1282 | - Why are so many people victims of internet crime? 1283 | - Why is it necessary to be careful when we give permission to our apps? 1284 | 1285 | Share your answers in the discussion board and we'll all give you feedback. 1286 | 1287 | 1288 | ### [Volver al índice](#title) 1289 | 1290 | 1291 |
1292 |
1293 |
1294 | 1295 | # Section III - How to create content to enhance your professional profile 1296 | 1297 |
1298 |
1299 | 1300 | ## 13 - Creating content for enhancing your professional profile 1301 | 1302 | 1303 | >Nowadays everything is about content. Content gives you the possibility of entering into people’s lives without being intrusive. Right now, all brands, organizations and people that want to be successful create content so their audience and users feel they have something to learn. In this sense, it is important to create a content marketing strategy which allows you to touch people who surround you. 1304 | 1305 | > **What is the most common way to create a content strategy?** 1306 | For starters, it is necessary to identify the type of audience you are communicating with. Knowing their profile is going to allow you to recognize the things that might or might not work with them. Consider that it’s different to be a teacher of math, than being a dev who works in San Francisco. With this in mind, you can start creating a map which includes the topics that you audience might like the most. 1307 | 1308 | >**There are many formats to reach your audience** 1309 | Creating content for the audience does not need to be so rigid. In fact, you can show your audience that you have many channels to teach them things. For instance, you can create blogposts, videos, webminars, infographics, instagram stories, and more. Just make sure what the channels are used by the audience you aim to reach and start creating suitable content. 1310 | 1311 | > **Do it frequently** 1312 | Creating content is not a matter of one time, one week or one month, if you want that your content strategy works you need to maintain your audience updated. To do this, it is advisable to create a calendar that helps you determine the time in which is pertinent to publish content. This can be as simple as having an excel document where you write the topics you want to cover and the dates to publish them. 1313 | 1314 | >These three tips are going to help you create successful content and get recognition in your work environment. 1315 | 1316 | 1317 |
1318 | 1319 | ### [Volver al índice](#title) 1320 | 1321 |
1322 |
1323 |
1324 | 1325 | ## 14 - How to use English in your social networks? 1326 | 1327 | 1328 | Using Social Networks can be very useful when you are looking for a job. 1329 | Remember that employers, when are looking for a specific talent, they look for as many skills as possible, and they look in as many spaces as they can. 1330 | So, is advice able to have our social networks updated and with content that can show them that we are very good professionals. 1331 | 1332 | In this video, I am going to show you two things. 1333 | First; how to create content for specific social networks and second; I'm going to give you some tips on how to avoid problems with English misused. 1334 | 1335 | ### facebook 1336 | 1337 | When posting something on facebook, is very important to be short and concise. Remember that people don't have a lot of time to be checking on very long posts. 1338 | 1339 | Here, I give you some expressions that are very useful and also catchy so you can engage your audience. 1340 | 1341 | + Be short 1342 | + Use expressions like: 1343 | + Today I learned that... 1344 | + I am very happy to participate in these events 1345 | + I had the opportunity of… 1346 | 1347 | This are very short expressions that will catch your audience. 1348 | 1349 | Here I show you some of the posts that I have used in my personal social media. 1350 | 1351 | + I’m very happy to participate in events like this one, here 1352 | you meet people and share with brilliant minds. 1353 | + This weekend I had the opportunity of presenting my talk 1354 | on stratup creation. Great audience! We learned a lot. 1355 | 1356 | And remember to use always images to accompany this kind of posts. 1357 | 1358 | ### Twitter 1359 | 1360 | Then, twitter is very very specific and you have to be very careful when you post on Twitter. 1361 | Here you know that you only have 140 characters to express this idea. So, it's very important that you avoid unnecessary words, that you avoid distracting expressions, and you focus on one thing only. 1362 | 1363 | Share information that is useful for the community or the audience that you are trying to reach. 1364 | 1365 | ### LinkedIn 1366 | 1367 | LinkedIn is completely different, from other social media, here you can recycle everything you have learned in this course and you can apply everything that you’ve learned when you were creating your Curriculum Vitae. 1368 | Be very careful with your professional description because this is the first thing that employers look at. You can use your professional profile as an example to start crafting this professional description on LinkedIn. 1369 | 1370 | Now, I am going to give you some tips to avoid having problems with English in your social networks. 1371 | 1372 | + 1 - _**Be extra careful with spelling**_. 1373 | >I have seen that many people try to share things on facebook, but they make mistakes with spelling, so, it’s very advice able that you check everything before you post it on your social media. Not just because employers may see your mistakes, but because people are going to feel that you don’t know how to use the language. 1374 | 1375 | + 2 - _**Have a clear and appealing professional description**_ 1376 | > This is not just for LinkedIn, also you can have this on twitter and on Facebook and even in Instagram if you want to share it. But it's important that you catch people with those talents that are very special to you. 1377 | 1378 | + 3 - _**Check your vocabulary use: Adjectives and Verbs**_ 1379 | > If you use a lot of adjectives, pay attention to them so you don't start repiting and coming a little bit redundant. And with verbs try to select those strong verbs that make you look like a better professional. 1380 | 1381 | + 4 - _**Keep it professional**_ 1382 | > If employers can see your profile, if it's public, you need to avoid this types of posts that make you look bad. Try to always concentrate on showing things that are interesting and always try to teach your audience something. So whenever they see your social media they find something that is valuable. 1383 | 1384 | + 5 - _**Avoid informal language and abbreviations**_ 1385 | > Specially for linked in when you are writing or when you are writing your work experience, it is very important to avoid abbreviations. It's better that you write all the words complete; do not write something like _"I would like"_ with the apostrophe 'd', but better write the complete words this make your communication more polish. And also try not to use informal language. When you use informal language people may have this felling that you are not as professional as you seem to be. 1386 | 1387 | 1388 |
1389 | 1390 | ### [Volver al índice](#title) 1391 | 1392 |
1393 |
1394 |
1395 | 1396 | ## 15 - Writing good blog posts 1397 | 1398 | Some people believe that writing blog posts is something from the past, but they couldn't be more wrong. 1399 | Actually creating content for a blog is something that can help you create a position within your community and create you a name in your field. 1400 | Here I am going to show you what are the steps to create very good blog posts and I'll give you some tasks for you to practice. 1401 | 1402 | + The first thing is to select a topic that is very common to you, that you know very well and that you feel comfortable writing about. 1403 | When you know what is this topic that you want to talk about it's better for you to start crafting it's structure. 1404 | If you are a developer for example, a frontend developer, you can talk about how to create animations or how to incorporate a design to a website. So, if you know very well the topic go ahead and start talking about it and writing about. 1405 | 1406 | + The second thing that you need to do, is to identify the aspects that you are going to cover in that blog post. 1407 | Try to separate it in chunks, what are the parts that you are going to divide that blog post in. 1408 | 1409 | + After that, you need to write a draft. And writing a draft is not just writing like the general ideas of your blog post; is writing every detail that you are going to incorporate there. 1410 | After you have this draft, you can re-read it, yourself, or you can ask another person to read it for you. That will give you some feedback and some ideas on how to improve that blog post. 1411 | 1412 | + Then, you need to check if your blog post is SEO friendly. This means that, if you are using the correct keywords for people to find your blog post online, also checking that you have a good title, using provocative images or external links; things that enrich your SEO. And this is something that is very important when you want to positioning your content. 1413 | 1414 | I'm going to give you an example of bad practices when writing blog posts. 1415 | So, in the link section, you are going to find the link to that blog post that is not that well written. Check it and tell me what are your opinion on this blog posts. What are the things that you would change and how would you make it better. 1416 | 1417 | In addition to that, you have a task. 1418 | 1419 | Write a good blog post and share it in the discussion board, then read your partners’ and give them some feedback. 1420 | 1421 |
1422 | 1423 | ### [Volver al índice](#title) 1424 | 1425 |
1426 |
1427 |
1428 | 1429 | # Section IV - English for programming, marketing and business 1430 | 1431 |
1432 |
1433 | 1434 | ## 16 - Vocabulary for Programming 1435 | 1436 | ## Programming Languages 1437 | 1438 | + **Features** 1439 | + **Develop** 1440 | + **Sites** 1441 | + **Programs** 1442 | + **Algorithms** 1443 | + **Scope** 1444 | + **Steps** 1445 | + **Flowchart** 1446 | + **Graphical Representation** 1447 | + **Syntax** 1448 | + **General+purpose** 1449 | + **Backend** 1450 | + **Web projects** 1451 | + **HTML** 1452 | + **High+level** 1453 | + **Weakly+typed** 1454 | + **Interpreted Language** 1455 | + **Frameworks** 1456 | + **Libraries** 1457 | + **Angular** 1458 | + **React** 1459 | + **Multiparadigm** 1460 | + **Readable** 1461 | + **Indentation** 1462 | + **Code blocks** 1463 | + **Parethesis** 1464 | + **Brackets** 1465 | + **Coders** 1466 | + **Lines of code** 1467 | + **Open source** 1468 | + **Productive** 1469 | + **Functional Programming** 1470 | + **Interpretative Programming** 1471 | + **Object+oriented** 1472 | 1473 |
1474 | 1475 | ### [Volver al índice](#title) 1476 | 1477 |
1478 |
1479 |
1480 | 1481 | ## 17 - Listening Exercise: Programming Languages 1482 | 1483 | ### Programming Languages 1484 | 1485 | There are many different programming languages, and they all have specific features that allow programmers to develop sites and programs that solve a wide range of problems. However, it is difficult to know where to begin and what language to learn first. If you are new to this field it is a good idea to explore some of the options you have to start. In here, we will talk about some of the most common elements of programming languages and some of the most used programming languages. 1486 | 1487 | Programmers always seek to solve problems and the first thing they can do to come out with effective solutions is to create algorithms. For this, there are some steps that a programmer needs to follow: 1488 | 1489 | The problem needs to be identified and limited: This means that the scope it’s clear. 1490 | The programmer needs to define the steps that need to be taken in order to resolve the problem. One way to have this is by creating a flowchart or a graphical representation of the steps. Then the programmer uses the languages to write the solution to the problem. 1491 | 1492 | Once the programmer knows how to solve the problem through the creation of an algorithm, they need to know the syntax of the language to be able to write it. Nevertheless, there are many languages that a programmer can learn. Here you are going to get familiar with the most common programming languages and their uses. 1493 | 1494 | + **PHP**: If you are interested in web development a good option is to use PHP which is a General Purpose Language. Usually PHP is used for creating the backend of web projects. From this language is relevant to know that it can be embedded into HTML. Although it has been criticized it has become one of the most used programming languages. 1495 | 1496 | + **Javascript**: These programming language it’s usually called JS and it’s one of the languages with the biggest community among devs. Javascript is a high level weakly-typed dynamic and interpreted language. It is most used in frontend development and it supports itself in several frameworks and libraries such as Angular and React. 1497 | 1498 | + **Python**: Python is a multi-paradigm high level and General Purpose Language. The main purpose of this language is to be a readable that’s why its syntax is simpler than in other programming languages. To accomplish this it uses indentation to identify call blocks instead of parentheses or brackets. Additionally, it allows coders to express concepts in less lines of code. 1499 | 1500 | + **Ruby**: Ruby is an Open Source and dynamic programming language which aims for making coders life simpler and more productive. As Python, Ruby has a simple syntax which is read in natural ways and it’s easier to write. In addition, it merger functional and interpretative programming. 1501 | 1502 | Most of these languages are Object Oriented which means they all work with a paradigm that sees everything is an object that can be defined and characterized. 1503 | 1504 | Now, it is time for you to start learning the language of your preference. 1505 | 1506 | 1507 |
1508 | 1509 | ### [Volver al índice](#title) 1510 | 1511 |
1512 |
1513 |
1514 | 1515 | ## 18 - Best strategies to learn English 1516 | 1517 | + ### Read the documentation 1518 | >If you are coding and you are also in the pursuit of learning English, the first thing you should do is to read the documentation that comes in this language. Not only it is more reliable, but is also updates and helps you learn concepts in English in a faster way. 1519 | 1520 | 1521 | + ### Pay attention to the command names and the 1522 | syntax 1523 | >Command names are very useful to learn vocabulary in English, this is due to the fact that most commands have a root in real and day-to-day English, for this reason it would give you the chance to learn more. 1524 | 1525 | + ### Interact in events and forums 1526 | >Sharing information with people on internet and answering questions in forums is a great way to start learning English. This allows you to learn more vocabulary and also evaluate how successful you are being. 1527 | 1528 |
1529 | 1530 | ### [Volver al índice](#title) 1531 | 1532 |
1533 |
1534 |
1535 | 1536 | ## 19 - Vocabulary for Marketing 1537 | 1538 | ### Vocabulary for marketing 1539 | 1540 | + **Consumer** 1541 | + **Brand** 1542 | + **Cost** 1543 | + **Distribution** 1544 | + **Label** 1545 | + **Launch** 1546 | + **Market research** 1547 | + **PR - Public Relations** 1548 | + **Ad copy** 1549 | + **Banner ad** 1550 | + **Tracking** 1551 | + **CPC - Cost Per Click** 1552 | + **CPA - Cost Per Acquisition** 1553 | + **LTV - Life Time Value** 1554 | + **MRR - Monthly Recurring Revenue** 1555 | + **Creative strategy** 1556 | + **Demographics** 1557 | + **Campaign Traffic** 1558 | + **Impressions** 1559 | + **Strategic Market Planning** 1560 | + **Content Strategy** 1561 | + **Google Adwords** 1562 | + **Facebook Ads** 1563 | + **Channels** 1564 | + **Audience** 1565 | + **Convert** 1566 | + **Display** 1567 | + **Customer Persona** 1568 | + **Age** 1569 | + **Service** 1570 | + **Social media** 1571 | + **Benefits** 1572 | + **Business** 1573 | + **Invest** 1574 | + **Search** 1575 | + **Blog posts** 1576 | + **Email marketing** 1577 | + **Promotions** 1578 | + **Discounts** 1579 | + **Updates** 1580 | + **Killer campaigns** 1581 | 1582 |
1583 | 1584 | ### [Volver al índice](#title) 1585 | 1586 |
1587 |
1588 |
1589 | 1590 | ## 20 - Marketing strategies 1591 | 1592 | 1593 | There are different ways to advertise your business, you can use Google Adwords, Facebook Ads, or you can even have a content marketing strategy. The most important thing is that you identify the best channels to get to your audience and convert as much as possible. With this in mind, you need to create a plan that will allow you to reach the correct audience, create the right ads and content, display this information in the places, and ultimately make more money. 1594 | 1595 | The first thing to do is to describe your client or create a customer persona. In order, to do this define the type of person that will buy your product or get your service. Assign a name to your buyer persona, also think about his or her age. Then, describe the person thinking about their job position, their income, the things they like, the things they do not like, their hobbies, the reasons why they need their product, the social media they use the most, and the reasons why they wouldn’t buy your product. The benefits of doing this include knowing the type of content you need to create for that person. 1596 | 1597 | With all this information you can start thinking about the strategy for advertising your business. For example, if your customer persona uses Facebook, then you can invest money on Facebook Ads. On the other hand, if your customer will probably search for your product on Google, then it’s a good idea to invest money on Google Adwords. Also, consider that no matter the product you need to advertise, it is always a good idea to teach your customers through content that is relevant for them. In this sense, you can always have blog posts to promote your product, service and brand. 1598 | 1599 | Remember that there are other strategies that you can use to have a good relationship with your audience. One of this is email marketing, this can help your customer get register to your website, receive information about promotions and discounts, get all information about updates or product changes. Also, your company needs to pay special attention to the support you provide to customers. This means that always listening to customers and trying to solve the problems they might have is fundamental to have a successful business. 1600 | 1601 | All these strategies can help you improve the quality of your marketing campaigns. Remember the goal is to have a good relationship with your customer to the point in which they start loving your brand. 1602 | 1603 | 1604 |
1605 | 1606 | ### [Volver al índice](#title) 1607 | 1608 |
1609 |
1610 |
1611 | 1612 | ## 21 - How to create good copy for marketing campaigns 1613 | 1614 | + **Make the subject and the first line coherent** 1615 | + the title needs to be short and very specific 1616 | + it needs to call the attention of the recipient 1617 | + it **must** be connected with the first line of the email 1618 | 1619 | + **Keep it short and Strong** 1620 | + You need to fing very short copies that are effective 1621 | + Long texts maybe confuse and bore your clients 1622 | 1623 | + **Use "you"** 1624 | + it helps you to make your client get more involved 1625 | 1626 | + **Know your audience** 1627 | + You need to point to the right audience. Is not the same a developer that a designer... 1628 | 1629 | + **Focus on one objective only** 1630 | 1631 |
1632 | 1633 | ### [Volver al índice](#title) 1634 | 1635 |
1636 |
1637 |
1638 | 1639 | ## 22 - Business vocabulary overview 1640 | 1641 | 1642 | **Organize:** To arrange something: 1643 | _People need to organize their agendas to attend the meeting._ 1644 | 1645 | **Competitor:** Another business that has a similar product or service: 1646 | _Our competitor is gaining a lot of revenue thanks to their latest campaigns._ 1647 | 1648 | **Public Relations (PR):** The strategy a company creates to appear in relevant media: 1649 | _We were just interviewed by the Times, finally the Public relations strategy is paying off._ 1650 | 1651 | **After-sales service:** It is the support that businesses provide to their clients after the purchase: 1652 | _The after-sales service that Platzi provides is very good, the answers are quick._ 1653 | 1654 | **Strategy:** A plan that has been designed to achieve a goal: 1655 | _The inbound strategy is based on blog posts and Youtube videos._ 1656 | 1657 | **Team:** The people that work in a company or a project: 1658 | _The product-team is focused on releasing the new features as soon as possible._ 1659 | 1660 | **Headquarters:** The place where the main office of a company is located: 1661 | _Platzi’s Headquarters are located in Bogota._ 1662 | 1663 | **Product:** The thing that you offer and sell to your clients: 1664 | _Our product is very efficient and won’t let our customers down._ 1665 | 1666 | **Investors:** People who give money to a company to grow their business: 1667 | _Investors have given us 500.000 US dollars to grow our team._ 1668 | 1669 | **Clause:** A statement in a contract: 1670 | _The clauses in the team’s contract show that everyone is responsible for their results._ 1671 | 1672 |
1673 | 1674 | ### [Volver al índice](#title) 1675 | 1676 |
1677 |
1678 |
1679 | 1680 | ## 23 - Tips for creating a successful pitch in English 1681 | 1682 | 1683 | + **Take maximum 10 minutes:** 1684 | 1685 | Introduce yourself very shortly and go straight the point immediately. It’s recommended to make a pitch as if you were telling a story. Think that everyone loves a good story, and remember that investors get bored with spreadsheets. 1686 | 1687 | **Use expressions such as:** 1688 | - I’m very excited to be here showing you our project 1689 | - Today I’m going to present to you our amazing start-up 1690 | 1691 | **Explain what your product or service really is:** 1692 | The idea is to sell your product, that’s why you need to use every minute that you have available. Remember that investors want to know how much money your product makes. 1693 | 1694 | **For this use the following expressions:** 1695 | - The main characteristics of our product are: 1696 | - The key features of our product are: 1697 | - What is amazing about our product is: 1698 | 1699 | **Know the audience:** 1700 | When preparing your pitch have a general idea of the people who will be listening to you. Research who they are and what they expect from your presentation. 1701 | With this information you will know the type of language and tone you can use. 1702 | - Formal tone: On behalf of our organization, I would like to introduce our product. 1703 | - Informal tone: I would like to tell you all about this exciting project. 1704 | 1705 | **Explain your marketing strategy:** 1706 | One thing investors pay a lot of attention to is the marketing strategies companies have. This allows them to see what the projections for sales that you have and the revenue you expect to get. 1707 | 1708 | **Expressions:** 1709 | - Our marketing strategies will be based on three main components 1710 | - The marketing strategies will be outbound and inbound. 1711 | 1712 | **Show enthusiasm:** 1713 | When you are presenting your pitch you need to be energetic and enthusiastic, this shows the audience that you are excited about your business and your idea. 1714 | 1715 | **Expressions:** 1716 | - It’s great to have this chance 1717 | - Our amazing product 1718 | - The projections are fantastic 1719 | -------------------------------------------------------------------------------- /jQuery-JavaScript.md: -------------------------------------------------------------------------------- 1 | # Curso de jQuery a JavaScript 2 | # 3 | # Índice 4 | # 5 | 6 | ## [Sección I - Introducción](#sec1) 7 | ### [02 - La historia de jQuery](#clase2) 8 | ### [03 - Presentación del proyecto](#clase3) 9 | 10 | # 11 | 12 | 13 | ## [Sección II - De jQuery a JavaScript](#sec2) 14 | ### [04 - Variables y Funciones](#clase4) 15 | ### [05 - Promesas](#clase5) 16 | ### [06 - Tutorial de Ajax en jQeury y Javascript](#clase6) 17 | ### [07 - Funciones Asíncronas](#clase7) 18 | ### [08 - Selectores](#clase8) 19 | ### [09 - Creación de templates](#clase9) 20 | ### [10 - Creación de DOM](#clase10) 21 | ### [11 - Reutilizando Funciones](#clase11) 22 | ### [12 - Eventos](#clase12) 23 | ### [13 - Clases y estilos CSS](#clase13) 24 | ### [14 - Creación de elementos y asignación de atributos](#clase14) 25 | ### [15 - Formularios](#clase15) 26 | ### [16 - Desestructuración de objetos](#clase16) 27 | ### [17 - DataSet](#clase17) 28 | ### [18 - Encontrando elementos en la lista](#clase18) 29 | ### [19 - Animaciones](#clase19) 30 | ### [20 - Manejo de errores](#clase20) 31 | ### [21 - LocalStorage](#clase21) 32 | ### [22 - Obteniendo los datos almacenados](#clase22) 33 | ### [23 - Conclusiones del curso](#clase23) 34 | 35 | # 36 | 37 |
38 |
39 |
40 | 41 | # Sección I - Introducción 42 | 43 |
44 |
45 | 46 | ## 02 - La historia de jQuery 47 | 48 | 49 | _jQuery_ es una librería de JavaScript. 50 | Cada librería resuelve un problema específico. 51 | 52 | Las ventajas de _jQuery_ fueron: 53 | 54 | + Una única forma de acceder al DOM de manera omogenea; 55 | 56 | Anteriormente se accedía al DOM por medio de selectores. Pero en esta época de incompatibilidad de browser y de Internet Explorer las formas de embeber JavaScript en nuestro código era diferente para cada browser. 57 | jQuery unificaba esta forma. 58 | 59 | $.('selector') 60 | 61 | 62 | + Interactuar con datos del servidor 63 | 64 | jQuery implementa Ajax (XML-HTTP-Request) para interactuar con servidores. 65 | También ayudó a trabajar con la incompatibilidad de los selectores. 66 | 67 | $.ajax() 68 | 69 | 70 | + Animaciones 71 | 72 | Hacer animaciones era algo muy complejo también por la incompatibilidad de browsers y css tampoco tenía todas las funcionalidades que hoy tiene. 73 | 74 | $.animate() 75 | 76 | 77 | Con el paso del tiempo y de la implementación de jQuery comenzaron a aparecer "plugins" para esta librería que todavía facilitaban más las cosas. 78 | Pero esto trajo la complicación de que nuestro código se mezclaba a tal punto que no se entendía qué era jQuery y qué era JavaScript, y con esto, la dificultad de hacer modificaciones en el mismo. 79 | 80 | Luego de esto aparecieron librerías para problemas específicos como **BackBone.js** que se apollaba sobre **underscores.js** para la funcionalidad y sobre **jQuery** para otras cosas. 81 | Las tecnologías evolucionaron. 82 | Actualmente han aparecido otros frameworks y ecosistemas más robustos como _REACT, ANGULAR o VUE_. 83 | 84 | Pero al fin y al cabo todo este sistema y nuevas tecnologías se apoyan en JavaScript Vanilla o en puro JavaScript. 85 | 86 | **Ventajas de Aprende JavaScript** 87 | 88 | + Reutilizar conocimiento en otros lados de tu aplicación 89 | + Poder implementar soluciones sin depender de una librería 90 | + Estar más capacitado para las grandes empresas 91 | 92 |
93 |
94 |
95 | 96 | ## 03 - Presentación del proyecto 97 | 98 | Presentación del proyecto 'Platzi Video'sobre el que vamos a trabajar durante el curso. 99 | 100 | Vamos a hacer todo esto en Vanilla JS, y te esteremos dando consejos de cómo hacer estos ejercicios con Jquery. 101 | 102 |
103 |
104 |
105 | 106 | # Sección II - De jQuery a JavaScript 107 | 108 |
109 |
110 | 111 | ## 04 - Variables y Funciones 112 | 113 | Para traer datos de un servicio externo vamos a usar en combinación: 114 | 115 | + Promesas 116 | + ajax/fetch 117 | + funciones asíncronas 118 | 119 | **Procesos Asíncronos** 120 | 121 | Un proceso asíncrono es una petición que hace javaScript al browser y este la devuelve una vez cumplida a la _cola de tareas_ que será ejecutada al final del EventLoop o del flujo de funciones síncronas dentro de nuestro código. 122 | Por ejemplo cargar la página mientras pido al browser que obtenga todos los usuarios y los devuelva una vez cargado el sitio y cuándo esté listo. 123 | 124 | 125 | Pero antes de implementar una Promesa demos tener en claro dos cosas necesarias: Variables y Funciones. 126 | 127 | **Variables** 128 | 129 | Dentro de JavaScript tenemos tres formas de declarar una **variable** las cuales son: 130 | 131 | + _var_ - ECMAScript 5 132 | + _let_ - A partir de ECMAScript 6 - Para declarar variables que pueden ser modificadas 133 | + _const_ - A partir de ECMAScript 6 - Para declarar variables que no pueden ser modificadas 134 | 135 | **Funciones** 136 | 137 | Las funciones son piezas de código que puedes reutilizar y se declaran con la palabra function. 138 | 139 | function estaEsMiFuncion(string){ 140 | console.log(string) 141 | } 142 | 143 | 144 |
145 |
146 |
147 | 148 | ## 05 - Promesas 149 | 150 | “Una _Promesa_ es un objeto que representa la terminación o el fracaso eventual de una operación asíncrona”, o dicho de forma más cotidiana, se va a delegar en el navegador una función pero antes nos va a decir si falla o se ejecuta con éxito. 151 | 152 | Para crear una promesa: 153 | 154 | new Promise() 155 | 156 | 157 | La guardamos en una nueva variable: 158 | 159 | const getUser = new Promise() 160 | 161 | 162 | Las _Promesas_ reciben un argumento; este argumento es una función: 163 | 164 | const getUser = new Promise(function(){ }) 165 | 166 | 167 | Esta función que va a recibir como parámetro, a su vez recibe dos parámetros que son dos objetos; _resolve_ y _reject_ que nos van a indicar si nuestra _Promesa_ funcionó y no. 168 | El primero (_resolve_) será el que nos informe del resultado positivo y viceversa. 169 | A estos dos parámetros los podemos nombrar de cualquier otra manera: 170 | 171 | const getUser = new Promise( function(todoBien, todoMal) { }) 172 | 173 |
174 | 175 | Si mi request a una cierta API o de cualquier otro tipo es exitoso, la función parámetro de nuestra promesa devolverá el primer parámetro, si no el segundo. 176 | 177 | Para ver cómo se comporta forzaremos la respuesta de esta función: 178 | 179 | const getUser = new Promise(function(todoBien, todoMal) { 180 | todoBien() 181 | }) 182 | 183 |
184 | 185 | Y para invocar a la promesa invoco a la variable _getUser_ encadenada al método _.then()_ que también recibe una función como variable 186 | 187 | getUser.then(function(){ 188 | console.log(`El resultado de tu promesa es positivo.`) 189 | }) 190 | 191 | Para simular un delay en la _Promesa_ vamos a usar un _setTimeout()_. _**setTimeout()**_ es un método de JS que ejecuta una función después de un tiempo establecido. Y justamente recibe 2 parámetros; una función y una cantidad de tiempo en milisegundos. 192 | 193 | ```javascript 194 | 195 | const getUser = new Promise(function(todoBien, todoMal) { 196 | setTimeout(function(){ 197 | todoBien() 198 | }, 3000) 199 | }) 200 | 201 | getUser.then(function(){ 202 | console.log(`El resultado de tu promesa es positivo.`) 203 | }) 204 | // 3 seg. después: El resultado de tu promesa es positivo. 205 | 206 | ``` 207 | 208 | Si el resultado de la _Promesa_ por cualquier cosa da un error o no funciona, llamamos al método _.catch()_ para capturar ese estado y al igual que con _.then()_ pasando una función como parámetro podemos manejar este error: 209 | 210 | 211 | ```javascript 212 | 213 | const getUser = new Promise(function(todoBien, todoMal) { 214 | setTimeout(function(){ 215 | todoMal() 216 | }, 3000) 217 | }) 218 | 219 | getUser 220 | .then(function(){ 221 | console.log(`El resultado de tu promesa es positivo.`) 222 | }) 223 | .catch(function(){ 224 | console.log(`El resultado de tu promesa es negativo.`) 225 | }) 226 | 227 | 228 | ``` 229 | 230 | También podemos enviar parámetros a través de _todoBien()_ y _todoMal()_: 231 | 232 | 233 | ```javascript 234 | 235 | const getUser = new Promise(function(todoBien, todoMal) { 236 | setTimeout(function(){ 237 | todoMal(`El resultado de tu promesa es negativo.`) // paso el texto como parámetro 238 | }, 3000) 239 | }) 240 | 241 | getUser 242 | .then(function(){ 243 | console.log(`El resultado de tu promesa es positivo.`) 244 | }) 245 | .catch(function(message){ // recibo con 'message' el parámetro 246 | console.log(message) 247 | }) 248 | 249 | 250 | ``` 251 | 252 | Si quiero eniar varias _Promesas_ de forma paralela? 253 | Para iterar por las promesas uso el método _.all()_ de _Promise_ que va a recibir un _'objeto[]'_ con todas las _Promesas_ previamente declaradas: 254 | 255 | 256 | ```javascript 257 | 258 | const getUser = new Promise ( (todoBien, todoMal) => setTimeout( () => todoBien(`El resultado de tu promesa es positivo.`), 1000 )) 259 | const getUser1 = new Promise((todoBien, todoMal) => setTimeout(() => todoBien(`El resultado de tu promesa es positivo II.`), 2000)) 260 | const getUser2 = new Promise( (todoBien, todoMal) => setTimeout( () => todoBien(`El resultado de tu promesa es positivo III.`), 3000 ) ) 261 | 262 | Promise.all([ 263 | getUser, 264 | getUser1, 265 | getUser2 266 | ]) 267 | .then( message => console.log(message)) 268 | .catch( message => console.log(message)) 269 | 270 | //depués de 3sec: (3) ["El resultado de tu promesa es positivo.", "El resultado de tu promesa es positivo II.", "El resultado de tu promesa es positivo III."] 271 | 272 | ``` 273 | 274 | Si aunque sea 1 de los _Promises_ da error saldrá por .catch() y ninguna de las promesas funcionará. 275 | 276 | Otro método usual con _Promisas_ es _.race()_. Este dara resultados a partir de la promesa que primero se resuelva. 277 | 278 | ```javascript 279 | 280 | const getUser = new Promise ( (todoBien, todoMal) => setTimeout( () => todoBien(`El resultado de tu promesa es positivo.`), 1000 )) 281 | const getUser1 = new Promise((todoBien, todoMal) => setTimeout(() => todoBien(`El resultado de tu promesa es positivo II.`), 2000)) 282 | const getUser2 = new Promise( (todoBien, todoMal) => setTimeout( () => todoMal(`El resultado de tu promesa es negativo.`), 3000 ) ) 283 | 284 | Promise.race([ 285 | getUser, 286 | getUser1, 287 | getUser2 288 | ]) 289 | .then( message => console.log(message)) 290 | .catch( message => console.log(message)) 291 | 292 | // El resultado de tu promesa es positivo. 293 | 294 | 295 | ``` 296 | 297 | 298 |
299 |
300 |
301 | 302 | ## 06 - Tutorial de Ajax en jQuery y Javascript 303 | 304 | Una característica muy solicitada en cualquier sitio dinámico es solicitar datos a un servidor, denominado _API_. 305 | 306 | Para hacer esto tenemos dos opciones: 307 | 308 | + _Ajax_ con jQuery 309 | + _fetch_ con Vanilla JS 310 | 311 | **Ajax jQuery** 312 | 313 | Ajax recibe dos parámetros los cuales son la url de la API y un objeto donde pondrás la configuración que se usara para realizar la petición. En la configuración se añaden dos funciones para manejar cuando la petición se realizo correctamente y cuando falla. 314 | 315 | _Referencia: http://api.jquery.com/jquery.ajax/_ 316 | 317 | ```javascript 318 | 319 | $.ajax('htpps://randomuser.me/api/', { 320 | method: 'GET', 321 | success: function (data){ 322 | console.log(data) 323 | }, 324 | error: function (error) { 325 | console.log(error) 326 | } 327 | }) 328 | 329 | ``` 330 |
331 | 332 | **JavaScript** 333 | 334 | JavaScript internamente cuenta con una función llamada _fetch_ que también realiza peticiones a una API. 335 | Al igual que Ajax necesita dos parámetros, una url y una configuración, pero si solo le mandas la url fetch usará una configuración por defecto donde el método HTTP será GET. 336 | _fetch_ te regresa una promesa, esa promesa al resolverse te da los datos de respuesta y tiene un método llamado _json()_ que te regresa otra promesa con los datos en formato JSON. 337 | 338 | ```javascript 339 | 340 | fetch("url") 341 | .then( response => return response.json() ) 342 | .then( user => console.log(user) ) // datos en formato JSON 343 | .catch( error => console.log(error) ) 344 | 345 | ``` 346 |
347 | 348 | Las promesas resuelven el problema del Callback Hell haciendo que una promesa pueda devolver otra promesa y en lugar de ser anidadas como los callback, estas promesas son encadenadas. 349 | 350 | 351 |
352 |
353 |
354 | 355 | ## 07 - Funciones Asíncronas 356 | 357 | Una función asíncrona va a ser como una función normal, pero poniendo código asíncrono de forma que sea más fácil de leer de forma síncrona. 358 | 359 | Para declarar una función asíncrona se usa la palabra reservada _**async**_. Luego se declara la función de forma normal. 360 | Dentro de una función asíncrona se usa otra palabra reservada llamada _**await**_, lo que hará este comando es indicar que se debe esperar a que termine de ejecutarse ese fragmento de código antes de continuar. 361 | 362 | 363 | ```javascript 364 | 365 | async function load() { 366 | await 367 | } 368 | 369 | ``` 370 | 371 | Puedo llamar la función de manera normal: 372 | 373 | ```javascript 374 | 375 | async function load() { 376 | await 377 | } 378 | load() 379 | 380 | ``` 381 | 382 | O puedo hacer que se autoejecute envolviéndola entre paréntesis: 383 | 384 | 385 | ```javascript 386 | 387 | (async function load() { 388 | await 389 | })() 390 | 391 | ``` 392 | 393 | Para comenzar a trabajar en el ejercicio del curso usaremos la API de https://yts.am/api. 394 | Genero un _fetch_ con la URL que necesito y lo guardo en una constante bajo el comando _**await**_ 395 | El código allí se detiene hasta que la promesa es devuelta y continúa con el código. 396 | Llamamos entonces al método _json()_ para obtener el objeto Promise con la 'data'. 397 | 398 | ```javascript 399 | 400 | (async function load(){ 401 | const result = await fetch('https://yts.am/api/v2/list_movies.json?genre=action') 402 | const data = await result.json() 403 | console.log(data) 404 | })() 405 | 406 | ``` 407 | 408 | Ahora quiero traer tres promesas que corresponden a tres géneros diferentes de películas: 409 | 410 | ```javascript 411 | 412 | (async function load(){ 413 | 414 | async function getData(url) { 415 | const result = await fetch(url) 416 | const data = await result.json() 417 | return data 418 | } 419 | 420 | const URLroot = 'https://yts.am/api/v2/list_movies.json?genre=' 421 | 422 | const actionList = await getData(`${URLroot}action`) 423 | const horrorList = await getData(`${URLroot}horror`) 424 | const animationList = await getData(`${URLroot}animation`) 425 | 426 | console.log(actionList, horrorList, animationList) 427 | })() 428 | 429 | ``` 430 | 431 |
432 |
433 |
434 | 435 | ## 08 - Selectores 436 | 437 | 438 | Los selectores sirven para seleccionar objetos del DOM con el fin de manipularlos. 439 | 440 | Una buena práctica es asignar una constante _const_ con cada uno de ellos, listarlos al inicio del código. 441 | 442 | Una convención entre algunos programadores es agregarle a estas constantes un signo _**$**_ al comienzo de su nombre para diferenciarlas del resto de las variables del código. 443 | 444 | const $selector 445 | 446 |
447 | 448 | En **jQuery** generamos un selector de la siguiente forma: 449 | 450 | $('.home') // class 451 | $('#home') // id 452 | $('div') // HTML tag 453 | 454 | 455 |
456 | 457 | Dentro de **JavaScript** existen distintas funciones para generar selectores: 458 | 459 | + **getElementById**: recibe como parámetro el **id** del objeto. Regresa un solo objeto. 460 | 461 | document.getElementById('home') 462 | 463 | 464 | + **getElementByTagName**: recibe como parámetro el **tag** que estas buscando y te regresa una colección html de los elementos que tengan ese tag. 465 | 466 | document.getElementByTagName('span')[0] // traerá el primer span del código html 467 | 468 | 469 | + **getElementByClassName**: recibe como parámetro la **clase** y te **regresa una colección** html de los elementos que tengan esa clase. 470 | 471 | 472 | document.getElementByClassName('home') 473 | 474 | 475 | + **querySelector**: va a buscar **el primer elemento que coincida con el selector** que le pases como parámetro. 476 | 477 | 478 | document.querySelector('#container > h2') 479 | 480 | 481 | + **querySelectorAll**: va a buscar **todos los elementos** que coincidan con el selector que le pases como parámetro. 482 | 483 | document.querySelectorAll('#video-content > div > div > div.VideoMaterialLayout-timeline > span > div > aside > section > div.TimelineNav-materials > a') 484 | 485 | // En la página de una clase de Platzi arroja: 486 | 487 | // NodeList(10) [a.TimelineNav-material, a.TimelineNav-material, a.TimelineNav-material, a.TimelineNav-material, a.TimelineNav-material.is-active, a.TimelineNav-material, a.TimelineNav-material, a.TimelineNav-material, a.TimelineNav-material, a.TimelineNav-material] 488 | 489 | 490 |
491 |
492 |
493 | 494 | ## 09 - Creación de templates 495 | 496 | 497 | Con JavaScript es posible crear templates insertando código HTML en el DOM a través de los selectores. Dentro de este código puedo insertar datos dinámicos de acuerdo a la necesidad. 498 | 499 | Con una característica de ES6, "_template literals_" (que son estas comillas invertidas '`', o acento grave) puedo generar este código, tanto en javascript como con jQuery: 500 | 501 | ```javascript 502 | 503 | 504 | function template(someTitle, someContent) { 505 | return(`
506 |
${someTitle}
507 |
508 |

${someContent}

509 |
510 |
`) 511 | } 512 | 513 | ``` 514 | 515 | 516 |
517 |
518 |
519 | 520 | ## 10 - Creación de DOM 521 | 522 | 523 | Para imprimir nuestro código del template en el documento primero lo transformamos en código HTML, de otra manera se imprimiría sólo texto y se mostraría el código como texto en nuestra página. 524 | 525 | Para esto primero creamos un elemento HTML que nos arroja un documento html básico(esta parte del proceso es sobre todo para mostrar el mecanismo de algunos frames y librerías): 526 | 527 | 528 | ```javascript 529 | 530 | const html = document.implementation.createHTMLDocument() 531 | 532 | // #document 533 | // 534 | // 535 | // 536 | // 537 | // 538 | // 539 | 540 | ``` 541 | 542 | Y con el método _.innerHTML_ genero el código a partir de nuestro string estructurado: 543 | 544 | ```javascript 545 | 546 | const html = document.implementation.createHTMLDocument() 547 | html.body.innerHTML = HTMLString 548 | 549 | ``` 550 | 551 | Y ahora sí podemos insertar este código generado en nuestro documento con el método _.children_: 552 | 553 | ```javascript 554 | 555 | $actionContainer.append(html.body.children[0]) 556 | 557 | ``` 558 | 559 | Este flujo se parece mucho a lo que hacemos con librerías o frameworks de JavaScrip; lo que haría backBone, Angular, Vue, React. Con estos sólo pasamos unas propiedades, declaramos unos componentes que sería lo más parecido a nuestro template, y luego de eso se imprime en nuestra página. También nos dan características especiales; como por ejemplo si actualizamos alguna propiedad, esta se autoactualiza dentro de ese elemento, dentro de ese HTML sin tener que hacerlo a mano. 560 | Con este proceso hemos aprendido la forma de hacerlo con Vanilla JS para poder comprender todo el background detras de estas librerías y frames. 561 | 562 | Hay otras formas de hacer este proceso en Vanilla JS. 563 | Notese por ejemplo que el método _.append_ es nativo de jQuery y no de JS. Con Vanilla JS usaríamos _.appendChild()_ por ejemplo. 564 | 565 | 566 | 567 |
568 |
569 |
570 | 571 | ## 11 - Reutilizando Funciones 572 | 573 | 574 | Las funciones son esas porciones de código que vamos a poder declarar y reutilizar a lo largo de toda nuestra aplicación según nos convenga. 575 | Es bueno que sepamos usar funciones y nombrarlas lo más específicas posible para así poder reutilizarlas libremente. 576 | 577 | Código del curso hasta esta clase: 578 | 579 | 580 | ```javascript 581 | 582 | (async function load(){ 583 | //root de la url de la API 584 | const moviesURL = `https://yts.am/api/v2/list_movies.json?genre=`; 585 | 586 | //=== Selectores Varios ===// 587 | // contenedor de películas por género 588 | const $actionContainer = document.getElementById(`action`) 589 | const $dramaContainer = document.getElementById(`drama`) 590 | const $animationContainer = document.getElementById(`animation`) 591 | 592 | // otros contenedores 593 | const $featuringContainer = document.getElementById(`featuring`) 594 | const $form = document.getElementById(`form`) 595 | const $home = document.getElementById(`home`) 596 | 597 | // otros elementos del DOM 598 | const $modal = document.getElementById(`modal`) 599 | const $overlay = document.getElementById(`overlay`) 600 | const $hideModal = document.getElementById(`hide-modal`) 601 | 602 | // elementos dentro del modal 603 | const $modalTitle = $modal.querySelector(`h1`) 604 | const $modalImg = $modal.querySelector(`img`) 605 | const $modalDescription = $modal.querySelector(`p`) 606 | //=== Selectores Varios ===// 607 | 608 | //-- función para hacer el request a la API --// 609 | async function getMovies (url) { 610 | const response = await fetch(url) 611 | const data = await response.json() 612 | return data 613 | } 614 | 615 | // listas de objetos-películas por género traidos desde la API (request) 616 | const actionList = await getMovies(`${moviesURL}action`) 617 | const dramaList = await getMovies(`${moviesURL}drama`) 618 | const animationList = await getMovies(`${moviesURL}animation`) 619 | 620 | // listas de películas por género 621 | const actionMovies = actionList.data.movies 622 | const dramaMovies = dramaList.data.movies 623 | const animationMovies = animationList.data.movies 624 | 625 | //-- función para generar el código HTML por cada película --// 626 | function videoTemplate(img, title) { 627 | return( 628 | `
629 |
630 | 631 |
632 |

633 | ${title} 634 |

635 |
` 636 | ) 637 | } 638 | 639 | //-- función para imprimir código html por cada película --// 640 | function printMoviesByGenre(genre, container){ 641 | container.children[0].style = `display: none` 642 | genre.forEach( movie => { 643 | container.innerHTML += videoTemplate(movie.medium_cover_image, movie.title) 644 | }) 645 | } 646 | 647 | // imprimir cada película por género en la página 648 | const actionMoviesPrinted = printMoviesByGenre(actionMovies, $actionContainer) 649 | const dramaMoviesPrinted = printMoviesByGenre(dramaMovies, $dramaContainer) 650 | const animationMoviesPrinted = printMoviesByGenre(animationMovies, $animationContainer) 651 | })() 652 | 653 | 654 | ``` 655 | 656 |
657 |
658 |
659 | 660 | ## 12 - Eventos 661 | 662 | Los eventos del DOM son enviados para notificar al código de cosas interesantes que han sucedido o están sucediendo. 663 | Cada evento está representado por un objeto que se basa en la Interfaz _Event_, e incluso puede contener campos y/o funciones adicionales personalizadas para obtener más información a cerca de lo 'sucedido'. Los eventos pueden representar cualquier cosa, desde las interacciones básicas del usuario hasta notificaciones automatizadas de las cosas que suceden en el modelo de representación. 664 | 665 | _Referencia jQ: http://api.jquery.com/on/_ 666 | 667 | _Referencia JS: http://bibliotecadigital.tamaulipas.gob.mx/archivos/descargas/b716d48a5_evolucion.pdf_ 668 | 669 | Con vanilla JS, el método _addEventListener()_ se utiliza para invocar cualquier evento. 670 | Este método recibe dos parámetros; (evento, function) 671 | 672 | $element.addEventListener('event', () => {}) 673 | 674 | Con jQuery: 675 | 676 | $element.on( events, handler ) 677 | 678 | 679 | Llamando al método del event .preventDefault() evitamos que el sitio se recargue cada vez que usamos el formulario. 680 | 681 | 682 | ```javascript 683 | 684 | $form.addEventListener('submit', event => event.preventDefault()) 685 | 686 | 687 | 688 | El método .addEventListener() no acepta más de un elemento. Entonces, cuando necesito agregar el mismo _listener_ a varios elementos puedo usar dos opciones: 689 | 690 | + Un array y un for: 691 | 692 | ```javascript 693 | 694 | const arrayDeElementos = document.querySelectorAll('div'); 695 | arrayDeElementos.forEach( (elem) => { 696 | elem.addEventListener( ' click', () => { 697 | // lo que quieras hacer ... 698 | }); 699 | }); 700 | 701 | ``` 702 | 703 | + **Event Bubbling** que es básicamente escuchar todos los eventos de la página agregando el listener al _document_ y luego generar un if o un switch con los elementos que necesitamos puntualmente: 704 | 705 | 706 | ```javascript 707 | 708 | document.addEventListener('click', (event) => { 709 | if ( event.target.classList.contains( 'classX' ) ) { 710 | // lo que quieras hacer ... 711 | } elseif (event.target.classList.contains( 'classZ' ) ) { 712 | // lo que quieras hacer ... 713 | } 714 | }, false); 715 | 716 | ``` 717 | 718 | 719 |
720 |
721 |
722 | 723 | ## 13 - Clases y estilos CSS 724 | 725 | HTML se va a encargar de la estructura de nuestro proyecto. CSS de nuestros estilos y JS de la interactividad. 726 | Convinando CSS con JS podemos generar una interfaz muy rica e interactiva. 727 | 728 | Una herramienta útil para este trabajo es el **Chrome Dev Tool**. En el console, el comando _$0_ se refiere al elemento seleccionado. 729 | 730 | Cada elemento del DOM tiene un _classList_ como propiedad en JavaScript. Este _classList_ contiene propiedades. 731 | Por ejemplo nos pueden ser útil: 732 | 733 | + _add_: agrega una clase, 734 | + _remove_: quita una clase, 735 | + _toogle_: agregarla si no está y quitarla si está. 736 | 737 | ```javascript 738 | 739 | $element.classList.add('class') 740 | $element.classList.remove('class') 741 | $element.classList.toggle('class') 742 | 743 | ``` 744 | 745 | Para generar estilos inline usamos el método _.style_: 746 | 747 | ```javascript 748 | 749 | $element.style.animation = "modalIn .8s forwards"; 750 | $element.style = 'display: none' 751 | 752 | ``` 753 | 754 |
755 |
756 |
757 | 758 | ## 14 - Creación de elementos y asignación de atributos 759 | 760 | **Creación de Elementos** 761 | 762 | Es posible crear elementos independientes en el DOM a partir de JavaScript con el método _createElement()_. 763 | 764 | const $element = document.createElement('img') 765 | 766 | 767 | Para asignar atributos al elemento creado podemos usar _setAttribute()_ 768 | 769 | $element.setAttribute("src", "img/foto.png"); 770 | 771 | Y si quiero agregar varios: 772 | 773 | ```javascript 774 | 775 | function addAttributes($element, attributes) { 776 | for(const attribute in attributes ){ 777 | $element.setAttribute(attribute, attributes[attribute]) 778 | } 779 | } 780 | 781 | ``` 782 | 783 | Para agregarlo al lugar del código que quiero: 784 | 785 | ```javascript 786 | 787 | $container.append($element) 788 | 789 | ``` 790 | 791 |
792 |
793 |
794 | 795 | ## 15 - Formularios 796 | 797 | Para obtener los datos de un formulario con Vanilla JS usamos el constructor _FormData()_ que recibe como parámetro el formulario HTML al que queramos acceder: 798 | 799 | 800 | const formData = new FormData($form) 801 | 802 | 803 | A este nuevo objeto podemos setearle datos nuevos y también pedirle: 804 | 805 | 806 | // agregar 807 | formData.set('serie', 'Mr. Robot') 808 | 809 | // pedir 810 | formData.get('serie') 811 | // "Mr. Robot" 812 | 813 | Para obtener el input del formulario al que quiero acceder utilizo el valor del atributo _'name'_ previamente seteado en el tag html. 814 | 815 | ```html 816 | 817 | 820 | 821 | 824 | 825 | ``` 826 | 827 | 828 | 829 |
830 |
831 |
832 | 833 | ## 16 - Desestructuración de objetos 834 | 835 | Destructuring assignment o asignación por desestructuración nos permite introducirnos en un objeto para así extraer un dato para asignarlo a otra variable y así limpiar nuestro código. 836 | Esto se hace usando llaves; '{}' y ':'. 837 | 838 | Ej. dónde podríamos aplicar esto: 839 | 840 | ```javascript 841 | 842 | // ... 843 | const peliculaBuscada = await getMovies(`${finder_API}${data.get('name')}`) 844 | $featuringContainer.innerHTML = featuringTemplate(peliculaBuscada.data.movies[0]) 845 | // ... 846 | 847 | ``` 848 | 849 | El objeto que nos arroja la función asíncrona del ejemplo nos obliga a entrar en el sub-objeto _'data'_ y este a la vez en _'movies'_, lo que nos hace usar esta declaración para acceder a los datos que necesitamos: 850 | 851 | peliculaBuscada.data.movies[0] 852 | 853 | Desestructurando la variable en la que voy a guardar el resultado de la función asíncrona que nos arroja el objeto nuestra variable se vería más limpia y el código quedaría así: 854 | 855 | ```javascript 856 | 857 | // ... 858 | const { 859 | data: { 860 | movies: peliculaBuscada 861 | } 862 | } = await getMovies(`${finder_API}${data.get('name')}`) 863 | $featuringContainer.innerHTML = featuringTemplate(peliculaBuscada[0]) 864 | // ... 865 | 866 | ``` 867 | 868 | 869 | 870 |
871 |
872 |
873 | 874 | ## 17 - DataSet 875 | 876 | Con DataSet puedo agregar datos a los tags HTML para luego usarlos de cualquier forma necesaria en JavaScript. 877 | La forma de hacerlo es agregar un atributo _"data-nombre"_ a cualquier tag html. 878 | 879 | Ej: 880 | 881 | En el template agrego _data-id="${movie.id}"_ y _data-category="${category}"_ 882 | 883 | ```javascript 884 | 885 | function videoTemplate(movie, category) { 886 | return( 887 | `
888 |
889 | 890 |
891 |

892 | ${movie.title} 893 |

894 |
` 895 | ) 896 | } 897 | 898 | 899 | ``` 900 | 901 | A los que después puedo acceder desde JS con el método _.dataset.nombre_. 902 | En este caso: 903 | 904 | ```javascript 905 | 906 | $element.dataset.id 907 | $element.dataset.category 908 | 909 | ``` 910 | 911 | 912 | 913 |
914 |
915 |
916 | 917 | ## 18 - Encontrando elementos en la lista 918 | 919 | ### [Find](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/find) 920 | 921 | Para seleccionar un elemento particular de un array usamos el método [_find()_](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/find). 922 | 923 | El método [_find()_](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/find) itera por los elementos de un array y devuelve el valor del primer elemento que cumple con la condición que le pasamos a travéz de la función parámetro que recibe. Si ningún valor coincide con la condición de búsqueda devuelve _undefined_. Vale remarcar que no itera por todos los elementos del array, sino sólo hasta el elemento que devuelve. 924 | Recibe una función de parámetro y esta a su vez un parámetro _this_ que referencia a mismo array. 925 | 926 | ```javascript 927 | 928 | var arrayX = [5, 12, 8, 130, 44, 180] 929 | 930 | var found = arrayX.find( e => e > 10 ) 931 | var found2 = arrayX.find( e => e < 190 ) 932 | 933 | console.log(found) 934 | // 12 935 | 936 | console.log(found2) 937 | // 5 938 | 939 | ``` 940 | 941 | ### [Switch](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Sentencias/switch) 942 | 943 | Otra estructura usual de datos es el [_switch_](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Sentencias/switch). 944 | Es una estructura multiple-condicional y se utiliza normalmente cuando los condicionales son 3 o más. 945 | Su funcionamiento es similar a un if- else if - else. 946 | 947 | Este evalúa una expresión y la compara con el valor que asignamos en cada _case_, si coincide con alguno ejecuta el código dentro de ese _case_, sino sale por el _default_ case. 948 | 949 | Sintaxis: 950 | 951 | ```javascript 952 | 953 | var frut = 'Papayas'; 954 | 955 | switch (frut) { 956 | case 'Oranges': 957 | console.log('Oranges are $0.59 a pound.') 958 | break 959 | case 'Mangoes': 960 | case 'Papayas': 961 | console.log('Mangoes and papayas are $2.79 a pound.') 962 | break 963 | default: 964 | console.log('Sorry, we are out of ' + expr + '.') 965 | } 966 | 967 | // "Mangoes and papayas are $2.79 a pound." 968 | 969 | ``` 970 | 971 |
972 |
973 |
974 | 975 | ## 19 - Animaciones 976 | 977 | Tanto como en CSS puro, con javaScript también podemos hacer efectos de fade con CSS. 978 | 979 | En esta clase obtenemos el objeto _image_ del template que generamos para cada película y le agregamos una clase previamente declarada en nuestro CSS. 980 | Usamos el eventListener _'load'_ para imprimir todas las imágenes juntas una vez traidas de la API. 981 | 982 | 983 | ```CSS 984 | 985 | .fadeIn { 986 | animation: 2000ms fadeIn; 987 | } 988 | 989 | @keyframes fadeIn { 990 | 0% { 991 | opacity: 0; 992 | } 993 | 994 | 100% { 995 | opacity: 1; 996 | } 997 | } 998 | 999 | ``` 1000 | 1001 | ```javascript 1002 | 1003 | const image = movieElement.querySelector('img') 1004 | image.addEventListener( 'load', event => event.srcElement.classList.add('fadeIn') ) 1005 | 1006 | ``` 1007 | 1008 | También separamos el código de los llamados asíncronos a la API para que al obtener un género de películas las imprima directamente. Esto va a ayudar a optimizar nuestra aplicación en cuanto a tiempo de carga. 1009 | 1010 | 1011 | 1012 | 1013 | 1014 |
1015 |
1016 |
1017 | 1018 | ## 20 - Manejo de errores 1019 | 1020 | Para poder manipular situaciones en las que la conexión a la API por cualquier cosa de un error utilizamos la estructura [_**try...catch**_](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Sentencias/try...catch). 1021 | 1022 | 1023 | ```javascript 1024 | 1025 | try { 1026 | // ejecuta si todo está bien en el callback 1027 | } catch(error) { 1028 | console.log(error) 1029 | } 1030 | 1031 | ``` 1032 | 1033 | Para manipular los errores en JS usamos el prototipo [Error()](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/Error). Con este podemos crear nuestro propio _objeto error_ customizado. 1034 | 1035 | new Error(message) 1036 | 1037 | 1038 | Y para mostrar el error se puede usar [_throw_](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Sentencias/throw). 1039 | 1040 | throw expresion; 1041 | 1042 | 1043 | 1044 | 1045 | 1046 |
1047 |
1048 |
1049 | 1050 | ## 21 - LocalStorage 1051 | 1052 | 1053 | Para respaldar los datos que pedimos a la API utilizamos [_**localStorage**_](https://developer.mozilla.org/es/docs/Web/API/Window/localStorage) ó [_**sessionStorage**_](https://developer.mozilla.org/es/docs/Web/API/Window/localStorage). Son objetos nativos en javascript. 1054 | 1055 | [_**localStorage**_](https://developer.mozilla.org/es/docs/Web/API/Window/localStorage) nos permite guardar los datos sin un tiempo de expiración, es decir persisten entre ventanas/tabs con el mismo origen incluso al cerrar el navegador. 1056 | 1057 | [_**sessionStorage**_](https://developer.mozilla.org/es/docs/Web/API/Window/localStorage) nos permite guardar los datos con tiempo de expiración. Son eliminados cuando finaliza la sesion de navegación, lo que ocurre cuando se cierra el navegador. 1058 | 1059 | [_**localStorage**_](https://developer.mozilla.org/es/docs/Web/API/Window/localStorage) es un objeto dentro de window. 1060 | 1061 | Para acceder: 1062 | 1063 | ```javascript 1064 | 1065 | window.localStorage 1066 | 1067 | // por defecto el navegador lo reconoce y no hace falta anteponer el 'window' 1068 | localStorage 1069 | 1070 | ``` 1071 | 1072 | Para limpiar/borrar datos: 1073 | 1074 | ```javascript 1075 | 1076 | window.localStorage.clear() 1077 | 1078 | ``` 1079 | 1080 | Setear un dato: 1081 | 1082 | 1083 | ```javascript 1084 | 1085 | window.localStorage.setItem('item','value') 1086 | 1087 | ``` 1088 | 1089 | Obtener su valor: 1090 | 1091 | ```javascript 1092 | 1093 | window.localStorage.getItem('item') 1094 | // value 1095 | 1096 | ``` 1097 | 1098 | En [_**localStorage**_](https://developer.mozilla.org/es/docs/Web/API/Window/localStorage) no puedo guardar objetos directamente. Para poder hacerlo, hay que previamente convertir el objeto en un string. 1099 | Esto puedo hacerlo con el método, también nativo de javascript, [_**JASON.stringify()**_](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/JSON/stringify): 1100 | 1101 | ```javascript 1102 | 1103 | var object = JSON.stringify({'flor': 'roja'}) 1104 | window.localStorage.setItem('item', object) 1105 | window.localStorage.getItem('item') 1106 | // "{"flor":"roja"}" 1107 | 1108 | ``` 1109 | 1110 | Para re-convertirlo en objeto luego de obtenerlo puedo usar [_**JSON.parse**_](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/JSON/parse): 1111 | 1112 | 1113 | ```javascript 1114 | 1115 | const objectBack = window.localStorage.getItem('item') 1116 | 1117 | JSON.parse(objectBack) 1118 | // {flor: "roja"} 1119 | flor: "roja" 1120 | > __proto__: Object 1121 | 1122 | ``` 1123 | 1124 |
1125 |
1126 |
1127 | 1128 | ## 22 - Obteniendo los datos almacenados 1129 | 1130 | 1131 | 1132 | 1133 |
1134 |
1135 |
1136 | 1137 | ## 23 - Conclusiones del curso 1138 | -------------------------------------------------------------------------------- /postCSS.md: -------------------------------------------------------------------------------- 1 | # Curso de PostCSS 2 | # 3 | # Index 4 | # 5 | 6 | ## [Sección I - Introducción](#sec1) 7 | ### [01 - Bienvenida al Curso de PostCSS](#clase1) 8 | ### [02 - Instalación y uso del cliente de PostCSS](#clase2) 9 | ### [03 - Instalando y usando plugins en PostCSS](#clase3) 10 | 11 | # 12 | 13 | ## [Sección II - NextCSS - El futuro de CSS](#sec2) 14 | ### [04 - Instalando CSSNext](#clase4) 15 | ### [05 - Los nuevos módulos de CSS](#clase5) 16 | ### [06 - Variables](#clase6) 17 | ### [07 - Operaciones matemáticas con CSS - CALC ](#clase7) 18 | ### [08 - Media Queries](#clase8) 19 | ### [09 - Imágenes retina con Post CSS - Image-set](#clase9) 20 | ### [10 - Colores](#clase10) 21 | ### [11 - Fuentes](#clase11) 22 | ### [12 - Selectores Personalizados](#clase12) 23 | ### [13 - Pseudo Clases](#clase13) 24 | ### [14 - Indentando (nesting)](#clase14) 25 | 26 | # 27 | 28 | ## [Sección III - Plugins de PostCSS](#sec3) 29 | ### [15 - Modulariza tu código con postcss-Imports](#clase15) 30 | ### [16 - Auto font-face con FontMagician](#clase16) 31 | ### [17 - Validar CSS con Stylelint](#clase17) 32 | ### [18 - Agrupar Media Queries con mqpacker](#clase18) 33 | ### [19 - Optimiza CSS para producción con CSSNano](#clase19) 34 | ### [20 - Vocabulary for Marketing](#clase20) 35 | 36 | # 37 | 38 | ## [Sección IV - Conclusiones](#sec4) 39 | ### [21 - Conclusiones del Curso de PostCSS](#clase21) 40 | 41 | # 42 | 43 |
44 |
45 |
46 | 47 | # Sección I - Introducción 48 | 49 |
50 |
51 | 52 | ## 01 - Bienvenida al Curso de PostCSS 53 | 54 | ### Qué es postCSS? 55 | 56 | PostCSS es una herramienta para transformar CSS con JavaScript. 57 | Es una herramienta construida en JavaScript que sirve para manipular los archivos de CSS y convertirlos en "un mejor CSS". 58 | 59 | Existen nuevos features de CSS que no son todavía soportados por todos los navegadores. 60 | PostCSS trabaja con features y sintaxis de CSS4 transpilando un archivo de código en CSS3 que todos los navegadores hasta la fecha puedan interpretar. 61 | 62 | 63 | 64 | 65 | 66 | 67 | [To top...](https://github.com/pablojorgeandres/notas-clases/blob/master/postCSS.md#index) 68 | 69 |
70 |
71 |
72 | 73 | ## 02 - Instalación y uso del cliente de PostCSS 74 | 75 | PostCSS puede utilizarse con WebPack, Gulp, Grunt o casi con cualquier administrador de entornos. 76 | También corre con su propio cliente. 77 | 78 | Para instalar tenemos que tener seteado previamente node.js. 79 | En terminal, voy a la carpeta del proyecto y: 80 | 81 | npm init 82 | 83 | Se genera en la carpeta principal un archivo `package.json` con datos de nuestro proyecto. 84 | Luego podemos instalar PostCSS. 85 | 86 | npm i postcss-cli --save 87 | 88 | [Referencia aquí...](https://github.com/postcss/postcss-cli) 89 | 90 | Se agrega entonces la dependencia. Podemos ver la versión en el `package.json` file. 91 | 92 | ``` 93 | 94 | "dependencies": { 95 | "postcss-cli": "^6.1.2" 96 | } 97 | 98 | ``` 99 | 100 | Para invocar esta dependendencia local desde el terminal usamos `npx postcss` segido del comando que necesitemos: 101 | 102 | ```terminal 103 | 104 | npx postcss --version // imprime versión instalada 105 | 106 | 107 | /|\ 108 | // // 109 | // // 110 | //___*___*___// 111 | //--*---------*--// 112 | /|| * * ||/ 113 | // ||* v6.1.2 *|| // 114 | // || * * || // 115 | //_____||___*_________*___||_____// 116 | 117 | 118 | 119 | npx postcss --help // imprime comandos 120 | 121 | . 122 | . 123 | . 124 | 125 | Basic options: 126 | -o, --output Output file [string] 127 | -d, --dir Output directory [string] 128 | -r, --replace Replace (overwrite) the input file [boolean] 129 | --map, -m Create an external sourcemap 130 | --no-map Disable the default inline sourcemaps 131 | --verbose Be verbose [boolean] 132 | --watch, -w Watch files for changes and recompile as needed [boolean] 133 | --env A shortcut for setting NODE_ENV [string] 134 | 135 | . 136 | . 137 | . 138 | 139 | ``` 140 | 141 | Es posible crear scripts desde el `package.json` pero es realmente más agil para mantener un flujo de trabajo el hacerlo por línea de comandos. 142 | 143 | Sobre todo lo que vamos a necesitar saber es cómo generar el archivo en el que se va a transpilar nuestro código CSS. 144 | Este lo configuramos de la siguiente manera en terminal: 145 | 146 | npx postcss ruta/archivo/origen/style.css -o ruta/archivo/transpilado/style.css 147 | 148 | Si quiero generar un archivo.css con otro nombre puedo hacerlo directamente en el comando anterior: 149 | 150 | npx postcss ruta/archivo/origen/style.css -o ruta/archivo/transpilado/otroNombre.css 151 | 152 | 153 | Entonces , lo que ahora nuestro index invocará será el archivo transpilado. Hay que modificarlo en el . 154 | 155 | Si agrego un `-w` al final del comando anterior, npm quedará pendiente de los cambios que vallamos haciendo en el archivo e irá actualizando el transpilado cada vez que guardemos los cambios en nuestro archivo.css de origen. 156 | 157 | 158 | [To top...](https://github.com/pablojorgeandres/notas-clases/blob/master/postCSS.md#index) 159 | 160 |
161 |
162 |
163 | 164 | ## 03 - Instalando y usando plugins en PostCSS 165 | 166 | PostCSS es una herramienta para transformar CSS con JS y todo lo que hará es transpilar un archivo legible para multiples browsers a partir de los parámetros de los plugins que instalemos. 167 | 168 | [Referencia plugins](https://www.postcss.parts/). 169 | 170 | Podemos también generar nuestros plugins personales. 171 | 172 | El primero que usaremos es **autoprefixer**. Este es el plugin más popular y existe desde antes de postCSS. 173 | Lo que este plugin hace es agregar prefijos como -webkit- o -moz- por ejemplo a las propiedades de CSS siempre que sea necesario y los navegadores no soporten esa propiedad. 174 | 175 | Para instalar: 176 | 177 | npm i --save autoprefixer 178 | 179 | Se agrega entonces la dependencia. Podemos ver la versión en el `package.json` file. 180 | 181 | 182 | ``` 183 | 184 | "dependencies": { 185 | "autoprefixer": "^9.4.9", 186 | "postcss-cli": "^6.1.2" 187 | } 188 | 189 | ``` 190 | 191 | Para utilizarlo hay dos formas. 192 | 193 | • De forma básica o por defecto a través del terminal con el comando `-u` después de `-w`: 194 | 195 | npx postcss src/css/home.css -o dist/css/home.css -w -u autoprefixer 196 | 197 | • De forma custom generando un archivo `postcss.config.js` en el root de nuestro proyecto. 198 | 199 | + carga por defecto 200 | 201 | ```javascript 202 | 203 | module.exports = { 204 | plugins: [ 205 | require('autoprefixer') 206 | ] 207 | } 208 | 209 | 210 | ``` 211 | + carga avanzada agregando prefijos para propiedades específicas de CSS: 212 | 213 | ```javascript 214 | 215 | 216 | module.exports = { 217 | plugins: [ 218 | require('autoprefixer')({ 219 | grid: true 220 | }) 221 | ] 222 | } 223 | 224 | 225 | ``` 226 | 227 | Como algo todavía más específico otra posibilidad es la de encender e interrumpir el mecanismo de generar prefijos por cada clase o id de css es nuestro `style.css` de origen. 228 | [Ver documentación](https://github.com/postcss/autoprefixer) por propiedades ajustables. 229 | 230 | Ej: 231 | 232 | ```CSS 233 | 234 | .a { 235 | transition: 1s; /* será prefixeada */ 236 | } 237 | 238 | .b { 239 | /* autoprefixer: off */ 240 | transition: 1s; /* no será prefixeada */ 241 | } 242 | 243 | .c { 244 | /* autoprefixer: ignore next */ 245 | transition: 1s; /* no será prefixeada */ 246 | mask: url(image.png); /* será prefixeada */ 247 | } 248 | 249 | 250 | ``` 251 | 252 | 253 | [To top...](https://github.com/pablojorgeandres/notas-clases/blob/master/postCSS.md#index) 254 | 255 |
256 |
257 |
258 | 259 | # Sección II - CSSNext - El futuro de CSS 260 | 261 |
262 |
263 | 264 | ## 04 - Instalando CSSNext 265 | 266 | **[CSSNext](http://cssnext.io/)** es un paquete de plugins. 267 | Incluye un plugin por cada una de las nuevas características todavía no soportadas por los browsers de CSS. 268 | 269 | 270 | 271 | 272 | 273 | [To top...](https://github.com/pablojorgeandres/notas-clases/blob/master/postCSS.md#index) 274 | 275 |
276 |
277 |
278 | 279 | ## 05 - Los nuevos módulos de CSS 280 | 281 | 282 | 283 | [To top...](https://github.com/pablojorgeandres/notas-clases/blob/master/postCSS.md#index) 284 | 285 |
286 |
287 |
288 | 289 | ## 06 - Variables 290 | 291 | 292 | 293 | [To top...](https://github.com/pablojorgeandres/notas-clases/blob/master/postCSS.md#index) 294 | 295 |
296 |
297 |
298 | 299 | ## 07 - Operaciones matemáticas con CSS - CALC 300 | 301 | 302 | 303 | [To top...](https://github.com/pablojorgeandres/notas-clases/blob/master/postCSS.md#index) 304 | 305 |
306 |
307 |
308 | 309 | ## 08 - Media Queries 310 | 311 | 312 | 313 | [To top...](https://github.com/pablojorgeandres/notas-clases/blob/master/postCSS.md#index) 314 | 315 |
316 |
317 |
318 | 319 | ## 09 - Imágenes retina con Post CSS - Image-set 320 | 321 | 322 | 323 | [To top...](https://github.com/pablojorgeandres/notas-clases/blob/master/postCSS.md#index) 324 | 325 |
326 |
327 |
328 | 329 | ## 10 - Colores 330 | 331 | 332 | 333 | [To top...](https://github.com/pablojorgeandres/notas-clases/blob/master/postCSS.md#index) 334 | 335 |
336 |
337 |
338 | 339 | ## 11 - Fuentes 340 | 341 | 342 | 343 | [To top...](https://github.com/pablojorgeandres/notas-clases/blob/master/postCSS.md#index) 344 | 345 |
346 |
347 |
348 | 349 | ## 12 - Selectores Personalizados 350 | 351 | 352 | 353 | [To top...](https://github.com/pablojorgeandres/notas-clases/blob/master/postCSS.md#index) 354 | 355 |
356 |
357 |
358 | 359 | ## 13 - Pseudo Clases 360 | 361 | 362 | 363 | [To top...](https://github.com/pablojorgeandres/notas-clases/blob/master/postCSS.md#index) 364 | 365 |
366 |
367 |
368 | 369 | ## 14 - Indentando (nesting) 370 | 371 | 372 | 373 | [To top...](https://github.com/pablojorgeandres/notas-clases/blob/master/postCSS.md#index) 374 | 375 |
376 |
377 |
378 | 379 | # Sección III - Plugins de PostCSS 380 | 381 |
382 |
383 | 384 | ## 15 - Modulariza tu código con postcss-Imports 385 | 386 | 387 | 388 | [To top...](https://github.com/pablojorgeandres/notas-clases/blob/master/postCSS.md#index) 389 | 390 |
391 |
392 |
393 | 394 | ## 16 - Auto font-face con FontMagician 395 | 396 | 397 | 398 | [To top...](https://github.com/pablojorgeandres/notas-clases/blob/master/postCSS.md#index) 399 | 400 |
401 |
402 |
403 | 404 | ## 17 - Validar CSS con Stylelint 405 | 406 | 407 | 408 | [To top...](https://github.com/pablojorgeandres/notas-clases/blob/master/postCSS.md#index) 409 | 410 |
411 |
412 |
413 | 414 | ## 18 - Agrupar Media Queries con mqpacker 415 | 416 | 417 | 418 | [To top...](https://github.com/pablojorgeandres/notas-clases/blob/master/postCSS.md#index) 419 | 420 |
421 |
422 |
423 | 424 | ## 19 - Optimiza CSS para producción con CSSNano 425 | 426 | 427 | 428 | [To top...](https://github.com/pablojorgeandres/notas-clases/blob/master/postCSS.md#index) 429 | 430 |
431 |
432 |
433 | 434 | ## 20 - Vocabulary for Marketing 435 | 436 | 437 | 438 | [To top...](https://github.com/pablojorgeandres/notas-clases/blob/master/postCSS.md#index) 439 | 440 |
441 |
442 |
443 | 444 | # Sección IV - Conclusiones 445 | 446 |
447 |
448 | 449 | ## 21 - Conclusiones del Curso de PostCSS 450 | 451 | 452 | 453 | [To top...](https://github.com/pablojorgeandres/notas-clases/blob/master/postCSS.md#index) 454 | 455 | --------------------------------------------------------------------------------