Обучение в айти начинается со школьных азов информатики. Вы помните, что это за предмет такой? Для многих моих знакомых по сей день информатика это про установить Windows и подключить принтер.
Информатика – это работа с информацией. До середины прошлого века для информации не было единицы измерения. Математик Шеннон, который занимался инженерным оборудованием, предложил назвал минимальную единицу хранения информации - «бит» (binary digit). Бит может принимать два значения: единица или ноль по аналогии с положением выключателя или контактов реле. Очевидно, что одного бита не хватит для хранения всей информации. Для хранения 4 разных состояний нам понадобится 2 бита, для хранения 8 – три бита. Тут нам понадобится формула Хартли:
Конечно, все измерять в битах было бы сродни измерению расстояний между городами в миллиметрах. Поэтому появились байты, килобайты, мегабайты.
Вы только представьте, что 20 лет назад в мире было 5 эксабайтов данных (1 ЭБ = 1 млрд гигабайтов), 15 лет назад 0,18 зеттабайта (1 ЗБ = 1024 ЭБ), сейчас – более 50. По прогнозам аналитиков из IDC уже через пару лет общий объём данных во всем мире будет более 160 зеттабайт.
То есть информации на нашей планете огромное количество, а по факту и сейчас простейшие инструкции процессора могут быть 8-битными. Это позволяет выполнять функции с данными в оперативной памяти. Например, таких как смещение, запись, суммирование. Они являются небольшими частями выполняемых программ, в том числе игр, которые прогоняют через себя огромные массивы данных.
Некоторое время назад, в 90-ые управление этими инструкциями осуществлялось при помощи Ассемблера – самого низкоуровневого языка программирования. Он позволял почти напрямую вводить инструкции в виде программного кода для распознавания процессором. В дальнейшем языки начали эволюционировать, выходя на более высокий уровень фрэндли интерфейса, что позволило большему количеству людей (разработчиков) реализовывать свои идеи в полезных для человека программах. Как например, Python или Ruby. Эти верхнеуровневые языки упростили обработку больших данных (Big Data) до нескольких строчек кода.
Интересно, куда нас заведет эволюция цифрового мира в условиях бесконечно растущих данных? И насколько сильно упростятся языки разработки?