Как понять, что перед вами программист? Дайте задачку и послушайте ответ
Иногда достаточно одной простой задачи, чтобы сразу увидеть профессиональный взгляд. Например, классическая задачка для детей:
«Буратино дали 3 яблока. Два он отдал Мальвине. Сколько яблок у него осталось?»
Обычный человек ответит: «Одно». А программист начнёт уточнять требования.
Типичный «программистский» разбор задачи
- Неизвестное начальное состояние. Неизвестно, сколько яблок было у Буратино до того, как ему дали ещё 3. Значит, нельзя точно определить финальное количество.
- Неясная семантика действия. Что значит «отдал»? Передал ли Мальвина их обратно? Взяла ли она их вообще? Может, это была попытка передачи, которая не завершилась.
- Вопросы идентичности. Не исключено, что Буратино и Мальвина — это разные ссылки на один и тот же объект. Тогда «отдать» может не менять состояние.
- Волатильность данных. Яблоки могут портиться, исчезать, возвращаться к источнику. Нужно учитывать время между событиями и возможные побочные эффекты.
- Ограничения ёмкости. Возможно, у Буратино лимит на хранение — максимум 2 яблока. Если он отдал 2, у него может не остаться ни одного, даже если формально «должен» остаться 1.
- Рекурсивные сценарии. Если процесс «отдавать» рекурсивен, возможна бесконечная цепочка передач, и тогда количество яблок становится неопределённым.
В итоге вместо «одного яблока» вы получаете полноценный анализ граничных случаев, условий и возможных багов в постановке задачи. Для программиста это нормально: он привык, что в реальных ТЗ половина условий не прописана, а вторая половина противоречит первой.
Именно поэтому разработчики так любят чёткие спецификации, понятные требования и однозначные формулировки. А ещё — хороший юмор про эти самые неоднозначности.
А какие шутки про программистов и дизайнеров нравятся вам?
Поделитесь в комментариях любимыми мемами или историями из жизни — посмеёмся вместе. Или, если шутки уже надоели, давайте лучше сделаем сайт, который будет работать без багов и точно по ТЗ. 🙂
Хотите увидеть, как мы превращаем смыслы в простые и сильные визуальные образы? Ознакомьтесь с нашими проектами в портфолио.
Также вы можете почитать отзывы наших клиентов в нашей группе ВКонтакте. Реальные истории заказчиков помогают лучше понять, как мы создаём решения, которые работают на миссию и ценности организации.