Как на самом деле работает компьютерная наука: за пределами простого программирования

3

Компьютерную науку часто понимают неправильно. Люди слышат этот термин и представляют себе одинокого программиста, лихорадочно печатающего в темной комнате. На самом деле это не так. Это изучение самих компьютеров. Она охватывает их проектирование, использование для вычислений, обработки данных и управления системами.

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

Математика за машиной

В своей основе компьютерная наука опирается на математику. Речь идет не просто о написании кода. Речь идет о проектировании и анализе алгоритмов. Это пошаговые процедуры решения проблем. Вам также необходимо изучать вопросы производительности. Насколько быстро работает система? Сколько энергии она потребляет?

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

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

Почему мы не можем просто гадать

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

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

Тестирование как необходимость

Экспериментирование — это не послеthought. Оно встроено в цикл разработки. Вы создаете компонент. Вы тестируете его. Вы видите, как он ведет себя под нагрузкой. Затем вы вносите корректировки. Этот цикл продолжается до тех пор, пока система не достигнет целей по надежности.

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

Что это значит для вас

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

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

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

И именно эта инженерия поддерживает работу цифрового мира.

Попередня статтяКак на самом деле работают различные стили обучения для студентов и родителей