Что такое компьютерные науки

Компьютерные науки

Что такое компьютерные науки. Смотреть фото Что такое компьютерные науки. Смотреть картинку Что такое компьютерные науки. Картинка про Что такое компьютерные науки. Фото Что такое компьютерные науки

Что такое компьютерные науки. Смотреть фото Что такое компьютерные науки. Смотреть картинку Что такое компьютерные науки. Картинка про Что такое компьютерные науки. Фото Что такое компьютерные науки

Компьютерные науки (или Компьютерные технологии [1] [2] ) (англ. Computer Science ) — совокупность теоретических и практических знаний, которые используют в своей работе специалисты в области вычислительной техники, программирования, информационных систем и технологий. Как научная дисциплина компьютерные науки возникли в середине 30-х годов XX века в результате слияния теории алгоритмов и математической логики, а также изобретения электронных вычислительных машин (компьютеров). Первой публикацией в области компьютерных наук принято считать опубликованную в 1936 году знаменитую статью А.Тьюринга «On Computable Numbers, with an Application to the Entscheidungsproblem», в которой было введено понятие машины Тьюринга. [источник не указан 488 дней]

Содержание

Разделы компьютерных наук

В настоящее время в области компьютерных наук обычно выделяют следующие основные разделы: алгоритмы и структуры данных, языки программирования, архитектура компьютеров, операционные системы и компьютерные сети, разработка программного обеспечения, базы данных и информационно-поисковые системы, искусственный интеллект и робототехника, компьютерная графика, взаимодействие человека и компьютера и др. [3] [4] Традиционно компьютерные науки имеют более тесные связи с математикой. Со своей стороны, компьютерные науки оказывают сильное влияние на математику.

Предметная область компьютерных наук в целом может быть разделена на две обширные подобласти. Первая из них включает изучение конкретных процессов обработки информации и связанные с ними вопросы представления данных. Вторая имеет отношение к структурам, механизмам и схемам обработки информации. Чтобы применять основные результаты исследований в области компьютерных наук, необходимо обладать навыками в четырех основных направлениях: алгоритмическое мышление, представление информации, программирование и проектирование систем.

Важнейшая цель обучения компьютерным наукам состоит в том, чтобы четко понимать отношения, существующие между прикладными приложениями и компьютерными системами.Стать специалистом по современным информационным технологиям возможно только при условии комплексного изучения всех составных частей компьютерных наук.

Связь с информатикой

Начиная с 1980-х годов смысл кардинально меняется, как указывает Д. А. Поспелов: «ближе всего содержание этого понятия подходит к тому, что в США и большинстве других стран называется computer science, то есть компьютерные науки».

В 1986 году вышел сборник «Кибернетика. Становление информатики» [7], где основная идея многих авторов состоит в том, что информатика уже оторвалась от своей прародительницы кибернетики и стала самостоятельной научной дисциплиной.

Первая программа обучения с получением степени «Компьютерные науки» в Соединенных Штатах была сформирована в университете Пердью в 1962 году. [8]

Существенное число научных направлений не вовлекает исследование компьютеров непосредственно. Из-за этого были предложены несколько альтернативных названий. В Европе и России эта часть исследований называется информатика.

Другие близкие направления, например, исследование компьютерной техники обычно считают частью разработки программного обеспечения, в то время как поддержка коммерческих компьютерных систем и их развертывание часто называют информационной технологией. Кроме того, существует много пересечений идей между различными связанными с компьютером дисциплинами. Исследование в компьютерных науках также часто пересекалось с другими дисциплинами, такими как философия, когнитивистика, лингвистика, математика, физика, статистика, и экономика, что образует дисциплину — прикладная информатика.

Источник

Как разобраться в Computer Science самостоятельно

Авторизуйтесь

Как разобраться в Computer Science самостоятельно

Что такое компьютерные науки. Смотреть фото Что такое компьютерные науки. Смотреть картинку Что такое компьютерные науки. Картинка про Что такое компьютерные науки. Фото Что такое компьютерные науки

Для большинства программистов Computer Science — факультет в зарубежных вузах, целиком и полностью посвящённый программированию, математике и всему, что связано с разработкой программного обеспечения. К счастью, в современном мире необязательно инвестировать тысячи долларов и 4 года своей жизни в образование, ведь существует бесчисленное множество онлайн-курсов, книг и других ресурсов для изучения компьютерных наук.

Приводить сотни всевозможных материалов для программистов-самоучек мы не будем, а лишь попытаемся ответить на два главных вопроса:

В качестве ответа приведём список материалов, опубликованный Озаном Онай (Ozan Onay) и Майлзом Бёрном (Myles Byrne) — инструкторами в школе компьютерных наук Брэдфилда в Сан-Франциско. Данная подборка литературы и курсов основана на личном опыте обучения сотен программистов-самоучек.

Зачем изучать компьютерные науки?

Существует два типа программистов: те, кто владеют компьютерными науками достаточно хорошо, чтобы совершать инновации, и те, кто вроде как что-то могут благодаря знанию пары-тройки высокоуровневых инструментов.

И те и другие называют себя программистами или инженерами программного обеспечения и имеют примерно одинаковые доходы в начале своей карьеры. Однако первые в итоге становятся более высокооплачиваемыми специалистами. Причём абсолютно неважно, работают они над известными, дорогими и большими коммерческими проектами или над инновационными open-source проектами различной сложности. Они становятся лидерами в своей области и привносят нечто большее и более качественное на рынок.

18 декабря, Онлайн, Беcплатно

Они углубленно изучают компьютерные науки, читая книги, слушая лекции, практикуясь или же упорно поглощая материал на личном опыте в своей карьере. Вторые же обычно остаются на дне, изучая различные инструменты и технологии для своей работы, а не то, на чём эти технологии основаны. Для них причиной для изучения чего-то нового является появление новых инструментов и, следовательно, устаревание старых.

На данный момент число людей в индустрии постоянно растёт, а число выпускников с факультета компьютерных наук остаётся неизменным. Перенасыщение рынка инженерами второго типа в итоге приводит оных к безработице или к сравнительно дешевому трудоустройству. Вне зависимости от ваших стремлений: хотите вы стать инженером первого типа или просто ищете способ заработать немного денег, изучение Computer Science — единственный надёжный путь для этого.

Дисциплины

Программирование

Что такое компьютерные науки. Смотреть фото Что такое компьютерные науки. Смотреть картинку Что такое компьютерные науки. Картинка про Что такое компьютерные науки. Фото Что такое компьютерные науки

Структура и интерпретация компьютерных программ

Львиная доля студентов Computer Science начинают с «вводных курсов» по программированию. Однако такие курсы будут полезны не только новичкам, но и вполне себе специалистам, которые по какой-либо причине пропустили некоторые базовые для программирования вещи.

Мы рекомендуем взять во внимание классическую «Структуру и интерпретацию компьютерных программ». Прочтите как минимум три главы приведенной выше книги, выполняя упражнения для практики. Для тех, кому данная книга кажется слишком сложной, рекомендуется «How to design programs». Тем же, кому она наоборот кажется слишком лёгкой, следует обратить внимание на «Concepts, Techniques, and Models of Computer Programming».

Можно также послушать лекции университета MIT по данной теме. Как альтернативу мы рекомендуем прослушать лекции Брайана Харви из университета Беркли, особенно, если для вас это в новинку.

Для дополнительной практики возьмите на заметку ресурс Exercism: на нём можно найти сотни интересных задачек по программированию, которые помогут вам в освоении синтаксиса разных языков программирования и прокачают ваше логическое мышление, которое необходимо программисту, как воздух.

Архитектура ЭВМ

Что такое компьютерные науки. Смотреть фото Что такое компьютерные науки. Смотреть картинку Что такое компьютерные науки. Картинка про Что такое компьютерные науки. Фото Что такое компьютерные науки

Цифровая схемотехника и архитектура компьютера

Архитектура ЭВМ, также иногда называемая «компьютерными системами» или «организацией компьютера» — достаточно важная тема, описывающая работу аппаратного слоя, который лежит на уровень ниже, чем слой программного обеспечения. Пожалуй, самая недооцененная область среди инженеров-самоучек.

The elements of Computing Systems — амбициозная книга, которая даёт понимание того, как работает компьютер. Каждая глава — строение одной маленькой детали большой системы: от написания логики на HGL (языке описания аппаратуры) через центральный процессор к созданию тетриса.

Мы рекомендуем прочесть как минимум первые 6 глав книги и завершить указанный в ней проект. Это поможет лучше понять отношения между архитектурой компьютера и программным обеспечением, которое на ней работает.

Не ищите простого объяснения сложных вещей в этой книге — автор заходит издалека. Если конкретнее, то в книге, например, почти полностью отсутствуют два очень важных концепта в современной архитектуре ЭВМ — вычислительный конвейер и иерархия памяти.

Как только вы почувствуете себя в своей тарелке, читая эту книгу, смело переходите на Computer Organization And Design, отличный текст, который стал своего рода классикой. Также обратите внимание на курс CS61C, лекции которого доступны онлайн.

Алгоритмы и структуры данных

Что такое компьютерные науки. Смотреть фото Что такое компьютерные науки. Смотреть картинку Что такое компьютерные науки. Картинка про Что такое компьютерные науки. Фото Что такое компьютерные науки

Алгоритмы Руководство По Разработке

Мы полностью согласны с народной мудростью, которая гласит, что знание алгоритмов и структур данных — один из важнейших аспектов изучения компьютерных наук. К тому же, это отличный способ потренироваться в способности решать разного рода задачи, которые пригодятся в любой области компьютерных наук.

Есть сотни книг для изучения алгоритмов, но наш фаворит — «Алгоритмы Руководство по разработке» от Стивена Скиена. Наш выбор пал именно на неё, потому что автор определенно любит то, что он делает и хочет донести свои знания до читателя.

Для тех же, кто предпочитает лекции в формате видео, Скиена предлагает свой онлайн-курс. Также следует обратить внимание на курс Тима Рафгардена, доступного на Lagunita (сервис от университета Стэнфорда) или на Coursera. Материал обоих авторов очень полезен и информативен и кому из них уделить внимание — решать вам.

Мы практикуемся, решая задачи на Leetcode, потому что их задачи кажутся нам наиболее интересными. К тому же у каждой задачи есть ветка обсуждения и прикрепленное решение для самопроверки. Стоит отметить, что подобного рода задачи могут являться вопросами на интервью и решение их может сыграть вам на руку в будущем трудоустройстве. Для проверки своего знания алгоритмов решите 100 случайных задач на Leetcode.

В завершение, мы настоятельно рекомендуем How to solve it — великолепный материал для практики решения задач. Подходит как тем, кто изучает компьютерные науки, так и математикам.

Математика для компьютерных наук

Что такое компьютерные науки. Смотреть фото Что такое компьютерные науки. Смотреть картинку Что такое компьютерные науки. Картинка про Что такое компьютерные науки. Фото Что такое компьютерные науки

Mathematics for Computer Science

В каком-то смысле компьютерные науки — это лишь область прикладной математики. Пока некоторые программисты пытаются и возможно преуспевают в попытках оставаться вдали от математики, мы рекомендуем не уподобляться им и изучать её. Ведь знание математики даст вам значительную фору по сравнению с другими программистами, которые математику игнорируют.

В основе большая часть математики для компьютерных наук — дискретная математика, где слово «дискретная» — прямая противоположность слову «непрерывная» и, грубо говоря, является сборником интересных тем в прикладной математике, за пределами математического анализа. Немного расплывчато, согласны. Впрочем, это не так важно: можно поставить себе цель изучить базовую логику, комбинаторику, теорию вероятности, теорию графов, основы криптографии. Линейная алгебра не менее прочего заслуживает вашего внимания, особенно для изучения компьютерной графики или машинного обучения.

Хорошим началом изучения дискретной математики является сборник лекций от László Lovász. Профессор проделал хорошую работу, чтобы сделать математику понятной и интуитивной, так что его работы куда больше подойдут новичкам, чем формальные математические тексты.

Для большего погружения советуем Mathematics for Computer Science — записи с лекций по одноименному курсу MIT, которые по объёму тянут на полноценную книгу. Видео данных лекций, кстати, тоже в свободном доступе.

Для линейной алгебры мы предлагаем начать с плейлиста Основы линейной алгебры.

Операционные системы

Что такое компьютерные науки. Смотреть фото Что такое компьютерные науки. Смотреть картинку Что такое компьютерные науки. Картинка про Что такое компьютерные науки. Фото Что такое компьютерные науки

Operating Systems: Three Easy Pieces

Operating System Concepts и Modern Operating Systems — классика в вопросе операционных систем. Обе довольно часто подвергались критике в основном за то, что не являются 1000-страничными быстроустаревающими энциклопедиями, новое издание которых приходится покупать каждые пару лет.

Существует ещё одна книга по операционным системам, которую мы также очень рекомендуем к ознакомлению. Three Easy Pieces: структура повествования книги делает её легкой к восприятию, а задания помогут закрепить полученные знания.

После прочтения указанных выше книг имеет смысл пройтись по конкретным операционным системам и прочесть следующее: A commentary on the unix operating system, The design and implementation of the freeBSD operating systems и Mac OS internals.

Идеальный способ закрепить полученные знания — это прочесть код небольшого ядра и внести в него свои изменения. Как вариант можно взять XV6 — современную реализацию 6 версии Unix для архитектуры x86, написанную на ANSI C. В приведённой выше Three Easy Pieces есть раздел с заданиями с XV6, полный интересных идей для потенциальных проектов.

Компьютерные сети

Что такое компьютерные науки. Смотреть фото Что такое компьютерные науки. Смотреть картинку Что такое компьютерные науки. Картинка про Что такое компьютерные науки. Фото Что такое компьютерные науки

Computer Networking: A Top-Down Approach

Учитывая то, что львиная доля работы у программистов целиком и полностью опирается на веб-сервера, компьютерные сети — одна из самых важных областей компьютерных наук. Программисты-самоучки, которые методично изучают компьютерные сети, хвастают тем, что гораздо лучше многих понимают термины, концепты, протоколы, которыми постоянно окружены в своей карьере.

Наш фаворит в этом вопросе — Computer Networking: A Top-Down Approach. Небольшие проекты и задания для практики на протяжении всего материала весьма интересны и стоят вашего внимания. Также следует обратить внимание на Wireshark labs, любезно предоставленные автором книги.

Для тех же, кто предпочитает просмотр лекций чтению книг, мы рекомендуем серию лекций от университета Стэнфорд Stanford CS 144.

Небольшие проекты, как ни странно, более полезны для освоения компьютерных сетей, нежели задачки. Некоторые из них — HTTP сервер, чат-приложение на UDP, мини TCP stack или же распределённая таблица хэшей и т.д.

Базы данных

Что такое компьютерные науки. Смотреть фото Что такое компьютерные науки. Смотреть картинку Что такое компьютерные науки. Картинка про Что такое компьютерные науки. Фото Что такое компьютерные науки

Readings in Database Systems

Изучение баз данных требует куда большего упорства, чем нужно для других тем, так как базы данных —относительно новая область компьютерных наук (с 1970-ых). Её основы скрыты от нас по вполне себе понятным коммерческим причинам. К тому же многие потенциальные авторы книг по базам данных предпочли сами стать разработчиками и основали свои компании.

Учитывая приведенные выше обстоятельства, мы настоятельно рекомендуем новичкам избегать книжек и начинать прямиком с записей CS186 весны 2015 от Джо Геллерштейна из университета Беркли. После данного курса уже можно переходить к книжкам.

Одна из них — это Architecture of a Database System от того же профессора из того же университета. Книга даст читателю углубленный взгляд на реляционные базы данных и послужит отличным скелетом для будущих знаний в этой области.

Readings in Database Systems, также известная как красная книга по базам данных (никто не вымирает), представляет собой сборник публикаций по данной теме. Для тех, кто осилил CS186, эта книга может стать следующей остановкой.

Если вы настаиваете на том, чтобы начинать изучение баз данных по книжкам, то советуем обратить внимание на Database management systems.

Сложно закрепить знания в этой области без практики. Студенты CS186 работают над дополнениями для Spark, однако лучшей практикой для начинающих будет всё же написание своей реляционной базы данных с нуля. Скорее всего, она поначалу не будет богата уникальными особенностями, но значительно укрепит ваше понимание темы.

Под конец, моделирование данных — один из самых пренебрегаемых аспектов в изучении баз данных. Здесь нашим фаворитом является Data and Reality: A Timeless Perspective on Perceiving and Managing Information in Our Imprecise World.

Языки и компиляторы

Что такое компьютерные науки. Смотреть фото Что такое компьютерные науки. Смотреть картинку Что такое компьютерные науки. Картинка про Что такое компьютерные науки. Фото Что такое компьютерные науки

Compilers: Principles, Techniques and Tools

Большинство программистов изучают языки программирования, в то время как специалисты компьютерных наук пытаются понять, как эти языки работают. Эти знания позволяют им опережать своих коллег по карьерной лестнице и быстрее схватывать новый материал.

Классикой в данном вопросе является Compilers: Principles, Techniques and Tools. К сожалению, этот материал больше подходит учителям, нежели самоучкам. Однако книга отлично подойдёт для непоследовательного чтения, для выхватывания отдельных кусков из материала и изучения по ним. К тому же, если у вас будет учитель, это лишь ускорит ваше обучение.

Если же вы решите учиться по данной книге без учителя, то настоятельно рекомендуем обратить внимание на серию лекций от Алекса Айкена из Стэнфордского университета.

Потенциальной альтернативой этой книге может стать Language Implementation Patterns. Она написана с упором на инженеров, которые собираются практиковаться на языках вроде DSL.

В качестве проекта для закрепления материала можно написать свой компилятор для простенького языка вроде COOL. Те, кому данный проект кажется невыполнимым, могут начать с чего-то вроде Make a Lisp.

Распределённые системы

Что такое компьютерные науки. Смотреть фото Что такое компьютерные науки. Смотреть картинку Что такое компьютерные науки. Картинка про Что такое компьютерные науки. Фото Что такое компьютерные науки

Distributed Systems, 3rd Edition by Maarten van Steen

Число компьютеров и их разнообразие увеличилось за последние несколько десятков лет. Если раньше крупные компании закупали огромные сервера для обеспечения работы каких-либо программ, то сегодня нам кажется очевидным тот факт, что даже самые незначительные программы работают на нескольких компьютерах одновременно. Распределённые системы — наука о том, как это обеспечить.

Книга, которую мы хотим посоветовать, — Distributed Systems, третье издание которой служит прекрасным дополнением всем предыдущим. Учитывая то, что распределенные системы — область, которая достаточно часто меняется, нет уникальной книги, которая проведёт вас по этому тернистому пути. Приведённая же выше книга, по нашему мнению, наиболее близка к этому идеалу.

Можно также обратить внимание на серию лекций MIT 6.824, но, к сожалению, качество записи звука оставляет желать лучшего.

Не имеет значения, какую книгу или сторонний ресурс вы выбрали для изучения распределённых систем, погружение в эту область компьютерных наук требует от студента чтения большого количества литературы. Здесь вы можете найти список полезных книг.

Часто задаваемые вопросы

Что насчет искусственного интеллекта и графики?

Мы постарались ограничить наш материал списком дисциплин, которым, как нам кажется, любой практикующий инженер должен владеть вне зависимости от специальности и индустрии. С таким фундаментом знаний вы сможете гораздо быстрее схватывать новый материал из книг или сторонних ресурсов. Что касается ИИ и графики, вот наш список рекомендуемых материалов:

Насколько важно строго следовать порядку, приведенному в статье?

На самом деле, все 9 дисциплин достаточно часто пересекаются. К примеру, возьмите дискретную математику и алгоритмы: изучение математики поможет вам в освоении алгоритмов. Знание алгоритмов, в свою очередь, даст стимул погрузиться в дискретную математику. В идеальном сценарии программист достаточно часто повторяет данный материал в своей карьере.

По существу наша последовательность сконструирована таким образом, чтобы помочь вам начать. Если у вас есть непреодолимое желание следовать другой последовательности, мы не настаиваем. Однако мы считаем, что освоить архитектуру ЭВМ нужно перед освоением операционных систем и баз данных, а компьютерные сети и операционные системы перед распределёнными системами.

Что общего у данного списка с Open Source Society или FreeCodeCamp?

Первый содержит слишком много дисциплин для изучения, предлагает не самые лучшие материалы для большинства из них и не даёт понять, какие аспекты конкретной дисциплины наиболее ценны. Мы же попытались ограничить наш материал списком дисциплин, которые должен знать каждый инженер, вне зависимости от специальности.

Касательно FreeCodeCamp, данный ресурс сконцентрирован на программировании, а не на компьютерных науках.

А где же язык X?

Изучение конкретного языка программирования — совершенно другая плоскость, нежели изучение компьютерных наук. Изучение языка программирования — задача наиболее простая и менее ценная. Если вы уже знаете пару-тройку языков, то советуем просто следовать нашему списку дисциплин, оставляя языки на потом. Если вы знаете программирование в целом достаточно хорошо и знаете, как работают компиляторы, вам потребуется не больше недели, чтобы выучить новый язык программирования.

Почему вы до сих пор рекомендуете книжку с драконами (Compilers: Principles, Techniques and Tools)?

Потому что книжка с драконами до сих пор является полным и актуальным источником информации по компиляторам. Проблема в том, что никто и предположить не мог, что в итоге книга окажется инструкцией для преподавателей по составлению учебной программы. Вы же можете воспользоваться этим для составления своей собственной программы или следуя программе какого-либо преподавателя.

Источник

Компьютерные науки: описание, особенности, изучение

Что такое компьютерные науки. Смотреть фото Что такое компьютерные науки. Смотреть картинку Что такое компьютерные науки. Картинка про Что такое компьютерные науки. Фото Что такое компьютерные науки

Развитие человечества привело к тому, что пользователи начали изобретать и осваивать совершенно новые технологии. Вместе с ними появились науки и профессии, которых раньше не было. Яркий пример тому – Computer Sciences.

Немногим понятно, кто это вообще такие. Относительно новое и перспективное направление, которое рекомендуется изучать программерам, разработчикам, а также вообще всем, кто в той или иной степени заинтересован в компьютерах и IT-технологиях. В статье будет рассказано о соответствующем направлении более подробно. В конце каждый разберется, стоит ли браться за него, и как изучить в должной степени.

Определение

Computer Science – перспективное направление современного обучения, тесно связанное с IT-технологиями. Представляет собой совокупность практических и теоретических данных, используемых специалистами при создании и задействовании:

Сюда также относят программирование. Впервые в качестве относящейся к computers возникла в 20 веке (30-е годы). Образовалась область посредством объединения математической логики и созданием компьютеров.

Говоря простыми словами, Computer Science – все то, что относится к современной «вычислительной технике». Для большинства иностранцев ассоциируется со специальными курсами или направлением обучения в ВУЗе.

Для чего необходимо

Computing Courses по упомянутому направлению в основном проходят программисты – как новички, так и опытные специалисты. Их разделяются на несколько категорий:

В первом случае работников нельзя назвать лентяями – они просто занимаются «стандартными» обязанностями. Такие лица прекрасно подходят для решения типовых задач и написания элементарных приложений.

Второй вариант – более системный. Подобные спецы готовы заниматься разработкой инновационного программного обеспечения. Работники делают разнообразные утилиты для бизнеса, совершенствуя его с минимальными затратами. Обеспечено полноценно и постоянное развитие.

Стоит обратить внимание еще и на то, что Computer Science – это еще и весьма перспективное высокооплачиваемое направление. Подчиненные в выбранной области получают не только самосовершенствование и бесценные знания, но и достойный заработок.

Это science требуется изучить, так как технологический прогресс с каждым годом занимает все больше места в обыденной жизни. Без элементарных познаний в упомянутом направлении совсем скоро будет не обойтись.

Направления

Если человек решил самостоятельно, или посетив специализированные курсы, освоить рассматриваемую область, придется понять, что она в себя включает. На самом деле науки технологического характера состоят из многочисленных сфер. Освоить все сразу и в полном объеме невозможно. Поэтому приходится выбирать область деятельности.

На сегодня Компьютерная Science преимущественно подразумевает следующие варианты развития событий:

Если описать направленности кратко, это – написание программных кодификаций, а также информатика и математика. Но изучаемая информация выходит за пределы «стандартного» школьного и ВУЗовского обучения.

Programming

То, с чего начинают многие. Принципы написания программных кодов – основополагающая всех информационных технологий. Здесь вариантов воплощения задумки в жизнь несколько:

Последний вариант – это посещение Computer Science курсов. Есть варианты как для новичков, так и для уже более опытных людей. По окончании процесса выдается спецсертификат.

Внимание: все перечисленные методы получения знаний относительно программирования подходят и для остальных сфер. Но иногда добиться успеха без ВУЗа или техникума окажется предельно трудно.

Архитектура электронно-вычислительной техники

Может называться как «компьютерные системы» или «организация computers». Важный раздел, характеризующий принципы функционирования аппаратуры. Речь идет о слое, находящимся «под» программным обеспечением. Инженеры-самоучки не слишком уважают архитектуру ЭВМ, хотя она крайне важна.

Для того, чтобы разобраться в области самостоятельно, можно прочесть книгу «The elements of Computing Systems». Позволяет осознать, каким образом функционирует computer. Здесь есть:

После изучения соответствующей литературы удастся намного лучше ориентироваться в архитектуре ЭВМ. Далее теорию обычно изучают посредством спецкурсов.

Алгоритмы и структуры

В компьютерных науках не обойтись без алгоритмов и структур информации. Область служит одной из основополагающих. Помогает потренироваться в решении разнообразных задач, необходимых в выбранной специализации.

Практика показывает, что алгоритмы и структуры «материалов» изучаются через:

В ВУЗах соответствующий раздел изучается, но не слишком углубленно. Получаемых знаний достаточно на первых порах, но затем приходится «ударяться» в самообразование.

Дела математические

В компьютерных науках невозможно обойтись без разного рода вычислений. Все, что связано с computers, можно отнести в той или иной степени к прикладной математике. Хороший программер или «комп.ученый» не оставит math в стороне. В один прекрасный момент решение поставленных задач, особенно при разработке сложного контента, отсутствие достаточного багажа знаний станет огромной проблемой.

Математиков, занятых углубленным изучением «дискретики», ждет успех в случае смены специализации в пользу IT-технологий. Связано это с тем, что компнауки относятся преимущественно к дискретной математике. Выходят они далеко за пределы матанализа.

Также рекомендуется изучать:

Последняя особо важна для тех, кто предпочтет в будущем сконцентрироваться на графике и видео, а также машинном обучении. Математика для Computer Science – главный «раздел».

Операционные системы

Каждый современный юзер точно знает – операционных систем у ПК и других устройств полно. Каждое «системное программное обеспечение» обладает собственным функционалом, особенностями и интерфейсом. Чтобы стать настоящим специалистом в компьютерах, стоит изучать все ОС. Либо выбрать одну «специализацию», в которой совершенствоваться далее.

В соответствующей «категории» предстоит узнать о принципах работы ОС, а также об их видах. Лучше действовать путем прохождения курсов (можно дистанционно). Вариантов полно – как для новичков, так и для продвинутых «ученых».

При самообразовании идеально прочесть код маленького ядра, после чего откорректировать его. Пример – XV6. Это – современная интерпретация Unix x86, которая написана на ANSI C.

Программеры работают преимущественно с веб-серверами и компьютерными сетями. Значит, упомянутую сферу обделять вниманием нельзя. Она расскажет о:

Самоучкам рекомендуется прочесть книгу Computer Networking: A Top-Down Approach. Там не только теория, но и практика – небольшие проекты и задания.

Базы данных

База данных – совокупность информации, которая организована в концептуальную структуру, описывающую особенности соответствующих материалов и их взаимоотношения. Простыми словами – некое хранилище электронных сведений. Используются БД повсеместно – не только в программировании и IT, но и в обыденной жизни: экономика, бухгалтерия, юриспруденция. Даже при работе с 1C требуется знания баз данных.

В ВУЗах этому разделу уделяется достаточно времени как у «компьютерщиков», так и у математиков/экономистов/программистов. Но лучше посетить курсы по базам данных, чтобы получить максимально много полезной информации.

Компиляторы и языки

Программеры занимаются непосредственным изучением языков «общения» с компьютерами и приложениями. А вот работники компьютерных наук стараются разобраться в принципах работы оных. Соответствующие познания помогают обойти даже опытных разрабов. Схватывание нового материала будет максимальным и быстрым.

Данная область затрагивает:

Своими силами здесь обойтись проблематично.

Распределенные системы

Распределенной системой называют некую систему, в которой отношения местоположения составляющих или их групп играют важную роль для дальнейшего функционирования. С развитием прогресса и IT даже самые простые приложения способны функционировать на нескольких computers одновременно. Распределенные системы являются наукой о том, как обеспечить подобное явление.

Для изучения Science соответствующей области требуется просмотреть книгу Distributed Systems. Лучше пробежать глазами по всем изданиям. 3-е – это своеобразное дополнение к предыдущим.

С чего начать

Новички в Москве и других регионах часто задумываются над тем, с чего же начать изучение компьютерных наук. И как вообще подойти к решению поставленного вопроса комплексно, чтобы ничего важного не упустить.

Для этого рекомендуется:

Но для полноценного образования стоит присмотреться к специализированным курсам. Есть как всеобъемлющее звено «Компьютерные науки», так и различные направленности упомянутой области. Главное помнить – изучить computer и его принципы работы не так-то просто. Это долгий и весьма энергозатратный процесс. Но, если постараться, все обязательно получится.

Хотите освоить современные компьютерные науки? Огромный выбор курсов по востребованным IT-направлениям есть в Otus!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *