Старший инженер-программист в Amazon Крис Киль (Chris Kiehl), автор книги по дата-ориентированному программированию на Java поделился заметкой о том, как изменились его взгляды за 10 лет пребывания в индустрии разработки ПО.
А мы решили проверить, насколько мнения разных разработчиков по очевидным и не очень вопросам совпадают или, наоборот, разнятся. Приглашаем обсудить в комментариях.
О чём поменял своё мнение
Вот что я верю сейчас, но о чём раньше бы поспорил:
Простота — не данность. Она требует постоянной работы.
Нечем гордиться, если вы оперируете и мыслите сложными конструкциями.
Типизация в языках программирования нужна в командах с разным уровнем опыта.
Java — великий язык, потому что скучный.
Среды REPL (интерактивные среды исполнения) бесполезны в проектировании, но как инструмент для исследований они хороши.
Львиную долю программирования нужно выполнять задолго до написания первой строчки кода.
Frontend-разработка — это кафкианский кошмар, который я больше не выношу.
Привлекательность — это не метрика.
Эффективное управление бесценно. За свою карьеру я многое повидал и пережил прежде, чем сам узнал, что такое хороший менеджмент.
DynamoDB — хорошая база данных, только если ваша рабочая нагрузка не выходит за рамки её возможностей.
Объекты хороши исключительно для тех целей, для которых они предназначены. Слепая преданность функциональному подходу — глупость.
О чём сформировал мнение
Разработка — это про коммуникацию.
Никогда не уходите в монады в Java полностью.
Планировщик запросов — это злая госпожа.
Если что-то кажется мне простым — это точно что-то, чего я до конца не понимаю.
Молодым разработчикам нужно давать пространство для ошибок и экспериментов.
Нужно активно инвестировать в развитие своих софт-скиллов. Это быстро окупается.
В разработке приложений мало места для абстракций. Просто пишите нужный код.
А вот разработка библиотек, наоборот, основана на абстракциях. Потратьте время на поиски алгебраических структур.
ORM — это дьявол во всех языках и реализациях. Используйте SQL.
Главная беда функционального программирования — это функциональные программисты.
В долгосрочной перспективе вы глубоко пожалеет о выборе бессерверных функций.
Типы — это просто утверждения о мире, в котором работает ваш код.
Распределённые блокировки по-прежнему и по какой-то непонятной причине остаются очень сложными.
Навыки формального моделирования и анализа — это база.
Изоляция — важнейшее свойство хорошего набора интеграционных тестов.
Худшее, что можно выбрать для разработки приложений общего назначения — это DynamoDB.
Большинству плевать на ремесло программиста. Берегите тех, кому не всё равно. С остальным смиритесь.
Будущее за языками с постепенной зависимой типизацией.
Вы буквально не можете добавлять к тестовому коду слишком много комментариев (готов поспорить с тем, кто сможет).
О чём мнение не поменялось
Те, кто заморачивается над стилем кода, правилами линтинга и прочими мелочами — извращенцы. Занимайтесь более важными вещами.
Покрытие кода никак не связано с качеством кода. А зачастую и вовсе обратно пропорционально ему.
Монолиты остаются довольно няшными.
Крайне сложно превзойти десятилетия исследований и доработок реляционных баз данных.
Использование микросервисов нужно обосновывать, а то их всё чаще воспринимают как решение по умолчанию.
Большинство проектов не нужно масштабировать. Иллюзия этой необходимости только вредит.
Если завтра исчезнут 93%, а может быть, даже 95,2% проджектов — ничего не изменится, а то и повысится эффективность работы.
А вы согласны с автором или в каких-то моментах готовы поспорить, потому что ваш опыт говорит о другом? Менялось ли ваше отношение к разработке в процессе работы? Расскажите.
Чтобы расти, нужно выйти из привычной зоны и сделать шаг к переменам. Можно изучить новое, начав с бесплатных материалов:
курса-симулятора «Системный аналитик: первые шаги к профессии»;
открытого занятия онлайн-магистратуры «Управление цифровыми проектами» совместно с Президентской Академией;
курса-симулятора «Введение в SQL и работу с базой данных»;
занятия «Карьера с «1С»: разбираем профессии аналитика и программиста»;
или курса «Как победить синдром самозванца и построить карьеру».
Или открыть перспективы и получить повышение с профессиональным обучением:
профессии «Fullstack-разработчик на Python»;
профессии «Инженер по автоматизации»;
на курсе «SQL и получение данных»;
специализации «Backend-разработка на Node.js»;
на курсе «Django: создание backend-приложений».