Введение
Computer Science - компьютерные науки, — это наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с использованием компьютерных технологий, которые обеспечивают возможность ее применения для принятия решений. В России Computer Science называют информатикой, но могут употреблять этот термин по-разному в зависимости от контекста.
Существуют схожие области, например, наука о данных или программная инженерия. Некоторые из них можно считать частью Computer Science, но разница в терминах все же есть: компьютерные науки — более широкое понятие. Они изучают компьютерные технологии и представление информации в целом, а не отдельные сферы, такие как разработка.
Для глубокого понимания Computer Science нужен хороший математический аппарат. В отличие от многих прикладных IT-направлений, эта сфера сильно связана с математикой. Компьютерные науки могут изучать в высших учебных заведениях на технических специальностях, посвященных информационным технологиям. Но осваивать их можно и самостоятельно.
Навыки алгоритмического мышления способствуют формированию особого стиля культуры человека, составляющими которого являются:
- целеустремленность и сосредоточенность;
- объективность и точность;
- логичность и последовательность в планировании и выполнении своих действий;
- умение четко и последовательно выражать свои мысли;
- правильно ставить задачу и находить окончательные пути ее решения;
- быстро ориентироваться в стремительном потоке информации.
Зачем изучать компьютерные науки?
Существует два типа программистов: те, кто владеют компьютерными науками достаточно хорошо, чтобы совершать инновации, и те, кто вроде как что-то могут благодаря знанию пары-тройки высокоуровневых инструментов.
И те и другие называют себя программистами или инженерами программного обеспечения и имеют примерно одинаковые доходы в начале своей карьеры. Однако первые в итоге становятся более высокооплачиваемыми специалистами. Причём абсолютно неважно, работают они над известными, дорогими и большими коммерческими проектами или над инновационными open-source проектами различной сложности. Они становятся лидерами в своей области и привносят нечто большее и более качественное на рынок.
Они углубленно изучают компьютерные науки, читая книги, слушая лекции, практикуясь или же упорно поглощая материал на личном опыте в своей карьере. Вторые же обычно остаются на дне, изучая различные инструменты и технологии для своей работы, а не то, на чём эти технологии основаны. Для них причиной для изучения чего-то нового является появление новых инструментов и, следовательно, устаревание старых.
На данный момент число людей в индустрии постоянно растёт, а число выпускников с факультета компьютерных наук остаётся неизменным. Перенасыщение рынка инженерами второго типа в итоге приводит оных к безработице или к сравнительно дешевому трудоустройству. Вне зависимости от ваших стремлений: хотите вы стать инженером первого типа или просто ищете способ заработать немного денег, изучение Computer Science — единственный надёжный путь для этого.
Как разобраться в Computer Science самостоятельно
Для большинства программистов Computer Science — факультет в зарубежных вузах, целиком и полностью посвящённый программированию, математике и всему, что связано с разработкой программного обеспечения. К счастью, в современном мире необязательно инвестировать тысячи долларов и 4 года своей жизни в образование, ведь существует бесчисленное множество онлайн-курсов, книг и других ресурсов для изучения компьютерных наук.
Какие дисциплины имеет смысл посмотреть?
-
Программирование
Начинаем с «вводных курсов» по программированию. -
Архитектура ЭВМ
Архитектура ЭВМ, также иногда называемая «компьютерными системами» или «организацией компьютера» — достаточно важная тема, описывающая работу аппаратного слоя, который лежит на уровень ниже, чем слой программного обеспечения. -
Алгоритмы и структуры данных
Народная мудрость гласит, что знание алгоритмов и структур данных — один из важнейших аспектов изучения компьютерных наук. К тому же, это отличный способ потренироваться в способности решать разного рода задачи, которые пригодятся в любой области компьютерных наук. -
Математика для компьютерных наук
Нужно поставить себе цель изучить базовую логику, комбинаторику, теорию вероятности, теорию графов, основы криптографии. Линейная алгебра не менее прочего заслуживает вашего внимания, особенно для изучения компьютерной графики или машинного обучения - Операционные системы
-
Компьютерные сети
Учитывая то, что львиная доля работы у программистов целиком и полностью опирается на веб-сервера, компьютерные сети — одна из самых важных областей компьютерных наук. Программисты-самоучки, которые методично изучают компьютерные сети, хвастают тем, что гораздо лучше многих понимают термины, концепты, протоколы, которыми постоянно окружены в своей карьере. -
Базы данных
Изучение баз данных требует куда большего упорства, чем нужно для других тем, так как базы данных —относительно новая область компьютерных наук (с 1970-ых). Избегать книжек и начинать прямиком с записей лекций - Языки и компиляторы
Большинство программистов изучают языки программирования, в то время как специалисты компьютерных наук пытаются понять, как эти языки работают. Эти знания позволяют им опережать своих коллег по карьерной лестнице и быстрее схватывать новый материал. -
Распределённые системы
Число компьютеров и их разнообразие увеличилось за последние несколько десятков лет. Сегодня даже самые незначительные программы работают на нескольких компьютерах одновременно. Распределённые системы — наука о том, как это обеспечить.