Informatica: perché insegnare?
“La programmazione non è qualcosa che conosci. È qualcosa che puoi capire. Chris Pine, esperto di programmazione, autore di libri e tutorial. “In un certo senso, programmare è come disegnare. All'inizio hai solo una tela bianca e materiali. È necessario utilizzare una combinazione di scienza, arte e artigianato per capire cosa fare con tutto questo”. Andrew Hunt, autore del libro bestseller The Pragmatic Programmer e coautore del Manifesto Agile. Non è difficile capire dove stiamo andando. Per diventare un programmatore davvero bravo, o semplicemente salire almeno un gradino sopra un normale programmatore, è necessario possedere la conoscenza più ampia e allo stesso tempo abbastanza approfondita in vari ambiti, oltre ai linguaggi di programmazione stessi. E la padronanza delle discipline incluse nel concetto di CS è uno dei primi posti qui.Discipline informatiche
Diamo un'occhiata a quali materie sono incluse nel campo dell'informatica. Alle brevi descrizioni delle discipline con le ragioni per studiarle, aggiungeremo consigli per il miglior libro e la migliore serie di videolezioni gratuite sull'argomento tratte, forse, dalla migliore guida in lingua inglese all'informatica, scritta da Oz Nova e Myles Byrne, insegnanti della School of Computer Science Bradfield di San Francisco.-
Programmazione
La programmazione è la base e la disciplina fondamentale dell'informatica; la maggior parte degli studenti inizia a studiare il corso di informatica con essa. I migliori corsi di programmazione CS saranno utili non solo per i principianti, ma anche per programmatori esperti che potrebbero aver perso alcuni concetti e modelli di programmazione quando lo hanno imparato per la prima volta.
Miglior libro: “Struttura e interpretazione dei programmi informatici”. Autori: Gerald Sussman e Hal Abelson.
А на JavaRush, кстати говоря, всем желающим доступен для изучения легендарный гарвардский курс “CS50. Основы программирования”, fully переведенный на русский.
Лучшая видеолекция: Brian Harvey’s Berkeley CS 61A
-
Алгоритмы и структуры данных
Знание наиболее распространенных алгоритмов и структур данных помогает решать разного рода задачи, а это очень важно в любой из областей компьютерных наук, включая, конечно, и разработку программного обеспечения.
Лучшая книга: The Algorithm Design Manual. Author: Стивен Скьена (Steven Skiena).
Лучшая видеолекция: лекции Стивена Скьены
-
Компьютерная архитектура
Знание компьютерной архитектуры, то есть понимание того, How на самом деле работает компьютер, является еще одной важной частичкой пазла, без которой попытки построения программных конструкций и моделей часто оказываются неудачными.
Лучшая книга: “Архитектура компьютера и проектирование компьютерных систем” (Computer Organization and Design). Authorы: Дэвид Паттерсон (David Patterson) и Джон Хеннеси (John Hennessy).
Лучшая видеолекция: Berkeley CS 61C
-
Операционные системы
Практически весь code, написанный программистом, будет выполняться операционной системой, поэтому знание принципов работы ОС также является важным элементом.
Лучшая книга: “Введение в операционные системы” (Operating Systems: Three Easy Pieces). Authorы: Андреа Арпачи-Дюссо (Andrea Arpaci-Dusseau) и Ремзи Арпачи-Дюссо (Remzi Arpaci-Dusseau).
Лучшая видеолекция: Berkeley CS 162
-
Компьютерные сети
Мало что в современном ИТ может обойтись без использования Интернета, поэтому ИТ-специалистам важно понимать, How Всемирная сеть работает, чтобы использовать ее потенциал по полной.
Лучшая книга: Computer Networking: A Top-Down Approach. Authorы: Джеймс Куросе (James Kurose), Кит Росс ( Keith Ross).
Лучшая видеолекция: Stanford CS 144
-
Математика для computer science
Поскольку компьютерные науки, по сути, являются ответвлением прикладной математики, знание этого предмета тоже будет очень полезным практически в любой профессии, связанной с программированием. А также даст вам конкурентное преимущество перед теми, кто этой дисциплиной не владеет.
Лучшая книга: Mathematics for Computer Science. Authorы: Альберт Р. Мейер (Albert R. Meyer), Эрик Леман (Eric Lehman) и Фрэнк Томсон Лейтон (Frank Thomson Leighton).
Лучшая видеолекция: Tom Leighton’s MIT 6.042J
-
Базы данных
Базы данных — относительно новая область компьютерных наук, и экспертов в ней по-прежнему не так уж много. Данные — еще один ключевой элемент CS, потому что они лежат в основе большинства значимых программ, но мало кто понимает, How на самом деле работают системы баз данных.
Miglior libro: Letture nei sistemi di database. Autori: Joseph M. Hellerstein e Michael Stonebraker.
Miglior conferenza video: Berkeley CS 186 di Joe Hellerstein
-
Linguaggi e compilatori
Comprendere come funzionano tecnicamente i linguaggi di programmazione e i compilatori ti consente di migliorare il tuo codice e le tue capacità di programmazione. Inoltre, semplifica l'apprendimento di nuove lingue, il che è di fondamentale importanza per qualsiasi sviluppatore a lungo termine.
Miglior libro: Compilatori: principi, tecniche e strumenti. Autori: Alfred Aho, Monica S. Lam, Ravi Sethi, Jeffrey Ullman.
Miglior video conferenza: il corso di Alex Aiken su Lagunita
-
Sistemi distribuiti
Al giorno d'oggi, la maggior parte dei sistemi sono distribuiti. I computer e i programmi stanno diventando sempre più complessi e la conoscenza dei sistemi distribuiti sarà utile per garantire che il software funzioni correttamente e senza intoppi.
Miglior libro: Sistemi distribuiti, 3a edizione. Autori: Maarten van Steen e Andrew S. Tanenbaum.
Miglior lezione video: CS 436: Sistemi informatici distribuiti
Suggerimenti per studiare informatica
E infine qualche consiglio per chi ha intenzione di iniziare a studiare le discipline CS.-
Sviluppare abilità pratiche nelle discipline CS
Uno dei vantaggi di CS, come di altri corsi di informatica, è che le competenze teoriche appena acquisite possono essere immediatamente messe in pratica. Non dimenticartene e alterna la teoria con la pratica per ottenere i migliori risultati.
-
Non procrastinare
L'informatica è una materia piuttosto complessa, il cui studio è facile per poche persone, soprattutto all'inizio. Ecco perché, quando si inizia a studiare le discipline CS, è necessario evitare di procrastinare: non rimandare la padronanza della teoria, della risoluzione dei problemi e della pratica a più tardi, poiché ciò non solo renderà l'apprendimento molto lungo, ma molto probabilmente non sarà altrettanto efficace.
-
Non limitarti a un corso
Non aspettarti di poter acquisire tutta la conoscenza di cui hai bisogno su una materia da un corso, non importa quanto sia valido. È sempre meglio consultare almeno diverse fonti di informazione per acquisire una comprensione più ampia dell'argomento.
-
Trova persone che la pensano allo stesso modo
Sembra un po’ banale, ma imparare in modo efficace, come fare molte altre cose nella vita, è meglio farlo come parte di un gruppo di persone che la pensano allo stesso modo. Trovare un gruppo con cui studiare CS può essere utile per una serie di motivi. Ciò ti aiuterà a imparare in modo più efficace, a risolvere compiti e problemi insieme, a confrontare i tuoi progressi di apprendimento e le tue abilità nell'applicare nuove conoscenze con gli altri.
-
Impara a scrivere parole, non solo codice
Un altro consiglio comune di molti esperti a quei programmatori che studiano CS per migliorare le proprie capacità e migliorare il proprio livello professionale: imparare a scrivere (non a programmare), cioè a mettere le parole in frasi e comporre testi da frasi. Questa abilità è abbastanza importante per qualsiasi sviluppatore e la sua assenza ostacolerà il progresso non solo nello studio dell'informatica, ma anche in altri aspetti della programmazione come professione.
GO TO FULL VERSION