Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introducción
En este curso aprenderás desde los conceptos más básicos hasta los más
avanzados. Este es un curso distinto, donde aprender será lo más importante. No
hay notas, pero sí proyectos. recuerda que entre más tiempo dediques mejor será
tu desenvolvimiento por este motivo es importante que inviertas tiempo en
practicar fuera del horario de clases.
1. Introducción al curso
Contarás con toda la ayuda y buena disposición de tu profesor para ayudarte con
cualquier duda.
“Aprenderás muchas cosas, y está bien no recordarlo todo, pero siempre quedate
con el por qué aprendes y para qué sirve lo que aprendes”.
2. La importancia de la web
GitHub:
https://desktop.github.com
3. Programas a descargar
R-C
3. Software
ctrl
3. Información
Ejemplos:
"El gobierno Israelí recibió información acerca de dos de sus siete soldados
desaparecidos"
"Programar es el proceso de diseñar y escribir instrucciones para que una
computadora realice tareas específicas."
4. Bit
Existe por IBM desde la década de los 50 's como una forma de representar
caracteres y símbolos en una computadora.
Un puerto es una interfaz o conector ya sea interno o externo que se utiliza para
comunicar diferentes tipos de elementos de hardware o elementos de software que
nos permitan enviar y recibir datos de un equipo a otro.
9. O.S. (Operating System)
Es decir, todos los sitios a los que podemos acceder desde nuestros dispositivos a
través de un navegador web, como Google Chrome, Mozilla Firefox o Safari.
10. Sitio web
Hola
11. Frontend
El frontend es la parte de una aplicación o sitio web que el usuario final ve y con la
cual interactúa de forma digital usando HTML, CSS y JavaScript.
12. Backend
Tools - SEO
17. HTTP
En pocas palabras, HTTP define cómo las páginas web, imágenes, videos, audio y
otros contenidos son transferidos a través de Internet, desde servidores web hasta
navegadores web, mediante el uso de un conjunto de reglas y convenciones
(Petición y respuesta, Códigos de respuesta, Encabezados).
18. SSL
La interfaz de usuario es el medio con que el usuario puede comunicarse con una
máquina, equipo, computadora o dispositivo, y comprende todos los puntos de
contacto entre el usuario y el equipo.
20. UX
(Heinz)
21. CDN
(Fastly-21)
22. W3C
Es el demandante de un servicio
Ejemplo:
- Yo cuando voy al médico
- Yo cuando ingreso a youtube.com
25. Servidor
Ejemplo:
- El médico realizando un chequeo
- El computador (servidor) donde está alojado Youtube enviando la informacion
que pedi
26. Buscador web
google
28. Código
Mapa de instrucciones
29. Hosting
Hosting es el uso y provecho que se hace de los servidores web y de los recursos
que disponen.
30. Dominio
URL son las siglas en inglés de Uniform Resource Locator, que en español
significa Localizador Uniforme de Recursos.
Como tal, el URL es la dirección específica que se asigna a cada uno de los
recursos disponibles en la red con la finalidad de que estos puedan ser
identificados y localizados. Por esto existe un URL para cada uno de los recursos
(páginas, sitios, imágenes, documentos, carpetas) que hay en la World Wide Web.
32. API
Las APIs ofrecen grandes beneficios como ahorro de dinero y tiempo en desarrollo
de software.
32. API
33. Plugin
Los plugins son pequeños programas complementarios que amplían las funciones
de aplicaciones web y programas de escritorio.
34. Framework
Front-end
2. Desarrollador Back-end
Back-end
3. Desarrollador full-stack
Full-Stack
4. DevOps
DevOps
Fuente: nubity.com
5. Diseñador UI/UX
Por otro lado, el diseño UI o User Interface se centra en la parte visual. Es decir, si
UX se encarga de que un producto sea útil para los usuarios, UI lo hace atractivo y
visual.
UI/UX - airbnb
6. SEO specialist
SEO
Módulo III
Mouse: Dispositivo de la computadora que se maneja con una sola mano y permite
dirigir el movimiento del puntero sobre la pantalla para transmitir órdenes diversas.
Tarjeta madre: La placa base, también conocida como tarjeta madre, placa madre
o placa principal, es una tarjeta de circuito impreso a la que se conectan los
componentes que constituyen la computadora. Es una parte fundamental para
montar cualquier computadora personal de escritorio o portátil o algún dispositivo.
2. Editores de texto
Sublime text
2. Editores de texto
NotePad++
3. Entornos de desarrollo
Eclipse
3. Entornos de desarrollo
NetBeans
3. Entornos de desarrollo
Theia
4. Extensiones de utilidad
5. Navegadores
- Firefox
- Opera
- Google chrome
- Brave
- Safari
6. API
- https://rickandmortyapi.com
- https://rickandmortyapi.com/api/
- https://rickandmortyapi.com/api/character
- https://rickandmortyapi.com/api/episode
7. Librerías
Son procedimientos que pueden ser utilizados por otro código para realizar tareas
específicas. Por lo general, las librerías se escriben en un lenguaje de
programación y se distribuyen en archivos que pueden ser enlazados a un
proyecto.
- D3.js
- AnimeJS
- Hammer.js
8. Frameworks
- Laravel
- Tailwind
- Express.js
- Angular
- Vue.js
9. Controlador de versiones
My App v 1.0.0
9.1 Git
Lenguajes de programación
1. Lenguaje de programación
Ejemplos:
- Código binario
- Lenguaje Máquina
- Lenguajes ensambladores
3. Lenguajes de alto nivel
Ejemplos:
- Python
- Javascript
- PHP
- Java
- Ruby
4. Lenguajes compilados
Estos lenguajes tienen la particularidad que se ejecutan línea por línea, y en caso
de error. Puede haber un mal funcionamiento, pero el código se ejecutará línea por
línea.
Módulo V
El término 'Web 2.0' o 'Web social'es el término que describe la segunda generación de
sitios web, comprende aquellos sitios que facilitan compartir información, el diseño
centrado en el usuario y la colaboración en la World Wide Web. esta web permitió a los
usuarios interactuar y colaborar entre sí, como creadores de contenido.
Terminal de Linux
1. Terminal de linux
Para navegar por los archivos y directorios de Linux, usa el comando cd. Te pedirá la
ruta completa o el nombre del directorio, dependiendo del directorio de trabajo actual en
el que te encuentres.
El comando ls se usa para ver el contenido de un directorio. Por defecto, este comando
mostrará el contenido de tu directorio de trabajo actual.
Si deseas ver el contenido de otros directorios, escribe ls y luego la ruta del directorio. Por
ejemplo, ingresa ls/home/nombredeusuario/Documentos para ver el contenido de
Documentos.
El uso principal del comando mv es mover archivos, aunque también se puede usar para
cambiar el nombre de los archivos.
Los argumentos en mv son similares al comando cp. Debes escribir mv, el nombre del
archivo y el directorio destino.
Por ejemplo: mv archivo.txt /home/nombredeusuario/Documentos.
También puedes usar la opción -f para sobrescribir cualquier archivo con el mismo nombre
que ya exista en la carpeta de destino:
mv -f archivo.txt nueva_carpeta
7. mkdir (Make Directory)
Usa el comando mkdir para crear un nuevo directorio: si escribes mkdir Música,
creará un directorio llamado Música.
8. rmdir (Remove Directory)
Nota: Ten mucho cuidado con este comando y verifica en qué directorio te
encuentras. Este comando elimina todo y no se puede deshacer.
10. touch (Tocar / Crear)
Nota: cmder no puede emular todos los comandos de linux en windows y sudo
usualmente es uno de ellos
12. df (Disk Free)
Usa el comando df para obtener un informe sobre el espacio libre en el disco del
sistema, que se muestra en porcentaje y KB. Si deseas ver el informe en
megabytes, escribe df -m.
también puedes usar df -h
13. du (Disk Use)
Cuando hayas estado utilizando Linux durante un cierto período de tiempo, notarás
rápidamente que puedes ejecutar cientos de comandos todos los días. Como tal,
ejecutar el comando history es particularmente útil si deseas revisar los comandos
que ingresaste anteriormente.
15. Ejercicios extras
Github
1. Github
https://git-scm.com
3. GitHub Desktop
GitHub Desktop es una herramienta que ejecuta los comandos de GIT por ti de
forma fácil. Y te permite comunicar con la nube de GitHub
4. Repositorio
git init es un comando que se utiliza una sola vez durante la configuración inicial de
un repositorio nuevo. Al ejecutar este comando, se creará un nuevo subdirectorio .
git en tu directorio de trabajo actual. También se creará una nueva rama principal.
6. git publish
El comando git commit guardará todos los cambios hechos en la zona de montaje
o área de preparación (staging area), junto con una breve descripción del usuario,
en un "commit" al repositorio local.
8. Git push
git push se suele usar para publicar y cargar cambios locales a un repositorio
central (en la nube) después de modificar el repositorio local, se ejecuta un
comando push para compartir las modificaciones con miembros remotos del
equipo.
9. Git pull
El pull request puede ser generado desde github una vez creada una rama para
posteriormente ser denegada o hacer merge
13. Merge
Un fork (en español, "bifurcación") es una copia de un repositorio que se crea bajo
la cuenta de otro usuario. Es decir, una instancia de un repositorio original, pero sin
dejar de mantener un vínculo con éste.
Cuando haces un fork de un repositorio, obtienes una copia idéntica del repositorio
original en tu propia cuenta de GitHub, que puedes modificar y trabajar de manera
independiente.
El archivo especial .gitignore le indica a Git qué archivos o carpetas no deben ser
incluidos en un repositorio mediante patrones de nombres que Git debe ignorar al
realizar seguimiento de los cambios en un repositorio.
Las convenciones son reglas o pautas que se suelen seguir en la plataforma para hacer que el trabajo en
proyectos de código sea más eficiente y sencillo.Algunas de estas convenciones son:
- Usar un archivo README.md en la raíz del repositorio para proporcionar información general sobre el
proyecto y cómo utilizarlo.
- Usar etiquetas (tags) para marcar versiones estables del código y hacer referencia a ellas en el archivo
CHANGELOG.md.
- Usar ramas (branches) para separar el desarrollo en curso del código estable. Por ejemplo, se suele
usar una rama master para el código estable y ramas develop o feature para el desarrollo en curso.
- Usar solicitudes de pull (pull requests) para revisar y aprobar los cambios antes de que se integren al
código estable.
- Usar un archivo .gitignore para excluir archivos que no se deben incluir en el control de versiones (como
archivos binarios o archivos de configuración local).
- Usar un archivo LICENSE para especificar los términos de uso y distribución del código.
17. Ejercicios extras
HTML
1. HTML
Las etiquetas HTML son pequeños bloques de código, que indican al navegador
cómo debe interpretar el contenido recogido entre dichas etiquetas. Por ejemplo, si
queremos «pintar» un párrafo de texto, hay una etiqueta específica para que el
navegador interprete ese texto como un párrafo.
3. Sintaxis de HTML
Prueba: Contenido de la etiqueta (En este caso es simplemente un texto que dice
Prueba), el contenido de una etiqueta siempre va entre su etiqueta de apertura y
etiqueta de cierre
</p>: Etiqueta de cierre, indica donde finaliza la etiqueta. Siempre lleva un / antes
del nombre
Esta es una etiqueta auto conclusiva, debido a que como que puedes se conforma
de una sola etiqueta. Solo hay un par de etiquetas que son autoconclusivas. Y el
motivo de esto es porque son etiquetas que no contienen información.
En este caso la etiqueta HTML tiene una propiedad o también llamado atributo.
Esta sirve para agregar una funcionalidad o brindar más información.
Existe una gran variedad de etiquetas HTML, por lo cual puedes utilizar la
siguiente documentación para tener una referencia de todas las etiquetas HTML
disponibles.
https://www.w3schools.com/tags/default.asp
7. Estructura de una página web
7. Estructura de una página web
<!DOCTYPE html>
Esta etiqueta es única, y su función es decirle a los navegadores que este es un
documento HTML
<html lang="en">
Esta etiqueta contiene todo el HTML interior de la página, contiene una propiedad
lang para definir el lenguaje de la página.
<head>
La etiqueta head se utiliza para contener información no visible directamente en el
contenido de la página, como el título de la página.
<title>Document</title>
Esta etiqueta define el título de una página.
<body>
Contiene el contenido de la página web.
8. Etiquetas importantes
1) Realiza la estructura base de una página web coloca el título de la página como como
‘Prueba’ y con en h1 dentro del body escribe tu nombre.
2) Agrega una imagen de internet de 500px de ancho debajo del título que muestre
“Imagen no encontrada” al colocar mal la ruta.
3) Crear una carpeta llamada “Imagenes”, guardar una imagen de 300px de ancho y
añadirla a la página
4) Crea una lista organizada debajo de la imagen. Que contenga tres pasos:
1. Estudiar HTML, 2. Practicar HTML, 3. Repetir.
5) Agregar un párrafo con un Lorem Ipsum redirija a Youtube
6) Agregar 5 saltos de línea y luego coloca otro párrafo con un Lorem Ipsum
7) Añade un botón que diga “Presioname” que te lleve a Google en una nueva pestaña
8) Añade un input de texto que muestre el texto “Usuario” y otro de contraseña que
muestre el texto “Password”
9) Crea un formulario que solicite: Nombre de usuario, contraseña, email,fecha de
nacimiento, dirección, país.
Módulo IX
CSS
1. CSS
CSS significa: Cascade Style Sheets, que se traduce al español como “Hojas de
Estilo en Cascada”.
Documentación: w3schools
2. Cómo aplicar CSS
3. El CSS también puede ser agregado dentro de un archivo CSS. Para esto
primeramente debemos crear un archivo con extensión CSS ejemplo:
archivo.css.
Una vez creado se debe llamar al archivo CSS dentro del archivo HTML a
través de la siguiente etiqueta: <link rel="stylesheet" href="archivo.css">
3. Sintaxis de CSS
p {
color: red;
}
- “p”, este es el primer elemento en el ejemplo. Y este es un selector. Es decir,
estamos nombrando al elemento al cual le queremos agregar estilos. (Un
párrafo)
- color: red, color es una propiedad, esta modifica el color del texto. Una vez
colocada una propiedad debemos colocar dos puntos, para luego indicar un
valor, en este caso es rojo (red). Es importante destacar que una vez
terminemos de colocar un valor, se debe terminar con punto y coma.
4. Tipos de selectores en CSS
1. Etiquetas HTML: son las etiquetas disponibles en HTML, para seleccionarlas solo
tenemos que nombrarlas como en el ejemplo anteriormente mostrado.
2. Selector de ID: El ID es una propiedad que podemos agregar a un elemento HTML, para
hacerlo único y poder seleccionar únicamente a ese elemento. Para seleccionar un ID
se debe hacer con un numeral.
Ejemplo:
En HTML: <p id="prueba"> hola </p>
En CSS: #prueba
3. Selector de clases: la clase es una propiedad que podemos agregar un elemento HTML,
para asignarlo a un grupo de elementos. Para seleccionar una clase se debe hacer con
un punto.
Ejemplo:
En HTML: <p class="prueba"> hola </p>
En CSS: .prueba
5. Propiedades básicas
Existe una gran variedad de propiedades CSS, algunas son más utilizadas que
otras.
Por aquí dejo la lista de todas las propiedades CSS que existen.
https://www.w3schools.com/cssref/default.asp
6. Algunas propiedades de CSS
- Crear 4 columnas en donde cada una contenga una imagen que ocupe el
100% del ancho de su respectiva columna.
- Volver responsive el paso anterior
- Crear 5 botones redondeados y azules en línea que cuando el mouse esté
sobre de alguno, el botón cambie su color de fondo a naranja.
- Crea una clase que haga los textos rojos, y un id que haga los textos bold y
aplicarlas sobre un H1
- Agregar el color de fondo beige de forma hexadecimal a la etiqueta body
Módulo X
Lógica de programación
1. Algoritmos
funciona algo o cómo deben seguirse ciertos pasos para llegar a un resultado
determinado.
Descarga: https://dfd.waxoo.com/descargar
o
https://pseint.sourceforge.net/index.php?page=descargas.php
3. Lenguajes de programación
https://www.redusers.com/noticias/wp-content/uploads/2022/05/leng.jpg
https://www.talent-republic.tv/wp-content/uploads/2020/07/lenguajes-desarrolladore
s.png
4. Pensamiento abstracto
Ej: Al ver un gato negro podríamos ponernos a pensar sobre los distintos tipos de
gatos que hay, sobre felinos en general, o sobre por qué la gente es supersticiosa.
https://www.lifeder.com/pensamiento-abstracto/
5. Proceso de realización de un software
5. Proceso de realización de un software
Módulo XI
Pre-Procesadores
1. Pre-procesadores
sass --version
- Sintaxis
- Como cambia SASS el código y porque es diferente a CSS
- $Variables
- Comentarios
- @mixin (con o sin parámetro)
- BEM (Block, Element, Modifier)
- @extend
- @each
- funciones
- @import (Modularización)
Módulo XII
Librerías
7. Qué son las librerías
Pero estas funcionalidades siempre cumplen con un solo objetivo, ej: realizar
operaciones matemáticas complejas, crear una interfaz, realizar animaciones,
estilizar.
8. Qué son los frameworks
Documentación oficial:
https://getbootstrap.com/docs/5.1/getting-started/introduction/
9. Tailwind
Documentación oficial:
https://tailwindcss.com/docs/installation
10. Puntos importantes de Tailwind
AOS
Animate.css
CSShake
9. Ejercicios extras
JavaScript
1. ¿Qué es Javascript?
https://www.w3schools.com/js/js_syntax.asp
4. ¿Cómo escribir JS?
Una vez creamos el archivo tenemos que llamarlo en nuestro archivo HTML con la
siguiente etiqueta:
<script src="prueba.js"></script>
7. Variables
Para declarar una variable global solo tienes que utilizar la palabra “var” luego
darle un nombre a la variable como en el ejemplo: “variableGlobal” y luego
asignarle (con el signo de igualdad ) un valor.
9. Variables locales
Las variables locales solo se pueden utilizar al nivel de sección de código donde
se haya definido (scope). Y una vez que las variables terminan su propósito, esta
es borrada de la memoria RAM aligerando los recursos consumidos por el
programa.
Para declarar una variable local hay que utilizar la palabra “let”, seguido del
nombre de la variable y le asignamos un valor.
10. Constantes
Las constantes funcionan de la misma forma que una variable local, pero con la
particularidad de que una vez le asignamos un valor, este no puede ser
modificado.
Un valor constante en la vida real podría ser el número PI.
11. Imprimir un mensaje en consola
Sección 3 Sección 4
- ES6 (.map, arrow functions) - Try-Catch
- DOM - Funciones asíncronas (setInterval, setTimeout)
- Selectores (id, className, tagName) - Asincronismo (Callbacks, Promesas, Async-Await)
- Eventos - JSON
- Clases - Fetch / Axios
- Regex (Expresiones regulares) - PROYECTO
- PRÁCTICA
14. Ejercicios extras
Servidores locales
1. Servidores locales
- XAMPP:
https://www.apachefriends.org/es/index.html
- MAMP:
https://www.mamp.info
- WampServer:
https://www.wampserver.com/
Módulo XV
WordPress
1. WordPress
- link: https://ve.wordpress.org/download/
6. Instalación de WordPress
https://www.000webhost.com
https://infinityfree.net
9. Ejercicios extras
Optimización web
1. La optimización web
La optimización web ha ido ganando terreno en los últimos años, tanto es así que
se ha creado una disciplina dentro del mundo online llamada WPO, ‘Web
Performance Optimization‘. Esta disciplina consiste en hacer llegar las webs al
usuario en el menor tiempo posible, dentro de un margen razonable.
WEBP:
https://www.adslzone.net/reportajes/foto-video/webp-formato-ventajas/
SVG:
https://es.wikipedia.org/wiki/Gráficos_vectoriales_escalables
Optimización de imágenes:
https://kinsta.com/es/blog/optimizar-imagenes-para-la-web/
2. Imágenes
https://aws.amazon.com/es/caching/
6. Optimización de código
- wp-optimize
7. Cómo aplicar esto en código
https://gtmetrix.com
https://pagespeed.web.dev
Módulo XVII
SEO
1. SEO
En si la etiqueta más relevante para hacer seo podría ser la etiqueta <meta/> que
es utilizada para contener metadatos como las descripciones del sitio web o si
debe ser indexado o no a los buscadores.
https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/los-meta-tags-mas-i
mportantes-y-su-funcion/
4. HTML semántico
Sin embargo, los metadatos no es lo único que los buscadores evalúan. Hay
motivos por los cuales nuestro HTML, CSS y JS son públicos. Y es que estos son
analizados en los buscadores, para obtener mejores resultados en SEO es
importante utilizar HTML semántico.
Además es importante acotar que siempre es positivo tener en cuenta las prácticas
de usabilidad.
5. Marcado de esquemas
https://www.hostinger.es/tutoriales/que-es-schema-markup
https://technicalseo.com/tools/schema-markup-generator/
6. Plugins para aplicar esto en Wordpress
- Yoast SEO
6. Cómo aplicar esto al código
Seguridad informática
1. ¿Qué es la seguridad informática?
Las razones son simples, las fallas en nuestros sistemas pueden causar:
- Caída de servicios
- Robo de datos
- Modificación malintencionada de información
- Estafas
3. ¿Cuáles son los elementos más inseguros?
En una página web o aplicación web los elementos más vulnerables son los
siguientes:
- Imágenes
- Cualquier lugar donde el usuario pueda enviar información a nuestro servidor
- Nuestros paneles de administración
- Los servidores en sí
- La propia interacción humana
4. ¿Cómo evitar las fallas de seguridad?
Puede llegar a ser difícil detectar las fallas en tus sistemas, pero solo uno es
suficiente para hacer mucho daño. Sin embargo, dependiendo del tamaño de tu
proyecto trata de tomar en cuenta lo siguiente:
Encontrando trabajo
1. Introducción
Por otra parte, entiende que los participantes pueden ser de distintas áreas de
trabajo, desde desarrolladores (programadores), diseñadores, mercadólogos,
abogados y hasta estudiantes. Toma de este curso lo que veas más útil para ti.
2. Trabajar en una empresa
Cuando pensamos en trabajo, muchas personas piensan en una empresa. Por eso
este es el primer punto del curso, y aunque es innegable que la industria de la
tecnología produce una gran cantidad de trabajos. Según tu área puede haber
ciertas ventajas y desventajas, también puede ser más o menos la facilidad para
encontrar trabajo.
Una startup es una organización humana con gran capacidad de cambio, que
desarrolla productos o servicios de gran innovación, altamente deseados o
requeridos por el mercado, donde su diseño y comercialización están orientados
completamente al cliente.
Esta estructura suele operar con costos mínimos, pero obtiene ganancias que
crecen exponencialmente, mantiene una comunicación continua y abierta con los
clientes, y se orienta a la masificación de las ventas.
Como puedes suponer, estas empresas pagan poco debido a que son empresas
nuevas pero que pueden tener un retorno de inversión agresivo si las cosas se
hacen bien.
2. Trabajo en startups (Empresas pequeñas)
Sin embargo, pagar poco no quiere decir que debes regalar tu trabajo, ten eso en
claro. Usualmente aunque en estas empresas puedes ganar poco
monetariamente, son en las que más experiencia y roles puedes ganar.
Las empresas grandes pueden pagar mejor, pero aprenderás menos que en una
empresa pequeña, debido a que solo te centraras en una cosa en específico.
4. Medios de reclutamiento en una empresa
Tienes que ver el CV como una carta de presentación, y estás pueden ir en dos tipos, las
tipo “wow” y las tipo estándar, y ambos están bien puesto que hay empresas en donde
debes dejar tu CV con un formato específico, esto pasa especialmente en empresas
Europeas y Estadounidenses.
Trata de ser realmente relevante con esta carta de presentación. Coloca lo qué más
destaque de tus experiencias y es importante que sea relevante para el puesto al que
aplicas.
Por ejemplo, si aplicas para un trabajo sobre diseño gráfico o desarrollo de software, no
pongas tu experiencia en repostería, esto no es relevante para estos puestos.
Cabe destacar que aunque el CV es una herramienta estándar, hay algunas que generan
mucho más impacto, y las veremos a continuación…
6. Portafolio
Hoy en día las empresas más modernas entienden que hay algo más importante
que las habilidades técnicas y son las habilidades blandas.
Las empresas prefieren contratar a personas que tengan una buena capacidad de
resolución de problemas, honestidad, imaginación, responsabilidad antes que a
una persona que conozca todo lo técnico.
Esto debido a que lo técnico es relativamente fácil de aprender, pero cosas como
las mencionadas anteriormente no se pueden aprender tan fácil en un curso.
8. Trabajo freelance
Sin embargo, una vez queremos profundizar y vivir de trabajos freelancer tenemos
que expandir nuestro alcance utilizando todo medio posible para atrapar trabajos.
Existen múltiples páginas web para obtener trabajo, sin embargo para su
utilización hay que tener ciertos puntos claros:
- Estas páginas retendrán el dinero que cobres por cada trabajo y solo lo
liberaran pasado un tiempo, si el cliente confirma el trabajo hecho o tras
acumular cierta cantidad.
- Se quedarán con un % del trabajo.
- En un inicio puede ser difícil conseguir los primeros trabajos.
- Puede haber una gran competencia, de hecho para cada trabajo tendrás que
competir con una gran cantidad de personas.
11. freelancer.es
Página israeli que también está muy bien posicionada a nivel internacional y
cuenta con una gran comunidad hispano y anglo parlantes, es un mercado de
subcontratación de servicios freelance en línea. La plataforma permite a los
empleadores conectarse con trabajadores independientes y de una amplia gama
de industrias en todo el mundo.
Link: https://es.fiverr.com
14. Nota
Esto dependerá del tipo de trabajo que realizas. ¿Diseño gráfico? ¡Instagram y
dribble! son buenas opciones, pero la respuesta es un poco relativa. Piensa a qué
clase de gente quieres llamar la atención. Por ejemplo, la gente de Ecuador
probablemente utiliza más facebook que otras redes sociales, pero en España
probablemente sea WhatsApp la más utilizada.
Una vez que tengas claro a qué países y medios quieres llamar la atención, solo te
queda mostrarle al mundo lo que haces. Esto se dice fácil, pero la verdad requiere
de mucha constancia.
17. Herramientas para redes sociales
Esta sección está para ayudar un poco a las personas que de repente tienen poco
o nada de conocimientos sobre cómo crear contenido y facilitar al menos un poco
esta tarea.
Diseño:
Canva (Imagen), InShot (Video)
Organización:
Google slides
18. Campañas publicitarias
Esta es una herramienta que todos disponemos hoy en día pues todas las redes
sociales tienen servicios de promoción de fácil adquisición y manejo. Puedes
invertir desde pequeñas a grandes cantidades de dinero y obtener resultados muy
positivos según el área de interés y forma de promocionar.
Fuera de instagram, facebook, twitter, linkedin y otras redes sociales también hay
servicios de promoción en Google o Youtube, que según el público y método
configurado puede brindarnos resultados más acertados.
19. Networking
Para determinar cuánto cobrar por un trabajo te recomiendo realizar los siguientes
pasos…
21. ¿Cuánto puedo cobrar por mi trabajo?
Una vez determines el precio para el trabajo por experiencia, muchas cosas
podrían ocurrir. Confía en lo que determinaste. Sí, habrá más gente que lo podrá
hacer más barato e incluso gente que cobrará más. Pero ten confianza en ti mismo
y estudia más cada día, volverte mejor en lo que haces te dará más posibilidades
de encontrar buenas ofertas o trabajos.
23. Consejo extra
Siempre antes de dar algún precio, asegúrate de que realmente estás evaluando
todo lo que el trabajo involucra.
Módulo XX
Cabe destacar que aunque aquí aprenderás una base sobre como hacer deploy de
algunas aplicaciones, puede ocurrir que ciertas tecnologías requieren de pasos
extras o servicios especializados.
3. Dominio
Una vez adquirido el dominio necesitamos realizar una configuración de los DNS
(Domain name system), esto lo harás en el sitio donde compraste el dominio. Y lo
que haremos es que el dominio apunte a una IP (Y esta IP será la de nuestro
servidor). Aquí tienes un ejemplo:
3. Dominio
El “tipo” este hace referencia al tipo de registro, estos sirven para agregar
información sobre el dominio, subdominio, servidor de correos y otras
configuración. Aquí puedes leer más sobre cada tipo de registro:
https://support.google.com/a/answer/48090
3. Dominio
El TTL o Tiempo de vida (Time to live) es un mecanismo que se usa para limitar la
duración de la información que circula por la red. Esto evita que la información se
mueva indefinidamente por Internet, favoreciendo la privacidad y el rendimiento.
4. Hosting
- Azure (Microsoft)
- AWS (Amazon)
Azure y AWS son plataformas de servicios en la nube que ofrecen una amplia
gama de servicios de alojamiento, almacenamiento, computación y otros servicios
relacionados en la nube. Estas plataformas se enmarcan en la categoría de
proveedores de servicios de infraestructura en la nube.
7. Cómo acceder a un servidor
- SSH: Secure Shield (SSH) es un protocolo que garantiza que tanto el cliente
como el servidor remoto intercambien informaciones de manera segura y
dinámica. El proceso es capaz de encriptar los archivos enviados al directorio
del servidor, garantizando que las alteraciones y el envío de datos sean
realizados de la mejor forma.
- FTPS: En esencia, FTPS (FTP sobre SSL) es un protocolo seguro de
transferencia de archivos que le permite conectarse de forma segura con sus
socios de Negocio, clientes y usuarios.
- Panel de control: Interfaz instalado en el servidor para interactuar con el
servidor
7. Cómo acceder a un servidor
- Cada destacar que todos los servidores suelen tener una carpeta en donde
se encuentran todos los archivos públicos de un cierto dominio, usualmente
esa carpeta suele ser llamada public_html, aunque que quizás puede que
tenga un nombre distinto
Módulo XXI
Manejo de facturación
1. Facturación
Si te pidieran una cotización para realizar una página web, debes tener en claro
todos los elementos por los cuales cobraras. Pues, no puedes simplemente decir
una cantidad de dinero por un trabajo que se define como “Realizar una página
web”. Algunos de estos elementos son:
Para poder cotizar un proyecto, necesitas tener en claro todo lo que harás. Pero
además, entender que tú eres el profesional en el área, el cliente muchas veces
puede que no sepa lo que quiere o lo que necesite, y que cosas conllevan hacer
ese trabajo. Aquí te dejo algunas preguntas que es importante que realices para
poder brindar una mejor cotización
- ¿Qué tipo de página web quiere? Puede ser: empresarial (página web
estándar), e-commerce (tienda en línea), blog, etc
- ¿Cual es su objetivo principal con la página web?
- ¿Cuáles son sus objetivos secundarios?
- ¿Cuáles son las referencias para su sitio web?
3. Preguntas
Esto solo puede llevar a la incomodidad de alguna de las dos partes. O comunicas
que lo que él expresa no se incluyó en el presupuesto y que realizar esa tarea
costaría más dinero o decides realizarlo sin cobrar por ello.
5. Cómo presentar una cotización
Muchas personas pueden llegar a ser algo liberales o informales sobre esto,
enviando por ejemplo: la cotización por whatsapp. Esto es una muy mala práctica,
debido a que la cotización es algo que especifica todo lo que harás y te respalda
en el caso de cualquier mal entendido, por ello. Aunque si puedes enviar la
cotización por esa vía, se recomienda siempre enviarla por correo también.
Además recuerda dar los detalles de TODO lo que harás, para de esa forma
justificar el precio de tu trabajo, pues algunas personas pueden pensar:
5. Cómo presentar una cotización
“Hacer ese trabajo es fácil y rápido” o pensar de forma muy simplificada sobre tu
trabajo.
Agrega imágenes: Puedes agregar imágenes sobre tus proyectos y dar una
reseña sobre lo que es y los lenguajes y herramientas empleados para el
desarrollo del mismo.
Nota: Si deseas crear una cuadrícula con estos elementos puedes usar la etiqueta
<table> para definir la cuadrícula, <tr> para las filas y <td> para las columnas de la
cuadrícula en la fila insertada.
¿Cómo editar un archivo readme.md?
Añade botones personalizados: Para hacer más atractivo tu perfil utiliza imagen
personalizadas para tus botones, también puedes usar un generador de botones
personalizados como shields.io
NOTA: Al ser un documento .md las propiedades de CSS son nulas, es por eso
que se toman ciertos atajos para la organización y estilizado de este documento.
¿Cómo editar un archivo readme.md?
NOTA: Al ser un documento .md las propiedades de CSS son nulas, es por eso
que se toman ciertos atajos para la organización y estilizado de este documento.
Una práctica adicional, pero no menos importante para tener un buen perfil es
destacar los repositorios (proyectos) más elaborados fuera del archivo .md
Módulo XXIII
DevTools
¿Qué son las DevTools?
Para abrir las herramientas de desarrollador, normalmente se puede hacer clic con
el botón derecho en cualquier parte de la página y seleccionar "Inspeccionar" o
presionando F12 en el teclado.
React JS
1. ¿Qué es ReactJS?
React es una biblioteca Javascript de código abierto diseñada para crear interfaces
de usuario con el objetivo de facilitar el desarrollo de aplicaciones en una sola
página. Es mantenido por Facebook y la comunidad de software libre.
https://es.reactjs.org
2. Crear una aplicación de react
Este comando creará una aplicación en react por default, una vez creada puedes
acceder a ella y ejecutar de la siguiente manera (en este caso, nuestro proyecto se
llama my-app)
cd my-app
npm run start
Pero dicho de forma más sencilla. Es simplemente una función de JavaScript con
la particularidad de que retorna HTML.
5. Creando un componente
Para crear un componente solo crea un nuevo archivo jsx, en este caso crearemos
un archivo llamado Test.jsx. Este contendrá una función que retornará un h1 con
un Hola Mundo. Y permitiremos la exportación de este.
5. Creando un componente
Una vez creado el componente, debemos llamarlo en alguna parte. En este caso
importamos el componente Test y lo renderizamos de la siguiente forma en el
archivo index.js
6. React Router
https://www.w3schools.com/REACT/react_router.asp
7. Hooks
Los Hooks son funciones que te permiten “enganchar” el estado de React y el ciclo
de vida desde componentes de función.
Nota: Los hooks no funcionan dentro de las clases, pero puedes usar React sin
clases.
8. useState()
https://www.w3schools.com/REACT/react_useeffect.asp
11. useRef()
Puede ser utilizado para guardar un valor que cambiara y no causar una
renderización cuando sea actualizado.
https://www.w3schools.com/REACT/react_useref.asp
12. DOM
https://lenguajejs.com/javascript/dom/que-es/
13. Hooks personalizados
Cuando tienes una lógica que necesita ser utilizada varias veces en varios
componentes, podemos crear un hook personalizado.
14. Consumo de una API
Existen varios tipos de API, algunas son bastante sencillas, para utilizar algunas
API necesitas tener permisos para utilizarla ya sea a través de un código o utilizar
la API a través de una IP permitida.
}, []); //Sin dependencias para solo cargar la API una sola vez.
Hay ciertas API que para interactuar con ellas necesita tener una KEY, esta es
básicamente una contraseña. A veces para obtener una KEY necesitas pagar o
simplemente registrarte en alguna página. A continuación se te mostrará un
ejemplo de cómo interactuar con una API con Key
15. Consumo de una API con KEY
const options = {
method: 'GET',
headers: {
'X-RapidAPI-Key': 'xxxxx',
'X-RapidAPI-Host': 'airbnb13.p.rapidapi.com'
}
};
15. Consumo de una API con KEY
const [data, setData] = useState(null);
useEffect(() => {
//Ingresamos el URL como primer parámetro y como segunda la constante de
opciones
fetch("link", options)
.then((res) => res.json())
.then((data) => setData(data));
}, []);
Diseño web
1. ¿Qué es el diseño web?
El diseño web implica trabajo relacionado con el layout y diseño de páginas online,
así como la producción de contenido, aunque generalmente se aplica a la creación
de sitios web.
2. Wireframes
https://kinsta.com/es/blog/mejores-practicas-diseno-web/
5. Cómo funcionan estas herramientas
- Diseño: esta sección es para que puedas modificar todos los elementos,
formas, colores, tamaños, textos, etc. De cada una de las páginas de tu
diseño
- Prueba: Aquí podrás tener la experiencia más cercana a una aplicación, pues
podrás visualizar tu diseño como si fuera una página web/app
5. Cómo funcionan estas herramientas
Las herramientas de diseño UI/UX suelen ser bastante intuitivas y fáciles de usar,
debido a que realmente estas simulan bastante bien lo que podrías hacer en HTML
y CSS, si eres conocedor de estas tecnologías. Será bastante fácil entender todo
lo que puedes hacer en estas herramientas de diseño
6. Figma
Además, una de las características que tiene Figma es que, al estar basada en el
navegador, puedes compartir el proyecto con tu equipo y hacer modificaciones en
la misma mesa de trabajo.
Link a figma:
https://www.figma.com
7. Ejercicios extras
TypeScript
1. ¿Qué es TypeScript?
Documentación:
https://www.w3schools.com/typescript/
2. Opiniones sobre TypeScript
npm init -y
luego de ello instala todos los paquetes de Node Js con el siguiente comando:
npm i
Y finalmente, cuando quieras compilar los archivos TypeScript puedes hacerlo con
el comando:
npx tsc
Módulo XXVI
Python
1. Python
link: https://www.w3schools.com/python/
Puntos importantes
Sección 1 Sección 2
- Comentarios - Scope y Variables
- Tipos de datos - Función sin parámetros
- Operadores comparativos - Función con parámetros
- Operadores aritméticos - Métodos (Strings, Listas, Tuplas, Diccionarios)
- Operadores de asignación - Loops (for, while)
- Operadores lógicos - Clases
- Input y Print - Try-Except
- Concatenación y F-Strings - Manejo de Archivos
- Condicionales - PRÁCTICA
(if,elif,else,ternario,match-case)
- PRÁCTICA
4. Ejercicios extras
link: https://www.w3schools.com/mysql/default.asp
5. Ejercicios extras
PHP
1. Qué es PHP
El navegador no entiende PHP, este se tiene que correr por parte del server. Para
ello necesitamos que el servidor local ejecute el código PHP
3. Documentación PHP
Link: https://www.w3schools.com/php/
4. Puntos importantes
Una vez el usuario se registre, debe aparecerte una pantalla en donde pueda
visualizar sus datos
6. Ejercicios de PHP
OPCIONAL:
Modelo MVC
1. Modelo MVC
Laravel
1. Laravel
https://laravel.com/docs/9.x/installation
3. Cosas que necesitamos para instalar Laravel
Composer:
https://getcomposer.org/download/
4. Instalar instalador de laravel
Una vez instalado composer, tenemos acceso a instalar paquetes que formen
parte de este gestor de paquetes. Ingresa el siguiente comando para instalar un
instalador de laravel:
Una vez instalado puedes hacer uso de este creando tu primer proyecto en Laravel
con el siguiente comando
laravel new (nombre de la aplicación) O laravel new --jet (login/register incluido) (nombre de la
aplicación)
Nota: esto instalará una versión de Laravel óptima para tu PC según la versión de
PHP que tengas instalado.
4. Instalar instalador de laravel
Luego de instalar JetStream, tenemos que instalar todos los paquetes de NODE
necesarios.
Con el comando:
- npm install
o en su versión corta
- npm i
Cabe destacar que cada versión de laravel puede tener una estructura de carpetas
un poco diferente. La destacada a continuación es la versión 9.
https://laravel.com/docs/9.x/structure
5. Estructura de carpetas de laravel
El archivo .env es el archivo que contiene las variables de entorno, esto significa
que tiene variables que son de importancia para la aplicación y que quizás
necesitan ser resguardadas en un archivo privado que no se suba a GitHub.
En Laravel nunca tocamos la base de datos directamente, sino que lo hacemos a través
de laravel. De esta forma todos los desarrolladores pueden tener la misma estructura
de base de datos en cualquier momento. Un migration representa a una tabla de la
base de datos (SQL) que es código y puede ser ejecutado para crear la estructura de
base de datos en cualquier pc. Aquí puedes conseguir más documentación al respecto:
https://laravel.com/docs/9.x/migrations#main-content
Un factory es la estructura de datos que creamos con FAKER una librería para
crear datos falsos, una vez creada la estructura podemos ejecutar el archivo
seeder para ejecutar estos.
Aquí puedes ver un ejemplo de un Factory que funciona para la tabla usuarios,
crea nombres, emails, verificaciones, contraseñas y tokens aleatorios
11. Archivos blade
Blade es un gestor de plantillas que nos permite utilizar HTML con funcionalidades
de un lenguaje de programación con condicionales, switches, loops y más.
Los archivos que utilizan blade siempre tienen la extensión .blade.php, estos se
encuentran dentro de la carpeta resources/views
12. Componentes de blade
<x-(nombre) />
13. livewire
Para crear un modelo con un factory y una migration puedes utilizar el siguiente
comando
php artisan make:model Video(singular) -mcf
https://laravel.com/docs/9.x/eloquent-serialization
14. Modelos
14. Modelos
- Realiza una aplicación de blogs (donde puedas ver todos los blogsy un blog),
crear 100 blogs falsos
- Crear un formulario donde puedas crear datos.
- Crear un formulario donde puedas actualizar un blog.
- Crea un botón para eliminar un blog.
- Crea un sistema para manejar un inventario de comida
Módulo XXXI
NoSQL se refiere a una base de datos no relacional o no SQL. Una base de datos
relacional es un formato de bases de datos muy estructurado basado en una tabla,
como MySQL u Oracle. Las bases de datos NoSQL están orientadas a los
documentos y le permiten almacenar y recuperar datos en formatos que no sean
tablas. Algunas de las plataformas NoSQL más conocidas son MongoDB,
Elasticsearch® y Redis®.
2. ¿Qué es MongoDB?
MongoDB es una base de datos de documentos que ofrece una gran escalabilidad
y flexibilidad, y un modelo de consultas e indexación avanzado.
link: https://www.w3resource.com/mongodb-exercises/
4. Algunos comando a utilizar
db.(colección).find()
db.(colección).insert({nombre:”Juan Rodriguez”, edad: 24})
db.(colección).insertOne({nombre:”Juan Rodriguez”, edad: 24})
db.(colección).insert(variable)
db.(colección).insertMany([{nombre:”Juan Rodriguez”, edad: 24},{nombre:”Juan
Rodriguez”, edad: 24}])
db.(colección).remove({})
db.(colección).remove({‘_id’:ObjectId(“****”)})
db.(colección).remove({‘$or’:[{“nombre”:”juan”},{“nombre”:”carlos”}]})
db.(colección).deleteOne({‘$or’:[{“nombre”:”juan”},{“nombre”:”carlos”}]})
db.(colección).deleteMany({‘$or’:[{“nombre”:”juan”},{“nombre”:”carlos”}]})
db.(colección).deleteMany({‘$and’:[{“nombre”:”juan”},{“ciudad”:”Maracaibo”}]})
4. Algunos comando a utilizar
db.(colección).update({‘_id’:ObjectId(“****”)}, {$set:{nombre:”hola”}})
db.(colección).update({‘_id’:ObjectId(“****”)}, {$set:
{fechaDeNacimiento:ISODate(‘1998-05-26’)}})
db.(colección).update({‘_id’:ObjectId(“****”)}, {$unset:{edad:1}})
db.(colección).update({“edad”:{$gte:30}}, {$set:{edad:30}})
db.(colección).update({“edad”:{$gte:30}}, {$set:{edad:30}, {multi:true})
4. Algunos comando a utilizar
db.(colección).find({nombre:/^J/i})
db.(colección).find({nombre:/^J$/i})
db.(colección).countDocuments({nombre:/a/i})
db.(colección).find({edad: {$gte:40}}).count()
db.(colección).find({area:{$in:['compras','ventas']},sexo:'F'}).sort({edad:-1}).limit(1)
4. Algunos comando a utilizar
db.(colección).update({‘_id’:ObjectId(“****”)}, {$push:{telefono:'04146012659'}})
db.(colección).update({‘_id’:ObjectId(“****”)},{$push:{deportes:
{'pelota':'futbol','acuaticos':'natacion'}}})
db.(colección).aggregate([{$match:{genero:'F',edad:{$gte:20}}},{$group:
{_id:'$area',total:{$sum:'$salario'}}}])
db.createCollection('test');
db.getCollection(colección).drop()
db.empresa.aggregate([{
$lookup: {
from: "users",
localField: "edad",
foreignField: "edad",
as: "edades"
}}]);
5. Ejercicios extras
Algunos ejercicios:
https://gist.github.com/AlejoJamC/eb91b093d98b82a2a05ac330e20ead28
Módulo XXXII
NodeJs
1. ¿Qué es NodeJs?
https://www.w3schools.com/nodejs/default.asp
2. ¿Quienes utilizan NodeJs?
- Netflix
- PayPal
- Uber
- Linkedin
- Ebay
3. ¿Que necesito para utilizar NodeJs?
Para utilizar o iniciar un proyecto en NodeJs primero crea una carpeta y en esta
ejecuta el comando:
npm init -y
"nodemon index.js"
4. Utilización de NodeJs
npm i nodemon -D
npm i express
5. ExpressJs
Métodos:
Get: Obtener
Put: Modificar/Actualizar (Todo un elemento)
Patch: Modificar/Actualizar (Parcialmente un elemento)
Post: Crear
Delete: Eliminar
6. API REST: Representational State Transfer
7. ENDPOINTS
Los endpoints son las URLs de un API o un backend que responden a una
petición. Los mismos entrypoints tienen que calzar con un endpoint para existir.
Algo debe responder para que se renderice un sitio con sentido para el visitante.
8. Iniciar un proyecto de NodeJs
una vez realizado los pasos anteriores crear un archivo index.js, en donde puedes agregar lo
siguiente:
Una vez tengas creadas algunas rutas para tu proyecto, debemos recordar que
cada archivo debe tener su propia y única funcionalidad. Por ello, crea una carpeta
de “routes” donde trabajes todas las rutas de tus proyectos
La carpeta de rutas solo se debe ocupar de las rutas de tus proyectos, mas no de
su funcionalidad.
8. Iniciar un proyecto de NodeJs
Para la funcionalidad de cada ruta del proyecto debes crear la carpeta “services” y alli
trabajar los servicios de API (La funcionalidades de todas tus rutas y el proyecto).
class ProductsService {
constructor(){
///Variables goblales o metodos que deben inicializar al inicio
}
}
module.exports = ProductsService;
8. Iniciar un proyecto de NodeJs
Es una aplicación que nos permite realizar pruebas API. Es un cliente HTTP que
nos da la posibilidad de testear 'HTTP requests' a través de una interfaz gráfica de
usuario, por medio de la cual obtendremos diferentes tipos de respuesta que
posteriormente deberán ser validados.
Paquete que sirve para poder manejar una lista de conexiones a nuestra API
instalación:
- npm i cors
13. FAKER
https://fakerjs.dev/guide/#browser
14. Ejercicios extras
- Realizar una API CRUD con una ruta que funcione como un buscador
- Realiza una ruta que cree 100 datos falsos
- Crea una ruta que borre toda una colección
- Crea una ruta que traiga datos relacionales de dos colecciones
Módulo XXXIII
Como developers tenemos que garantizar que el codigo escrito cumpla con ciertos
requisitos/expectativas. Esto lo hacemos por medio de una prueba (test).
Este consta de probar pequeñas partes de nuestro código asegurándonos así que
cumplen con lo que se desea. (En una página web las pruebas se traducen a
probar cada sección de la página y todas las interacciones en ellas).
3. ¿Qué es JEST?
Documentación:
https://jestjs.io/docs/getting-started
Instalación:
npm install --save-dev jest
4. Utilización de JEST
Jest es sumamente fácil de aprender, sin embargo tiene importancia pues las
empresas más grandes exigen que tu código este testeado antes de ser
implementado.
Módulo XXXIV
Acción o trámite que, junto con otros, se lleva a cabo para conseguir o resolver
una cosa.
2. Metodología de trabajo
Scrum es un marco que permite el trabajo colaborativo entre equipos. Al igual que
un equipo de rugby (de donde proviene su nombre) cuando entrena para un gran
partido, scrum anima a los equipos a aprender a través de las experiencias, a
auto-organizarse mientras aborda un problema y a reflexionar sobre sus victorias
y derrotas para mejorar continuamente.
5. Roles en SCRUM
Existen una gran variedad de software para distintos fines que nos pueden ayudar
a gestionar mejor las cosas. Los que recomiendo son:
- JIRA
- Trello (Si necesitas algo mucho más simple)
- Slack (Para la comunicación)
- Discord (Para la comunicación)
- Google slides
- Google Drive
10. Consejos importantes para gestionar
1) Dart
2) Java
3) Kotlin
4) Python
5) Javascript
6) Swift
7) Flutter
3. Desarrollo Desktop
Una app de desktop (también llamada de Escritorio) es aquella que está instalada
en el ordenador del Usuario, que es ejecutada directamente por el sistema
operativo, ya sea Microsoft Windows, Mac OS X, Linux o Solaris, y cuyo
rendimiento depende de diversas configuraciones de hardware como memoria
RAM, disco duro, memoria de video, etc.
4. Tecnologías utilizadas
1) C
2) C++
3) C#
4) Java
5) Swift
5. Desarrollo de videojuegos
1) C++
2) C#
3) Java
4) Javascript
5) Python
7. Desarrollo de sistemas de control
Machine Learning
1. ¿Qué es la inteligencia artificial?
La inteligencia artificial (IA) es la capacidad de una computadora o un sistema para
realizar tareas que normalmente requieren inteligencia humana, como aprender,
razonar y entender el lenguaje. En pocas palabras, Inteligencia Artificial es la
capacidad de una máquina para simular la inteligencia humana.
2. ¿Qué es el machine learning?
Documentacion:
https://www.w3schools.com/python/python_ml_getting_started.asp
3. En resumen
Estos datos pueden venir en cualquier forma desde arrays o una base de datos
completa
Ejemplo: [99,86,87,88,111,86,103,87,94,78,77,85,86]
De este array podrás sacar cual es el valor más alto, el más pequeño y el
promedio, entre otros datos
4. Promedio (Mean)
Calcular promedio:
Para calcular el promedio en estos datos necesitamos sumar todos los datos y
dividirlos por la cantidad de datos
1167/13 = 89.77
4. Promedio, Mediana, Moda
import numpy
speed = [99,86,87,88,111,86,103,87,94,78,77,85,86]
x = numpy.mean(speed)
print(x)
5. Mediana (Median)
La mediana es 87
5. Mediana (Median)
import numpy
speed = [99,86,87,88,111,86,103,87,94,78,77,85,86]
x = numpy.median(speed)
print(x)
6. La moda (Mode)
[99,86,87,88,111,86,103,87,94,78,77,85,86]
[99,86,87,88,111,86,103,87,94,78,77,85,86]
6. La moda (Mode)
speed = [99,86,87,88,111,86,103,87,94,78,77,85,86]
x = stats.mode(speed)
print(x)
7. Librerías
Quizás hayas notado que para los ejemplos anteriores en python se utilizaron
librerías, a continuación encontrarás láminas que hablen un poco sobre estas:
8. Numpy
También es utilizado como base para otras librerías de cálculo científico en Python,
como SciPy y scikit-learn.
9. SciPy
SciPy es una librería de Python que se basa en NumPy y proporciona una amplia
variedad de algoritmos y herramientas científicas avanzadas. Sirve para hacer
tareas específicas como optimización, integración, interpolación, procesamiento de
señales e imágenes, entre otras.
La desviación estándar es un número que nos dice cuánto varían los números en
un conjunto de datos.
Es como una medida de "dispersión" de los números. Si los números son muy
parecidos entre sí, la desviación estándar será pequeña. Si los números son muy
diferentes entre sí, la desviación estándar será grande.
Es una forma de medir cuán "alejados" están los números de un conjunto de datos
entre sí.
11. Desviación estándar
Una neurona es una unidad básica de procesamiento en una red neuronal. Cada
neurona recibe entradas de otras neuronas o de los datos de entrada, realiza un
cálculo matemático simple en esas entradas, y luego envía una salida a otras
neuronas o a la capa de salida.
18. Capas de una red neuronal
Ambas son importantes en una red neuronal. La cantidad de capas en una red
neuronal se refiere a la profundidad de la red, es decir, cuántas veces los datos se
procesan a través de las capas ocultas antes de llegar a la capa de salida. Una red
neuronal con más capas ocultas puede aprender patrones más complejos en los
datos, pero también puede ser más propensa a sobreajuste.
En una red neuronal, el peso de las conexiones se refiere a los valores numéricos
asociados a las conexiones entre las neuronas en la red. Estos valores indican la
importancia o el impacto de cada conexión en la propagación de la información a
través de la red.
Los pesos de las conexiones son uno de los aspectos más importantes de una red
neuronal, ya que tienen un gran impacto en su rendimiento y capacidad para
aprender y generalizar patrones. Los pesos se ajustan durante el proceso de
entrenamiento de la red mediante algoritmos de optimización, como el gradiente
descendente, para minimizar el error entre los resultados esperados y los
resultados reales.
21. Cosas que involucra el peso
Algunas de las cosas que involucran los pesos de las conexiones son:
Existen varias librerías populares para machine learning en Python, algunas de las
más comunes son:
- Tensorflow: https://www.tensorflow.org/learn
- Keras: https://keras.io/getting_started/
- scikit learn: https://scikit-learn.org/stable/user_guide.html
24. Google Colab
Esto nos ahorra tener que instalar tantas librerías y herramientas en nuestra PC,
además de que nos ahorra usar los recursos.
25. TensorFlow
https://colab.research.google.com/drive/1ehETBOVtCqe7G6HOvm84hfXba8Gd9IL
W?usp=sharing
Módulo XXXVII
Big Data
1. ¿Qué es la big data?
Los macrodatos, también llamados datos masivos, inteligencia de datos,
datos a gran escala o big data es un término que hace referencia a conjuntos
de datos tan grandes y complejos que precisan de aplicaciones informáticas
no tradicionales de procesamiento de datos para tratarlos adecuadamente.
1. ¿Qué es big data?
02. Velocidad: cuán rápido los datos entran (sensores de carros que
envían información cada segundo).
Distribución y Pivotal
Almacen de Oracle EXADATA
datos TERADATA
GreenPlum
MAPR
NETEZZA
HortonWorks
Cloudera
Azure HDInsight
Amazon EMR
4. Problemas del big data
Los Jupyter Notebooks son una aplicación web, también de código abierto que nos
va a permitir crear y compartir documentos con código en vivo, ecuaciones,
visualizaciones y texto explicativo. Estos documentos registran todo el proceso de
desarrollo y, lo más interesante, pueden ser compartidos fácilmente con otras
personas a través de correo electrónico, Dropbox, sistemas de control de
versiones como git/GitHub y nbviewer.
Pandas es una muy popular librería de código abierto dentro de los desarrolladores
de Python, y sobre todo dentro del ámbito de Data Science y Machine Learning, ya
que ofrece unas estructuras muy poderosas y flexibles que facilitan la
manipulación y tratamiento de datos.
Pandas surgió como necesidad de aunar en una única librería todo lo necesario
para que un analista de datos pudiese tener en una misma herramienta todas las
funcionalidades que necesitaba en su día a día, como son: cargar datos, modelar,
analizar, manipular y prepararlos.
Documentación: https://pandas.pydata.org/docs/
8. Series
Este es un algoritmo usado para modelar la relación entre dos variables o más.
La Y es variable dependiente
La X es variable independiente
11. Para qué sirve la regresión lineal
Nos sirve para hacer predicciones simples tales como las notas de un examen
basado en la cantidad de horas estudiadas o el salario de una persona basado en
la cantidad de años de trabajo, etc.
12. Gráfico de regresión lineal
13. Libro y Páginas recomendadas
• Libro: Python Natural Language Processing Techniques (
https://www.amazon.com/Python-Natural-Language-Processing-techniques/dp/1787121429)
• Natural Language Toolkit (https://www.nltk.org/)
• NLP for Big Data: What Everyone Should Know (http://www.expertsystem.com/nlp-big-data-everyone-know
• What Is Natural Language Processing?](https://machinelearningmastery.com/natural-language-processing/)
• [7 Applications of Deep Learning for Natural Language Processing](
https://machinelearningmastery.com/applications-of-deep-learning-for-natural-language-processing/)
• The Art of Tokenization (https://www.ibm.com/developerworks/community/blogs/nlp/entry/tokenization?lang=en)
• What does tf-idf mean? (http://www.tfidf.com/)
• TD-IDF Explained (https://www.elephate.com/blog/what-is-tf-idf/)
• TD-IDF in Apache Spark (https://mingchen0919.github.io/learning-apache-spark/tf-idf.html)
• 6 Easy Steps to Learn Naive Bayes Algorithm (with codes in Python and R) (
https://www.analyticsvidhya.com/blog/2017/09/naive-bayes-explained/)
• Feature Extraction and Transformation in Adobe Spark – Documentation (
https://spark.apache.org/docs/2.2.0/mllib-feature-extraction.html#tf-idf)