/Software-development-and-Data-Science

Apuntes relacionados al desarrollo de software y tratamineto de datos

Primary LanguageJupyter NotebookGNU General Public License v3.0GPL-3.0

🐍 Software development and Data Science

Reuní trabajo relacionado con datos de forma ordenada y organizada en los lenguajes Python | R | SQL | Scala que se irá complementando con el tiempo

Contenido sobre Proyectos/Retos/Codigos/Notas relacionados al tema

Tabla de Contenido

Links

https://towardsdatascience.com/some-common-data-science-stacks-7525477c0dd0 https://medium.com/@coladibriatico94/jupyter-with-multiple-languages-1ae58e98dc8e https://towardsdatascience.com/docker-for-data-science-9c0ce73e8263 https://hands-on.cloud/how-to-build-python-data-science-docker-container-based-on-anaconda/ https://towardsdatascience.com/python-vs-node-js-which-one-is-best-for-your-project-e98f2c63f020 https://thenextweb.com/syndication/2020/10/12/10-simple-python-tips-to-speed-up-your-data-analysis/ https://github.com/akhilanandbv003/data-engineer-airflow-challenge https://medium.com/better-programming/super-slim-docker-containers-fdaddc47e560

Contenedores

https://code.visualstudio.com/docs/remote/containers https://code.visualstudio.com/docs/remote/containers-tutorial

https://github.com/TheAlgorithms/Python

https://platzi.com/clases/1511-big-data/17904-demo-creando-nuestro-ide-en-la-nube-con-python-bot/ https://platzi.com/clases/1943-platzi-master-talent-placement/33054-12102020-data-engineer-flat-mx-remoto/ https://platzi.com/clases/1365-kubernetes-xertica/13732-desplegar-una-aplicacion-stateful-practica/ https://platzi.com/clases/2045-spark-2020/31916-acciones-de-modificacion-sobre-rdds/

Recomendaciones

https://microk8s.io https://multipass.run/docs/installing-on-windows https://stackoverflow.com/questions/14155596/how-to-substitute-shell-variables-in-complex-text-files https://docs.gitlab.com/ee/ci/variables/

Base de conocimientos

Conocimientos relacionados que me interesan y me gustá aplicar

Fundamentos

Automatización

Trabajo en equipo y gestión de proyectos

Marketing digital

Marketing

Matemáticas

Lenguajes y programación

Libro para resolver problemas y algoritmos

http://biblioteca.inu.edu.sv/?wpfb_dl=263

Backend

Bases de datos

Relacionales

No relacionales

Ciencia de datos y Machine Learning

BigData

Cloud Computing

DevOps

Inglés

Pensamiento computacional

  • Definir una pregunta
  • Respuesta que se pueda traducir a código
    • Variables-proceso
  • Computar
    • Código
  • Resultado

No todo es programar

El camino del saber

Saber y tener conocimiento de algo implica poder explicarlo de forma simple a alguien más

El que sabe pensar, pero no sabe expresar lo que piensa, está al mismo nivel del que no sabe pensar.

La técnica de Feynman

  • Paso 1. Elige el concepto que quieres entender.

Puedes anotarlo como título en una página en blanco.

  • Paso 2. Pretende que le estás enseñando ésta idea a alguien más.

Explica (escribí) al concepto a ti mismo como si fuera que estas enseñando a un niño, utilizando palabras simples en vez de jerga técnica.

  • Paso 3. Si no puedes explicarlo bien, entonces vuelve al libro.

Cada vez que te atasques, vuelve nuevamente al material y re-aprende esa parte que no puedes explicar bien.

  • Paso 4. Simplifica tu explicación y crea analogías.

El objetivo de esta técnica es que puedas describir el concepto en palabras simples y claras. Si tardas mucho en explicarlo tienes que simplificarlo aún mas, usando analogías si es necesario.

Cómo resolver problemas

Para solucionar un problema es recomendado seguir los siguientes pasos para buscar la mejor solución posible

Paso 1: ¿Entiende el problema?.

Enfocate en el problema, entiéndelo de arriba abajo, de derecha a izquierda y entiéndelo de la manera mas profunda posible. Un problema es como una relación en pareja, si no lo comprendes a detalle o no le prestas el tiempo necesario, el resultado no te va a gustar. Por lo cual entenderlo con la mayor cantidad de detalles posibles te ayudara a darle una solución optima.

Paso 2: Desarrolla el plan de acción

A hora que el problema a sido entendido hay que desarrollar un plan a seguir, una serie de pasos que se tienen que realizar para que el propósito se cumpla, en este caso solucionar el problema de una forma correcta.

Paso 3: Divide el problema

Una vez entendido que se tiene que hacer pregúntate, ¿Hay alguna tarea o paso a realizar que pueda dividir en tareas o pasos mas pequeños? De encontrar un si, no lo dudes divide, el dividir un gran problema no solo te ayuda a darle una solución mas rápida al problema sino que te permite trabajar de una forma mas ordenada y con mejor calidad .

Paso 4: ¿Bloqueado?

A hora que si bien ya intentaste resolver un problema y llevas ya mucho tiempo dandole vueltas en como resolverlo o dividirlo o no logras entenderlo del todo,tomate un break, cambia de tarea, escucha música, y despeja tu mente, no hay nada peor que intentar resolver un problema estresado, recuerda es mejor hacer las cosas a su tiempo y bien , que hacerlas rápido y llenas de errores.

Paso 5: Copiar o no copiar

Sin duda alguna la respuesta es no copiar, ya que te ayuda a desarrollar tus capacidades y habilidades como desarrollador, y cuando se te presente un problema similar con diferencias te sera menos complicado darle una solución.

A se no mucho tiempo me ocurrió que por querer sacar algo muy rápido cometí uno de los mayores errores que se puede realizar, buscar, copiar una parte y usar el código como base. Este es un gran problema porque no solo estas copiando, si no que estas usando la solución que alguien mas tiene de un problema, otra forma de afrontar un problema que puede ser similar al tuyo, pero si no entiendes a detalle que es lo que hace y porque lo hace estarás perdiendo el tiempo implementando algo que posiblemente ni si quiera te sirva, o si bien te puede llegar a servir no necesariamente tiene porque adaptarse a tu programa ya que esta abordado desde una logica diferente, esto anterior es también conocido como :

El error del novato, copiar sin entender que es lo que se esta copiando .

¿Recuerdas el punto 5 verdad? Pues bien el no bloquearte te permitirá leer código ajeno , entender que hace y pensar en una posible solución a tu problema.

Paso 6: Repasa tu solución al menos tres veces.

Se que después de un bloqueo pueda que quedes devastado y lo ultimo que quieras es volver a ver tu problema y tratar de darle una mejor solución, sin embargo el echo de dejar una solución sin realmente darle mas de una revisada y abordarlo desde distintas perspectivas podría ocasionar que a corto o largo plazo tu solución falle.

Por lo cual te recomiendo seguir los siguientes pasos:

  • Primer leída: Aplica una solución y pruébala en distintos escenarios.
  • Segunda leída: Repara tu solución si es necesario reparar algo.
  • Tercer leída: Mejora tu solución lo mas que puedas.

Otros tips para resolver problemas

  • Entiende la descripción del problema
  • Define los datos de entrada
  • Haz tu análisis
  • Resume tus conclusiones
  • Elige el algoritmo
  • Prueba
  • Obtén la complejidad computacional

Algunas herramientas interesantes

https://www.screentogif.com/ https://quest-app.appspot.com/ https://app.prntscr.com/es/ https://cmder.net/ https://regex101.com/ https://www.debuggex.com/

Contribuir al repositorio

Enviame un pull request o contactame en redes sociales como eocode

Licencia

GNU General Public License v3.0