Quelle est la différence entre l'informatique et la programmation?

32

Je suis nouveau en informatique et en programmation, et je me demandais s'il y a une différence entre l'informatique et la programmation? et avez-vous le choix d'étudier un seul d'entre eux à l'université, ou les deux?

xXSarahXx
la source
42
Mauvais temps d'analogie.
Mike Weller
10
Quelle est la différence entre l'architecture et la construction?
Odé le
6
ils sont aussi éloignés que la géologie et le creusement de fossés
Steven A. Lowe
27
L'informatique est ce que vous payez pour apprendre. La programmation est ce que vous êtes payé pour faire.
jfrankcarr
5
La différence est ce qui vous fait utiliser le tri lisse au lieu du tri à bulles.
deadalnix

Réponses:

68

L'informatique est l'étude de ce que les ordinateurs [peuvent] faire; la programmation est la pratique de faire faire des choses aux ordinateurs.

Jetez un coup d'œil aux cours / programmes proposés par les universités qui vous intéressent pour savoir si le cours est un cours de CS, un cours de programmation, quelque chose d'autre (par exemple le génie logiciel) ou même une combinaison des éléments ci-dessus. De nombreux cours annoncés comme "informatique" offrent une composante de programmation importante, qui peut être pour que vous puissiez mettre en pratique les parties théoriques du cours, ou pour leur propre intérêt afin que vous puissiez apprendre les compétences nécessaires pour créer des programmes.


la source
1
Très bonne réponse, bien qu'elle ne réponde pas à la partie pratique de la question;)
back2dos
@ back2dos OK, j'ai étendu la réponse.
Il est important de noter que la plupart des cours d'informatique ne sont pas du tout concernés par le CS théorique, TCS est au moins aussi séparé du CS pratique que le CS l'est de la programmation.
Ben Brocka
3
Je ne pense pas que vous devriez lier CS (malgré son nom) trop étroitement aux ordinateurs: c'est avant tout l'étude de l' information . Il se trouve que le terme "ordinateur" englobe la plupart des différents outils physiques que nous utilisons pour travailler avec des informations, de sorte que presque toute étude d'informations impliquera la programmation d'un ordinateur.
Tikhon Jelvis
La taxonomie pourrait s'inscrire sous le surnom de science de l'information. Mais cela ne me semble pas convenir parfaitement à CS. Utile dans un sens interdisciplinaire mais CS est inextricablement en partie sur les choses que nous pouvons faire avec les ordinateurs, OMI. Je pourrais faire votre définition de tout "ordinateur" est, plus générale, mais pas la définition de CS.
Erik Reppen
36

Une mise en garde: «L'informatique» est devenue un domaine trouble dans les temps modernes parce que (au moins aux États-Unis) les universités n'ont pas de diplômes en «programmation». Cela signifie que les personnes intéressées par la programmation doivent s'inscrire à des diplômes en informatique, et en réaction à cela, les programmes informatiques mettent de plus en plus l'accent sur la programmation.

Cela dit, l'informatique elle-même est une science fortement mathématique - les mathématiques computationnelles auraient pu être un meilleur terme. Elle implique l'étude de la théorie des graphes, de la complexité algorithmique, de la logique formelle, des automates et, en général, de toute structure logique pouvant décrire une transformation ou une réponse à des algorithmes d'entrée. Un informaticien au sens classique pourrait raisonner sur les règles qui régissent tout système informatique (y compris les ordinateurs modernes) sans nécessairement connaître les détails de l'implémentation sur l'architecture actuelle. Une solide expérience en informatique vous donne la possibilité de développer (ou de rappeler) des algorithmes efficaces et évolutifs, d'anticiper les réductions logiques et de bien raisonner sur ce qui est traitable.

La programmation, en revanche, est ce qu'une personne fait lorsqu'elle utilise un langage de programmation pour transformer un algorithme en quelque chose que la machine peut faire. (Cela devrait rendre évident le lien intime avec l'informatique et d'où vient la majeure partie de la confusion.) Un programmeur (par rapport à un environnement et un langage) devrait être capable de prendre pratiquement n'importe quel ensemble d'algorithmes et de les transformer en une forme à la fois humaine - et lisible par machine en écrivant du code. Une solide expérience en programmation (comme le fourniront la plupart des diplômes CS) vous permet d'écrire un meilleur code - où un `` meilleur '' code est plus facilement compris par les autres et réussit mieux à exprimer l'algorithme que vous implémentez.

Il y a une grande quantité de diaphonie, bien sûr, et un niveau élevé d'expérience dans l'un correspondra fortement au développement de l'expérience dans l'autre - comme indiqué, un CS majeur est presque toujours un programmeur compétent, et un programmeur chevronné a repris de nombreux principes de CS. Pensez à la physique et à l'ingénierie.

Une bonne façon de se souvenir de la différence est la suivante: si cela nécessite un ordinateur pour voir si cela fonctionne, c'est de la programmation - si vous pouvez le faire avec un crayon et du papier, c'est l'informatique.

shanef22
la source
4
Oui, cette dernière phrase est le hic, n'est-ce pas? Il évoque des images de professeurs froissés avec des cheveux crépus et des doigts crayeux ondulant autour de poignées de parchemin, et rappelle des citations telles que "l'informatique ne concerne pas plus les ordinateurs que l'astronomie ne concerne les télescopes". Si la science ne réussit pas à en faire une machine, quel est l'intérêt? Quel astronome sain d'esprit ne regarde jamais à travers un télescope?
Robert Harvey
Je ne pense pas qu'on m'ait jamais demandé de "transformer un algorithme en quelque chose que la machine peut faire" au cours des 30 dernières années. Ce à quoi vous pensez n'est pas un programmeur, mais un compilateur.
gnasher729
2
@ gnasher729 Ok, disons que j'ai l'algorithme "Pour chaque mot dans une liste, s'il commence par un A, déplacez-le au début." Quel compilateur recommanderiez-vous?
shanef22
18

L'informatique traite des fondements théoriques de l'information, du calcul et des techniques pratiques pour leur mise en œuvre et leur application. http://en.wikipedia.org/wiki/Computer_science

~

L'informatique ne concerne pas plus les ordinateurs que l'astronomie ne concerne les télescopes. Edsger Dijkstra

La programmation est l'art de créer un programme informatique.

Gary Willoughby
la source
11

L'informatique est, de mon point de vue, censée être une science dure comme la physique.

Il implique l'étude des compilateurs et des générateurs de compilateurs, des concepts d'architecture matérielle, diverses formes de systèmes numériques, des algorithmes et de l'efficacité / performance algorithmique et la théorie derrière les opérations arithmétiques sur le processeur. Quand j'ai fait du CS à l'université, nous avons passé beaucoup de temps à fouiner avec l'assembleur, à apprendre la différence entre la compilation, la liaison et l'interprétation, etc.

Une grande partie de cela a été fait par programmation - c'est-à-dire l'acte d'écrire du code qui a ensuite été compilé ou exécuté via un interpréteur, avec l'intention de générer des résultats pour résoudre un problème. C'est-à-dire que la programmation est l'acte de résoudre des problèmes qui peuvent être décrits avec des connaissances en informatique. C'est une sorte de séparation Pure Maths / Applied Maths.

Vous n'avez pas besoin d'un diplôme en informatique pour être programmeur, mais un programmeur avec une formation en CS aura probablement une compréhension plus approfondie du comportement des programmes informatiques.

Mcfinnigan
la source
1
Je ne pense pas que les étudiants CS sont meilleurs que les étudiants des autres cours de programmation.
Tjaart
5
Je n'ai pas dit mieux , j'ai dit que j'avais probablement une compréhension plus profonde.
mcfinnigan
@mcfinnigan, je dirais, plus erroné. Les étudiants CS qui se fondent sur la théorie ont tendance à avoir moins de compréhension parce qu'ils n'ont pas réellement l'expérience pour savoir ce que les ordinateurs peuvent faire ou comment s'y rendre dans diverses langues.
Izkata
3
encore une fois, vous me comprenez mal. Je dis qu'un programmeur qui a pris le temps d'acquérir une partie de la théorie CS réelle est plus susceptible de savoir pourquoi un ensemble est meilleur qu'une liste dans certaines situations, ou pourquoi la virgule flottante est délicate.
mcfinnigan
2
@TikhonJelvis: l'ingénierie utilise des mathématiques, mais c'est à deux pas. CS est une branche des mathématiques.
Kevin Cline
3

Je reformulerais votre question comme "Quelle est la différence entre l'informatique et le génie logiciel?" Après tout, les deux impliquent la programmation.

L'informatique est l'étude théorique de ce qu'est le calcul et de ce qui est et n'est pas possible. Il examine des choses comme le théorème de Godels et le problème de l'arrêt.

Le génie logiciel consiste à écrire des programmes qui font ce pour quoi ils ont été conçus et qui sont maintenables.

Jaydee
la source
Non. Pourquoi reformuler sa question? Il a demandé ce qu'il avait demandé. Le génie logiciel est différent de la programmation et est également controversé car il signifie des choses différentes dans différents pays (par exemple aux États-Unis et au Canada)
Douglas Held
2

L'informatique est la théorie de la programmation. La programmation est la mise en œuvre.

L'informatique ... est l'approche scientifique et pratique du calcul et de ses applications. Un informaticien est spécialisé dans la théorie du calcul et la conception de systèmes informatiques.

Ses sous-domaines peuvent être divisés en une variété de disciplines théoriques et pratiques. Certains domaines, tels que la théorie de la complexité computationnelle (qui explore les propriétés fondamentales des problèmes de calcul), sont très abstraits, tandis que des domaines tels que l'infographie mettent l'accent sur les applications visuelles du monde réel. D'autres domaines encore se concentrent sur les défis de la mise en œuvre du calcul. Par exemple, la théorie du langage de programmation considère différentes approches de la description du calcul, tandis que l'étude de la programmation informatique elle-même examine divers aspects de l'utilisation du langage de programmation et des systèmes complexes. L'interaction homme-machine considère les défis à relever pour rendre les ordinateurs et les calculs utiles, utilisables et universellement accessibles aux humains ...

Tom Squires
la source
12
Je crois honnêtement que l'informatique est plus que de la programmation.
Ubermensch
2
@Ubermensch: Je crois sincèrement que la programmation est plus que de l'informatique.
Michael Borgwardt
1
@MichaelBorgwardt En fait, nos deux opinions sont bonnes. Mais l'informatique est encore beaucoup plus grande que la programmation (vous pouvez aussi argumenter dans l'autre sens). Une citation célèbre de Niehls Bohr "Il y a deux sortes de vérité, la petite vérité et la grande vérité. Vous pouvez reconnaître une petite vérité parce que son contraire est un mensonge. Le contraire d'une grande vérité est une autre vérité."
Ubermensch
@Ubermensch Votre croyance est un fait. L'informatique n'est pas seulement la théorie de la programmation. L'informatique existait avant les ordinateurs.
Casey Patton
1

Si la programmation est de la menuiserie, alors l'informatique est l'architecture / le design.

modifier

Plus d'informations: en menuiserie, vous êtes intéressé par des choses comme quoi dans quel ordre construire les choses (charpente, puis sous-plancher, puis murs intérieurs, puis cloisons sèches, etc.). Comment pouvez-vous le construire pour qu'il prenne moins de temps à construire, mais peut être modifié plus tard.

Dans le cas de l'architecture (la partie comme CS de toute façon), vous vous souciez de choses telles que les capacités des matériaux, de quelle taille de poutre avez-vous besoin pour supporter cette portée de mur / toit?

De même, CS concerne les capacités théoriques des ordinateurs, où la programmation concerne l'application pratique de ces connaissances.

Scott Whitlock
la source
3
Mauvaise analogie. Si la programmation est de la menuiserie, la conception du logiciel est l'architecture / la conception. L'informatique ressemble davantage à la dendrologie à cet égard, ou peut-être à la biologie en général.
back2dos
Ok, peut-être que je n'étais pas clair, alors laissez-moi vous expliquer pourquoi je pense que votre analogie ne fonctionne pas. S'intéresser aux capacités du matériau est la science des matériaux, la stabilité de la structure est de la statique. Aucun d'entre eux n'est en fait ce qu'est le design, ils ne font que le contraindre. La conception (logiciel ou bâtiment ou autre) consiste à prendre toutes les exigences et contraintes (techniques, financières, psychologiques, ...) et à concevoir une solution répondant à celles-ci.
back2dos
1

L'informatique est à la programmation comme la physique au génie mécanique.

L'informatique est théorique, elle prend une approche scientifique et mathématique de l'information et c'est du calcul.

La programmation informatique est pratique, c'est le processus de conception, d'écriture, de test, de débogage et de maintenance du code source des programmes informatiques.

Ce sont des domaines différents mais liés. Les deux ont profité l'un de l'autre.

bbb
la source
0

Un diplôme en informatique est beaucoup plus large et couvre la théorie derrière l'informatique. Un diplôme en programmation informatique , d'autre part, se concentre sur le développement des compétences de codage ou de programmation des étudiants en les formant dans différents langages de programmation. Si vous êtes confus, vous pouvez parcourir les détails de ces deux programmes au California College San Diego. Cela peut vous donner une certaine clarté quant à la portée de ces diplômes!

user45390
la source
0

Informatique : C'est l'étude de la résolution de problèmes avec les ordinateurs / méthodes de calcul.

Programmation informatique: c'est la partie de ce processus de résolution de problèmes qui constitue le domaine de l'informatique. La programmation informatique n'est qu'un petit sous-ensemble de l'informatique.

ramneet
la source
-1

La programmation concerne les gens. Les gens lisent, écrivent et gèrent le code. L'informatique concerne les mathématiques - ils implémentent et décrivent des algorithmes.

DeadMG
la source
3
@ SK-logic et DeadMG. J'ai supprimé tous ces commentaires. Si vous souhaitez avoir une discussion (ou même un argument), veuillez l'emmener ailleurs.
ChrisF
1
C'est un peu étroit. À tout le moins, le laboratoire «Algorithmes, machines et personnes» de mon université ne serait pas d'accord :). Et ce laboratoire contient certains des meilleurs chercheurs CS, point final. Aussi tous les HCI partout. Je suis un peu facétieux, mais CS est vraiment plus large que les algorithmes et les mathématiques.
Tikhon Jelvis
-1

La programmation (développement) consiste à gagner de l'argent. La science consiste à découvrir de nouvelles choses.

bouillie
la source
7
Quelqu'un a oublié de le dire à la communauté open source.
webbiedave
2
@webbiedave - eh bien, il peut y avoir un ou deux vrais altruistes là-bas, mais en fin de compte l'open-source est aussi de gagner de l'argent. J'ose dire que la plupart des personnes impliquées dans des projets open source le font pour améliorer leurs compétences et / ou leurs CV et augmenter leur potentiel de revenus futurs. De nombreux projets open source génèrent également des versions commerciales / d'entreprise pour générer des revenus à partir du projet. La communauté open source est donc très au courant quand il s'agit de gagner de l'argent;)
pap
Et la même chose n'est pas vraie pour la science? ;)
webbiedave
@webbiedave - Non, je ne suis pas d'accord. Bien que l'argent puisse être un sous-produit de la science, ce n'est pas (et ne devrait pas être) l'objectif principal. La science est une découverte pour elle-même. Les entreprises font de la R&D, mais il ne s'agit pas de découvrir de nouvelles choses, il s'agit de monétiser des choses déjà découvertes.
pap
La seule raison pour laquelle la plupart des scientifiques veulent plus d'argent, c'est pour qu'ils puissent faire plus de recherches. Je pense que la même chose compte pour l'open source. Faire de l'open source pour améliorer votre CV sonne comme un chemin vers l'échec pour moi. Il devrait s'agir de curiosité, de découverte et de gratter.
Tjaart