Si desea aprender ciencia de datos, comience con una de estas clases de programación

Hace un año, era un fanático de los números sin experiencia en codificación. Después de probar un curso de programación en línea, me sentí tan inspirado que me inscribí en uno de los mejores programas de informática de Canadá.

Dos semanas después, me di cuenta de que podía aprender todo lo que necesitaba a través de edX, Coursera y Udacity. Así que me retiré.

La decisión no fue difícil. Pude aprender el contenido que quería más rápido, de manera más eficiente y por una fracción del costo.

Ya tenía un título universitario y, quizás lo más importante, ya tenía la experiencia universitaria. Pagar $ 30K + para volver a la escuela parecía irresponsable.

Comencé a crear mi propia maestría en ciencia de datos utilizando cursos en línea poco después, después de darme cuenta de que era mejor para mí que la informática. Revisé la introducción al panorama de la programación. Ya tomé varios cursos y audité partes de muchos otros. Conozco las opciones y las habilidades que se necesitan si se dirige a un analista de datos o un rol de científico de datos.

Para esta guía, pasé más de 20 horas tratando de encontrar todos y cada uno de los cursos de introducción a la programación en línea ofrecidos a partir de agosto de 2016, extrayendo información clave de sus programas de estudio y reseñas, y compilando sus calificaciones. Para esta tarea, recurrí nada menos que a la comunidad de código abierto Class Central y su base de datos de miles de calificaciones y reseñas de cursos.

Desde 2011, el fundador de Class Central, Dhawal Shah, ha estado más atento a los cursos en línea que posiblemente cualquier otra persona en el mundo. Dhawal personalmente me ayudó a armar esta lista de recursos.

Cómo elegimos los cursos para considerar

Cada curso tenía que ajustarse a cuatro criterios:

  • Introduce programación y, opcionalmente, informática . Consulte “Una nota sobre programación frente a informática” a continuación.
  • El lenguaje de instrucción es Python o R. Estos son, con mucho, los dos lenguajes de programación más populares utilizados en la ciencia de datos.
  • Debe ser un curso interactivo en línea, por lo que no se permiten libros ni tutoriales basados ​​en texto. Con respecto a este último, los cursos sin video y basados ​​en editor de texto de Codecademy calificarían, pero los tutoriales de texto estrictos como los de R tutorial no lo harían. Aunque los libros son formas viables de aprender a programar, Python y R, esta guía se centra en los cursos.
  • Debe tener una duración decente: al menos diez horas en total para su finalización estimada.

Cómo evaluamos los cursos

Creemos que cubrimos todos los cursos notables que existen y que se ajustan a los criterios anteriores. Dado que aparentemente hay cientos de cursos en Udemy en Python y R, elegimos considerar solo los más revisados ​​y mejor calificados. Sin embargo, existe la posibilidad de que nos perdiéramos algo. Háganos saber si cree que ese es el caso.

Compilamos la calificación promedio y el número de reseñas de Class Central y otros sitios de reseñas. Calculamos una calificación promedio ponderada para cada curso. Si una serie tenía varios cursos (como la Parte 1 y la Parte 2 de Rice University), calculamos la calificación promedio ponderada en todos los cursos. También leímos reseñas de texto y usamos estos comentarios para complementar las calificaciones numéricas.

Hicimos juicios subjetivos del programa de estudios basados ​​en tres factores:

  1. Cobertura de los fundamentos de la programación.
  2. Cobertura de temas de programación más avanzados, pero útiles. (Por ejemplo, varios cursos optan por no cubrir la programación orientada a objetos. Creemos que este es un tema clave, aunque no es un factor decisivo, por lo que estos cursos solo tienen puntos de referencia y no se excluyen de la consideración).
  3. ¿Qué parte del programa de estudios es relevante para la ciencia de datos?

Una nota sobre programación frente a informática

La programación no es informática y viceversa. Hay una diferencia de la cual los principiantes pueden no ser muy conscientes. Tomando prestada esta respuesta de Programmers Stack Exchange:

La informática es el estudio de lo que [pueden] hacer las computadoras; la programación es la práctica de hacer que las computadoras hagan cosas.

El curso que estamos buscando introduce la programación y, opcionalmente, toca aspectos relevantes de la informática que beneficiarían a un nuevo programador en términos de conciencia. Muchos de los cursos considerados, como notará, tienen una parte de informática.

Sin embargo, ninguno de los cursos son estrictamente cursos de informática, por lo que se excluye algo como el CS50x de Harvard en edX.

Nuestra elección para el mejor curso de programación para científicos de datos es ...

Serie "Aprender a programar" de la Universidad de Toronto en Coursera. LTP1: The Fundamentals y LTP2: Crafting Quality Code tienen una calificación promedio ponderada casi perfecta de 4.71 de 5 estrellas sobre 284 reseñas. También tienen una gran combinación de dificultad de contenido y alcance para el científico de datos principiante.

Esta introducción gratuita a la programación basada en Python se distingue de los otros 20 cursos que consideramos.

Jennifer Campbell y Paul Gries, dos profesores asociados del departamento de informática de la Universidad de Toronto (considerado uno de los mejores del mundo) enseñan la serie. Los cursos de Coursera independientes y a su propio ritmo coinciden con el material de su libro, "Programación práctica: una introducción a la informática con Python 3". LTP1 cubre el 40-50% del libro y LTP2 cubre otro 40%. El 10-20% no cubierto no es particularmente útil para la ciencia de datos, lo que ayudó a su caso para ser nuestra elección.

Los profesores me enviaron amablemente y con prontitud los programas de estudios detallados del curso a pedido, que eran difíciles de encontrar en línea antes del reinicio oficial del curso en septiembre de 2016.

Aprender a programar: los fundamentos (LTP1)

Cronograma: 7 semanas

Compromiso de tiempo estimado: 6 a 8 horas por semana

Este curso proporciona una introducción a la programación de computadoras destinado a personas sin experiencia en programación. Cubre los conceptos básicos de la programación en Python, incluidos los tipos de datos elementales (tipos numéricos, cadenas, listas, diccionarios y archivos), flujo de control, funciones, objetos, métodos, campos y mutabilidad.

Módulos

  1. Instalación de Python, IDLE, expresiones matemáticas, variables, declaración de asignación, funciones de llamada y definición, sintaxis y errores semánticos.
  2. Cadenas, entrada / salida, reutilización de funciones, receta de diseño de funciones y cadenas de documentos.
  3. Booleanos, importación, espacios de nombres y declaraciones if.
  4. Para bucles y manipulación elegante de cuerdas.
  5. Mientras bucles, listas y mutabilidad.
  6. Para bucles sobre índices, listas y cadenas paralelas y archivos.
  7. Tuplas y diccionarios.

Learn to Program: Crafting Quality Code (LTP2)

Cronograma: 5 semanas

Compromiso de tiempo estimado: 6 a 8 horas por semana

Conoce los conceptos básicos de la programación en Python: tipos de datos elementales (tipos numéricos, cadenas, listas, diccionarios y archivos), flujo de control, funciones, objetos, métodos, campos y mutabilidad. Necesita ser bueno en estos para tener éxito en este curso.

LTP: Crafting Quality Code cubre los siguientes pasos: diseñar programas más grandes, probar su código para que sepa que funciona, leer código para comprender qué tan eficiente es y crear sus propios tipos.

Módulos

  1. Diseño de algoritmos: ¿cómo decides qué hacer en un cuerpo de función? ¿Cómo averiguas qué funciones escribir en primer lugar?
  2. Pruebas automatizadas: doctest y unittest.
  3. Analizando código para velocidad: detalles de búsqueda y clasificación.
  4. Creando nuevos tipos: clases en Python.
  5. Funciona como argumentos, valores de parámetros predeterminados y excepciones.

El profesor asociado Gries también proporcionó el siguiente comentario sobre la estructura del curso: “Cada módulo tiene entre 45 minutos y un poco más de una hora de video. Hay preguntas de cuestionario en video, que llevarán el tiempo total dedicado a estudiar los videos a quizás 2 horas ".

Estos videos generalmente duran menos de diez minutos cada uno.

Continuó: “Además, tenemos un ejercicio (una docena o dos o más de preguntas de opción múltiple y de respuesta corta) por módulo, que debería tomar una o dos horas. Hay tres asignaciones de programación en LTP1, cada una de las cuales puede requerir de cuatro a ocho horas de trabajo. Hay dos asignaciones de programación en LTP2 de tamaño similar ".

Hizo hincapié en que la estimación de 6 a 8 horas por semana es una estimación aproximada: “La estimación del tiempo invertido depende en gran medida de los estudiantes, así que tome mis estimaciones en ese contexto. Por ejemplo, alguien que sepa un poco de programación, tal vez en otro lenguaje de programación, puede tomar la mitad del tiempo que alguien completamente nuevo en programación. A veces, alguien se queda atascado en un concepto durante un par de horas, mientras que puede pasar rápidamente a otros conceptos ... Esa es una de las razones por las que el formato a su propio ritmo nos atrae tanto ".

En total, la serie Learn to Program de la Universidad de Toronto tiene una duración estimada de 12 semanas a razón de 6 a 8 horas por semana, lo que es casi estándar para la mayoría de los cursos en línea creados por universidades. Si prefiere estudiar en exceso sus MOOC, eso es 72-96 horas, lo que podría completarse en dos o tres semanas, especialmente si tiene un poco de experiencia en programación.

Otra gran opción de Python

Si ya está familiarizado con la programación y no le importa un plan de estudios que tenga un sesgo notable hacia los juegos y las aplicaciones interactivas, también recomendaría Introducción a la programación interactiva en Python de Rice University (Parte 1 y Parte 2) en Coursera.

Con más de 6,000 reseñas y la calificación promedio ponderada más alta de 4.93 / 5 estrellas, este popular curso se destaca por sus videos atractivos, cuestionarios desafiantes y mini proyectos divertidos. Es un poco más difícil y se centra menos en los fundamentos y más en temas que no son aplicables en la ciencia de datos que nuestra selección número uno.

Estos cursos también forman parte de los 7 cursos de Principios de especialización en informática de Coursera.

Los materiales son gratuitos y a su propio ritmo, y hay disponible un certificado de pago. El curso debe comprarse por $ 79 (USD) para acceder a los materiales calificados.

La descripción resumida del curso y el programa completo son los siguientes:

“Este curso de dos partes está diseñado para ayudar a los estudiantes con poca o ninguna experiencia informática a aprender los conceptos básicos de la creación de aplicaciones interactivas simples ... Para facilitar el aprendizaje de Python, hemos desarrollado un nuevo entorno de programación basado en navegador que facilita el desarrollo de aplicaciones interactivas en Python simple. Estas aplicaciones involucrarán ventanas cuyos contenidos son gráficos y responden a botones, el teclado y el mouse.

Antecedentes recomendados: Se requieren conocimientos de matemáticas de secundaria. Si bien la clase está diseñada para estudiantes sin experiencia previa en programación, algunos programadores principiantes han considerado que la clase es de ritmo rápido . Para los estudiantes interesados ​​en una preparación ligera antes del comienzo de la clase, recomendamos un sitio de aprendizaje de Python a su propio ritmo, como codecademy.com ".

Parte 1

Cronograma: 5 semanas

Compromiso de tiempo estimado: 7 a 10 horas por semana

Semana 0 - declaraciones, expresiones, variables

Comprenda la estructura de esta clase y explore Python como una calculadora.

Semana 1 - funciones, lógica, condicionales

Aprenda las construcciones básicas de la programación en Python y cree un programa que reproduzca una variante de Piedra-Papel-Tijera.

Semana 2: programación impulsada por eventos, variables locales / globales

Aprenda los conceptos básicos de la programación basada en eventos, comprenda la diferencia entre las variables locales y globales y cree un programa interactivo que juegue un simple juego de adivinanzas.

Semana 3 - lienzo, dibujo, temporizadores

Cree un lienzo en Python, aprenda a dibujar en el lienzo y cree un cronómetro digital.

Semana 4: listas, entrada de teclado, los conceptos básicos del movimiento de modelado

Aprenda los conceptos básicos de las listas en Python, modele objetos en movimiento en Python y recree el clásico juego de arcade "Pong".

Parte 2

Semana 5: entrada del mouse, métodos de lista, diccionarios

Lea la entrada del mouse, aprenda sobre los métodos de lista y diccionarios y dibuje imágenes.

Semana 6 - clases y programación orientada a objetos

Aprenda los conceptos básicos de la programación orientada a objetos en Python usando clases y trabaje con imágenes en mosaico.

Semana 7: física básica del juego, sprites

Comprende las matemáticas de la aceleración y la fricción, trabaja con sprites y agrega sonido a tu juego.

Semana 8 - decorados y animación

Aprende sobre conjuntos en Python, calcula colisiones entre sprites y anima sprites.

Si está configurado en R

Si está programado en un curso de introducción a la programación en R, le recomendamos la serie de cursos R de DataCamp: Introducción a R, Intermediate R, Intermediate R - Práctica y Funciones de escritura en R. Aunque los tres últimos tienen un precio de $ 25 / mes, DataCamp es el mejor en la categoría para cubrir los fundamentos de programación y temas específicos de R, lo que se refleja en su calificación promedio de 4.29 / 5 estrellas.

Creemos que el mejor enfoque para aprender a programar para la ciencia de datos mediante cursos en línea es hacerlo primero a través de Python. ¿Por qué? Hay una falta de opciones MOOC que enseñen los principios básicos de programación y utilicen R como lenguaje de instrucción. Encontramos seis de esos cursos R que se ajustan a nuestros criterios de prueba, en comparación con veintidós cursos basados ​​en Python. La mayoría de los cursos R no recibieron excelentes calificaciones y no cumplieron con la mayoría de nuestros criterios de evaluación subjetivos.

El desglose de las series es el siguiente:

Introducción a R

Compromiso de tiempo estimado: 4 horas

Capítulos:

  1. Introducción a lo básico
  2. Vectores
  3. Matrices
  4. Factores
  5. Marcos de datos
  6. Liza

Intermedio R

Compromiso de tiempo estimado: 6 horas

Capítulos:

  1. Condicionales y flujo de control
  2. Bucles
  3. Funciones
  4. La familia de la aplicación
  5. Utilidades

Intermedio R - Práctica

Compromiso de tiempo estimado: 4 horas

Este curso de seguimiento sobre R intermedio no cubre nuevos conceptos de programación. En cambio, fortalecerá su conocimiento de los temas en R intermedio con un montón de ejercicios nuevos y divertidos.

Escribir funciones en R

Compromiso de tiempo estimado: 4 horas

Capítulos:

  1. Un repaso rápido
  2. Cuándo y cómo debes escribir una función
  3. Programación funcional
  4. Entradas y salidas avanzadas
  5. Funciones robustas

Otra opción para R sería tomar un curso de introducción a la programación basado en Python para cubrir los fundamentos de la programación, y luego tomar la sintaxis de R con un curso de conceptos básicos de R. Esto es lo que hice, pero lo hice con el análisis de datos de Udacity con R. Me funcionó bien.

También puede elegir R con nuestra principal recomendación para una clase de estadística, que enseña los conceptos básicos de R a través de la codificación de problemas de estadísticas.

La competencia

Nuestras selecciones n. ° 1 y n. ° 2 obtuvieron una calificación promedio ponderada de estrellas de 4.71 y 4.93 sobre 284 y 6.069 reseñas, respectivamente. Veamos las otras alternativas.

Cursos de Python (calificaciones promedio ponderadas descendentes)

  • Programación para todos (Introducción a Python) y Estructuras de datos de Python (Universidad de Michigan / Coursera): otra gran opción. También tiene un gran maestro (Dr. Charles “Chuck” Severance). Esta serie estuvo cerca de usurpar nuestra elección número 1 porque la igualaba en calificación y en la mayoría de los criterios subjetivos. Sin embargo, este curso es más suave y los revisores señalan que es posible que no lo prepare tan bien como otras opciones. El propio Dr. Chuck señaló que este curso es un puente hacia cursos de programación más avanzados: “ Sugeriría que después de que los estudiantes completen mi curso de Python, si están interesados ​​en más programación, tomen el curso de Rice. ”También sentimos que las críticas de nuestra selección número uno fueron más entusiastas. Tiene una calificación promedio ponderada de 4.8 estrellas sobre más de 4.800 reseñas.
  • Python AZ: Python para ciencia de datos con ejercicios reales (Udemy): cuesta dinero y tiene una calificación promedio ponderada de 4.7 estrellas sobre 52 reseñas.
  • Automatice las cosas aburridas con la programación de Python (Udemy): cuesta dinero y tiene una calificación promedio ponderada de 4.6 estrellas de más de 2,000 reseñas.
  • Python para principiantes: de novato a experto en más de 22 horas (Udemy): cuesta dinero y tiene una calificación promedio ponderada de 4.6 estrellas sobre 240 reseñas.
  • Introducción a la informática y la programación con Python (MIT / edX): otra buena opción. Tiene una calificación promedio ponderada de 4.5 estrellas sobre 240 reseñas.
  • Completo Python Bootcamp (Udemy): cuesta dinero y tiene una calificación promedio ponderada de 4.5 estrellas de más de 4.700 reseñas.
  • Serie Python de Treehouse (9 cursos): cuesta dinero. Es una opción popular, pero no hay suficientes reseñas para hacer un juicio de valor. Tiene una calificación promedio ponderada de 4.5 estrellas sobre 5 reseñas.
  • Python (Codecademy): curso interactivo sin video, basado en un editor de texto. Tiene una calificación promedio ponderada de 4.5 estrellas sobre 20 reseñas.
  • Introducción a Python para la ciencia de datos (Microsoft / edX): tiene una calificación promedio ponderada de 4.47 estrellas sobre 360 ​​reseñas.
  • Introducción a Programming Nanodegree (Udacity): tiene un enfoque notable en el desarrollo web. Es una gran opción para alguien que no sabe qué tipo de programación quiere hacer. Tiene una calificación promedio ponderada de 4.4 estrellas sobre 730 reseñas. Tenga en cuenta que contiene la primera mitad del curso popular "Introducción a la informática" de Udacity, que no se ajusta a nuestros criterios de inclusión.
  • CS para todos: Introducción a la informática y la programación de Python (Harvey Mudd College / edX): tiene muy pocas reseñas y una calificación promedio ponderada de 4.33 estrellas sobre 6 reseñas.
  • Programming Foundations with Python (Udacity): no cubre los fundamentos. Tiene una calificación promedio ponderada de 4 estrellas sobre 7 reseñas.
  • Aprenda a programar usando Python (edX / University of Texas Arlington): tiene una calificación promedio ponderada de 4 estrellas sobre 14 reseñas.
  • Aprenda a codificar para el análisis de datos (The Open University / FutureLearn): tiene una calificación promedio ponderada de 3.5 estrellas sobre 2 reseñas.
  • Serie Python de DataCamp (3 cursos): no tiene reseñas en los dos sitios principales de revisión de cursos, pero DataCamp es una opción popular.
  • Tutorial de Python 3 de SoloLearn: no tiene revisiones, pero tiene un plan de estudios completo y una base de fans dedicada.
  • Serie Python de Dataquest (3 cursos): no tiene revisiones, pero tiene un plan de estudios completo y una base de fans abierta.

Cursos R (calificaciones promedio ponderadas descendentes)

  • R Programming AZ ™: ¡R para ciencia de datos con ejercicios reales! (Udemy): cuesta dinero. No ofrece tanto por su dinero como nuestra oferta # 1 R. Las calificaciones son similares, considerando el tamaño de la muestra. Tiene una calificación promedio ponderada de 4.7 estrellas sobre 785 reseñas.
  • Introducción a R para la ciencia de datos (Microsoft / edX): no tanta profundidad como la oferta de DataCamp. Tiene una calificación promedio ponderada de 4.48 estrellas sobre 500 reseñas.
  • Programación R (Universidad Johns Hopkins / Coursera): no cubre suficientemente los conceptos básicos de la programación. Los revisores señalan que es difícil y no en el buen sentido. Tiene una calificación promedio ponderada de 4.04 estrellas sobre más de 900 reseñas, a pesar de una calificación de 2.5 estrellas sobre 212 reseñas en Class Central.
  • TryR (CodeSchool): no es lo suficientemente largo para ajustarse a los criterios de prueba y no cubre suficientemente los fundamentos de programación. Tiene una calificación promedio ponderada de 4 estrellas sobre 260 reseñas.
  • Programación con R para ciencia de datos (Microsoft / edX): más una introducción al lenguaje R en lugar de programación. El sitio del curso dice: "Si tiene algo de experiencia en programación y le gustaría aprender más sobre R, entonces está en el lugar correcto". Tiene una calificación promedio ponderada de 3 estrellas sobre 12 reseñas.

Envolviendolo

Esta es la primera de una serie de seis piezas que cubre los mejores MOOC para lanzarse al campo de la ciencia de datos. Cubrirá varias otras competencias centrales de la ciencia de datos: estadísticas, el proceso de ciencia de datos, visualización de datos y aprendizaje automático.

Si desea aprender ciencia de datos, tome algunas de estas clases de estadística

Una guía completa de estadísticas en línea y cursos de probabilidad. medium.freecodecamp.com Clasifiqué todos los cursos de Introducción a la ciencia de datos en Internet, según miles de puntos de datos

Una guía completa para la introducción en línea a los cursos de ciencia de datos. medium.freecodecamp.com

La pieza final será un resumen de esos cursos y los mejores MOOC para otros temas clave como la disputa de datos, bases de datos e incluso ingeniería de software.

Si está buscando una lista completa de los MOOC de Data Science, puede encontrarlos en la página de materias de Data Science y Big Data de Class Central.

Si disfrutó leyendo esto, vea algunas de las otras piezas de Class Central:

Aquí hay 250 cursos de la Ivy League que puede tomar en línea ahora mismo de forma gratuita

250 MOOC de Brown, Columbia, Cornell, Dartmouth, Harvard, Penn, Princeton y Yale. medium.freecodecamp.com Los 50 mejores cursos universitarios online gratuitos según datos

Cuando lancé Class Central en noviembre de 2011, había alrededor de 18 cursos en línea gratuitos, y casi todos de… medium.freecodecamp.com

Si tiene sugerencias de cursos que me perdí, ¡hágamelo saber en las respuestas!

Si le resultó útil, haga clic en? para que más gente lo vea aquí en Medium.

Esta es una versión condensada del artículo original publicado en Class Central, donde se incluyen descripciones de cursos, programas de estudios y múltiples revisiones.