Странная инверсия. Правильно так - если умный человек вредит себе, то хотя бы помогает другим. Или если вредит другим, то хотя бы сам извлекает выгоду.
Может ли коррупция помешать Шерлоку Холмсу расследовать преступления? Может ли политическая ситуация повлиять на коррупцию? Могут ли граждане влиять на политическую ситуацию?
В принципе, даже подход Холмса не согласуется со статьей. Не все должны быть героями и лезть на баррикады, но рационализировать свой страх тоже вредно - типа у меня такая философия. Признать, что мне страшно, и жить с этим - куда полезнее и продуктивнее.
Ну вот вы сейчас свели разработку к кодингу. Даны входы и выходы - надо написать код. Погнали!
А может этот код вообще не нужен? Или нужен, но не в таком виде? Может можно прикинуть аналитическое решение или например какой-нибудь кэш, и понять, что для заданной надёжности в N девяток нужное количество решений поместится в кэш размера M и будет доставаться оттуда за микросекунду?
Или вообще производительность данного кусочка кода не важна, и ей можно пожертвовать в пользу читаемости и простоты?
Разумеется это не отменяет покрытия тестами и прочие штуки, но это все ремесленничество - от него никуда не деться.
Существует гигантское множество решений, для которых ещё нет библиотек. Человек, не умеющий программировать по-настоящему, приспособит пару готовых библиотек, подопрет костылем, примотает изолентой и даже не поймет, какие у этой халтуры дефекты и в какой момент они вылезут.
Эх вы, горе-комментаторы. Настоящие, самые глубокие знания чего бы то ни было получаются именно таким образом. Ценность - не в фоторамке, а в том, что автор будет возглавлять крутейшие R&D и инженерные лаборатории, а его разработки будут делать мировые новости. Никаким чтением документации, инструкций и учебников этого не получишь.
Могу порекомендовать курс лекций по reinforcement learning от David Silver из DeepMind - чувака, который собственно научил машину побеждать в Go. Там есть и про SARSA, и про много других классных алгоритмов.
Ошибка детская и глупая, но это не значит, что у них дилетанты работают. Ошибаются и косячат все. Не подумали, недосмотрели - люди есть люди. Чтобы система была надёжной надо не допустить ошибок в тысячах мест, а это практически недостижимо.
Я бы даже сказал наоборот - если ломается что-то запупыристо сложное из-за очень хитровыкопанного бага на границе пяти разных систем, это как раз признак плохого инжиниринга - система сложнее, чем способности людей держать ее под контролем. А когда система сделана очень простой (а по постмортему вроде похоже на то, что разработчики думали от правильных вещах), остаются только такие - глупые ошибки.
В Швейцарии 2/3 ипотеки гасить необязательно. Можно оставить ее себе на неограниченно долго или передать другому заёмщику, в том числе и по наследству.
Очень странное ожидание для CTO, что за него кто-то наладит процессы в его же отделе. Его для этого и берут - из хаоса делать порядок. Если в компании уже говны, то это просто значит, что работа сложнее будет, чем когда уже кто-то другой все выстроил.
Я могу точно такую же статью написать и про математиков, и про программистов. Все то же самое. Чтобы получить максимум от университета, студенту надо сначала поиграться со всеми технологиями самому (хочешь понять линейную алгебру - сделай 3d-игру, для статистики - поанализируй хотя бы a/b тесты, а лучше ML-модель сделай и поковыряйся с tensordash, хочешь понять сетевые технологии - придумай свой протокол, хочешь понять теорию вычислений - напиши свой компилятор и т.д.). А вот потом на "подготовленную поверхность", на выработанные интуиции теория ляжет, как родная. Тогда получится настоящий учёный или инженер.
Зашёл написать такой же комментарий, а он тут уже есть! Поэтому просто добавлю чуть-чуть в копилочку плюсов:
gRPC это не только протокол, но и целый фреймворк с возможностью расширения во все стороны: перехват (и опционально модификация) запросов, перехват (и модификация) ответов, возможность написания своих сериализаторов и десериализаторов (чем-то не нравится бинарный protobuf? можно в json. Хотите какую-нибудь экзотическую компрессию? Пожалуйста), хотите сервис-дискавери эндпоинтов через какой-нибудь zookeeper (если его ещё кто-то использует), чтобы в рантайме устанавливались новые соединения, плавно вводились в использование, а когда они пропадают из дискавери, плавно снимать с них нагрузку и закрывать.
gRPC поддерживает побочные каналы, которые позволяют вместе с запросами отправлять любые метаданные. Скажем, трассировку, аутентификационные данные пользователя или любую другую служебную информацию. Менять при этом описание структур запроса и ответа не надо - API сервисов остаётся чистым.
Государственное принуждение позволяет рассчитаться с любым долгом а в национальной валюте. Если вы договорились в кантоне Цуг поставить тонну лошадиного навоза, но не поставили, то контрагент может хоть на ушах стоять, но заставить вас вернуть свой биткоин он не сможет - вы можете вернуть эквивалентную сумму в швейцарских франках, и суд заставит его с этим согласиться.
Странная инверсия. Правильно так - если умный человек вредит себе, то хотя бы помогает другим. Или если вредит другим, то хотя бы сам извлекает выгоду.
Может ли коррупция помешать Шерлоку Холмсу расследовать преступления? Может ли политическая ситуация повлиять на коррупцию? Могут ли граждане влиять на политическую ситуацию?
В принципе, даже подход Холмса не согласуется со статьей. Не все должны быть героями и лезть на баррикады, но рационализировать свой страх тоже вредно - типа у меня такая философия. Признать, что мне страшно, и жить с этим - куда полезнее и продуктивнее.
В этом и поинт - пространство решений гораздо шире, чем просто написать код, и математика образует существенную часть этой разницы.
Ну вот вы сейчас свели разработку к кодингу. Даны входы и выходы - надо написать код. Погнали!
А может этот код вообще не нужен? Или нужен, но не в таком виде? Может можно прикинуть аналитическое решение или например какой-нибудь кэш, и понять, что для заданной надёжности в N девяток нужное количество решений поместится в кэш размера M и будет доставаться оттуда за микросекунду?
Или вообще производительность данного кусочка кода не важна, и ей можно пожертвовать в пользу читаемости и простоты?
Разумеется это не отменяет покрытия тестами и прочие штуки, но это все ремесленничество - от него никуда не деться.
Существует гигантское множество решений, для которых ещё нет библиотек. Человек, не умеющий программировать по-настоящему, приспособит пару готовых библиотек, подопрет костылем, примотает изолентой и даже не поймет, какие у этой халтуры дефекты и в какой момент они вылезут.
Эх вы, горе-комментаторы. Настоящие, самые глубокие знания чего бы то ни было получаются именно таким образом. Ценность - не в фоторамке, а в том, что автор будет возглавлять крутейшие R&D и инженерные лаборатории, а его разработки будут делать мировые новости. Никаким чтением документации, инструкций и учебников этого не получишь.
Могу порекомендовать курс лекций по reinforcement learning от David Silver из DeepMind - чувака, который собственно научил машину побеждать в Go. Там есть и про SARSA, и про много других классных алгоритмов.
https://youtube.com/playlist?list=PLqYmG7hTraZDM-OYHWgPebj2MfCFzFObQ
Ошибка детская и глупая, но это не значит, что у них дилетанты работают. Ошибаются и косячат все. Не подумали, недосмотрели - люди есть люди. Чтобы система была надёжной надо не допустить ошибок в тысячах мест, а это практически недостижимо.
Я бы даже сказал наоборот - если ломается что-то запупыристо сложное из-за очень хитровыкопанного бага на границе пяти разных систем, это как раз признак плохого инжиниринга - система сложнее, чем способности людей держать ее под контролем. А когда система сделана очень простой (а по постмортему вроде похоже на то, что разработчики думали от правильных вещах), остаются только такие - глупые ошибки.
Кем считается? Вы по фотографиям офисов или рассказам уволенных делаете выводы?
Знания и опыт - это две перпендикулярные оси. Знания - это, грубо говоря, я знаю, как надо делать. А опыт - это я знаю, как не надо.
И то, и другое у растет со временем, потраченным на занятие своей профессиональной деятельностью.
И существует такой проект только в мире волшебных единорогов, которые пьют исключительно утреннюю росу и срут радугой.
В Швейцарии 2/3 ипотеки гасить необязательно. Можно оставить ее себе на неограниченно долго или передать другому заёмщику, в том числе и по наследству.
А можете рассказать про конфликт интересов, когда сотрудники в свободное время над своими проектами / бизнесами работают.
CTO может это поменять, не?
Очень странное ожидание для CTO, что за него кто-то наладит процессы в его же отделе. Его для этого и берут - из хаоса делать порядок. Если в компании уже говны, то это просто значит, что работа сложнее будет, чем когда уже кто-то другой все выстроил.
А ещё вы удалили две отличные технические статьи ФБК. Не будет вам счастья в новом году.
Я могу точно такую же статью написать и про математиков, и про программистов. Все то же самое. Чтобы получить максимум от университета, студенту надо сначала поиграться со всеми технологиями самому (хочешь понять линейную алгебру - сделай 3d-игру, для статистики - поанализируй хотя бы a/b тесты, а лучше ML-модель сделай и поковыряйся с tensordash, хочешь понять сетевые технологии - придумай свой протокол, хочешь понять теорию вычислений - напиши свой компилятор и т.д.). А вот потом на "подготовленную поверхность", на выработанные интуиции теория ляжет, как родная. Тогда получится настоящий учёный или инженер.
Зашёл написать такой же комментарий, а он тут уже есть! Поэтому просто добавлю чуть-чуть в копилочку плюсов:
gRPC это не только протокол, но и целый фреймворк с возможностью расширения во все стороны: перехват (и опционально модификация) запросов, перехват (и модификация) ответов, возможность написания своих сериализаторов и десериализаторов (чем-то не нравится бинарный protobuf? можно в json. Хотите какую-нибудь экзотическую компрессию? Пожалуйста), хотите сервис-дискавери эндпоинтов через какой-нибудь zookeeper (если его ещё кто-то использует), чтобы в рантайме устанавливались новые соединения, плавно вводились в использование, а когда они пропадают из дискавери, плавно снимать с них нагрузку и закрывать.
gRPC поддерживает побочные каналы, которые позволяют вместе с запросами отправлять любые метаданные. Скажем, трассировку, аутентификационные данные пользователя или любую другую служебную информацию. Менять при этом описание структур запроса и ответа не надо - API сервисов остаётся чистым.
Первое, о чем подумал, когда увидел стектрейс, что превысилось число классов в dex. Почти угадал :)
Государственное принуждение позволяет рассчитаться с любым долгом а в национальной валюте. Если вы договорились в кантоне Цуг поставить тонну лошадиного навоза, но не поставили, то контрагент может хоть на ушах стоять, но заставить вас вернуть свой биткоин он не сможет - вы можете вернуть эквивалентную сумму в швейцарских франках, и суд заставит его с этим согласиться.