Como segundo año CS interesado en calificar para pasantías y estoy interesado en ciencia de datos y ML, ¿debería centrarme en ellos ahora, o en programación competitiva y matemáticas discretas, o MOOC de algoritmos, o hacer proyectos?

Gracias por el A2A.

Primero, haría eco de lo que otros han dicho que hacer es preferible a pensar mucho sobre lo que es mejor hacer.

En un esfuerzo por ser más accionable, diría que como estudiante de segundo año debes enfocarte en lo básico. Programación, algoritmos básicos, matemática básica y diseño de software básico. Debe solidificar su control sobre ellos y puede retrasar los aspectos de Machine Learning para más adelante. Su plan de estudios de pregrado probablemente hace un trabajo razonable al mapear cuáles son los conceptos básicos.

En cuanto a la programación competitiva, personalmente lo disfruto, pero no creo que tenga mucho en común con la programación del mundo real. Personalmente, hago Google Code Jam todos los años y lo disfruto inmensamente, pero a menos que lo haga muy bien (lo que, por definición, es poco probable), no tendrá ningún retorno en el currículum y le dará muy poca experiencia reutilizable.

En Machine Learning hay competiciones de Kaggle que también son divertidas y son un lugar algo mejor para aprender y mostrar tus cosas, aunque también tienen sus limitaciones. Si yo fuera tú, podría echar un vistazo a Kaggle pero no enfocarme en esto por un año o dos. Como estudiante de segundo año, es posible que pueda operar algunas herramientas básicas de aprendizaje automático como una caja negra, pero a menos que esté muy por delante de la curva, aún debería estar solidificando lo básico.

Contribuir a un proyecto de código abierto puede llevar un poco más de tiempo que una competencia, pero es mucho más valioso. Le brinda experiencia real y los empleadores potenciales lo saben.

Demasiados cocineros arruinan el caldo. 🙂

Antes de leer mi respuesta específica, solo escucha esta charla ted de 10 minutos.

Deja de esperar y comienza a hacerlo. Hacer nada. Pero no pierdas el tiempo pensando en lo confundido que estás sobre qué hacer.

Solo puedo contarte sobre mi experiencia. Entonces aquí va. Empecé con los MOOC. Me gustaba aprender cosas que disfrutaba, en lugar de seguir reglas, como en la estructura del curso predefinida. Estuvo bien por un tiempo, pero no pude ganar mucho con eso. Algo faltaba. Me mudé a la codificación competitiva, ¡y me encanta hasta este día! En mi último año, tuve que hacer un proyecto, pero no fue lo suficientemente emocionante, como lo es CP. Teníamos un curso sobre minería de datos, pero no sentía que realmente quisiera hacerlo. En pocas palabras, de una forma u otra, hice algunas de esas cosas, y luego lo que más me convenía se quedó conmigo.

Deja de confundirte. Elija uno y luego ponga toda su energía en hacerlo funcionar. Con el tiempo suficiente, sabrás por tu cuenta si todavía quieres hacerlo o no. Puede parecer un consejo no informativo abierto, pero he estado allí y lo he hecho. Por lo tanto, puede pensarlo un par de minutos y luego comenzar a seguirlo. Todo lo mejor 🙂

Como estudiante de CS de segundo año, supongo que deberías concentrarte más en la programación y algoritmos competitivos. Lo mejor sería aprender los conceptos básicos de cualquier libro de algoritmos estándar “Introducción al algoritmo”. y luego comience a practicar en entornos como LeetCode, HackerRank, TopCoder, etc.

Sí, puedes ver MOOCs en Algoritmos. Esto te ayudará a comprender los conceptos que lees del libro.

Además de lo anterior, seleccione un proyecto interesante en el que pueda usar sus habilidades aprendidas para optimizar el código y así mejorar el rendimiento del código.

Aprender ML será un desafío ya que necesita cubrir varios conceptos y luego aplicar estos conceptos a diferentes conjuntos de datos. Estos conjuntos de datos pueden tener diferentes variaciones, como estructura frente a estructura no estructurada, tamaño grande frente a pequeño, sesgado frente a no sesgado, disperso frente a no disperso, etc. Definitivamente necesita experiencia para jugar con tales variaciones ya que los entrevistadores harán preguntas basadas en estas variaciones. Por ejemplo, los entrevistadores podrían preguntarle cómo puede manejar el sobreajuste? Tiene tantas respuestas como validación cruzada, regularización (norma L1 vs L2), reducción dimensional (PCA vs SVD), etc.

En tus primeros 2 años deberías:

– Desarrolle fuertes habilidades de programación … aprenda POO … haga proyectos

– Desarrolle habilidades algorítmicas fuertes … comparta en programación competitiva

– Programación de estudio, estructuras de datos y algoritmos.

Aléjese de este estado … simplemente comience a hacer algo

Mi padre dijo una vez que algo es mejor que nada . Nunca entendí lo que quería decir en realidad, ahora a medida que envejezco … de alguna manera lentamente empiezo a aprenderlo.

Pregrado es ese momento fascinante en la vida de un estudiante, donde él o ella está expuesto a un montón de cosas, muchas veces puede ser abrumador. Esto es importante porque en realidad puede encontrar su propio interés y llevarlo adelante, dominarlo y puede llevarlo a mejores oportunidades.

Lo bueno es que quieres hacer muchas cosas, lo que no es tan bueno es que no sabes qué hacer, lo cual es normal. En mis años de pregrado, no tenía idea de lo que estaba pasando realmente. Te sugiero que te concentres en el buen aspecto, que es que tienes muchas cosas en proceso. Deberías tomar la mayoría de los cursos fundamentales en CS y algunos en matemáticas porque incluso si terminas en ML o en cualquier otro lugar, aún querrías escribir programas buenos y escalables, ser capaz de hacer análisis y no puedes hacerlo hasta que sepas tu campo central correctamente.

Escribí una respuesta hace algún tiempo para estudiantes de pregrado para comenzar a aprender ML, que puedes ver aquí: la respuesta de Shehroz Khan a ¿Cuál sería la mejor forma de autoaprendizaje de Machine Learning y Data Science como estudiante? Me gustaría aplicarlo a las predicciones del mercado de valores, la genética u otros campos de la medicina, y analizar y recuperar datos de calidad de la web.

Para concluir la historia de mi padre, creo que lo que quiso decir es hacer algo y simplemente no sentarse y decir que estoy confundido y que no puedo concentrarme. Al menos, esta es mi mejor interpretación.

A2A

Solo concéntrese en lo que más le interese porque será el más productivo en ese campo en particular en el futuro.

Para obtener un pasante en una gran empresa, debe tener un buen conocimiento de los algoritmos y las estructuras de datos, por lo que esto no se puede omitir. Por lo tanto, siga practicando lado a lado y pruebe sus otros aspectos.

Construya pequeños proyectos en el campo que está estudiando y no haga proyectos solo para enumerarlos en su CV.

¡Buena suerte!