EngTalks

Разговоры на инженерные темы и не только

Главная

Речь

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

Язык - он для мышления.

Криво выражаешься - другие переживут. Переспросят, уточнять, додумают. Но. Ты же говоришь так как думаешь. А значит и мышление у тебя кривое.

Разбираться в технологии ты умеешь. Но это не мышление. Это просто опыт - т.е. память. Это нужно. Хорошо что это есть.

Но.

Инженерное дело на памяти не вывезешь. Это не бухгалтерия на упрощенном режиме, где все придумано, нормировано и где надо только знать - т.е. помнить, и выполнять. Суть инженера - решать задачи, которые до него никто не решал. Задачи каждый раз уникальные. Если ни ты, ни кто либо такую задачу не решал - откуда ты будешь “вспоминать” решение?

Инженеру нужно мышление. Чтобы решать хотя бы чуть чуть сложные задачи, мышление должно быть четким, однозначным, стройным.

Пока у тебя очень простая задача, ты можешь думать в стиле “функция возвращает в переменной ссылку на объект”. Это будет тебя сбивать, но задачу наверно ты сделаешь. Но чуть более серьезная задача или вызовет ступор или решение будет кривым.

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

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

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

Потом пришло понимание, что по-быстрому - это слишком долго. Постоянно перестраивать шалаши - требует времени. Плюс развалиться дом может в самый неподходящий момент. Люди включили мозг, подняли голову и увидели деревья. Да, это дольше. Сложнее. Требует больше усилий. Но это надо сделать один раз. А потом лет 30 живи, проблем не знай - только небольшая поддержка.

Построить монолитный дом в 16 этажей, который пару сотен лет простоит, без четкого и детального мышления просто невозможно. Если прораб скажет “ну вот возьми там таких длинных штук и закинь в короб” - что сделает рабочий? Он догадается, о том, что нужно взять арматуру, сделать из нее каркас на определенном расстоянии, сделать выпуски в обе стороны для связки со следующей частью монолита? Нет. А что скажет технадзор если услышит от прораба такую фразу? Он скажет - “Этого уволить. Он не знает то что он делает.”

Как человек говорит - так он и думает. В некоторых профессиях особо думать не надо - можно просто молчать и делать. Быть инженером и криво общаться - не получится. Максимум - кодером.

Если некоторую тему ты не можешь объяснить просто и доступно - значит ты сам ее не понимаешь. “Понимаю, но объяснить не могу” - это отговорка. Так шутят про собак - “все понимает, но сказать не может”. Твое объяснение - это и есть то, что у тебя в голове. Если оно обрывочное, скомканное, непоследовательное - значит такое и есть твое понимание.

Надо тренироваться. Есть простой способ.

Возьми любую базовую концепцию программирования - алгоритм, переменная, функция, или технологию - DNS, BitTorrent - и объясни ее, допустим, маме. Если она скажет “ничего не поняла” - значит и тебе есть что поизучать и над чем поработать. Повторяй до тех пор, пока она не скажет “Ага, все понятно”. Потом тоже самое проверь на папе.

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