Пожалуй, нет на свете ни одного другого праздника, который менял бы собственную дату столь же часто, как этот. Сегодня мы отмечаем День программиста — профессиональный праздник всех тех специалистов, без которых любое компьютерное «железо» навсегда останется мертвым и безжизненным. Хотя стоп! Почему именно сегодня?
Долгое время программисты попросту не имели своего профессионального дня и отмечали те праздники, которые хоть как-то были связаны с их работой. Так, еще несколько десятилетий назад они собирались на 14 февраля, но вовсе не ради того, чтобы поздравить с Днем Всех Влюбленных своих вторых половинок. Именно 14 февраля 1946 года в США была создана вычислительная машина общего назначения ENIAC, подходящая для решения самых разных задач.
На этом 30-тонном агрегате рассчитывали прогноз погоды, получали значения чисел π и e с точностью до 2000 знаков после запятой, решали проблему обтекания воздухом крыла самолета – все это делалось в перерывах между бесконечной сменой перегоревших ламп и перфокарт. Тем не менее, для того времени машина оказалась весьма полезной, а ее нерасторопность лишь подстегнула инженеров продолжить разработки. Примечательно также, что команда первых программистов ENIAC состояла исключительно из представительниц прекрасного пола: программистами-операторами компьютера были Джин Бартик, Бетти Холбертон, Кей Антонелли, Марлин Мельцер, Френсис Спенс и Рут Тейтельбаум.
Еще одной датой неофициального праздника было 10 декабря, так как в этот день родилась Ада Лавлейс, первая женщина-программист в мире. Ее отцом был известный поэт Байрон, и мать девочки, боясь, что она пойдет по стопам отца, заставила ее учиться на математика. Ада прожила всего 36 лет, но внесла неоценимый вклад в историю программирования. В 1980 году по решению Министра обороны США ее именем был назван язык программирования для встроенных систем ADA. С популярностью ему повезло несколько больше, чем нашему ответу на него – языку РАЯ, который так и остался на страницах учебников информатики 90-х годов.
Следующим днем, который программисты пытались сделать праздничным, был 19 июля. Он также связан с Адой Лавлейс, а именно, с созданием ею первой в мире программы для аналитической машины, придуманной ее другом математиком Чарлзом Бэббиджем. Всего для этой машины она разработала 3 программы, которые могли похвастаться необычайной точностью, а также составила описание ее устройства и принципов работы, исправив при этом ошибку самого Бэббиджа. Также именно Ада Лавлейс открыла изобретателю глаза на то, что его машина способна работать не только с числами, но и выполнять более широкий диапазон расчетов, что делает ее отличной от арифмометра. Однако британское правительство не стало финансировать дальнейшее усовершенствование машины, хотя принято считать, что именно Бэббидж заложил теоретические основы современных программируемых компьютеров.
Последующие даты празднования Дня программиста, 4 апреля и 22 апреля, к истории никакого отношения не имели, а были выбраны исключительно из-за цифрового совпадения: в честь ошибки 404 и кода 220400, которым ранее обозначалась специальность «Программное обеспечение вычислительной техники и автоматизированных систем». Кстати, в актуальной классификации данная специальность обозначается кодом 230105.65 – означает ли это, что программисты могут отмечать свой профессиональный праздник еще и 23 января?
В конце концов отмечать все эти праздничные даты программисты, видимо, устали, и решились на отчаянный шаг: обратились в Администрацию Президента с целью признания праздника на государственном уровне. Инициаторами выступили сотрудники веб-студии «Параллельные технологии» Михаил Червяков и Валентин Балт. В успех дела они верили слабо, но собрали подписи в его поддержку и назначили дату – 13 сентября (или 12 сентября, если год високосный). Причина, по которой был выбран именно этот день, вполне очевидна — но только для айтишников. По задумке Червякова и Балта, праздничным считается 256-й день года, поскольку именно такое количество чисел можно выразить при помощи 8-разрядного байта.
И вот через 7 лет, 24 июля 2009 года, вышел проект указа об официальном признании Дня программиста, а 11 сентября того же года его подписал находившийся в то время на посту Президента РФ Дмитрий Медведев. Сейчас праздник имеет международный формат, и 13 сентября отмечается во всех странах мира, кроме Китая. Там предпочтение отдали другой дате – 24 октября, символизирующей число 1024 или 2 в 10 степени.
Интересный факт
Самым молодым программистом в мире был признан 6-летний Архам Ом Талсания из Индии. Ученик 2-го класса успешно сдал экзамен по Python, на изучение которого у взрослого человека уходят годы. По словам мальчика, писать код научил его отец, сам работающий с этим языком программирования. За свое достижение Архам Ом Талсания был занесен в Книгу Рекордов Гиннеса.
Пользуясь случаем, хотим искренне поздравить всех программистов с их официальным праздником и пожелать безглючного кода, легкой отладки, интересных проектов и гигабайтов вдохновения! С Днем программиста, друзья!
Комментарии (68)
Alex_QA_Tests
13.09.2022 09:48+1Ох уж эти программисты, которые в уме считают в 16-ричной системе. Дай бог им здоровья Они наверное еще дискетами пользуются, или перфокартами и машины у них на паровой тяге и лапти на ногах. Гет/пост запросы голубями отправляют. А пинг капелькой воды замеряют.
shoorick
13.09.2022 11:45В шестнадцатеричной не считаю, но в двоичной — вполне. Когда что-то надо посчитать, загибаю пальцы в двоичной системе — одной руки таким образом хватает, чтоб сосчитать от 0 до 31, двух — в теории до 1023, на практике — где-то до 80 доходил.
snaiper04ek
13.09.2022 14:26жиза. Кстати, недавно раздуплился, и понял как по загнутым пальцам быстро считать число, даже если оно уже 512+, просто номер пальца это степень двойки, если палец загнутый(0) - пропускаю, если оттопырен(1) докидываю число в сумму: первая рука 1, 2, 4, 8, 16 - вторая рука 32, 64, 128, 256, 512
fireSparrow
13.09.2022 12:29
bahuser1
13.09.2022 15:09Ну мне и в восьмеричной считать приходилось...
А в Японии до сих пор некоторые государственные документы на 3х-дюймовых дискетах возят.
p0isk
13.09.2022 10:02+6Кстати, в актуальной классификации данная специальность обозначается кодом 230105.65 – означает ли это, что программисты могут отмечать свой профессиональный праздник еще и 23 января?
Да, в 5:65 утра
RumataEstora
13.09.2022 10:21+5На кдпв переполнение стека будет.
Jorell
13.09.2022 12:36+1То есть не хватает shithouse(); или empty(); ?
Многие добавили бы beer(); , ну и соответствующие работы над ошибками))
fireSparrow
13.09.2022 12:25+2экзамен по Python, на изучение которого у взрослого человека уходят годы
Там какой-то особо сложный экзамен? Так то питон можно не особо торопясь за несколько месяцев освоить.
halfworld
13.09.2022 13:41перегоревших ламп и перфокарт
ни разу не менял перегоревшие перфокарты (правда, у нас были ЕС ЭВМ, на микросхемах).
Bedal
как и всякий другой официоз, вызывает только скуку. Да и… какая доля процента современных программистов умеет в шестнадцатиричную систему? Не процентов даже, а его долей — сколько? Навскидку, 0x1a+0x2b — сколько будет? Ото ж…
acesn
0x45)
Bedal
C праздником! :-)
snaiper04ek
Как-то вы слишком предвзято относитесь к программистам, я вот всё ещё whanna be programmist (эникейщик с пайтоном), и тоже правильно посчитал в уме. Лучше устроить опрос где-нибудь, и узнать сколько процентов отвечает корректно
Bedal
Вот потому и посчитали, на энтузиазме. Трушным программерам это просто не нужно.
Устраивал. Личные. 1а+2b с ходу только пара человек посчитала.
sYB-Tyumen
Наверное, те, кто работает с Embedded и всякими GPIO ещё помнят. Я вот не программист, а сисадмин, но посчитать смог. А вот перевести из десятичной обратно в шестнадцатеричную быстро в уме уже никак.
P.S. а догадаться, что можно было сразу считать в HEX, догадался только когда комментарий писал. В голове проще считать по привычке, в DEC.
mctMaks
в Embedded чаще всего приходиться делать hex to bin и обратно. Складывать там даже проще, меньше в уме держать))
shoorick
Ну так между шестнадцатеричной, двоичной и восьмеричной в уме преобразовывать гораздо проще, чем между любой из них и десятичной.
Sequoza
Если не секрет, как вы в уме посчитали a+b без перевода?
sYB-Tyumen
В конкретно моём случае это бы не получилось. Но результат было бы гораздо легче перевести в HEX в уме, чем результат целого примера.
Тут тренировка решает. Когда я баловался пиксельным рисованием на спектруме, я отлично помнил не только степени двойки до 65536 но и очень много вариантов их сумм, что позже помогло лучше дружить с масками подсетей.
0x9d8e
По сути на память. Вы же не на пальцах 7+3 складываете, а сразу помните что это 10?
mctMaks
я например так считал: a+b = b+a = c+9 = d + 8 = ... = 10 + 5 = 15
медленно, зато без вычитания 16.
ivanrt
1010+1011 Единичка ушла в старший байт, 101 осталось.
WQS100
Там же вроде универсальная формула, если не ошибаюсь, — z = (x + y) MOD base, и если x + y > base, то к следующей паре цифр из числа добавляется 1
snaiper04ek
можно посчитать что угодно в любой системе, никуда не переводя, хоть в 60-ти ричной.
0x1+0x2 = 0x3
0x0a+0x0b - это выход за рамки разряда, в 0x3 докидываем 0x1, будет 0x4
осталось вычислить остаток
a не хватает 6 до переполнения разряда, из b нужно вычесть 6 и записать в ответ
b это 11, 11 - 6 = 5, ответ: 0x4 + 0x05 = 0x45
да, для выполнения операций в рамках разряда нужно прикидвать известо что к носу, чтобы иметь возможность посчитать, но в целом всё считается в рамках системы. С 13-ти ричной, 7-ми ричной, 34-ричной системой был бы такой же алгоритм.
SerjioValentes
Мало кто умеет, но много кто отмечает:)
Bedal
угу, и больше всех отмечают те, кто вообще не понимает, о чём речь :-/
Moroshka
А доля тех кто перфоркартами умеет пользоваться совсем стремится к нулю. Ото ж…
geher
Эх, молодость, молодость. Когда-то умел читать перфокарты по дырочкам (наш перфоратор текст вверху карты не пропечатывал, как у некоторых).
BlaGodGive
Да многие умеют, просто не так востребовано это. А на вскидку получится рак.
Ratenti
Какой рак?
Savevur
IDDQD
Jorell
idkfa
megusius
и в ад!
Fafhrd
IDSPISPOPD
mSnus
ух, не я один это помню.. новички довольствовались IDCLIP!
Fafhrd
Я как раз IDCLIP никогда не помнил, что первое узнал, то и применял =)
DrGluck07
J3QQ4…
dv0rk
душнила.
P.S. Если кто пользуется - тот умеет сходу. Кому внезапно понадобится - вспомнит без труда, ибо сложного там ничего. Мы в универе переводили. Больше не пользовался нигде.
Dolios
Этому учат на 1-2 курсе на любой "айтишной" специальности. Все, кто окончил вуз?
Bedal
Как школьная тригонометрия 99.999% граждан ни разу в жизни не требуется, так и эти базовые знания давно уже повыветрились в головах программеров. Заодно с тригонометрией, кстати.
Dolios
Двоичное и шестнадцатеричное исчисление для программиста, это не тригонорметрия, это как умножение/деление в уме. У вас же не выветрилось как 42 * 37 без калькулятора?
Bedal
У меня и восьмерично-десятеричная система М-220 ещё не вся выветрилась. Это не отменяет того факта, что подавляющему большинству программистов умение или хотя бы понимание hex-ов не требуется. Как, кстати, и тригонометрия со всей математикой, за исключением арифметики бытового уровня.
Кстати, 1554. Или Вы про Е2Е? :-)
Jian
Редко требуются только сложные вычисления, а знания того
0xd34df00d
Базовые знания… Правила вывода в CoC напишете без гугла?
alevlako
Как раз сейчас пишу программу, в которой основная идея состоит в переводе декартовых координат в полярные. Последний месяц столько тригонометрии через мозг прошло! Радуюсь: наконец-то пригодилось сполна )
ivanich41
На самом деле даже в 10-11 классе вполне учат. Я считаю пример нерепрезентативным, потому что фронтендерам например вообще Hex не упёрся и что теперь они не программисты теперь?
Dolios
Фронтендерам битовые операции не нужны? Например, чтобы проверить какие там пермишены у юзерской роли? Hex представление, это просто более удобное и короткое представление двоичного числа, ты сразу можешь сказать, какой бит в каком состоянии находится, потому что уж двоичное представление чисел 0-15 любой программист либо помнит, либо выведет за пару секунд.
0x9d8e
Фронтендеры обычно на битовые маски и шестнадцатеричные числа выражают крайнюю степень недоумения, а иногда и возмущения. Приходится такие простые вещи только ради фронтового апи усложнять (представляя каждый бит отдельным булевым полем). И да, то что 0xff === 255 им тоже взрывает мозг. Хотя это валидный js.
Dolios
Я фронтендер и в корне не согласен с написанным :)
0x9d8e
Что очень радует)
Dolios
Кстати, у фронтендеров все цвета в css в hex, так что, очень удивительные вещи вы говорите.
0x9d8e
Да, сам фуллстеком был. Однако недавний пример: в документации описал цвета в hex и отдал интом, а фронт в json увидел их таки в dec виде и не успокоился, пока я и в документации на dec не переделал (и то ему больше хотелось hex-строку вида "color": "#ff0000"). Предложение вбить в консоль console.log(0xff0000 === 16711680); было принято за издевательство и хак. Очень много во фронте народу, кто знает фреймворк, а информатику нет (да и язык часто не особо).
Cerberuser
Ну почему же только во фронте...
0xd34df00d
Почему только фронтендеры? Я писал всякие там тайпчекеры и прочее подобное, и там не то что битовые операции, там даже числа не нужны кроме как в единичной системе счисления (как в детском саду, со счетными палочками).
DrGluck07
Всё время говорю своим падаванам «учитесь прикидывать шестнадцатиричные числа в уме». Не обязательно точно, но чтоб примерно можно было преобразовать из десятичных и наоборот. Правда у нас микроконтроллеры, DSP, обмен по бинарным протоколам и всё такое. И таки да, такое умение регулярно пригождается когда ловишь что-то в дампах обмена, например.
mSnus
Очевидно, 0x1a0x2b! /s