Программирование недавно отпраздновало свое 70-летие, что делает его старше большинства активных разработчиков сегодня. Многие люди не знают, что первыми программистами были женщины, которые запрограммировали первый полностью электронный программируемый компьютер в 1947 году.

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

Сейчас почти все зависит от программного обеспечения. Большинство компаний теперь являются компаниями-разработчиками программного обеспечения, но просто не осознают этого — как банки. Широкое применение программного обеспечения для основных служб и то, насколько мы зависим от программного обеспечения для них, было продемонстрировано в мае 2017 года атакой программы-вымогателя WannaCry, которая нанесла ущерб поездам NHS, Deutsche Bahn и различным системам по всему миру. . Всего несколько строк кода и подключение к Интернету — и все, что нужно, чтобы остановить операцию и поставить под угрозу жизни людей. Не говоря уже о будущем, наполненном беспилотными автомобилями и искусственным интеллектом.

Определенно нет ничего необычного в том, что дисциплины стареют и по-прежнему оказывают глубокое и повседневное влияние (математике не менее 5000 лет, а возможно, и 20 000 лет). Но все меняется, происходят новые открытия, развиваются лучшие практики. Хотя основные идеи информатики не сильно изменились, языки программирования и технологии изменились.

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

Так что же означает программирование для трех разных разработчиков на разных этапах их жизни? Все началось в разное время с разными технологиями и разными языками. И все они будут продолжать работать с разными технологиями и языками с течением времени.

Без лишних слов, вот что думают о программировании три разработчика с 20-летним опытом программирования.

Дэниел — программист-ветеран

1. Когда и как вы начали программировать?

Я получил Commodore 64 на свое 11-летие. Вскоре я начал покупать компьютерные журналы, в основном из-за кассет, которые они прикрепляли к обложке, с демо-версиями игр или бесплатными программами. Но эти журналы часто включали учебники по программированию, и однажды я начал писать Бейсик. Позже я купил Commodore Amiga и начал писать AMOS BASIC, потом Blitz BASIC, потом немного C и Assembler.

В 18 лет я устроился писать на C++ в местную фирму, занимающуюся промышленными системами управления. Зарплата была низкой, но это было ногой в двери. Через несколько лет я перешел на другую работу, а затем я был в пути.

2. Как для вас выглядит обычный день программиста?

Я управляю D4, студией программного обеспечения, базирующейся в Бирмингеме, Англия. Миссия D4 состоит в том, чтобы когда-нибудь полностью зарабатывать на жизнь продуктами B2B SaaS, но для того, чтобы добиться этого, мы создаем специальное программное обеспечение для клиентов.

Моя роль весьма разнообразна. Я встречаюсь с потенциальными клиентами, занимаюсь бизнес-анализом, дизайном UX, системной архитектурой, кодированием, тестирую чужой код и управляю продуктами для таких продуктов, как SQLizer.io и QueryTreeApp.com.

Обычный день включает час или около того, чтобы связаться с командой, чтобы убедиться, что никто не заблокирован. Затем немного сортировки по электронной почте. Затем я хотел бы попытаться выделить несколько часов на кодирование, проектирование или тестирование части программного обеспечения, в зависимости от того, что требуется. Хотя иногда меня нет в офисе, я встречаюсь с потенциальными клиентами или консультирую.

3. Что вам больше всего нравится в работе разработчика?

То же чувство, когда в 11 лет я написал:

10 PRINT “Hello Dan”

20 GOTO 10

Я получаю это каждый раз, когда что-то отправляю. Оно никогда не покидало меня. Я наркоман.

Хотя в 90% случаев это кошмар. Попытка заставить технологии общаться друг с другом, отладка непонятных ошибок Unicode или условий гонки. Это отнимает много времени, напрягает и сильно разочаровывает.

Но когда это работает, вау.

4. Каким вы видите программирование еще через 70 лет?

Я думаю, что тенденция в программировании определенно направлена ​​на работу на «более высоких уровнях абстракции». Сегодня у вас есть подсистема, которая работает с камерой, датчиками местоположения и системами распознавания голоса, такими как Siri или Alexa. Вам не нужно знать, как они работают внутри: вы просто просите систему сделать фото или спрашиваете ее «где я?»

В будущем у нас будут более мощные подсистемы. Например, будет обычным делом иметь подсистемы, которые могут определить, что человек имеет в виду и каково его эмоциональное состояние — и все это из видеопотока. Другая будущая система может дать команду дрону забрать объект и отвезти его куда-нибудь; и, может быть, другой будет давать указания роботам на фабрике строить вещи по дизайнерским чертежам.

Тем временем все еще будут программисты, работающие на каждом уровне этого технологического стека. По-прежнему будут люди, которые создают части распознавания изображений и планирования маршрута системы доставки дронами. И еще будут люди, которые работают над взаимодействием с оборудованием камеры или над повышением эффективности файловой системы. Мы просто собираемся добавить больше слоев в стек технологий.

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

Это напоминает мне один из трех законов Артура Кларка:

«Любая достаточно продвинутая технология неотличима от магии».

5. Какая самая крутая вещь, которую вы когда-либо создавали?

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

Бен — опытный программист

1. Когда и как вы начали программировать?

Первое, что я когда-либо программировал, было, когда я был в начальной школе (возраст 8–11). В школе была одна из тех черепашьих компьютерных программ, где можно было создать изображение, запрограммировав черепаху двигаться вперед, поворачиваться или менять цвет. Я и мой друг потратили целую вечность, создавая все более и более сложные картины. Вероятно, это дало мне хорошее представление о процедурном мышлении компьютеров.

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

Три поколения программируемых черепах

2. Как для вас выглядит обычный день программиста?

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

3. Что вам больше всего нравится в работе разработчика?

Самое лучшее — это просто радость от создания чего-либо.

4. Каким вы видите программирование еще через 70 лет?

Тим Бернерс-Ли и Джефф Этвуд часто говорят о принципе наименьшей мощности. Этот принцип гласит, что со временем менее мощные языки программирования становятся более популярными, а более мощные языки программирования становятся менее популярными.

Хотя «мощь» языков программирования — довольно двусмысленный термин, я определенно чувствую, что языки более низкого уровня, которые сложнее писать, но предлагают лучшую производительность, становятся намного менее популярными. Это потому, что с ними трудно работать и учиться. И по мере увеличения мощности компьютера скорость языка программирования становится менее важной для многих программ.

Я думаю, что это, вероятно, продолжится, и языки программирования станут проще в использовании и, возможно, более специфичными для того, для чего они используются. Это снизит планку для людей, использующих языки программирования для создания вещей. На этом этапе программирование может стать не столько профессией, сколько умением, которое у кого-то есть, например умением создавать документы Excel сегодня.

5. Какая самая крутая вещь, которую вы когда-либо создавали?

Я сделал несколько крутых вещей в университете. Моя магистерская диссертация по информатике была посвящена использованию эволюционных вычислений для интерактивного создания музыки. Это было довольно аккуратно. Я также сделал несколько AI-движков для различных настольных игр. И робот, который должен был собирать мусор и класть его в мусорное ведро в зависимости от его цвета, но в итоге напал на других роботов.

Панделис — дипломированный программист

1. Когда и как вы начали программировать? Я всегда интересовался компьютерами, потому что мои родители купили мне один, когда я был еще совсем маленьким. В конце концов я завел блог, а это означало, что мне нужно было понять, как его разместить, отредактировать и сделать так, чтобы он выглядел красиво. Поэтому я начал программировать по необходимости.

Это привело к тому, что я изучил ваш типичный набор HTML/CSS и, в конечном итоге, PHP, чтобы делать действительно крутые вещи. С тех пор я просто органично переходил с языка на язык, экспериментируя с небольшими проектами.

2. Как для вас выглядит типичный день программирования? Мой обычный день в основном посвящен личным экспериментам, а также некоторым вкладам и обсуждениям с открытым исходным кодом. Но с тех пор, как я начал работать полный рабочий день, этот темп изменился, и теперь я трачу свое время на написание нового кода для внутренних продуктов и работу над проектами, ориентированными на клиентов.

3. Что вам больше всего нравится в работе разработчика? Мне нравится, что разработчики открыты и поддерживают друг друга. Но больше всего мне нравится сообщество разработчиков с открытым исходным кодом. Любой может внести свой вклад в направление проекта, написать свои собственные функции для вещей, которые они используют, и помочь улучшить программное обеспечение по-своему.

4. Каким вы видите программирование еще через 70 лет? Визуально! Я считаю, что дни клавиатур сочтены. Семьдесят лет — это долгий срок, поэтому я, вероятно, могу так сказать. Поскольку языки становятся все более абстрагированными от байт-кода, способ их написания также будет становиться все более абстрактным.

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

5. Какая самая крутая вещь, которую вы когда-либо создавали? Я провел много времени, посещая студенческие хакатоны по всей стране, что означало, что мне приходилось создавать множество крутых небольших одноразовых проектов.

Я считаю, что самым интересным был эзотерический язык программирования, который я разработал со своей командой в Stacs Hack. Язык был полностью основан на смайликах и переведен в код Swift. Теоретически вы можете написать целое приложение для iPhone, используя только смайлики.

Fizz Buzz: ничего, кроме смайликов.

Вот как выглядит скрипт fizz buzz на нашем новом языке программирования @stacshack #stacshack @MLHacks pic.twitter.com/rYDXgOJ45Z

— Панделис (@PandelisZ) 21 февраля 2016 г.

Последние мысли

Кажется, самая большая разница за 20 лет — это первые набеги на программирование — неудивительно, что самый молодой из нашей троицы начал программировать в Интернете. Но похоже, что чистая радость от создания чего-либо — одна из лучших сторон работы программиста, независимо от того, когда вы начали или как долго вы этим занимаетесь, в одиночку или в составе коллектива.

Тем не менее, «прогнозы» в отношении программирования, похоже, сильно различаются, что очень важно для будущего технологий. Есть ли у вас собственные мысли о будущем программирования?

D4 Software создает такие продукты, как SQLizer.io и QueryTree. Мы также создаем программное обеспечение на заказ для организаций по всему миру — от стартапов до предприятий. Первоначально опубликовано на weared4.com.