Я провёл это интервью со своей матерью Марианной Эрнерфельд в декабре 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)


  1. saipr
    29.03.2024 09:11
    +22

    Я решила стать программистом в 1965-66 годах.

    А я решил стать программистов чуть позже в 1971 году

    Когда я выпустилась из старшей школы в 1967 году, не было ни одного университета, обучающего программированию

    И мне тут повезло, в Москве в академии им. Ф.Э. Дзержинского именно в 1971 году был первый набор на специальность программирования

    Мне повезло, мне подсказали:

    Вечером из академии вернулся полковник Арсентьев, мы поужинали и он сказал:-
    «В академии на одном из факультетов будут готовить специалистов по программированию».

    Что это такое он толком не понимает, но чувствует, что за этим стоит большое будущее и его нам совет держать путь на второй факультет на специальность «Программирование».

    И вот уже более 50 лет я программирую. Читаю статью и понимаю, что это рассказ про нас из начала 70-х:

    Сначала мы немного узнали об IBM OS, а затем изучили собственный язык
    программирования IBM под названием PL/I. Это была более современная
    версия Кобола, обладавшая возможностями, которых у Кобола пока не было
    (но они появятся позже), например, создание таблиц и запросов. В то
    время PL/I был гораздо более совершенным и простым языком: можно было
    писать код, используя слова на английском, например, DO WHILE и так далее. Очень хороший язык программирования!

    В 1979 году, проработав в SJ десять лет, я уволилась и перешла в банковский сектор.

    А я остался верен программированию!


    1. Lev3250
      29.03.2024 09:11
      +11

      Тот случай, когда значок "Сталожил" в профиле действительно что-то значит!


      1. saipr
        29.03.2024 09:11
        +4

        Спасибо на добром слове!


    1. SpiderEkb
      29.03.2024 09:11
      +7

      А там не сказано куда именно в банковский сектор.

      Главным инициатором обработки данных в Швеции были государственные структуры. Банки и остальные далеко отставали от них

      Можно предположить, что к тому времени (79-й год) в банках тоже стали активно использоваться компьютеры и она продолжила заниматься программированием, но уже в другой сфере.


      1. saipr
        29.03.2024 09:11

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


  1. IvanPetrof
    29.03.2024 09:11
    +8

    А ещё мы носили на перфокартах пирожные, так что они были довольно удобны.

    Кое-кто до сих пор так делает))


    1. Joysi
      29.03.2024 09:11
      +2

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


      1. saipr
        29.03.2024 09:11

        Мы в школьные годы бегали в ВЦ за использованными перфокартами. Плели из
        них ремешки складывая из отдельных звенья и вставляя друг в друга,
        особо терпеливые - даже кольчуги-безрукавки =) .

        А до перфокарт (и параллельно с ними) были еще перфоленты:

        Перфоленты можно было использовать даже как елочные украшения!


  1. victor_1212
    29.03.2024 09:11
    +8

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


  1. andy_p
    29.03.2024 09:11
    +5

    Помнится, в начале 80-х, мы решили попробовать что будет, если на перфокарте пробить ВСЕ дырки. Где-то на середине перфокарту перекосило и перфоратор заело.


  1. sshikov
    29.03.2024 09:11
    +3

    IBM под названием PL/I. Это была более современная версия Кобола,

    PL/I ну ни разу не "версия Кобола", это совсем другой язык. Я понимаю, что это так в оригинале, но лично у меня такие фразы вызывают подозрение, а знает ли автор реально то, о чем пишет?

    Если что, я знаю оба языка, хотя на коболе программировал всего ничего.


    1. SpiderEkb
      29.03.2024 09:11

      Да, тоже резануло.

      Возможно, в оригинале что-то типа "IBM пыталась развивать вместо COBOL". Потом переусложнили все, увязли и бросили.


      1. sshikov
        29.03.2024 09:11

        Я посмотрел. В оригинале именно так. Ну т.е. может быть неаккуратно написали конечно.


        1. victor_1212
          29.03.2024 09:11

          это типа личное интервью Emil Ernerfeldt со своей мамой, о событиях которые были супер давно, так что вполне понятно, там тоже есть более технические статьи, в общем толковый парень, возможно стоит взглянуть -

          https://www.ilikebigbits.com/index.html


          1. sshikov
            29.03.2024 09:11

            А, ну да, логично. Это же не мама писала, а ребенок записывал, а ребенок возможно и не знает ни кобола, ни PL/1.


            1. victor_1212
              29.03.2024 09:11

              Emil слышал конечно, но интересы далеки, он автор egui - GUI library for Rust


      1. sshikov
        29.03.2024 09:11

        Причем если посмотреть на годы появления, то Кобол это 1959, а PL/1 это 1964. Т.е. это языки примерно одного поколения.


        1. 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") диалекте.


  1. slog2
    29.03.2024 09:11
    +1

    Здрассьте. Это не в 1969-м, это в 1988 году в институте меня так учили программировать. На фортране. Строишь алгоритм из ромбиков, пишешь текст на бумаге, отдаёшь набить на перфокарты, через день-два получаешь пачку перфокарт, через день-два отдаёшь прогнать на машине, через день-два получаешь распечатку, через день-два исправляешь ошибки и опять отдаёшь набить на префокарты и далее по кругу. Через неделю-две можно получить рабочий вариант учебной программы которая складывает все числа в массиве например и печатает сумму. Сделать всё сразу нельзя, у каждой группы определённые дни когда сдавать и получать результаты. Это в то время, когда у меня дома уже был Радио-86 и сделать учебную задачку можно было минут на 20 на бейсике.


    1. Shaman_RSHU
      29.03.2024 09:11
      +1

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


    1. aryk38
      29.03.2024 09:11
      +1

      здрасте вас. у нас в институте ещо в 1990м были перфокарты. в 1991м уже посадили за зеленые терминалы. да, и в общаге уже были ZX Spectrum.


    1. SpiderEkb
      29.03.2024 09:11

      Аналогично. Курс вычтехники (2 семестра) - написать на бланке какую-то учебную программку на FORTRAN IV, отнести ее на ВЦ, там ее заперфорируют, прогонят на ЕС-1033 и вернут распечатку с результатом. Которую потом надо предоставить чтобы получить зачет. Это было год-то в 84-85гг.

      Если бы мне тогда сказали, что через 3 года после выпуска (в 91-м) я брошу институтскую специальность и уйду в программирование - не поверил бы :-)


  1. msdos9
    29.03.2024 09:11
    +1

    когда я начинал работать программистом, перфокарты были только как черновики для написания ручкой программ на, как ни странно, Коболе


  1. aryk38
    29.03.2024 09:11

    рассказ "ни о чом". уровня "у меня тоже есть фирменная ИБМ линейка".