Qual è la differenza tra informatica e programmazione?


32

Sono nuovo in informatica e programmazione, e mi chiedevo, c'è differenza tra informatica e programmazione? e scegli di studiare solo uno di loro all'università o entrambi?


42
Tempo di analogia errato.
Mike Weller,

10
Qual è la differenza tra architettura e costruzione?
Oded,

6
sono distanti quanto la geologia e lo scavo dei fossi
Steven A. Lowe,

27
L'informatica è ciò che si paga per imparare. La programmazione è ciò che vieni pagato per fare.
jfrankcarr,

5
La differenza è ciò che ti fa usare smoothsort invece di bubble sort.
deadalnix,

Risposte:


68

L'informatica è lo studio di ciò che i computer [possono] fare; la programmazione è la pratica di far fare cose ai computer.

Dai un'occhiata ai corsi / programmi offerti dalle università a cui sei interessato per scoprire se il corso è un corso CS, un corso di programmazione, qualcos'altro (ad esempio Ingegneria del software) o anche una combinazione di quanto sopra. Molti corsi pubblicizzati come "informatica" offrono una componente di programmazione significativa, che può essere tale da poter mettere in pratica le parti teoriche del corso, o può essere per il loro bene in modo da poter imparare l'abilità di fare programmi.


1
Ottima risposta, anche se non risponde alla parte pratica della domanda;)
back2dos

@ back2dos OK, ho esteso la risposta.

È importante notare che la maggior parte dei corsi di informatica non si occupano nemmeno di CS teorico, TCS è almeno separato dal CS pratico come CS dalla programmazione.
Ben Brocka,

3
Non penso che dovresti legare CS (nonostante il nome) troppo strettamente ai computer: prima di tutto, è lo studio delle informazioni . Accade semplicemente che il termine "computer" racchiuda la maggior parte dei diversi strumenti fisici che utilizziamo per lavorare con le informazioni, quindi quasi tutti gli studi sulle informazioni implicheranno la programmazione di un computer.
Tikhon Jelvis,

La tassonomia potrebbe rientrare nel dominio della scienza dell'informazione. Ma non mi sembra perfetto per CS. Utile in senso interdisciplinare, ma CS è inestricabilmente in parte sulle cose che possiamo fare con i computer, l'IMO. Potrei rendere la tua definizione di qualunque "computer", più generale, ma non la definizione di CS.
Erik Reppen,

36

Un avvertimento: l '"Informatica" è diventata un campo confuso nei tempi moderni perché (almeno negli Stati Uniti) le università non hanno una laurea in "programmazione". Ciò significa che le persone interessate alla programmazione devono iscriversi ai corsi di laurea in Informatica e, come reazione a ciò, i programmi di Informatica sottolineano sempre di più la programmazione.

Detto questo, la stessa Informatica è una scienza fortemente matematica: la matematica computazionale avrebbe potuto essere un termine migliore. Implica lo studio della teoria dei grafi, della complessità algoritmica, della logica formale, degli automi e in generale di qualsiasi struttura logica in grado di descrivere una trasformazione o una risposta agli algoritmi di input. Un informatico in senso classico potrebbe ragionare sulle regole che governano qualsiasi sistema informatico (compresi i computer moderni) senza necessariamente conoscere i dettagli dell'implementazione sull'architettura attuale. Un solido background nell'Informatica ti dà la possibilità di sviluppare (o richiamare) algoritmi efficienti e scalabili, anticipare riduzioni logiche e ragionare profondamente su ciò che è trattabile.

La programmazione, al contrario, è ciò che una persona fa quando usa un linguaggio di programmazione per trasformare un algoritmo in qualcosa che la macchina può fare. (Ciò dovrebbe rendere evidente l'intima connessione con l'Informatica e da dove proviene gran parte della confusione.) Un programmatore (relativamente a un ambiente e un linguaggio) dovrebbe essere in grado di prendere praticamente qualsiasi set di algoritmi e trasformarli in una forma sia umana - e leggibile automaticamente scrivendo codice. Un solido background nella programmazione (come fornirà la maggior parte dei gradi CS) consente di scrivere un codice migliore, in cui il codice "migliore" è più facilmente comprensibile da altri e ha più successo nell'esprimere l'algoritmo che si sta implementando.

Esiste una grande quantità di diafonia, ovviamente, e un alto livello di esperienza in uno corrisponderà fortemente allo sviluppo di esperienza nell'altro - come notato, un CS maggiore è quasi sempre un programmatore competente e un programmatore esperto ha raccolto molti principi di CS. Pensa alla fisica e all'ingegneria.

Un buon modo per ricordare la differenza è questo: se richiede un computer per vedere se funziona è programmazione - se riesci a farlo con carta e matita, è Informatica.


4
Sì, l'ultima frase è il punto, vero? Evoca immagini di professori arruffati con capelli crespi e dita gessose che si agitano intorno a manciate di pergamena, e riporta alla mente citazioni come "l'informatica non è più sui computer di quanto l'astronomia sia sui telescopi". Se la scienza alla fine non riesce a trasformarsi in una macchina in qualche modo, allora che senso ha? Quale astronomo nella loro mente giusta non guarda mai attraverso un telescopio?
Robert Harvey,

Non credo che mi sia mai stato chiesto di "trasformare un algoritmo in qualcosa che la macchina può fare" negli ultimi 30 anni. Quello a cui stai pensando non è un programmatore, ma un compilatore.
gnasher729,

2
@ gnasher729 Ok, diciamo che ho l'algoritmo "Per ogni parola in un elenco, se inizia con una A, spostalo all'inizio." Quale compilatore consiglieresti?
shanef22,

18

L'informatica si occupa delle basi teoriche dell'informazione, del calcolo e delle tecniche pratiche per la loro implementazione e applicazione. http://en.wikipedia.org/wiki/Computer_science

~

L'informatica non riguarda più i computer di quanto l'astronomia riguardi i telescopi. Edsger Dijkstra

La programmazione è l'arte della creazione di un programma per computer.


11

L'informatica, dal mio punto di vista, dovrebbe essere una scienza dura come la fisica.

Implica lo studio di compilatori e generatori di compilatori, concetti di architettura hardware, varie forme di sistemi numerici, algoritmi ed efficienza / prestazioni algoritmiche e la teoria alla base delle operazioni aritmetiche sul processore. Quando ho fatto CS all'università, abbiamo trascorso molto tempo a scherzare con l'assemblatore, imparando a conoscere la differenza tra compilazione, collegamento e interpretazione, eccetera.

Gran parte di questo è stato fatto tramite la programmazione, ovvero l'atto di scrivere codice che è stato quindi compilato o eseguito tramite un interprete, con l'intenzione di generare risultati per risolvere un problema. Cioè, la programmazione è l'atto di risolvere i problemi che possono essere descritti con la conoscenza dell'Informatica. È una specie di scissione Pure Maths / Applied Maths.

Non hai bisogno di una laurea in Informatica per essere un programmatore, ma un programmatore con un background CS probabilmente avrà una comprensione più profonda del comportamento dei programmi per computer.


1
Non penso che gli studenti CS siano migliori degli studenti di altri corsi di programmazione.
Tjaart,

5
Non ho detto di meglio , ho detto che probabilmente avrebbe avuto una comprensione più profonda.
Mcfinnigan,

@mcfinnigan direi, più fuorviato. Gli studenti CS che si fondano in teoria tendono ad avere una comprensione inferiore perché in realtà non hanno l'esperienza di sapere cosa possono fare i computer o come arrivarci in varie lingue.
Izkata,

3
di nuovo, mi fraintendi. Sto dicendo che un programmatore che ha avuto il tempo di acquisire parte della teoria CS reale ha maggiori probabilità di sapere perché un set è meglio di un elenco in determinate situazioni o perché il virgola mobile è difficile.
Mcfinnigan,

2
@TikhonJelvis: l'ingegneria impiega la matematica, ma è a due passi. CS è una branca della matematica.
Kevin Cline,

3

Riformulerei la tua domanda come "Qual è la differenza tra informatica e ingegneria del software?" Dopotutto entrambi implicano la programmazione.

L'informatica è lo studio teortico di cosa sia il calcolo e cosa sia e non sia possibile. Analizza cose come il Teorema di Godels e il problema di Halting.

L'ingegneria del software è come scrivere programmi che fanno ciò per cui sono stati progettati e che sono gestibili.


No. Perché riformulare la sua domanda? Ha chiesto quello che ha chiesto. L'ingegneria del software è diversa dalla programmazione ed è ANCHE controversa perché significa cose diverse in paesi diversi (ad es. USA e Canada)
Douglas Held,

2

L'informatica è la teoria della programmazione. La programmazione è l'implementazione.

L'informatica ... è l'approccio scientifico e pratico al calcolo e alle sue applicazioni. Un informatico è specializzato nella teoria del calcolo e nella progettazione di sistemi computazionali.

I suoi sottocampi possono essere suddivisi in una varietà di discipline teoriche e pratiche. Alcuni campi, come la teoria della complessità computazionale (che esplora le proprietà fondamentali dei problemi computazionali), sono altamente astratti, mentre campi come la computer grafica enfatizzano le applicazioni visive del mondo reale. Altri campi ancora si concentrano sulle sfide nell'implementazione del calcolo. Ad esempio, la teoria del linguaggio di programmazione considera vari approcci alla descrizione del calcolo, mentre lo studio della stessa programmazione informatica studia vari aspetti dell'uso del linguaggio di programmazione e dei sistemi complessi. L'interazione uomo-computer considera le sfide nel rendere i computer e i calcoli utili, utilizzabili e universalmente accessibili agli umani ...


12
Sinceramente credo che l'informatica sia molto più che programmazione.
Ubermensch,

2
@Ubermensch: onestamente credo che la programmazione sia qualcosa di più dell'informatica.
Michael Borgwardt,

1
@MichaelBorgwardt In realtà, entrambe le nostre opinioni sono giuste. Ma l'informatica è ancora molto più grande della programmazione (puoi anche discutere il contrario). Una famosa citazione di Niehls Bohr "Esistono due tipi di verità, piccola verità e grande verità. Puoi riconoscere una piccola verità perché il suo opposto è una falsità. L'opposto di una grande verità è un'altra verità."
Ubermensch,

@Ubermensch La tua convinzione è un fatto. L'informatica NON è solo la teoria della programmazione. L'informatica esisteva prima dei computer.
Casey Patton,

1

Se la programmazione è carpenteria, l'informatica è architettura / design.

modificare

Maggiori informazioni: in carpenteria, ti interessano cose come l'ordine in cui costruire le cose (telaio, quindi sottofondo, quindi pareti interne, quindi muro a secco, ecc.). Come lo costruisci in modo che ci voglia meno tempo per costruirlo, ma può essere modificato in seguito.

Nel caso dell'architettura (la parte di esso come CS in ogni caso), ti preoccupi di cose come quali sono le capacità dei materiali, quanto è grande una trave di cui hai bisogno per supportare questo arco di parete / tetto?

Allo stesso modo CS riguarda le capacità teoriche dei computer, dove la programmazione riguarda l'applicazione pratica di tali conoscenze.


3
Cattiva analogia. Se la programmazione è falegnameria, la progettazione del software è architettura / progettazione. L'informatica è più simile alla dendrologia in questo senso, o forse alla biologia in generale.
back2dos,

Ok, forse non ero chiaro, quindi lasciami spiegare perché penso che la tua analogia non funzioni. Preoccuparsi delle capacità del materiale è scienza dei materiali, mentre la stabilità della struttura è statica. Nessuno di questi è in realtà il design, lo limitano e basta. Progettare (software o edifici o altro) significa prendere tutti i requisiti e i vincoli (tecnici, finanziari, psicologici, ...) e progettare una soluzione che soddisfi quelli.
back2dos,

1

L'informatica sta nella programmazione come la fisica nell'ingegneria meccanica.

L'informatica è teorica, adotta un approccio scientifico e matematico all'informazione e al suo calcolo.

La programmazione per computer è pratica, è il processo di progettazione, scrittura, test, debug e mantenimento del codice sorgente dei programmi per computer.

Sono campi diversi ma correlati. Entrambi hanno beneficiato l'uno dell'altro.


0

Una laurea in informatica ha una portata molto più ampia e copre la teoria alla base dell'informatica. Una laurea in programmazione informatica , d'altra parte, si concentra sullo sviluppo delle capacità di programmazione o di programmazione degli studenti formandoli in diversi linguaggi di programmazione. Se sei confuso, puoi consultare i dettagli di entrambi questi programmi al California College di San Diego. Ciò potrebbe fornirti un po 'di chiarezza riguardo alla portata di questi gradi!


0

Informatica : è lo studio della risoluzione dei problemi con i computer / metodi computazionali.

Programmazione informatica: è la parte di questo processo di risoluzione dei problemi che costituisce il campo dell'informatica. La programmazione informatica è solo un piccolo sottoinsieme dell'informatica.


-1

La programmazione riguarda le persone. Le persone leggono, scrivono e mantengono il codice. L'informatica riguarda la matematica: implementano e descrivono algoritmi.


3
@ SK-logic e DeadMG. Ho cancellato tutti questi commenti. Se desideri avere una discussione (o addirittura un argomento), portala altrove.
ChrisF

1
È un po 'stretto. Per lo meno, il laboratorio "Algorithms, Machines and People" della mia università vorrebbe dissentire :). E quel laboratorio contiene alcuni dei migliori ricercatori CS, punto. Anche tutte le persone dell'HCI ovunque. Sono un po 'faceto, ma CS è davvero più ampio di semplici algoritmi e matematica.
Tikhon Jelvis,

-1

La programmazione (sviluppo) riguarda il fare soldi. La scienza è scoprire cose nuove.


7
Qualcuno ha dimenticato di dire alla comunità open source.
webbiedave il

2
@webbiedave - beh, ci possono essere uno o due veri altruisti là fuori, ma alla fine l'open-source riguarda anche fare soldi. Oserei dire che la maggior parte delle persone coinvolte in progetti open source lo fanno per migliorare le loro abilità e / o CV: se aumentano il loro potenziale di reddito futuro. Molti progetti open source generano anche versioni commerciali / aziendali per generare entrate dal progetto. Quindi la comunità open source è molto in voga quando si tratta di fare soldi;)
pap

E lo stesso non vale per la scienza? ;)
webbiedave il

@webbiedave - No, non sono d'accordo. Mentre il denaro può essere un sottoprodotto della scienza, non è (e non dovrebbe essere) l'obiettivo principale. La scienza riguarda la scoperta per se stessa. Le aziende fanno ricerca e sviluppo, ma non si tratta di scoprire cose nuove, si tratta di monetizzare cose già scoperte.
pap

L'unico motivo per cui la maggior parte degli scienziati vuole più soldi è che possano fare più ricerche. Penso che la stessa cosa valga per l'open source. Fare open source per migliorare il tuo CV suona come una strada per il fallimento per me. Dovrebbe trattarsi di curiosità, scoperta e grattarsi un prurito.
Tjaart
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.