¿Es extraño que un estudiante de doctorado en CS no pueda codificar?

Depende.

Conozco a una persona que cambió de Ciencias Eléctricas a Informática al comienzo del programa de PHD. Hablaba con fluidez Matlab y ese era el alcance de su conocimiento de programación. Su doctorado giraba en torno al desarrollo de algoritmos de seguridad y análisis para un tipo de redes. Sé que pudo manejar las simulaciones bastante bien. Pero lo que más lo ayudó es:

  • Fue increíblemente trabajador. Él vivía en el laboratorio, literalmente, trabajando vivazmente en sistemas y matemáticas como parte del trabajo. Analíticamente fue brillante, encontrar nuevos problemas y soluciones no fue muy difícil para él.
  • Tenía un fuerte grupo de colegas y coautores para ayudarlo con implementaciones que requieren más conocimiento de programación de lo que podía reunir. Debo decir que tuvo un poco de suerte aquí, aunque su asesor de doctorado fue uno de los más duros del departamento.
  • Sabía que su talón de Aquiles estaba programando. Aunque es posible aprender y ser bueno en eso, simplemente no le gustó. Desde muy temprano en su doctorado, se preparó para trabajar en la academia después de graduarse.

Resultados?

Un doctorado de una escuela en el top 25 en los EE. UU., Puesto de seguimiento de tenencia inmediata en una escuela de segundo nivel, premio de carrera NSF, tenencia y nuevo puesto en una mejor universidad

Ah, ¿mencioné que parte de su trabajo atrajo la atención de los medios internacionales y obtuvo millones de dólares en financiamiento?

Repetiré algo aquí: esta persona fue INCREÍBLEMENTE trabajadora, ya que nunca he visto a nadie trabajar tan duro como él de manera regular.

Entonces, aunque no recomendaría no aprender programación como estudiante de doctorado, me aferraría a la creencia de que te conviertes en lo que te propones y trabajas.

Personalmente sentí que mis habilidades de codificación disminuyeron durante el doctorado, pero seguí tomando cursos que requerirían proyectos de programación para mantenerme en el camino. Definitivamente recomendaría inscribirse en cursos intensivos de programación básica en su escuela de posgrado.

No absolutamente no. De hecho, es normal.

Como estudiante de doctorado, la codificación llega en la parte posterior cuando ya sabes qué tipo de conjuntos de datos considerarás y qué experimentos diseñarás. Una vez hecho, básicamente escribes un código y te molesta menos su complejidad de tiempo y espacio. La única preocupación que tienes en mente es que tus hipótesis se hagan realidad.

Como estudiantes de doctorado, no se supone que escribamos códigos de nivel de producción y nuestros asesores apenas revisan nuestros códigos, excepto nuestros compañeros que podrían ser nuestros colaboradores en el proyecto.

Pero eso no significa que no debamos aprender codificación. Sí, tenemos que hacerlo. Recuerdo que cuando estaba buscando trabajo tuve que mejorar mis habilidades de algoritmo y estructura de datos y practicar algunas preguntas de codificación de Leetcode. Sin embargo, muchas empresas que contratan estudiantes de doctorado hacen preguntas de codificación, sin embargo, pueden no juzgarlo por completo basándose en sus habilidades de codificación.

Este era yo cuando comencé, y no es un gran problema a menos que lo hagas.

Quería estudiar matemáticas pero luego cambié a CS al final de mi tercer año. Me gradué con relativamente pocas clases de CS, la mayoría de las cuales estaban basadas en la teoría.

Esto me limitó en términos de los campos de investigación de CS en los que podía entrar, especialmente porque realmente no me gustaba la teoría. También tuve un complejo de inferioridad bastante malo por un tiempo, porque parecía que mis compañeros de clase tenían mucha más experiencia que yo. Pero aparte de eso, las cosas estaban bien. No tuve problemas con mis clases, y mi investigación de CS realmente me convirtió en un mejor programador un par de años más adelante.

Si no puede programar en absoluto , eso es inusual. Incluso en HCI, la mayoría de los estudiantes de doctorado pueden programar; Estaba en un programa de HCI en una i-School, y los estudiantes de HCI normalmente podían programar (conocía a uno que probablemente no podría). Si simplemente no tiene experiencia en programación, o si solo ha dominado un entorno / lenguaje oscuro (por ejemplo, Matlab o R), eso no es un problema.

Si se le ha dado la oportunidad de obtener un doctorado en CS, debe aprender a programar. Sí, la programación no es informática, pero es cómo hacemos lo que hacemos, al igual que la historia no se trata de escribir, sino que la escritura es cómo demuestran su trabajo, y así es como expresamos muchas ideas. Incluso en teoría, esperaría que alguien supiera cómo escribir y ejecutar programas básicos en algún idioma. Pocos programas de doctorado le permitirán completar sin saber cómo programar.

Sin embargo, el problema más importante es que tendrá que hacer algunos cursos (en los EE. UU.) E investigar para su doctorado, y deberá obtener un trabajo en la graduación. Todas esas cosas serán mucho, mucho más fáciles si sabes programar.

Muchas personas en la escuela de posgrado luchan con el “síndrome del impostor”, la creencia de que no pertenecen y que probablemente serán descubiertas, ridiculizadas y expulsadas. Sin embargo, en su caso, tiene un problema explícito. ¡Ésto es una cosa buena! ¡Claramente ellos ven algo en ti! Ahora es el momento de ejecutar. No está en ningún reloj, pero debe comenzar, ya que la programación se aprende con el tiempo. Aprende a programar; Hay muchas formas y probablemente 100 preguntas en Quora sobre dónde y cómo comenzar, y miles de respuestas. Incluso si solo puede dedicar 5 horas a la semana a aprender a programar, valdrá la pena el esfuerzo.

He visto esto antes, y sí, personalmente me parece extraño a pesar de que entiendo por qué sucede.

Cuando estás haciendo un doctorado, a menudo serás reclutado porque tienes muchos conocimientos expertos que son útiles para un área específica de investigación de CS, incluso si te falta algún conocimiento básico que alguien con un bachillerato de CS tendría .

Recuerdo una vez que un estudiante de doctorado senior hizo una pregunta de programación muy básica en una lista de correo de todo el departamento. Ese estudiante recibió una respuesta muy sarcástica de un profesor, que estaba claramente molesto porque un estudiante de doctorado en nuestro programa (clasificado como uno de los mejores) no podía responder una pregunta que la mayoría de los estudiantes de primer año podían responder.

Así que solo recuerde, incluso si las personas en su grupo de investigación específico comprenden su incapacidad para codificar, no asuma que todos los demás en CS tendrán el mismo entendimiento.

Ese profesor probablemente se quejó de nuestros estándares de admisión en la próxima reunión de profesores.

Mi opinión personal está entre los de este profesor y las personas que piensan que la codificación no importa para un doctorado en CS.

Creo que un doctorado en CS debería ser un codificador competente antes de poder graduarse. De lo contrario, el riesgo de que avergüencen al departamento y hagan que todos los demás doctorados de CS se vean mal es demasiado alto. Sin embargo, estaría dispuesto a considerar admitir estudiantes que no tienen esta habilidad cuando comienzan, si de lo contrario muestran mucho potencial.

Además, el hecho de que estudies un tema teórico de CS no te excusa de poder codificar. Knuth puede codificar … y bastante bien, podría agregar … aunque no lo hace tanto para ganarse la vida. Conocí a algunos estudiantes de doctorado que piensan que solo porque estudian teoría, no necesitan saber cómo codificar, y eso me molesta.

De todos modos, todos tienen algo con lo que luchan durante su doctorado. Solo recuerda que muchas personas se han autodidactado a sí mismas a codificar, y muchas de ellas nunca fueron tan ambiciosas como para hacer un doctorado.

Incluso para la mayoría de los doctores. Los estudiantes que conozco con experiencia en codificación CS se convierten en una tarea en la que las habilidades de uno disminuyen gradualmente. Esto se debe a que, por lo que puedo ver, un doctorado. se convierte más en obtener resultados que en desarrollar código hermoso. En la universidad es crucial aprender la programación y sus conceptos bien para poder construir sistemas duraderos y mantenibles, en la investigación es crucial obtener resultados y esto puede requerir un código rápido y único para una tarea muy específica. El enfoque es diferente. Conozco personas que fueron brillantes en la universidad y que ahora están descifrando códigos de baja calidad para probar una hipótesis simple. No me preocuparía no poder codificar muy bien, busca en Google los bits que necesitas para ayudarte con tu investigación a medida que avanzas.

Depende de lo que estés estudiando ahora. No es tan raro que los estudiantes que ingresan a la interacción hombre-computadora provengan de una formación en ciencias sociales y no tengan experiencia en programación. No necesita programar para que le vaya bien en este tema tampoco (aunque ayuda si va a configurar pruebas, etc.). Entonces es inusual, pero no completamente desconocido.

Si no desea asistir a clases en su universidad, quizás busque lugares como Futurelearn, Linda, Codecademy, etc., que tienen una introducción a los cursos de programación.

Es un poco inusual pero no tan inusual como podría pensar. Los departamentos están en gran parte atendidos por matemáticos que tienden a contratar y promover a otros matemáticos. Tienden a juzgar a la facultad por los documentos, no por el código.

El camino más simple para ti es aprender a codificar. Hay docenas de cursos gratuitos en línea y no es nada difícil, especialmente si puedes hacer matemáticas. Pero es lento y laborioso ser bastante bueno en eso. Es más un arte y una habilidad construida a través de la experiencia en lugar de un cuerpo de conocimiento académico.

Por cierto, no es inusual que los profesores de CS sean completamente cojos al hacer otra cosa que escribir LaTeX. Hay tantos idiomas que rápidamente dejan de mantenerse al día porque solo se califican en la cantidad de documentos que escriben.

Es difícil saber qué recomendar para usted. Si lees el informe Taulbee, solo hay una probabilidad de 1 en 7 de que consigas un trabajo como profesor. Si desea obtener trabajos fuera de la academia, es mejor que aprenda a codificar.

Bueno, hay un campo de la informática llamado Ciencia de la Computación Teórica que es puramente matemática y no implica codificación. Las personas que se especializan en este campo se llaman “teóricos”. Entonces, si le gustan las matemáticas de la informática (algoritmos y teoría de la computación) más que nada, no saber codificar no es un problema. Sin embargo, si planea especializarse en alguna otra área como la ciencia de datos o sistemas, saber codificar es principalmente obligatorio.

Hay muchos estudiantes de doctorado en Ciencias de la Computación que nunca han trabajado, formado parte o desarrollado ningún software grande o significativo en su vida y probablemente nunca lo harán. Nunca se han sentado durante meses, a tiempo completo, diseñando, escribiendo, probando, verificando componentes o sistemas de software.

Entonces, no, no es raro.

Es extremadamente raro Incluso los estudiantes de doctorado de otros campos, como la biología, pueden codificar en la actualidad.

Pero el estudiante no puede codificar al nivel de un ingeniero de software de Google, entonces sí, se espera.

Eso está bien. En realidad, a menos que investigue mucho sobre el sistema o el lenguaje de programación / compilador, no necesita escribir muchos códigos. En realidad, descubrí que los mejores programadores en el campus generalmente provienen de estudiantes de doctorado en física que escriben códigos C ++ todos los días …

Es extremadamente extraño, porque incluso los teóricos aún tienen que hacer experimentos para validar su hipótesis. Pero, si son más teóricos que profesionales, su habilidad de programación probablemente se oxidará con el tiempo.

Como estudiante de doctorado en su escuela, puede tomar cualquier clase que desee. Entonces, toma una clase de programación. Es una habilidad relativamente fácil de aprender.

No. Un arquitecto no es un trabajador de la construcción. Ambos son campos honorables pero involucran diferentes habilidades.

en realidad no, trabajo con pocos doctorados y su habilidad de programación es bastante pobre. Sin embargo, cuando se habla de sus especialidades, su conocimiento es bastante valioso.