¿Cuál es la diferencia entre informática y programación?

32

Soy nuevo en informática y programación, y me preguntaba, ¿hay alguna diferencia entre informática y programación? ¿y eliges estudiar solo uno de ellos en la universidad, o ambos?

xXSarahXx
fuente
42
Mal tiempo de analogía.
Mike Weller
10
¿Cuál es la diferencia entre arquitectura y construcción?
Oded
66
están tan separados como la geología y la excavación de zanjas
Steven A. Lowe
27
La informática es lo que pagas por aprender. La programación es lo que te pagan por hacer.
jfrankcarr
55
La diferencia es lo que te hace usar smoothsort en lugar de burbuja.
deadalnix

Respuestas:

68

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

Eche un vistazo a los cursos / programas ofrecidos por las universidades que le interesan para averiguar si el curso es un curso de CS, un curso de programación, algo más (por ejemplo, Ingeniería de software) o incluso una combinación de lo anterior. Muchos cursos anunciados como "ciencias de la computación" ofrecen un componente de programación significativo, que puede ser para que pueda poner en práctica las partes teóricas del curso, o puede ser por su propio bien para que pueda aprender la habilidad de hacer programas.


fuente
1
Muy buena respuesta, aunque no responde la parte práctica de la pregunta;)
back2dos
@ back2dos OK, extendí la respuesta.
Es importante tener en cuenta que la mayoría de los cursos de Informática no tienen nada que ver con la CS teórica también, TCS está al menos tan separado de la CS práctica como la CS de la programación.
Ben Brocka
3
No creo que deba vincular CS (a pesar del nombre) demasiado cerca de las computadoras: en primer lugar, es el estudio de la información . Simplemente sucede que el término "computadora" abarca la mayoría de las diferentes herramientas físicas que utilizamos para trabajar con la información, por lo que casi cualquier estudio de información implicará la programación de una computadora.
Tikhon Jelvis
La taxonomía podría encajar bajo el nombre de la ciencia de la información. Pero no me parece un ajuste perfecto bajo CS. Útil en un sentido interdisciplinario, pero CS es inextricablemente en parte sobre las cosas que podemos hacer con las computadoras, IMO. Podría hacer su definición de lo que sea "computadora", más general, pero no la definición de CS.
Erik Reppen
36

Una advertencia: la "informática" se ha convertido en un campo turbio en los tiempos modernos porque (al menos en los Estados Unidos) las universidades no tienen títulos en "programación". Esto significa que las personas interesadas en la programación deben inscribirse en los grados de informática, y como reacción a eso, los programas de informática enfatizan la programación cada vez más.

Dicho esto, la informática en sí misma es una ciencia fuertemente matemática: la matemática computacional podría haber sido un término mejor. Implica el estudio de la teoría de grafos, la complejidad algorítmica, la lógica formal, los autómatas y, en general, cualquier estructura lógica que pueda describir una transformación o respuesta a los algoritmos de entrada. Un informático en el sentido clásico podría razonar sobre las reglas que rigen cualquier sistema informático (incluidas las computadoras modernas) sin conocer necesariamente los detalles de implementación en la arquitectura actual. Una sólida formación en Informática le brinda la capacidad de desarrollar (o recordar) algoritmos eficientes y escalables, anticipar reducciones lógicas y razonar de manera sólida sobre lo que es manejable.

La programación, por el contrario, es lo que hace una persona cuando usa un lenguaje de programación para transformar un algoritmo en algo que la máquina puede hacer. (Eso debería hacer obvia la conexión íntima con la informática, y de dónde proviene gran parte de la confusión). Un programador (en relación con un entorno y lenguaje) debería ser capaz de tomar prácticamente cualquier conjunto de algoritmos y transformarlos en una forma humana. - y legible por máquina escribiendo código. Una sólida formación en programación (como proporcionará la mayoría de los títulos de CS) le permite escribir un mejor código, donde otros 'mejor' código es más fácil de entender y más exitoso para expresar el algoritmo que está implementando.

Hay una gran cantidad de diafonía, por supuesto, y un alto nivel de experiencia en uno se corresponderá fuertemente con el desarrollo de la experiencia en el otro, como se señaló, un estudiante de CS es casi siempre un programador competente, y un programador experimentado ha recogido Muchos principios de CS. Piensa en física e ingeniería.

Una buena manera de recordar la diferencia es esta: si requiere una computadora para ver si funciona, es programación; si puede hacerlo con lápiz y papel, es informática.

shanef22
fuente
44
Sí, esa última oración es el problema, ¿no? Evoca imágenes de profesores revueltos con cabello encrespado y dedos calcáreos que agitan puñados de pergamino, y trae a la mente citas como "la informática no se trata más de computadoras que la astronomía de telescopios". Si la ciencia eventualmente no se convierte en una máquina de alguna manera, ¿cuál es el punto? ¿Qué astrónomo en su sano juicio nunca mira a través de un telescopio?
Robert Harvey
No creo que alguna vez me hayan pedido "transformar un algoritmo en algo que la máquina pueda hacer" en los últimos 30 años. Lo que estás pensando no es un programador, sino un compilador.
gnasher729
2
@ gnasher729 Ok, digamos que tengo el algoritmo "Para cada palabra en una lista, si comienza con una A, muévala al principio". ¿Qué compilador recomendarías?
shanef22
18

La informática se ocupa de los fundamentos teóricos de la información, la computación y las técnicas prácticas para su implementación y aplicación. http://en.wikipedia.org/wiki/Computer_science

~

La informática no tiene más que ver con las computadoras que la astronomía con los telescopios. Edsger Dijkstra

La programación es el oficio de crear un programa de computadora.

Gary Willoughby
fuente
11

Desde mi punto de vista, se supone que la informática es una ciencia dura como la física.

Implica el estudio de compiladores y generadores de compiladores, conceptos de arquitectura de hardware, diversas formas de sistemas numéricos, algoritmos y rendimiento / eficiencia algorítmica y la teoría detrás de las operaciones aritméticas en el procesador. Cuando hice CS en la universidad, pasamos mucho tiempo jugando con el ensamblador, aprendiendo sobre la diferencia entre compilar, vincular e interpretar, etc.

Mucho de esto se hizo mediante programación, es decir, el acto de escribir código que luego se compiló o ejecutó a través de un intérprete, con la intención de generar resultados para resolver un problema. Es decir, la programación es el acto de resolver problemas que se pueden describir con el conocimiento de la informática. Es una especie de división Pure Maths / Applied Maths.

No necesita un título en informática para ser programador, pero un programador con experiencia en CS probablemente tendrá una comprensión más profunda del comportamiento de los programas de computadora.

Mcfinnigan
fuente
1
No creo que los estudiantes de CS sean mejores que los estudiantes de otros cursos de programación.
Tjaart
55
No dije mejor , dije que probablemente tendría una comprensión más profunda.
mcfinnigan
@mcfinnigan, diría, más equivocado. Los estudiantes de CS que se basan en la teoría tienden a tener menos comprensión porque en realidad no tienen la experiencia para saber qué pueden hacer las computadoras o cómo llegar allí en varios idiomas.
Izkata
3
de nuevo, me malinterpretas. Estoy diciendo que un programador que se ha tomado el tiempo de adquirir parte de la teoría CS real es más probable que sepa por qué un Conjunto es mejor que una Lista en ciertas situaciones, o por qué el punto flotante es complicado.
mcfinnigan
2
@TikhonJelvis: la ingeniería emplea las matemáticas, pero está a dos pasos de distancia. CS es una rama de las matemáticas.
Kevin Cline
3

Reformularía su pregunta como "¿Cuál es la diferencia entre la informática y la ingeniería de software?" Después de todo, ambos implican programación.

La informática es el estudio teórico de qué es la computación y qué es y qué no es posible. Analiza cosas como el teorema de Godels y el problema de detención.

La ingeniería de software es cómo escribir programas que hacen lo que han sido diseñados para hacer y son mantenibles.

Jaydee
fuente
No. ¿Por qué reformular su pregunta? Preguntó lo que preguntó. La ingeniería de software es diferente de la programación y TAMBIÉN es controvertida porque significa cosas diferentes en diferentes países (por ejemplo, EE. UU. Y Canadá)
Douglas Held
2

La informática es la teoría de la programación. La programación es la implementación.

La informática ... es el enfoque científico y práctico de la computación y sus aplicaciones. Un científico informático se especializa en la teoría de la computación y el diseño de sistemas computacionales.

Sus subcampos se pueden dividir en una variedad de disciplinas teóricas y prácticas. Algunos campos, como la teoría de la complejidad computacional (que explora las propiedades fundamentales de los problemas computacionales), son muy abstractos, mientras que los campos como los gráficos por computadora enfatizan las aplicaciones visuales del mundo real. Otros campos se centran en los desafíos en la implementación de la computación. Por ejemplo, la teoría del lenguaje de programación considera varios enfoques para la descripción de la computación, mientras que el estudio de la programación de computadoras en sí investiga varios aspectos del uso del lenguaje de programación y los sistemas complejos. La interacción humano-computadora considera los desafíos para hacer que las computadoras y los cálculos sean útiles, utilizables y universalmente accesibles para los humanos ...

Tom Squires
fuente
12
Sinceramente, creo que la informática es más que programación.
Ubermensch
2
@Ubermensch: Sinceramente, creo que la programación es más que informática.
Michael Borgwardt
1
@MichaelBorgwardt En realidad, ambos puntos de vista son correctos. Pero la informática todavía es mucho más grande que la programación (también se puede argumentar al revés). Una famosa cita de Niehls Bohr "Hay dos tipos de verdad, una pequeña verdad y una gran verdad. Puedes reconocer una pequeña verdad porque su opuesto es una falsedad. Lo opuesto a una gran verdad es otra verdad".
Ubermensch
@Ubermensch Tu creencia es un hecho. La informática no es solo la teoría de la programación. La informática existía antes que las computadoras.
Casey Patton
1

Si la programación es carpintería, la informática es arquitectura / diseño.

Editar

Más información: en carpintería, le interesan cosas como en qué orden construir las cosas (marco, luego subsuelo, luego paredes interiores, luego paneles de yeso, etc.). ¿Cómo lo construyes para que tarde menos tiempo en construirse, pero se puede modificar más adelante?

En el caso de la arquitectura (la parte como CS de todos modos), le preocupan cosas como cuáles son las capacidades de los materiales, ¿qué tamaño de viga necesita para soportar este tramo de pared / techo?

Del mismo modo, CS se trata de las capacidades teóricas de las computadoras, donde la programación se trata de la aplicación práctica de ese conocimiento.

Scott Whitlock
fuente
3
Mala analogía Si la programación es carpintería, el diseño del software es arquitectura / diseño. La informática se parece más a la dendrología en ese sentido, o tal vez a la biología en general.
back2dos
Ok, tal vez no estaba claro, así que déjame explicarte por qué creo que tu analogía no funciona. Preocuparse por las capacidades del material es la ciencia de los materiales, y la estabilidad de la estructura es estática. Ninguno de ellos es en realidad de lo que se trata el diseño, solo lo limitan. El diseño (software o edificios o cualquier cosa) se trata de tomar todos los requisitos y limitaciones (técnicos, financieros, psicológicos, ...) y diseñar una solución que cumpla con ellos.
back2dos
1

La informática es para la programación como la física para la ingeniería mecánica.

La informática es teórica, adopta un enfoque científico y matemático de la información y su cálculo.

La programación informática es práctica, es el proceso de diseño, escritura, prueba, depuración y mantenimiento del código fuente de los programas informáticos.

Son campos diferentes pero relacionados. Ambos se han beneficiado el uno del otro.

bbb
fuente
0

Un título en ciencias de la computación es mucho más amplio y cubre la teoría detrás de la informática. Un título en programación de computadoras , por otro lado, se enfoca en desarrollar las habilidades de programación o codificación de los estudiantes capacitándolos en diferentes lenguajes de programación. Si está confundido, puede navegar a través de los detalles de estos dos programas en California College San Diego. ¡Eso puede proporcionarle algo de claridad con respecto al alcance de estos grados!

usuario45390
fuente
0

Informática : es el estudio de la resolución de problemas con computadoras / métodos computacionales.

Programación informática: es la parte de este proceso de resolución de problemas que constituye el campo de la informática. La programación informática es solo un pequeño subconjunto de la informática.

ramneet
fuente
-1

La programación se trata de personas. La gente lee, escribe y mantiene el código. La informática se trata de las matemáticas: implementan y describen algoritmos.

DeadMG
fuente
3
@ SK-logic y DeadMG. He eliminado todos estos comentarios. Si desea tener una discusión (o una discusión), por favor llévela a otra parte.
ChrisF
1
Eso es un poco estrecho. Por lo menos, el laboratorio de "Algoritmos, máquinas y personas" en mi universidad quisiera estar en desacuerdo :). Y ese laboratorio contiene algunos de los mejores investigadores de CS, punto. También todas las personas de HCI en todas partes. Estoy siendo un poco gracioso, pero CS es realmente más amplio que solo algoritmos y matemáticas.
Tikhon Jelvis
-1

La programación (desarrollo) se trata de ganar dinero. La ciencia se trata de descubrir cosas nuevas.

papilla
fuente
77
Alguien se olvidó de decirle a la comunidad de código abierto.
webbiedave
2
@webbiedave: bueno, puede haber uno o dos altruistas verdaderos, pero al final el código abierto también se trata de ganar dinero. Me atrevo a decir que la mayoría de las personas involucradas en proyectos de código abierto lo hacen para mejorar sus habilidades y / o CV: s y aumentar su potencial de ingresos futuros. Muchos proyectos de código abierto también generan versiones comerciales / empresariales para generar ingresos del proyecto. Por lo tanto, la comunidad de código abierto está muy informada cuando se trata de ganar dinero;)
pap
¿Y lo mismo no es cierto para la ciencia? ;)
webbiedave
@webbiedave - No, no estoy de acuerdo. Si bien el dinero puede ser un biproducto de la ciencia, no es (y no debería ser) el objetivo principal. La ciencia se trata de descubrir por sí misma. Las empresas realizan investigación y desarrollo, pero no se trata de descubrir cosas nuevas, se trata de monetizar cosas ya descubiertas.
pap
La única razón por la que la mayoría de los científicos quieren más dinero es para poder investigar más. Creo que lo mismo cuenta para el código abierto. Hacer código abierto para mejorar tu CV me parece un camino al fracaso. Debería tratarse de curiosidad, descubrimiento y rascarse una picazón.
Tjaart