Informatica per programmatori


8

Sono un programmatore autodidatta e ho programmato per 8 anni. Grazie a questa esperienza, ho già molta familiarità con i principi della programmazione (come dichiarazioni if, classi, polimorfismo, ecc.).

Tuttavia, non ho mai imparato "informatica", ma solo programmazione. Quali sono alcune buone risorse per qualcuno nella mia posizione di autoapprendimento dell'informatica, ovvero risorse che si muovono a un ritmo rapido e assumono conoscenze di base sulla programmazione?


raccolto ref
refs

Allora siete venuti nel posto giusto.
SDsolar

Allora siete venuti nel posto giusto.
SDsolar

Risposte:


11

L'informatica è una disciplina poliedrica e Algorithms and Data Structures ne è una parte importante. Puoi provare video-corsi gratuiti, come Algorithms, Part 1, della Princeton University , che sta funzionando proprio ora.

Un altro notevole algoritmo di video-corso gratuito : Design and Analysis, parte 1, di Stanford è terminato di recente - si spera che si ripeta in futuro. La parte 2 di questo corso inizierà questo lunedì.


OK. Ho fatto delle ricerche su Internet e sembra che una classe di algoritmi generali sia esattamente ciò che sto cercando.
Shivam Sarodia,

9

Bene, questa è la mia prima risposta qui e, inoltre, ho meno esperienza di te. Quindi, consideralo una risposta per principianti, che può essere irrilevante per te o per gli altri. Ma proverò a preservare il valore della domanda con la mia risposta!

Bene, prima di tutto discutiamo (solo delineamo) il dominio dell'informatica, o il ciclo di vita di una persona coinvolta nell'apprendimento della CS. Probabilmente, potrei mancarne alcuni. Inoltre, potrebbe esserci ambiguità sul loro posizionamento. Ma va come: -

  1. Fondamenti di computer (funzionamento generale dei computer) e introduzione ai computer
  2. Il linguaggio di programmazione e il suo utilizzo per risolvere i problemi della vita reale con l'aiuto dei computer
  3. Variazioni del linguaggio di programmazione (funzionale, orientato agli oggetti, procedurale) e suoi diversi principi
  4. Strutture di dati e algoritmi // una delle parti più importanti e la spina dorsale di CS
  5. Fondamenti dei sistemi informatici --- Matematica discreta, una parte dell'elettronica digitale
  6. Ingegneria del software // di nuovo una delle parti più importanti e la spina dorsale di CS
  7. Sistema operativo --- la mia materia preferita nel ramo CS, e anche il ramo core più importante di CS, l'intero CS funziona su questo, almeno. Hai bisogno di una macchina per eseguire le cose, basata anche sulla modellazione
  8. Computer Architecture --- è di nuovo uno dei temi importanti per conoscere il funzionamento di base del funzionamento dei computer
  9. I database valgono ogni riconoscimento! Eccellente scoperta.
  10. Reti di computer --- una bellissima sezione di CS relativa alle reti (connessioni nella vita reale)
  11. Teoria del calcolo, automi, compilatori --- la mia seconda materia preferita, tutto in una sezione che descrive i cambiamenti di stato, la formazione e il funzionamento del linguaggio.
  12. Data mining e machine learning --- Il campo più progressivo dell'informatica al giorno d'oggi e in realtà uno dei più informativi
  13. Intelligenza artificiale e reti neurali e logica fuzzy --- per non dire nulla, la migliore simulazione della vita reale

Ora, tornando alla domanda. Penso che devi dare ad ogni sezione la possibilità di approfondire e cercare di trovare il tuo campo interessato. Ci vogliono alcuni anni per decidere quale campo è più adatto a lui / lei.

Non dovresti saltare direttamente a nessun campo che coinvolge solo la sezione di programmazione !!! I linguaggi di programmazione non valgono "così" quello che sono definiti, la parte più importante è la modellazione di base, il funzionamento e la generazione di idee e nuove teorie che migliorano il campo CS. Quindi, per quanto mi riguarda, dovresti provare ogni campo in una volta, dire per una settimana e vedere di essere davvero attratto da loro! Questo ti darà prima l'argomento da portare via!

Ora, venendo alle risorse online. Ci sono molte cose da vedere. Oggi ci sono molti tutorial, video e lezioni disponibili su Internet, ma quelli più ricercati con un capolavoro geniale sono: -

  1. www.coursera.org
  2. www.nptel.ac.in
  3. www.khanacademy.org

e così via.

Cerca di usarli più frequentemente per apprendere le nozioni di base su CS. Oltre a questi, hai sempre i motori di ricerca a portata di clic per aiutarti a fornire l'argomento con cui stai incontrando difficoltà.


2

Come programmatore, dovresti sapere le seguenti cose secondo l'Informatica di base:

  1. Principi di programmazione di base
  2. Strutture dati
  3. Metodologia di ingegneria del software
  4. Diverse tecniche di programmazione (dipende dall'algoritmo)
  5. Conoscenza di base del test del codice

Puoi ottenere questi corsi tramite MOOC .

Coursera offre diversi corsi con buone risorse, se lo desideri puoi iscriverti lì.


Sembra che tu abbia la domanda al contrario. Non si chiede quali aspetti dell'informatica siano rilevanti per i programmatori; si sta chiedendo dove un programmatore può trovare risorse per conoscere l'informatica.
David Richerby,

-1

Altri corsi che ho studiato (e penso siano importanti):

  1. Modelli di design (come Singleton, Facade, Factory .etc)
  2. Strutture discrete

La complessità asintotica è un argomento molto importante anche in CS. Vorrei raccomandare "Introduzione agli algoritmi" come un buon libro di riferimento per la struttura dei dati e gli algoritmi. È quindi possibile esercitarsi al Progetto Euler . Oltre a ciò, il MIT ha corsi MIT Open CourseWare su YouTube. Trovo molto utili i loro corsi sulla struttura dei dati.

Un'altra cosa che posso suggerire è anche consultare il libro di testo di qualsiasi università CS per ottenere gli argomenti e vedere quale è di interesse e studiarli.

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.