Informatyka - po co uczyć?
„Programowanie nie jest czymś, co się zna. To coś, co możesz rozgryźć. Chris Pine, ekspert programowania, autor książek i tutoriali. „W pewnym sensie programowanie jest jak rysowanie. Na początku masz tylko czyste płótno i materiały. Aby dowiedzieć się, co z tym wszystkim zrobić, trzeba zastosować połączenie nauki, sztuki i rzemiosła”. Andrew Hunt, autor bestsellerowej książki Pragmatic Programmer i współautor Manifestu Agile. Nietrudno zrozumieć, dokąd zmierzamy. Aby zostać naprawdę dobrym programistą, lub po prostu wznieść się choć o krok ponad zwykłego programistę, trzeba oprócz samych języków programowania posiadać jak najszerszą, a zarazem dość głęboką wiedzę z różnych dziedzin. A opanowanie dyscyplin objętych koncepcją CS jest tutaj jednym z pierwszych miejsc.Dyscypliny informatyki
Przyjrzyjmy się, jakie przedmioty wchodzą w zakres informatyki. Do krótkich opisów dyscyplin wraz z powodami ich studiowania dodamy rekomendacje najlepszej książki i najlepszego cyklu bezpłatnych wykładów wideo na ten temat z być może najlepszego anglojęzycznego przewodnika po informatyce, napisanego przez Oza Nova i Mylesa Byrne, nauczyciele w School of Computer Science Bradfield w San Francisco.-
Programowanie
Programowanie jest podstawą i podstawową dyscypliną informatyki, większość studentów rozpoczyna od niego naukę CS. Najlepsze kursy programowania CS przydadzą się nie tylko początkującym, ale także doświadczonym programistom, którym ucząc się go po raz pierwszy mogło umknąć pewne koncepcje i modele programowania.
Najlepsza książka: „Struktura i interpretacja programów komputerowych”. Autorzy: Gerald Sussman i Hal Abelson.
А на JavaRush, кстати говоря, всем желающим доступен для изучения легендарный гарвардский курс “CS50. Основы программирования”, w pełni переведенный на русский.
Лучшая видеолекция: Brian Harvey’s Berkeley CS 61A
-
Алгоритмы и структуры данных
Знание наиболее распространенных алгоритмов и структур данных помогает решать разного рода задачи, а это очень важно в любой из областей компьютерных наук, включая, конечно, и разработку программного обеспечения.
Лучшая книга: The Algorithm Design Manual. Autor: Стивен Скьена (Steven Skiena).
Лучшая видеолекция: лекции Стивена Скьены
-
Компьютерная архитектура
Знание компьютерной архитектуры, то есть понимание того, Jak на самом деле работает компьютер, является еще одной важной частичкой пазла, без которой попытки построения программных конструкций и моделей часто оказываются неудачными.
Лучшая книга: “Архитектура компьютера и проектирование компьютерных систем” (Computer Organization and Design). Autorы: Дэвид Паттерсон (David Patterson) и Джон Хеннеси (John Hennessy).
Лучшая видеолекция: Berkeley CS 61C
-
Операционные системы
Практически весь kod, написанный программистом, будет выполняться операционной системой, поэтому знание принципов работы ОС также является важным элементом.
Лучшая книга: “Введение в операционные системы” (Operating Systems: Three Easy Pieces). Autorы: Андреа Арпачи-Дюссо (Andrea Arpaci-Dusseau) и Ремзи Арпачи-Дюссо (Remzi Arpaci-Dusseau).
Лучшая видеолекция: Berkeley CS 162
-
Компьютерные сети
Мало что в современном ИТ может обойтись без использования Интернета, поэтому ИТ-специалистам важно понимать, Jak Всемирная сеть работает, чтобы использовать ее потенциал по полной.
Лучшая книга: Computer Networking: A Top-Down Approach. Autorы: Джеймс Куросе (James Kurose), Кит Росс ( Keith Ross).
Лучшая видеолекция: Stanford CS 144
-
Математика для computer science
Поскольку компьютерные науки, по сути, являются ответвлением прикладной математики, знание этого предмета тоже будет очень полезным практически в любой профессии, связанной с программированием. А также даст вам конкурентное преимущество перед теми, кто этой дисциплиной не владеет.
Лучшая книга: Mathematics for Computer Science. Autorы: Альберт Р. Мейер (Albert R. Meyer), Эрик Леман (Eric Lehman) и Фрэнк Томсон Лейтон (Frank Thomson Leighton).
Лучшая видеолекция: Tom Leighton’s MIT 6.042J
-
Базы данных
Базы данных — относительно новая область компьютерных наук, и экспертов в ней по-прежнему не так уж много. Данные — еще один ключевой элемент CS, потому что они лежат в основе большинства значимых программ, но мало кто понимает, Jak на самом деле работают системы баз данных.
Najlepsza książka: Odczyty w systemach baz danych. Autorzy: Joseph M. Hellerstein i Michael Stonebraker.
Najlepszy wykład wideo: Berkeley CS 186 Joe Hellersteina
-
Języki i kompilatory
Zrozumienie, jak technicznie działają języki programowania i kompilatory, pozwala ulepszyć swój kod i umiejętności programowania. Ułatwia także naukę nowych języków, co w dłuższej perspektywie jest również niezwykle ważne dla każdego programisty.
Najlepsza książka: Kompilatory: zasady, techniki i narzędzia. Autorzy: Alfred Aho, Monica S. Lam, Ravi Sethi, Jeffrey Ullman.
Najlepszy wykład wideo: kurs Alexa Aikena na Lagunita
-
Systemy rozproszone
Obecnie większość systemów jest rozproszona. Komputery i programy stają się coraz bardziej złożone, a znajomość systemów rozproszonych będzie przydatna, aby zapewnić prawidłowe i płynne działanie oprogramowania.
Najlepsza książka: Systemy rozproszone, wydanie 3. Autorzy: Maarten van Steen i Andrew S. Tanenbaum.
Najlepszy wykład wideo: CS 436: Rozproszone systemy komputerowe
Wskazówki dotyczące studiowania informatyki
I na koniec kilka rad dla tych, którzy planują rozpocząć naukę w dyscyplinach CS.-
Rozwijaj praktyczne umiejętności w dyscyplinach CS
Jedną z zalet CS, podobnie jak innych kursów informatycznych, jest to, że zdobyte właśnie umiejętności teoretyczne można od razu zastosować w praktyce. Nie zapominaj o tym i zastępuj teorię praktyką, aby osiągnąć najlepsze rezultaty.
-
Nie zwlekaj
Informatyka to dość złożony przedmiot, którego studiowanie jest łatwe dla niewielu osób, szczególnie na początku. Dlatego też rozpoczynając naukę dyscyplin CS, należy unikać prokrastynacji – nie odkładaj opanowania teorii, rozwiązywania problemów i praktyki na później, bo to nie tylko wydłuży naukę, ale i najprawdopodobniej będzie mniej efektywne.
-
Nie ograniczaj się do jednego kursu
Nie spodziewaj się, że będziesz w stanie zdobyć całą wiedzę potrzebną w danym przedmiocie w ramach jednego kursu, niezależnie od tego, jak dobry jest. Zawsze najlepiej jest sięgnąć do co najmniej kilku źródeł informacji, aby uzyskać szersze zrozumienie tematu.
-
Znajdź ludzi o podobnych poglądach
Brzmi to trochę banalnie, ale efektywną naukę, podobnie jak robienie wielu innych rzeczy w życiu, najlepiej wykonywać w grupie ludzi o podobnych poglądach. Znalezienie grupy do nauki CS może być korzystne z wielu powodów. Pomoże Ci to efektywniej się uczyć, wspólnie rozwiązywać zadania i problemy, porównywać postępy w nauce i umiejętności stosowania nowej wiedzy z innymi.
-
Naucz się pisać słowa, a nie tylko kod
Kolejna częsta rada wielu ekspertów dla programistów studiujących CS, aby udoskonalić swoje umiejętności i podnieść swój poziom zawodowy: naucz się pisać (nie kodować), czyli układać słowa w zdania i komponować teksty ze zdań. Ta umiejętność jest dość ważna dla każdego programisty, a jej brak utrudni postęp nie tylko w studiowaniu informatyki, ale także w innych aspektach programowania jako zawodu.
GO TO FULL VERSION