Я провёл это интервью со своей матерью Марианной Эрнерфельд в декабре 2018 года. В посте приведён немного урезанный перевод. Полное интервью на шведском языке можно прочитать здесь.
Почему ты захотела стать программистом?
Я решила стать программистом в 1965-66 годах. Прочитав статью, где на иллюстрации была показана блок-схема, я подумала: «это моё». Когда я выпустилась из старшей школы в 1967 году, не было ни одного университета, обучающего программированию, но существовал полугодовой курс в Сольне [прим. пер.: Сольна — коммуна в Швеции], который превратился в годовой курс, и на него могли выдать студенческий заём. Поэтому я подала на него заявление.
В то же время SJ (шведская государственная железнодорожная компания, на то время монополист) рекламировала программу стажёрства с однолетней оплачиваемой программой обучения, в рамках которой можно было учиться различным частям работы SJ. У SJ был компьютерный отдел, поэтому я подала заявление и в программу SJ, надеясь оказаться в ней.
Однако у SJ оказалось 700 кандидатов на 50 мест, поэтому они устроили суровый процесс отбора с различными тестами. И мне удалось пройти их! Мне нужна была зарплата, чтобы оплачивать собственное жильё, так что я приняла предложение.
Выяснилось, что руководство SJ было очень недовольно тем, что брошюры о стажёрской программе рассылали студентам и мужского, и женского пола! Хотя в программу приняли и не так много девушек, но их всё равно было приличное количество.
Во время обучения мы посещали все отделения SJ и обучались всему, от поездов и путей и до того, как работали коммуникации (у SJ были собственные электрические и телефонные линии!). Спустя год я получила работу, но она оказалась скучной. Наконец, в 1969 году я узнала, что SJ начинает программу внутреннего обучения программированию, так что я подала заявление. Пройдя дополнительные тесты, мы с тремя другими сотрудниками приступили в 1969 году к обучению программированию. Это были две девушки и два парня.
Моё руководство по IBM System/370, 1976 год. В таблице справа я написала ÅÄÖ (5B, 7B и 7C в шестнадцатеричном виде), потому что шведские буквы не входили в EBCDIC.
Как проходило обучение?
Сначала мы пришли в компьютерный отдел SJ и нам объяснили, что такое компьютеры и так далее. Затем мы прошли курсы в IBM, у которой в огромном здании в Стокгольме находилась «машина для обучения». Одновременно на одном курсе было примерно 50-100 человек, но нас разделили, так что в каждом кабинете присутствовало по восемь студентов. Там мы смотрели на два телеэкрана в передней части класса. Преподаватель и его доска транслировались на экраны из другого кабинета. У каждого преподавателя было примерно по десять кабинетов со студентами, и каждый кабинет мог задавать вопросы при помощи микрофона, обращая на себя внимание нажатием кнопки. Это было сверхсовременно!
Сначала мы немного узнали об IBM OS, а затем изучили собственный язык программирования IBM под названием PL/I. Это была более современная версия Кобола, обладавшая возможностями, которых у Кобола пока не было (но они появятся позже), например, создание таблиц и запросов. В то время PL/I был гораздо более совершенным и простым языком: можно было писать код, используя слова на английском, например,
DO WHILE
и так далее. Очень хороший язык программирования!Главным инициатором обработки данных в Швеции были государственные структуры. Банки и остальные далеко отставали от них. Поэтому на курсах IBM в основном были люди из других госструктур, но главной оставалась SJ.
После первого курса IBM я вернулась в SJ для выполнения своих первых практических программ. Мы вчетвером создали программу для дейтинга — оператор вводит данные мужчин и женщин, их черты, а затем генерирует пары между ними при помощи изобретённого нами алгоритма. А после этого мы приступили к написанию продакшен-кода!
Позже я прошла ещё несколько курсов, например, точно так же изучала ассемблер. То есть моё обучение выглядело так: неделя на работе и неделя на курсах, а потом на работе нам помогал супервайзер.
Мой трафарет для рисования блок-схем.
В чём заключалась твоя работа?
Сначала мы рисовали блок-схемы, а затем писали карандашом код. Затем мы передавали код в отдел перфорирования, где код вбивали в перфокарты. Перфокарты состояли из 80 столбцов (72 под программу и 8 для последовательности), поэтому строка кода не могла содержать больше 72 символов.
Мы должны были писать код чётко, чтобы работавшие на перфораторе женщины могли его читать. Спустя несколько лет работы в SJ нам выделили человека для чтения кода, и это сильно помогло. В остальном они по большей мере перфорировали карты данных: отчёты об отработанных часах в SJ, пробег каждого железнодорожного вагона (чтобы их можно было отправлять на обслуживание) и так далее. Перфоратор выглядел как обычная печатная машинка, пробивающая отверстия с картах. Кроме того, над каждым столбцом она печатала обычным текстом букву.
А ещё мы носили на перфокартах пирожные, так что они были довольно удобны.
Когда я только начинала работу, программы были маленькими, но позже каждая программа могла занимать несколько коробок карт длиной по одному метру. Каждая строка кода превращалась в одну перфокарту. То есть по одной команде на строку и карту. Отдел перфорирования возвращал нам программу (тысячи карт). Кроме того, нам приходилось создавать «контрольные карты», в которых кодировалось, должны ли перфокарты компилироваться или исполняться, на каком языке они были написаны и так далее. Контрольные карты имели собственный цвет. Первая карта была рабочей картой с моим именем на ней, чтобы отдел знал, кому их возвращать.
Мы клали коробки с перфокартами на специальный стол. Операторы в белых халатах брали коробки и запускали программы.
Иногда за день у нас получался только один прогон, потому что в машинном зале у программистов был самый низкий приоритет. Из-за этого, чтобы не терять время, нам приходилось одновременно работать над множеством программ.
Наконец, карты возвращались к нам вместе с «пижамной бумагой», содержащей списки кодов ошибок и номеров строк.
«Пижамная бумага»
У нас был доступ к паре дыроколов, так что мы могли вносить небольшие изменения самостоятельно.
Затем нам нужно было создать тестовые файлы и посмотреть, даёт ли программа ожидаемый результат. Если нет, то мы начинали «настольное тестирование» (с карандашом и бумагой), пытаясь разобраться, в чём же ошибка. Так что для создания правильной программы требовалось довольно много времени.
У нас было множество машин. Изначально у компании имелась IBM 360, а также более старые машины. Позже мы получили IBM 370.
Ближе к концу 70-х появились терминалы. У нас никогда не было собственных терминалов, все работали в общем зале с терминалами. Когда нужно было внести изменения в программу, нам приходилось сражаться за терминальное время. Программа высвечивалась на экране, а мы её редактировали. В компании пользовались жёлто-коричневыми терминалами Alfaskop. До самого увольнения из SJ в 1979 году у меня не было собственного терминала.
Alfaskop 3700
Расскажи о своих коллегах
Компьютерный отдел SJ состоял примерно из сорока программистов и системных инженеров. Всех моих коллег, как и меня, обучали в компании, за незначительными исключениями: у нас было несколько людей моего возраста, которые прошли упомянутый мной курс в Сольне. Но больше никаким другим образом научиться этому было нельзя — совершенно новая профессия! Некоторые из коллег раньше были машинистами локомотивов! У большинства даже не было аттестатов о полном среднем образовании.
Системные инженеры в основном работали со спецификациями, входными и выходными данными программ, и с тому подобным. Мы, программисты, были решателями задач, мы рисовали блок-схемы и думали, как выполнять задачи.
В машинном зале было примерно десять операторов машин. Все они носили белые халаты, работали с ленточными накопителями, дисками и вставляли перфокарты. Нам редко дозволялось посещать внутреннее святилище машинного зала. На входе висела табличка «Магазин закрыт». Машинный зал был огромным. Первые машины (IBM 1400) занимали 10-20 квадратных метров, а более новые были размером с холодильник.
Отдел перфорирования состоял из пятидесяти девушек. Если компьютерный отдел кто-то и посещал из других отделов SJ, то самыми интересными всегда были сотрудницы отдела перфорирования, потому что большинство сотрудников SJ были мужчинами!
Из сорока программистов было пять-шесть женщин. Я относилась к группе молодёжи, но большинство программистов было примерно на десять лет старше меня (я родилась в 1947 году). Ближе к концу 1970-х у нас появилось несколько новых рекрутов, прошедших годовые обучающие курсы.
Прежде чем приступить к работе, я познакомилась с Сольвейг, работавшей в компьютерном отделе SJ. Она сказала, что на всех дверях висели таблички «Мисс X» или «Миссис X», но на дверях кабинетов мужчин не указывалась информация о семейном статусе. Женщин это так бесило, что они открутили таблички. Когда я начала работать, они спросили «Ты ведь тоже не хочешь быть мисс или миссис?». Я ответила: «Нет уж, спасибо».
Чем ты занималась на работе?
Весной 1969 года, ещё до того, как я начала работать, SJ запустила онлайн-бронирование, работавшее 24/7. Это было невероятно современно по тем временам, а система целиком была написана на ассемблере. Благодаря этому SJ сильно выделялась на фоне остальных — ни одна другая компания в Швеции к этому и близко не стояла. Мне очень повезло обучаться в такой передовой компании!
Мы создавали программы, а после завершения и тестирования отдавали их другим отделам. Их поддержкой занимались другие, мы только писали новые программы! В основном это были программы, собиравшие статистику об операциях (например, о зарплате); их выполняли с регулярными интервалами (например, каждый месяц).
В 1979 году, проработав в SJ десять лет, я уволилась и перешла в банковский сектор.
Марианна за своим рабочим столом в SJ
Комментарии (25)
IvanPetrof
29.03.2024 09:11+8А ещё мы носили на перфокартах пирожные, так что они были довольно удобны.
Кое-кто до сих пор так делает))
Joysi
29.03.2024 09:11+2Мы в школьные годы бегали в ВЦ за использованными перфокартами. Плели из них ремешки складывая из отдельных звенья и вставляя друг в друга, особо терпеливые - даже кольчуги-безрукавки =) . Помню особо ценились болгарские (они были светло-синие и на них в центре был логотип совы)
saipr
29.03.2024 09:11Мы в школьные годы бегали в ВЦ за использованными перфокартами. Плели из
них ремешки складывая из отдельных звенья и вставляя друг в друга,
особо терпеливые - даже кольчуги-безрукавки =) .А до перфокарт (и параллельно с ними) были еще перфоленты:
Перфоленты можно было использовать даже как елочные украшения!
victor_1212
29.03.2024 09:11+8также перфокарты как закладки в книгах было удобно, трудно поверить, но у меня в старых книгах до сих пор иногда находятся :)
andy_p
29.03.2024 09:11+5Помнится, в начале 80-х, мы решили попробовать что будет, если на перфокарте пробить ВСЕ дырки. Где-то на середине перфокарту перекосило и перфоратор заело.
sshikov
29.03.2024 09:11+3IBM под названием PL/I. Это была более современная версия Кобола,
PL/I ну ни разу не "версия Кобола", это совсем другой язык. Я понимаю, что это так в оригинале, но лично у меня такие фразы вызывают подозрение, а знает ли автор реально то, о чем пишет?
Если что, я знаю оба языка, хотя на коболе программировал всего ничего.
SpiderEkb
29.03.2024 09:11Да, тоже резануло.
Возможно, в оригинале что-то типа "IBM пыталась развивать вместо COBOL". Потом переусложнили все, увязли и бросили.
sshikov
29.03.2024 09:11Я посмотрел. В оригинале именно так. Ну т.е. может быть неаккуратно написали конечно.
victor_1212
29.03.2024 09:11это типа личное интервью Emil Ernerfeldt со своей мамой, о событиях которые были супер давно, так что вполне понятно, там тоже есть более технические статьи, в общем толковый парень, возможно стоит взглянуть -
sshikov
29.03.2024 09:11А, ну да, логично. Это же не мама писала, а ребенок записывал, а ребенок возможно и не знает ни кобола, ни PL/1.
victor_1212
29.03.2024 09:11Emil слышал конечно, но интересы далеки, он автор egui - GUI library for Rust
sshikov
29.03.2024 09:11Причем если посмотреть на годы появления, то Кобол это 1959, а PL/1 это 1964. Т.е. это языки примерно одного поколения.
SpiderEkb
29.03.2024 09:11Если я правильно помню историю, то IBM никогда не развивала COBOL. Поддерживала - да, но не развивала. Развивали они PL/I как альтернативу - язык для работы с БД и коммерческих вычислений вместо COBOL.
Также они сначала выпускали упомянутые табуляторы, а позже сделали эмулятор этих самых табуляторов - RPG (в 1959-м). Который развивается до сих пор и, пройдя через несколько итераций ( RPG - RPG II - RPG III - RPG IV - ILE RPG) в настоящее время является нормальным (и достаточно быстрым, мощным и удобным для решения бизнес-задач) процедурным языком и на котором пишется >80% кода на платформе IBM i (middleware бизнес-сервера на процессорах Power).
Кстати, изначально (и достаточно долго) RPG имел позиционный синтаксис, уходящий корнями в бланки, на которых писались программы
До сих пор приходится сталкиваться с модулями, написанными на позиционном ("FIXED") диалекте.
slog2
29.03.2024 09:11+1Здрассьте. Это не в 1969-м, это в 1988 году в институте меня так учили программировать. На фортране. Строишь алгоритм из ромбиков, пишешь текст на бумаге, отдаёшь набить на перфокарты, через день-два получаешь пачку перфокарт, через день-два отдаёшь прогнать на машине, через день-два получаешь распечатку, через день-два исправляешь ошибки и опять отдаёшь набить на префокарты и далее по кругу. Через неделю-две можно получить рабочий вариант учебной программы которая складывает все числа в массиве например и печатает сумму. Сделать всё сразу нельзя, у каждой группы определённые дни когда сдавать и получать результаты. Это в то время, когда у меня дома уже был Радио-86 и сделать учебную задачку можно было минут на 20 на бейсике.
Shaman_RSHU
29.03.2024 09:11+1Мы просто договаривались с техниками и работали ночью с машиной. Но такое естественно не везде приветствовалось.
aryk38
29.03.2024 09:11+1здрасте вас. у нас в институте ещо в 1990м были перфокарты. в 1991м уже посадили за зеленые терминалы. да, и в общаге уже были ZX Spectrum.
SpiderEkb
29.03.2024 09:11Аналогично. Курс вычтехники (2 семестра) - написать на бланке какую-то учебную программку на FORTRAN IV, отнести ее на ВЦ, там ее заперфорируют, прогонят на ЕС-1033 и вернут распечатку с результатом. Которую потом надо предоставить чтобы получить зачет. Это было год-то в 84-85гг.
Если бы мне тогда сказали, что через 3 года после выпуска (в 91-м) я брошу институтскую специальность и уйду в программирование - не поверил бы :-)
msdos9
29.03.2024 09:11+1когда я начинал работать программистом, перфокарты были только как черновики для написания ручкой программ на, как ни странно, Коболе
saipr
А я решил стать программистов чуть позже в 1971 году
И мне тут повезло, в Москве в академии им. Ф.Э. Дзержинского именно в 1971 году был первый набор на специальность программирования
Мне повезло, мне подсказали:
И вот уже более 50 лет я программирую. Читаю статью и понимаю, что это рассказ про нас из начала 70-х:
А я остался верен программированию!
Lev3250
Тот случай, когда значок "Сталожил" в профиле действительно что-то значит!
saipr
Спасибо на добром слове!
SpiderEkb
А там не сказано куда именно в банковский сектор.
Можно предположить, что к тому времени (79-й год) в банках тоже стали активно использоваться компьютеры и она продолжила заниматься программированием, но уже в другой сфере.
saipr
Все может быть, конечно. Но раз она умолчала, что не прервала связь с программированием, то ...