Рубріки: Мнение

Зачем программисту ассемблер и математика и как писать код у себя в голове: лучшее из интервью создателя языка D

Вікторія Пушкіна

Имя Уолтера Брайта не суперизвестно, и язык, который он создал — D — тоже не стал суперпопулярным. Но, возможно, вы использовали его компилятор для C++ Digital Mars или знаете игру Empire (она сильно повлияла на популярную серию Civilization). Кстати, это первый компилятор для C++, который напрямую компилировал код без его преобразования в C.

При этом Уолтер Брайт — самоучка в программировании. Он стартовал с разработки Empire, постепенно перейдя в область создания компиляторов: помимо C++, он создал компиляторы для C.

Своими мыслями о том, как писать хороший код он поделился в интервью Владу Тену на YouTube-канале «Мы обречены». Highload публикует главные мысли из этого видео.

Уолтер Брайт / Medium

Про популярность D и другие языки программирования

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

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

Это лестно, но также мне бы хотелось, чтобы D был мейнстримным языком, а не нишевым. Так что я хочу снизить барьер для входа в язык D для новичков. Сейчас я работаю над тем, чтобы декомпилятор мог импортировать код на языке С напрямую, а не через транслятор. То есть встраиваю компилятор С в компилятор D.

Про то, зачем учить D

C++ — это безопасный выбор. Если вы владеете С++, то знаете, что всегда найдете работу и вас никогда не будут критиковать. D привлекает людей нестандартных, более авантюрных и готовых пробовать новое. И некоторые работодатели заметили это и постоянно ищут программистов со знанием D, потому что им нравится такой подход к работе. 

Организации, которые используют язык D / Полный список на сайте языка D

Про то, как писать код у себя в голове

Большую часть кода я пишу, когда бегаю. Бег — это мое время для размышлений. Перед тем как бежать, я загружаю голову контекстом проблемы, которую пытаюсь решить. Просто говорю себе: вот, есть такая проблема. А затем выхожу на пробежку.

Сам процесс бега как бы встряхивает кусочки информации в голове. И часто они складываются в решение к тому времени, когда я возвращаюсь — остается только его записать.

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

Про то, что нравится в программировании

Мне жаль тех, кто идет в программирование только ради денег. Вы тратите восемь-десять часов в день на работу, так что она должна быть чем-то, что вам нравится делать. Или вам нужно найти способ получать от этого удовольствие. Когда я работаю над D, я в основном работаю над ним бесплатно, потому что это весело 🙂

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

Про то, зачем программисту математика

В автомобильной промышленности есть механики и инженеры. Механики заказывают детали по каталогу и устанавливают их, следуя инструкциям. А инженеры разрабатывают эти детали и пишут инструкции. Так что инженер-программист — этот тот, кто пишет библиотеки. А если вы просто «берете детали из каталога» и вызываете API — это больше похоже на работу механика.

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

Про то, что учить начинающему программисту

Люди будут ненавидеть меня за это, но я считаю, что первое, что нужно выучить начинающему программисту — это матанализ. Даже если вы не будете потом его использовать, он перестроит ваш мозг. Появится ощущение, что теперь вы можете разобраться с чем угодно.

Мем про матанализ / Meme-arsenal

Потом переходите к машинному коду. Даже если вы будете писать на высокоуровневых языках, если вы хотите понимать, как работает ваш код и видеть проблемы в нем, учите Ассемблер. Вам будет гораздо проще так отлаживать свои программы.

А потом можете переходить на D — вы готовы 🙂

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023