Bienvenido al repositorio general sobre Tecnologías de la Información y Comunicaciones (TIC). Este espacio es para cualquiera interesado en profundizar en la computación, abarcando una variedad de lenguajes de programación y conceptos clave en ciencias de la computación.
Aquí, comparto mis conocimiento y experiencia a través de módulos estructurados y cursos cuidadosamente diseñados con asistencia de Inteligencia Artificial para facilitar el aprendizaje autodidacta y el desarrollo profesional.
El Valor del Aprendizaje Autodidacta
Ser autodidacta se ha convertido en una forma esencial de aprender en estos tiempos. Exige un alto grado de compromiso y disciplina. A menudo, esta ruta de aprendizaje lleva a un mejor entendimiento y a un nivel de expertise más profundo, ya que implica una exploración más personalizada y una adaptación a tu propio ritmo y estilo de aprendizaje. Me propongo ofrecer la misma rigurosidad encontrada en cursos impartidos por instituciones tradicionales, esperando con esto que recibas una educación de calidad que respalde tus esfuerzos autodidactas.
En esta sección, podrás explorar el índice general de todos los módulos y clases disponibles. Cada módulo está diseñado para cubrir diferentes aspectos de las TIC, asegurando un aprendizaje integral y profundo.
Aquí encontrarás cursos para explorar y aprender por tu cuenta.
Apuntes de Curso | Descripción |
---|---|
Python Pro: Masterclass en Algoritmos y Estructuras | Curso avanzado de estructuras de datos y algoritmos. Eficiencia e innovación en desarrollo de software para profesionales |
Evolución de la Representación Semántica: Fundamentos del Procesamiento del Lenguaje Natural y la IA | Tema fundamental en la inteligencia artificial, especialmente en el procesamiento del lenguaje natural (PLN). La representación semántica vectorial permite a las máquinas comprender y manipular el lenguaje humano al capturar el significado de las palabras y sus relaciones en un espacio matemático. Esto es clave para tareas como la traducción automática, el análisis de sentimientos, y la generación de texto. |
Fundamentos de Redes y Comunicaciones Digitales | Entender las redes para optimizar aplicaciones y mejorar la seguridad. Clave para el desarrollo de software moderno |
Competencias Básicas y Avanzadas Para Desarrolladores Web | Curso diseñado para desarrolladores web que buscan no solo perfeccionar sus habilidades técnicas sino también adquirir un conjunto sólido de competencias en herramientas, seguridad, y diseño de sistemas, esenciales para el desarrollo profesional de software |
Ejercicios resueltos de estructuras de datos y algoritmos. Incluyen pseudocódigo y códigos en Python. Análisis de complejidad, tracing y nemotécnicos para ayudar a comprender y a recordar mejor. Estos problemas son comunes en pruebas académicas y para optar a trabajos en la industria informática.
- Subconjunto contiguo de suma más grande
- Buscar un elemento en una matriz ordenada por filas y columnas
- Comprobar si el par con la suma dada existe en un array
- Dado el recorrido en preorden y en orden de un árbol, construya el árbol binario
- Suma máxima de rutas en un árbol binario
- Invertir una lista enlazada en grupos de tamaños dados
- Máximo Común Divisor
A medida que avanzamos, el acceso a una vasta cantidad de información y temas especializados crece exponencialmente, lo que hace esencial no malgastar tiempo. Considero crucial que cada curso ofrezca una comprensión amplia y detallada de sus temas, permitiéndote aprender de manera rápida y sencilla. A pesar de esto, es importante tener a mano materiales de referencia exhaustivos para consultas en momentos de necesidad. Es decir, ante desafíos específicos, es fundamental conocer todas las herramientas y metodologías disponibles, para luego buscar información adicional según sea necesario. Con la asistencia de inteligencia artificial, te equiparás para enfrentar cualquier reto.
Programar implica desafíos como la deuda técnica, problemas de rendimiento, y errores, ya sean del usuario o del código. ¿Qué deberías reportar al usuario, qué registrar en logs, qué señalar con alarmas?
Mi acercamiento inicial a la computación fue a los 14 años, a través de un fascículo especial sobre el tema en la revista Icarito. Aquel primer algoritmo que vi, sobre cómo hacer una taza de café, capturó mi atención. Desde entonces, comencé a adquirir una serie de publicaciones que venían con libros sobre informática. Aprendí que un computador se conceptualiza en tres partes: entrada de datos, un proceso (caja negra), y salida de información.
Ahora, 35 años después, los datos y los algoritmos continúan siendo fundamentales en la computación, ya sea referidos como big data o algoritmos para inteligencia artificial. Esta consistencia a lo largo del tiempo resalta la importancia de revisitar los fundamentos de la computación e informática. Entender claramente estos conceptos básicos facilita el estudio y comprensión de la complejidad actual de la informática.
Exploraremos qué son los datos y cómo almacenarlos en estructuras que nos faciliten trabajar con ellos, ya sea en conjuntos ordenados, desordenados o jerárquicos. Aprenderemos a manipular estos datos estructurados a través de algoritmos - procedimientos sistemáticos para resolver problemas reales. Estos algoritmos son recetas paso a paso, como el de Dijkstra para encontrar el camino más corto entre puntos, o algoritmos de búsqueda binaria para localizar un elemento rápidamente.
La pregunta es si deseas ser un informático. Esto implica disfrutar trabajar con datos y encontrar satisfacción al manipularlos de diferentes maneras. Si encuentras alegría en esto, entonces tienes el potencial para ser un informático.
A lo largo de tu carrera, puedes alejarte de los fundamentos como las estructuras de datos y algoritmos debido a la codificación. Sin embargo, con la automatización de la codificación por inteligencia artificial, volver a las bases es más crucial que nunca. Este enfoque fundamental es lo que perseguimos en este y otros cursos.
sudo apt-get install python3-tk
pip install graphviz
Igor es un apasionado desarrollador de software y autodidacta con una amplia trayectoria en ingeniería y desarrollo de software. Su aventura en el mundo tecnológico comenzó a los 14 años, y desde entonces ha acumulado una gran experiencia en la industria del software.
Experiencia Profesional:
- Ingeniería y Habilidades Técnicas: Especializado en microservicios, computación en la nube y arquitectura basada en eventos, Igor domina plataformas como GCP y AWS, y lenguajes como Node.js, PHP, Python y Elixir.
- Formación Académica: Su formación en Matemáticas y Ciencias de la Computación le ha brindado una base teórica y práctica sólida. Ha completado cursos en prestigiosas instituciones como NTU, UBC, MITx y Stanford University en diversas materias relativas a la Ingeniería como: Software Development, Statistics, Operations Research y Data Science.
- Reputación en la Comunidad IT: Con una reputación destacada en plataformas como StackOverflow y Freelancer.com, Igor ha demostrado su habilidad y compromiso con la excelencia en el campo de la informática.
Espero que encuentres los recursos que necesitas para avanzar en tu carrera profesional y personal en el mundo de las tecnologías de la información y comunicaciones.
Igor Parra Bastias
Senior Full Stack Developer | Freelancer
Programador en Python/PHP/Javascript/Elixir
Reputación en Stackoverflow: 10,000 (top 4% overall)
Reputación en Freelancer.com: 5.0 de 5.0 (con 65 reseñas)
- https://www.linkedin.com/in/igor-parra-bastias-06335059
- http://stackoverflow.com/users/333061/igor-parra
- https://www.freelancer.com/u/NomikOS.html
Este proyecto contiene dos tipos de contenidos: educativos y de código fuente, cada uno bajo su propia licencia.
-
Contenido Educativo: Los apuntes, diapositivas, y cualquier material educativo en este repositorio están disponibles bajo la licencia Creative Commons Atribución-NoComercial-CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0). Para más detalles, vea el archivo LICENSE.md.
-
Código Fuente: El código fuente incluido en este repositorio está licenciado bajo la licencia MIT. Para más detalles, vea el archivo CODE_LICENSE.md.
Puedes usar, compartir y modificar tanto los contenidos educativos como el código fuente, siempre que:
- me des crédito por el trabajo original,
- no uses el material educativo para fines comerciales,
- y compartas las modificaciones bajo los mismos términos, tanto:
- para los contenidos educativos (CC BY-NC-SA 4.0)
- como para el código fuente. El cual puede ser usado incluso comercialmente, siempre reconociendo mi autoría (MIT).