¿Toda la investigación en ciencias de la computación implica un uso intensivo de las matemáticas?

Estoy comenzando mis estudios de posgrado en ciencias de la computación este año y estoy confundido sobre qué dominio de investigación de calidad (alguna innovación o descubrimiento nuevo) elegiría específicamente entre virtualización, computación distribuida, contenedores y/o blockchain.

Mi problema principal es que entiendo pero no estoy interesado en los algoritmos y sus eficiencias. Del mismo modo, puedo entender las matemáticas de mi nivel universitario, pero eso no me interesa. Tengo un buen conocimiento y comprensión de los conceptos de sistemas operativos, virtualización y contenedores.

Investigué sobre esto en línea y llegué a conocer personas que normalmente solo comparan la eficiencia de un algoritmo sobre otro en problemas de uso compartido de memoria, cambio de procesos y otros problemas similares; ¿Hay algún otro método o medio para hacer algo nuevo en el campo de la computación en la nube, los contenedores o la cadena de bloques?

Sería muy útil si algún experto de estos dominios pudiera aclararme qué tipo de investigación se está llevando a cabo actualmente en estos dominios y cómo se puede realizar el trabajo de investigación en estos dominios (manteniéndose alejado de los algoritmos y las matemáticas complejas). ).

Gracias a todos los que respondieron y comentaron. Respondiendo algunos comentarios y para dar algo más de contexto a mi pregunta:

  • Busco seleccionar mi área de investigación de los amplios dominios de la nube (virtualización y administración), metodologías y herramientas DevOps (optimización de flujos de trabajo y procesos), tecnología de contenedores (por ejemplo, acopladores y kubernetes) y optimización de Blockchain (soy consciente de esto). implicaría algoritmos complejos).

  • No estoy buscando escribir scripts PHP o JS (sé que eso es ingeniería). Personalmente, no me gustan las secuencias de comandos front-end. Algunos de mis proyectos incluyen configurar una infraestructura de nube privada para una empresa en prácticas, escribir scripts de shell para fines de CI/CD y crear un RHEL ISO personalizado que ya tiene software preinstalado (no, no plantillas). Básicamente, soy competente en Python, bash shell, Java, C y tengo una buena comprensión de cómo funciona el sistema operativo, la nube y la infraestructura de TI en general. Puede decir que estoy interesado en el centro de datos o la optimización de la infraestructura.

Entonces, la perspectiva principal de mi pregunta es: me resulta difícil creer que la investigación en informática (al menos el desarrollo de nuevas técnicas, herramientas y plataformas) sea imposible sin un conocimiento profundo de las matemáticas y el diseño de algoritmos (puede que me equivoque, pero ese es el punto de la pregunta). ¿Existe un trabajo de investigación establecido o un progreso realizado en estos dominios que no involucre un uso muy complejo de algoritmos y matemáticas como integración, diferenciación y demás? Tenga en cuenta que estoy tratando de evitar el uso complejo y la modificación de algoritmos y sus matemáticas. Estoy interesado en descubrir metodologías de dicha investigación (apenas puedo encontrar mucho en Internet).

Mira las conferencias relevantes. USENIX , SIGOPS
Sí. La informática es imposible sin un uso intensivo de las matemáticas.
Eliminar las matemáticas de las ciencias de la computación las dejaría como 'no científicas'.
@peterh Imposible? Creo que esa es una posición bastante extrema. Cada vez más, cs piensa en sí mismo en una metáfora de "gran tienda". No estoy seguro de estar de acuerdo con la afirmación de que la investigación de CS es "imposible" sin las matemáticas.
@Shion Me enfrenté a veces a que bajo el nombre "cs", en realidad se dice una tontería pseudomatemática, particularmente para estudiantes de primer año. Y cs real llegará más tarde algunos semestres (o nunca). Por supuesto, mi opinión, quizás demasiado categórica, no incluye este caso. Pero creo que el problema del OP no es ese. Creo que el OP solo quiere escribir scripts PHP y Javascripts, y no entenderá por qué no obtiene una maestría solo para estos.
@peterh Entiendo de dónde vienes, pero ¿qué quieres decir con "cs" real? Tendría cuidado de poner límites a las disciplinas.
@Shion El problema del OP que puedes ver en la imagen de la respuesta de Oleg Lebachev. En este nivel, solo hay un solo cs, esto es lo que el OP llama "uso intensivo de las matemáticas".
ParthPatel Como quizás hayas leído en las noticias, la computación cuántica parece ser capaz de descifrar los mejores sistemas de encriptación actualmente pensados. Pero 1) la mayoría de los algoritmos de cifrado utilizados actualmente no tienen una prueba matemática de que no se pueden descifrar. 2) hay algoritmos de encriptación que también son imposibles de descifrar con máquinas cuánticas. | ¿Sientes que es un desafío interesante entender cómo podría verse un algoritmo indescifrable matemáticamente probado y resistente a QM?
@BasileStarynkevitch gracias, les echaré un vistazo.
@peterh y Coder miran amablemente mi edición de la pregunta.
Parece que te interesa la ingeniería, no la ciencia. Lo cual está bien, por supuesto. Pero la distinción es importante...
@RodrigodeAzevedo gracias por la orientación. Pero estoy buscando específicamente investigaciones o cursos realizados por personas en el lado de los sistemas de los campos antes mencionados para poder tener una idea más clara de qué y cómo necesito hacerlo.
@RodrigodeAzevedo CS se compone de múltiples subcampos muy superpuestos, de los cuales "teoría" y "sistemas" son solo dos (o más exactamente, alrededor de siete y medio).
Si bien hay algunas áreas de CS (y especialmente ingeniería de software) que no requieren muchas matemáticas, ninguna de las que mencionas tiene esa característica. Si desea estudiar la "nube", entonces estudiará la eficiencia (y la escalabilidad) con bastante intensidad.
Parece que está más interesado en la ingeniería de sistemas de software o la arquitectura de sistemas que en la informática. Considere ir directamente a la capacitación de AWS o Azure. Creo que mucha gente se confunde con las computadoras y la informática. Hace mucho, mucho tiempo hubo discusiones serias acerca de que este campo no era ni de computadoras ni de una ciencia. Grandes nombres que podrías reconocer.
@Aruralreader eso es correcto. Hice esta pregunta cuando recién comenzaba mi maestría y no sabía mucho sobre la diferencia entre informática e ingeniería. Actualmente trabajo como SRE/Administrador de Sistemas, pero estoy más interesado en la programación de sistemas distribuidos.

Respuestas (4)

La triste verdad es que absolutamente no necesita CS para la mayoría de las tareas de programación prácticas.

Pero sin un título en informática, tendrá casi cero posibilidades de obtener mejores trabajos de programación.

Además, sin un conocimiento de matemáticas/cs de alto nivel, sus habilidades mentales permanecen significativamente subdesarrolladas, en comparación con sus propias posibilidades o con las de los que realmente obtuvieron este título.

La triste verdad es que el trabajo de un programador, la capacidad de escribir un programa por el que paga un cliente , es difícil, pero es un tipo de conocimiento absolutamente diferente, como saber las matemáticas de la Relatividad General. Esta verdad es tan triste, tan catastrófica, que probablemente pasarás algunas décadas de tu vida lloriqueando sobre ella. Pero es la verdad.

CS , es matemática, sí, es tal conocimiento. Por ejemplo, entender por qué no existe el "mejor compresor" (más exactamente: existe, pero no hay ningún programa que pueda implementarlo), es un conocimiento igualmente complejo e interesante, como la física de vanguardia. Pero absolutamente no necesitas esta habilidad para ser un programador de éxito que elige libremente entre trabajos bien pagados.

Así es como funciona el mundo. Puedes luchar contra eso, puedes quejarte de eso. Hice ambos, durante décadas... y nunca me convertí en científico, solo en programador .

Estas peleas y estas lágrimas aún están ante ti.

Mi consejo sería este: aprende matemáticas y obtén tu título . Entonces:

  • pelearás
  • te quejaras
  • nunca lo usarás
  • y nunca serás un científico.

Pero

  • serás un mejor hombre
  • serás un hombre más inteligente
  • podrás elegir libremente entre trabajos de programador bien remunerados.

Créeme: si haces esto ahora , te enorgullecerás de eso toda tu vida . A pesar del dolor de toda la vida de tus metas nunca alcanzadas.

Creo que entiendo lo que estás tratando de decir. Agradezco que compartas tu experiencia al respecto. También estoy tratando de hacer lo mismo, quiero aportar algo nuevo al campo de la informática y hacer una investigación significativa en él, pero incluso si no lo logro, sé que me quedaré con un conocimiento más profundo. del dominio y de la informática en general, lo que sin duda será beneficioso en el futuro. Nuevamente, gracias por compartir su honesta experiencia y opinión.
No estoy de acuerdo con esta respuesta.
@Kevin ¿Me compartirías el motivo?
Seguro. Obtuve mi maestría de terminal en CS y no me gustaba estar en la academia, así que entré directamente a la programación industrial. Podría hacer el trabajo que hago ahora sin tener un conocimiento sólido de la teoría, pero veo cómo me convierte en un programador mucho mejor. Es: Me ayuda a diseñar patrones para algunas piezas de código más desafiantes. Me permite tomar decisiones inteligentes en situaciones donde el rendimiento y la complejidad algorítmica importan. Me permite entender exactamente cómo el compilador analiza mi código, evitando que las expresiones más complicadas me hagan tropezar...
Y facilita la comprensión de lo que sucede cuando conceptos como la recursividad y el trabajo con árboles surgen directamente, como trabajar con DOM del navegador o historias de Git. En total, no es necesario tener experiencia en CS para ser un programador de la industria, pero uso lo que aprendí en CS todos los días en mi trabajo y, como resultado, puedo escribir un código significativamente mejor.
@Kevin Sí, estoy de acuerdo en que el conocimiento de CS mejora la calidad del código y el rendimiento del aprendizaje. Mis ejemplos son cosas maravillosas y muy profundas, que no se utilizan en absoluto en la TI "industrial". Por cierto, creo que la gran mayoría de los programadores profesionales que conozco serían totalmente incapaces de implementar un árbol AVL simple. Y no veo absolutamente ninguna correlación entre esta habilidad y su éxito real (medido en la satisfacción del jefe/cliente).
@Kevin La mayoría de los programadores profesionales simplemente no tienen idea de cómo funcionan la mayoría de los algoritmos de cifrado. Ni siquiera los que tienen un título en informática. Una vez lo aprendieron, aprobaron un examen y luego lo olvidaron. Ahora tienen algunos recuerdos borrosos de los conceptos principales, eso es todo. Por lo general, conocen la API de cifrado de su lenguaje/marco más conocido, y eso es todo. Decirles que no está bien, probablemente se consideraría un duro insulto.
Incluso un estudiante de secundaria puede programar, y hay muchos buenos por ahí. Pero si quiere convertirse en un científico informático que pueda diseñar e implementar sistemas complicados, necesita las matemáticas.
@Damodar El OP no quiere ser informático. La próxima vez lee la publicación antes de votar.

Acerca de mí: soy matemático con un doctorado en informática. Ahora, a tu pregunta:

Básicamente,

Hay campos de la informática que están menos inclinados a las matemáticas, como "informática y sociedad". ¡Hay al menos un campo en CS que vive entre las matemáticas, CS y la filosofía de todas las ciencias! Programación lógica, eso es.

Pero como científico informático, necesitaría cierta cantidad de matemáticas de nivel universitario. ¿Análisis de O grande? ¡Matemáticas! DAC? ¡Matemáticas! Diablos, mover una cámara en tu juego 3D es más matemática de lo que muchos se sienten cómodos.

(No bromeo, habitualmente pensaba en una ruta de cámara para una escena 3D muy simple en coordenadas esféricas hoy en día, con código y demás, completamente conveniente y natural. Y luego se me ocurrió que las coordenadas esféricas solían ser un gran problema durante escuela secundaria.)

Y no me hagas empezar con software matemático o lenguajes formales.

Como algunos afirman, la informática es un acrónimo de "información" y "matemáticas".

ingrese la descripción de la imagen aquí http://abstrusegoose.com/206

Lo sé, Oleg, mientras se desarrolla cualquier nuevo producto o técnica en informática, hay más matemáticas involucradas de lo deseado por muchos. Puedes echar un vistazo a mi edición de la pregunta. Después de buscar un poco más, creo que estoy más interesado en la optimización del centro de datos (o en la infraestructura de TI en general) con el uso de la nube, la virtualización, los contenedores y/o la cadena de bloques. Estoy buscando hacer mi investigación en esas áreas y agradecería cualquier orientación en estas áreas.

Me cuesta creer que la investigación en informática (al menos el desarrollo de nuevas técnicas, herramientas y plataformas) sea imposible sin un conocimiento profundo de las matemáticas y el diseño de algoritmos.

Es cierto que la investigación de CS requiere cierto conocimiento de matemáticas y diseño de algoritmos.

Sin embargo, es discutible que tal conocimiento sea un conocimiento profundo . Podría ser superficial en algunos aspectos.

Algunos matemáticos profesionales -piensen en los profesores universitarios o, en Francia, los investigadores en matemáticas del CNRS- podrían (bromeando) decir que la CS es para aquellos que no han podido evaluar conocimientos matemáticos profundos .

Tengo un doctorado en CS, y las matemáticas que he usado son mucho más simples que algunas lecciones de topología algebraica que traté de seguir en mi maestría (fallé el examen en estas lecciones).

IIRC, D.Knuth dijo una vez que la informática es la matemática de los recursos.

Como explican otras respuestas, necesitas algunas matemáticas para hacer informática. (pero probablemente necesite menos matemáticas que un matemático profesional).

En algún comentario agregas:

Creo que estoy más interesado en la optimización del centro de datos (o en la infraestructura de TI en general) con el uso de la nube, la virtualización, los contenedores y/o la cadena de bloques.

Entonces aún necesita aprender y usar muchas matemáticas (cualquier tipo de trabajo de optimización implica algo de matemáticas). Pero no es tan pesado como dices.

(así que tiendo a llamar "conocimiento superficial de las matemáticas" a lo que usted describe como "conocimiento profundo de las matemáticas" y lo que se necesita en informática)

Sin embargo, probablemente necesite unos miles de horas de capacitación en matemáticas para hacer CS (no lo llamo conocimiento profundo).

(para que no os imaginéis lo pesado que es el conocimiento de los matemáticos profesionales)

Asegúrese de leer http://norvig.com/21-days.html

Gracias Basile Starynkevitch. Tuve la intuición de que lo que pretendo no requiere mucho conocimiento matemático y complejidad. Pero su declaración: "las matemáticas que he usado son mucho más simples que algunas conferencias de topología algebraica que traté de seguir en mi maestría" es lo que fortalece mi intuición. Espero con ansias algunas pruebas concretas y especialmente métodos para hacerlo. Casi todos los documentos que abro se basan solo en la eficiencia de un algoritmo, y la mayoría de los documentos en la nube incluyen la comparación de tareas de carga de trabajo en varias plataformas.
El punto es que no defines lo que es "conocimiento profundo de las matemáticas". Soy francés y me eduqué en Francia. Siento que lo que aprendí en CPGE -lea esa página wiki, es muy específica de Francia- no es matemática profunda (sino superficial), pero es esencial para la informática. Entonces necesitas varios miles de horas de entrenamiento en matemáticas.
Como estoy en mi licenciatura, no sé el nivel normal de conocimiento matemático y algorítmico que se requiere a nivel de investigación, pero puedo describir lo que considero matemáticas complejas: las redes neuronales, la reducción de la dimensionalidad y los algoritmos de aprendizaje automático.
No se trata de matemáticas, sino de temas especializados de CS. Y el conocimiento matemático sigue siendo superficial en ellos, ciertamente no profundo (o complejo).
Ok, gracias por tus aportes Basile Starynkevitch. Lo aprecio.
Vote a favor de "la informática es la matemática de los recursos".

Puedes probar un doctorado en Computación Evolutiva. Estas personas hacen mucho trabajo sin apenas Matemáticas. Busque documentos en IEEE Transactions on Evolutionary Computation. Encontrarás muchos artículos que podrás leer como una novela. Pero si quieres trabajar seriamente, las matemáticas son importantes y te deben empezar a gustar.

Incluso si desea hacer un esfuerzo serio para desarrollar algo utilizando herramientas de CS, sin Math nunca puede estar seguro de que lo que está haciendo es correcto. Llevará tiempo aprenderlo y, si deja de aprenderlo durante un tiempo o se toma un descanso, es posible que empiece a olvidarlo.

Damodar, actualmente estoy en el último semestre de mi licenciatura y estoy ansioso por obtener una maestría en ciencias de la computación. Gracias por introducirme en el nuevo dominio de la computación evolutiva. Definitivamente voy a mirar en él. Sé que no puedo evitar las matemáticas, pero solo trato de evitar su parte más complicada.
@ParthPatel Puede investigar la computación evolutiva, pero debido a la falta de matemáticas, EC es una 'tecnología de pasatiempo'. Nadie lo usa en la industria. Como puede ver, las matemáticas son importantes si desea utilizar CS en serio para desarrollar algo útil o resolver un problema "correctamente".