Какую книгу почитать, что бы изменить мышление программиста на бизнес-программиста?
Добрый день. Часто замечаю, что принимаю сложные решения, когда можно было сделать гораздо проще.
Из самых нелепых, за которое мне самому неловко.
Внезапно упал один из импортов автомобилей. Оказалось, что цена автомобиля была больше, чем предполагает поле в БД. Я решил увеличить размер поля с int до bigint. Сделал это, но оказалось надо поменять поле во второй таблице, но очень большой, где нельзя просто сделать alter. Я потратил на эту проблему около 3-х часов и много сил.
По итогу оказалось, что машина с такой ценой была всего лишь одна и никто ее никогда не купит и можно ее не импортировать.
Или например надо обновить что-то в БД на проде, я пишу миграцию, потом делаю ревью, потом накатываю, а мог бы просто выполнить запрос на прямую в БД.
Еще раньше болел перфекционизмом и сложные решения считал правильными, так как они идеальны, а от быстрых и простых меня тошнило, так как они много чего не учитывали, хотя это вообще не имело значения в болшьинстве случаев.
Такое принятие не оптимальных решений происходит достаточно часто. Какие книги почитать, что бы не совершать таких ошибок? В программировании, в жизни...
Дополнение
Знаете ли вы книги, в которых написано, что-нибудь на подобии того, что я опишу ниже.
Для принятия более эффективных решений перед разрешением вопроса проведите мозговой штурм, запишите все варианты, даже самые неудачные, затем опишите их плюсы и минусы и выберите наилучший.
Книга бизнес-мышление не привьет, чтобы научиться программировать, нужно программировать, чтобы научиться бизнесу нужно заниматься бизнесом.
Когда возникнет четкая взаимосвязь между скоростью принятия решения и выгодой/успехом всего дела, тогда и научитесь выбирать самые простые и быстрые решения.
Или например надо обновить что-то в БД на проде, я пишу миграцию, потом делаю ревью, потом накатываю, а мог бы просто выполнить запрос на прямую в БД.
это выбор между тем как и надо и как быстро, лучше по-правильному делать если есть возможность
Отчасти согласен, но книги дают информацию, которая позволяет развиваться гораздо быстрее и качественнее. Если все постигать только своей практикой и созданием своих теорий, то далеко не уйдешь. Книги ведь содержат опыт других людей, которые прошли точно такой же путь и в тексте собрали весь сок.
Дмитрий Байбухтин, книги часто содержат выдуманные кейсы, треш, неправильную интерпритацию, неконсистентность и простое непонимание теории веростностей
Не сочтите за истину но, считаю что Вы добьетесь в продаже своих услуг невероятных успехов, если продолжите мыслить в таком ключе. Поделюсь своим опытом
1. На этот путь меня поставил фриланс, где ты просто вынужден быть конкуренто способным и продавать решения в бюджет клиента
2. Закрепило это правило чувтсво необходимости получать удовольствие от своей работы. Я очень быстро дошел до того, что качество моего кода не приносит мне удовольствие, и начал искать удовольствие в предоставлении клиенту оптимального решение в "цена - качество - результат"
3. Есть прием доведения до абсурда в обе стороны. Смысл примерно следующий. Клиент приходит с фичей. Разработчик, который старается думать бизнесом, кроме самой фичи оценит ее с 2х сторон. 1. Можно ли сделать эту фичу еще проще? Потратить еще меньше денег, чтобы проверить новую потребность. И противоположность. Если я за X времени сделаю фичу так, как хочет клиент, но она не принесет должного результата, то сколько мне понадобится Xn часов, по моему мнению, чтобы получить нужный результат. Если это больше чем X3 то клиента надо об этом предупредить
4. Перспектива. Вы дали клиенту совет, но кто оказался прав, он или Вы? У меня сейчас такая же ситуация. Клиент просит решение максимально простое на 150 часов. Я же считаю , что качественное решение его пробелмы займет минимум 1000 часов, и за эти деньги вместо разработки алгоритма машинного обучения, можно оплатить 3000 человеко часов не IT решения, которые будут гораздо эффективнее. Но, чтобы узнать кто же все таки был прав, мне нужно проработать на проекте еще минимум год.
На мой взгляд, у вас те же самые проблемы что и у всех программистов и на врядли найдутся исключения.
Какая книга может повлиять на вас конкретно, сказать тяжело. Лично мне хорошо "вправило" мозг книга по рефакторингу Мартина Фаулера. Вот после нее я уже по другому писал и смотрел на код, хотя до этого прочитал не мало других толковых книг.
Ну тут один совет, читать, пробовать, ну и здесь вопросы по ходу изучения задавать.
Итого никто не знает подобных книг, поэтому погуглил статьи и вот первая попавшаяся, которая хотя бы подкрепляет мои существующие знания.
И решением будет более подробное рассмотрение вопросов и вариантов решений. Больше думать, меньше делать. https://sowetu.ru/read/463.html
Согласен на все 100%! Нет серебряной пули. С опытом начинаешь понимать какое решение в данной ситуации будет применить эффективнее (Не быстрее или проще), а именно эффективнее.
Дмитрий Байбухтин, у вас нет никакой реальной методики узнать:
- реальный ли опыт отписан
- правильные ли решения были описаны
- адекватные решения ли были описаны
- полезен ли данный описанный случай
По поводу ошибок - согласен. Это нормально, надо учитывать это в будущем и не более.
Но этого недостаточно для значительного развития, поэтому вопрос остается актуальным
Почему все пытаются доказать, что не имеет смысла читать книги? Ясень пень в них куча бреда, но на то нам голова и нужна, что бы отсеивать бред, анализировать не бред и пробовать, становясь опытнее
sim3x, что лол, то уж точно. Почему вы так зациклены на математике? Развивать логику?
Мир так устроен, что без использования чужого опыта мы до сих пор бы палкой в говно тыкали.
Не преувеличивайте по поводу статистики, математики и прочего.
Есть масса полезных книг и не важно кто их написал, школьник или самый умный человек на планете. Главное что в них написано. И не заливать в себя это как слова божьи с телевизора, а анализировать и самому решать что тебе надо и как это использовать.
Например сейчас я прочитал простейшую статью из первого результата в гугле и это помогло мне принимать более правильные решения. Если бы я прочитал десяток разных статей, несколько книг, попробовал бы то, что считаю нужным, то был бы гораздо выше того уровня, что был до этого. Если бы я вместо этих действий начал бы читать математику, то уже лазил бы по форумам и понтовался этим.
Судя по вашим словам перед тем как прийти на завод, мне нужно не ТБ прочитать, а логику на уровень бога возвести, что бы предсказать, что например пыль от зерен взрывоопасна.
Не желаю дальше обсуждать, так как не вижу смысла опровергать то, что я не раз проверял на практике.
Да, в Ваших словах есть доля правда и я согласен с тем, что это тоже может принести пользу, но в данном случае это не принесет значительных результатов
Тонкое искусство пофигизма. Парадоксальный способ ... например
Ваша проблема в намеренном выборе сложного пути решения проблемы. Это психолог с вами должен разговаривать. Возможно причина этому самоудовлетворения, желание выделиться или черт знает еще что. Об этом нужно писать не кодерам, а психологам.
А вот первый пример показывает невнимательность.
Как тут вообще может фигурировать бизнес?
Психолог тут не при чем. Если у меня будет вариант сделать проще и быстрее, я выберу его. Проблема в том, что я часто не вижу этого варианта.
НО конечно же не всегда. Часто принимаю и эффективные хорошие решения, естественно я не идиот.
Но я хочу улучшить свои умения, что бы иметь больше свободного времени и сил, при этом получая тот же результат.
А бизнес тут имеет прямую связь. Я прогер и от моих решений зависит на сколько быстро будет выполнена та или иная задача, на сколько эффективны мои решения, на сколько будет достигнута цель бизнеса