— Почему ты всегда всё делаешь в два раза дольше, чем обещаешь?
А если серьёзно: детали не видны изначально, всегда кажется, что сделать надо немного, и получится быстро. Уже в процессе работы натыкаешься на кучу нюансов, иногда, пока делаешь задачу, требования меняются. Пока работаешь ты — над тем же проектом работают ещё пять человек, и часто их изменения означают дополнительную работу для тебя.
На Quora есть хорошая аналогия с планированием маршрута по картам — «Why are software development task estimations regularly off by a factor of 2-3?» — когда детали ландшафта на нашем пути проясняются, наши первоначальные представления о сложности правильного маршрута начинают кардинально меняться, а наши первоначальные оценки оказываются наивными до неприличия, потому что в них не были учтены лестницы, пески, камни, злые морские львы…
Да это уже сказано-пересказано по десять раз на каждом программистском сайте. Но это частные случаи, связанные с предметной областью. Где-то в программировании есть математика, где-то химия, где-то экономика.
Пример с GHC я привел как инструмент общего назначения, не зависящий от предметной области, который использует математику чуть чаще, чем остальные популярные инструменты той же направленности.
А разве есть такая проблема? Простой и понятный код, решающий какую-либо задачу, и вписывающийся в требования по производительности, ресурсоёмкости, всяко лучше сложного и непонятного кода, решающего ту же задачу.
Проблема здесь есть в плоскости для кого именно мы считаем некий подход простым или сложным. Если за критерий простоты мы берем легкость с которой случайный человек с улицы читает некий код, то даже среднее по индустрии формошлепство будет слишком сложным процессом. Индустрия пошла по пути снижения порога входа в профессию (критерий простоты для обывателя), но в качестве побочного эффекта получила ложные абстракции, плохую компонуемость, высокие затраты на ручной QA и раздутые команды среднестатистически-легкозаменяемых кодеров, которые имплементируют одну и ту же возможную абстракцию в нескольких ее материальных ипостасях, что множит проблемы компонуемости и согласованности и увеличивает издержки на сопровождение этого кода в будущем.
Альтернативный подход (который на данном этапе почему-то зовется элитизмом) мог бы звучать в духе: сложность нужно укрощать, а не бояться, ведь работа программиста это про справляться со сложностями путем повышения уровня абстракции для максимально точной передачи сути бизнес-задач в коде. И математические абстракции нам в этом помогут.
Классический пример — бухгалтерия. Это простая фиксация фактов и арифметические операции, в основном, сложение.
Сложение в бухгалтерии тоже бывает нетривиальным. Что с чем можно складывать? В какой системе счисления работает валюта данного экономического региона (не везде она десятичная) и как нам конвертировать транзакции из валют других стран? Да и сам учет в двойной записи подразумевает, что в этой предметной области нужно уметь отделять множество правильных последовательностей операций от множества неправильных последовательностей, которые несут в себе финансовые издержки для бизнеса. Как нам закодировать эти множества максимально точным образом и возможно ли это в принципе — это вопрос, который уже достоин некоторых математических абстракций, которые было бы очень неплохо перенести в код без потери точности.
В программировании с математикой бывает по-разному, и есть технологические ниши где ее предостаточно (вот например то, что будет в ближайшем мажорном релизе GHC — arxiv.org/pdf/1710.09756.pdf). Там где ее больше, интерфейсы страдают от плохой согласуемости меньше. Проблема в том, что в индустриальном программировании математически-ориентированный подход к решению бизнес-задач, к сожалению, считается плохим тоном и элитизмом, потому что дефолтный Engineering Manager мыслит категориями «мало кто осилит» и «если Васю-математика собъет автобус, нам будет дорого нанять десять других математиков, чтобы во всем разобраться». Проблема во-многом надуманная и раздутая до размеров слона, но такова реальность индустрии.
> В условном С вы никак не можете статически гарантировать, что обращение по указателю имеет смысл, и указатель не висячий, например, и это тоже признак слабой системы типов.
Зато это можно гарантировать в ATS [1] [2], который скомпилится в нужный C и всё будет безопасно и быстро [3] :)
банк это один из вариантов, изначально цель была «одолжить и не завязываться на релокационный пакет», чтобы не проседать при обсуждении зарплаты и иметь возможность свалить в любую минуту. Лучшая тактика в таком случае — одолжить ровно столько, сколько нужно на переезд, и так, чтобы с первой зарплаты покрыть если не все, то бОльшую часть. Если есть родственники с деньгами, то через них, если нет — смотреть на овердрафты в банках (у некоторых до кризиса был овердрафт до 500к без процентов в течение 90 дней).
Если отработать год по своему желанию, и деньги действительно просто дарят в полном объеме независимо от реальных затрат, то конечно же банк не выгоден.
Но мы же рассматриваем ситуацию, где у будущего есть финансовые риски и мы хотим их минимизировать. Например, когда деньги нужно возвращать в первые месяцы после трудоустройства, когда на работе все очень плохо и хочется уйти, но переезд уже состоялся и за аренду вы уже заплатили. В этом случае, вам необходимо единовременно вернуть полную сумму аренды вашему работодателю, с того счета, который уже потрачен на аренду.
Можно сказать, что вот в такой ситуации имеет смысл взять тот же кредит и выплатить все работодателю, и тогда это одно и то же. Вот только общий результат по найму получается не равнозначный, потому что во время обсуждения вашей зарплаты, ваш оклад могли продавить вниз через «мы вам еще даем релокационный пакет, поэтому зарплата будет чуть ниже».
— UPD. Хотя погодите, если 500к выплачивают сразу вам на счет (его правда выплачивают сразу на счет??), а не по факту затрат которые вы предъявите чеками, то кредит в банке будет еще выгоднее для вас:
— Берем кредит на 200к в банке
— получаем 500к от компании, кладем на сберегательный счет
— оплачиваем квартиру деньгами из кредита
— работаем год
— погашаем кредит малыми долями
— в конце года получаем 500к + проценты
В этом случае у нас и риски первых месяцев покрыты лучше, и в течение года мы чувствуем себя легче, потому что часть денег, которые надо вернуть в случае форс-мажора равномерно уменьшается с каждым месяцем, и в конце года есть вероятность получить некоторый навар с депозита (если кредит был беспроцентный, или в сумме меньший, чем проценты по вашему депозиту, который можно пополнять частью денег с зарплаты).
> Вам выдали 500к => положили их на вклад. Если форс-мажор — сняли, вернули фирме.
А, так их все-таки выдают сразу на руки? Это конечно лучше, чем я представлял, но даже в этом случае, если с этого счета была проведена хотя бы одна большая транзакция (аренда квартиры + депозит, например), банк будет выгоднее — я могу размазать выплаты потраченного по оставшимся 11 месяцам, а не отдавать всю потраченную сумму целиком в день ухода.
Чтобы не быть должным сразу большую сумму денег здесь и сейчас, в первые месяцы после переезда, в случае форс-мажора. Вы можете перейти сразу в другую компанию, на лучшие условия, потому что перевозить вас уже не нужно.
Не знаю как в Яндексе и Москве, я релокейтился два раза за границей, и ни в одной из стран бюджет на переезд не дают на руки, а покрывают расходы либо с предъявленных чеков, либо договоров аренды. Если уложились в меньшую сумму, то разницу в виде бонуса никто дарить не будет. То есть по факту, ты все равно должен либо компании, либо банку, но в случае с банком, уложиться можно в меньшую сумму и не отдаваться в рабство компании на год, а свалить сразу, в случае неадекватных условий. Многие банки первый месяц вообще дают беспроцентный. А если сваливать на условиях компании — всю сумму придется выложить сразу же.
> Вы подменяете понятия. Чтобы изменять мир — не обязательно воевать. Флемминг, открыв пенициллин — он с кем вступил в конфликт? Или, по-вашему, это изобретение не изменило мир?
Мне кажется, что понятия подменяете вы, потому что в вашем предыдущем сообщении вы почему-то ставите в противовес финансовую стабильность и способность изменить мир. Давайте для начала согласимся о чем мы будем спорить :) Мой аргумент был в пользу того, что при прочих равных, наличие первого увеличивает шансы второго.
Кстати, знаете какой бюджет нужно было иметь родителям Цукерберга, чтобы он смог проучиться сначала пару лет в Phillips Exeter Academy, а затем еще пару лет в Гарварде?
> На чём основываются ваши догадки о моём финансовом состоянии? Вы ничего о нём не знаете, но уже делаете какие-то выводы.
Вообще не имел цели оценить ваше состояние, но если мы дискутируем в контексте темы о наемной работе, а не в сабе r/fatfire, то чего уж скрывать, что это не состояние финансово-независимого человека? Я сам такой же.
А почему мне нужно одалживать сразу 500К и быть должным компании сразу эту сумму, а не 200К на переезд и аренду квартиры, которые можно точно так же вернуть в течение года с зарплаты, а вещи перевозить в течение всего года, по мере необходимости?
> 0. Рабство на год это нормально, если в тебя совершили денежные вливания. Кому интересно за свой счет перевозить разработчика который уйдет через месяц. Тем более есть возможность вернуть деньги и уйти.
Это не нормально, часть этих расходов компания может списать как налоговый вычет со своих доходов, но кандидат об этом не узнает, если до этого не знал сам. По уму и в случае несложного финансового положения, этот пункт вообще легко обходится кредитом в банке или одалживанием денег у родственников, так как очень редко вся сумма нужна сразу и целиком (невозможно перевезти вещи в несуществующую квартиру, не всегда риэлтор будет в помощь и тд).
Если вы думаете, что меняете мир и при этом до сих пор не вошли ни с кем в профессиональный конфликт на фундаментальном уровне идей, то вы не меняете мир, а только думаете что меняете его, пока остальные делают деньги на вашей продуктивности. Как только появится профессиональный конфликт, вы поймете, что без своего бюджета вы можете только следовать за тем, у кого этот бюджет есть, и менять мир только так, как вам скажут.
Хотите изменить мир — в первую очередь измените его для себя и станьте финансово независимым от своей работы.
Давайте заменим. Какие новые российские продукты, созданные в последние 10 лет, я могу успешно продавать на внешнем рынке? давайте прямо по индустриям пройдемся.
> Что интересно, если бы вы написали что раскрутив велосипедное колесо получится вечный двигатель, потому что это оптимальное состояние колеса — вас бы заминусовали в днище.
О, это интересно. Проведите пожалуйста логическую свзяь между вечным двигателем и нулевой инфляцией, я хочу на это посмотреть.
> То есть ещё раз, курс доллара отражает непосредственно, например, что население исключительно беднеет? Или наоборот, богатеет?
Здесь вам нужно дать определение для «беднеет». И вот почему.
Курс доллара отражает покупательную способность ваших денег на рынке, где торговля происходит в долларах. Есть некоторое равновесное значение количества закупок, на интервале между [покупает все местное; покупает все на внешнем рынке], с левой стороны которого населению без разницы, а с правой — становится невыгодно. Очевидно, что если население условно закупает всё на внешнем рынке, то каждая такая покупка несет большее бремя в его бюджете. У каждого бюджета есть лимит, при котором некоторые категории товаров начинают вычеркиваться из плана покупок.
При этом вы можете «богатеть» (вот для этого и нужно строгое определение) в абсолютных значениях — приобретать больше ценностей, чем у вас было ранее. Проблема тут в том, что на какой-то итерации происходит резкое снижение стоимости всего, что у вас есть, потому что новые открытия и технический прогресс вбрасывают на рынок что-то новое, что делает ваше богатство в абсолютных значениях неликвидом. Представьте, что вы в конце 19/начале 20 века на протяжении 10 лет производили и продавали кареты, а также содержали большую ферму по выращиванию лошадиных сил. Каждый год вы показывали рост в абсолютных цифрах, и даже вложили накопленное в расширение ваших хозяйств. По ВВП ваш район очевидно показывает хорошую динамику — много активности, деньги свободно проходят несколько рук и приращают их капитал. Но на 11ый год всё ваше производство стало сильно неактуально для окружающих, так как на рынке появился кто-то с серийным производством ДВС.
Точно так же и со странами, и их населением. Вы можете покупать по квартире в год, но если в какой-то момент ваш регион в силу разных причин становится неактуальным на рынке, ваши активы превращаются в обязательства по выплате, и вы начинаете продавать в ущерб себе.
Так что вы можете «богатеть» в настоящем и при этом «беднеть» в будущих возможностях. И это то, что показывает тренд на отрезке курса. Человек/страна жива не одним днем.
И да, если вам не нравится фраза «экономика стабильно падает», то давайте заменим ее на «экономика стабильно стареет». С точки зрения «экономики как процесса» это одно и то же.
> А кто сказал, что при этом количество денег не растёт и база остается по сути та же самая или вообще не растёт?
Количество денег может не расти оттого, что ваше текущее производство может быть все менее ценно для остальных в мире, вы можете производить больше с каждым годом, но ценность единицы продукции может падать так, что общая сумма от реализации всего на рынке оставит вас с меньшим приростом, чем годом ранее.
> Стагнация производства. Деньги проще не вкладывать, потому что завтра вы получите меньше, чем потратили сегодня.
Вот только экономика работает не от принципа «проще», а от принципа «выгоднее». Деньги всегда лучше вкладывать во что-то, что при приемлемом для конкретного инвестора риске принесет максимум в виде приращеной стоимости. На риски влияют многие факторы, в том числе возможность вмешательства государства в экономику, регуляции рынка. Во время дефляции, при условии отсутствия государственного регулирования, инвесторам легче всего создавать рынок новой продукции, потому что стоимость ошибки постоянно снижается за счет снижающихся цен на оборудование и ресурсы вокруг.
На Quora есть хорошая аналогия с планированием маршрута по картам — «Why are software development task estimations regularly off by a factor of 2-3?» — когда детали ландшафта на нашем пути проясняются, наши первоначальные представления о сложности правильного маршрута начинают кардинально меняться, а наши первоначальные оценки оказываются наивными до неприличия, потому что в них не были учтены лестницы, пески, камни, злые морские львы…
Пример с GHC я привел как инструмент общего назначения, не зависящий от предметной области, который использует математику чуть чаще, чем остальные популярные инструменты той же направленности.
Проблема здесь есть в плоскости для кого именно мы считаем некий подход простым или сложным. Если за критерий простоты мы берем легкость с которой случайный человек с улицы читает некий код, то даже среднее по индустрии формошлепство будет слишком сложным процессом. Индустрия пошла по пути снижения порога входа в профессию (критерий простоты для обывателя), но в качестве побочного эффекта получила ложные абстракции, плохую компонуемость, высокие затраты на ручной QA и раздутые команды среднестатистически-легкозаменяемых кодеров, которые имплементируют одну и ту же возможную абстракцию в нескольких ее материальных ипостасях, что множит проблемы компонуемости и согласованности и увеличивает издержки на сопровождение этого кода в будущем.
Альтернативный подход (который на данном этапе почему-то зовется элитизмом) мог бы звучать в духе: сложность нужно укрощать, а не бояться, ведь работа программиста это про справляться со сложностями путем повышения уровня абстракции для максимально точной передачи сути бизнес-задач в коде. И математические абстракции нам в этом помогут.
Сложение в бухгалтерии тоже бывает нетривиальным. Что с чем можно складывать? В какой системе счисления работает валюта данного экономического региона (не везде она десятичная) и как нам конвертировать транзакции из валют других стран? Да и сам учет в двойной записи подразумевает, что в этой предметной области нужно уметь отделять множество правильных последовательностей операций от множества неправильных последовательностей, которые несут в себе финансовые издержки для бизнеса. Как нам закодировать эти множества максимально точным образом и возможно ли это в принципе — это вопрос, который уже достоин некоторых математических абстракций, которые было бы очень неплохо перенести в код без потери точности.
Зато это можно гарантировать в ATS [1] [2], который скомпилится в нужный C и всё будет безопасно и быстро [3] :)
[1] ats-lang.sourceforge.net/htdocs-old/TUTORIAL/contents/tutorial_all.html#pointers
[2] bluishcoder.co.nz/2013/01/25/an-introduction-to-pointers-in-ats.html
[3] blog.vmchale.com/article/ats-performance
Но мы же рассматриваем ситуацию, где у будущего есть финансовые риски и мы хотим их минимизировать. Например, когда деньги нужно возвращать в первые месяцы после трудоустройства, когда на работе все очень плохо и хочется уйти, но переезд уже состоялся и за аренду вы уже заплатили. В этом случае, вам необходимо единовременно вернуть полную сумму аренды вашему работодателю, с того счета, который уже потрачен на аренду.
Можно сказать, что вот в такой ситуации имеет смысл взять тот же кредит и выплатить все работодателю, и тогда это одно и то же. Вот только общий результат по найму получается не равнозначный, потому что во время обсуждения вашей зарплаты, ваш оклад могли продавить вниз через «мы вам еще даем релокационный пакет, поэтому зарплата будет чуть ниже».
— UPD. Хотя погодите, если 500к выплачивают сразу вам на счет (его правда выплачивают сразу на счет??), а не по факту затрат которые вы предъявите чеками, то кредит в банке будет еще выгоднее для вас:
— Берем кредит на 200к в банке
— получаем 500к от компании, кладем на сберегательный счет
— оплачиваем квартиру деньгами из кредита
— работаем год
— погашаем кредит малыми долями
— в конце года получаем 500к + проценты
В этом случае у нас и риски первых месяцев покрыты лучше, и в течение года мы чувствуем себя легче, потому что часть денег, которые надо вернуть в случае форс-мажора равномерно уменьшается с каждым месяцем, и в конце года есть вероятность получить некоторый навар с депозита (если кредит был беспроцентный, или в сумме меньший, чем проценты по вашему депозиту, который можно пополнять частью денег с зарплаты).
А, так их все-таки выдают сразу на руки? Это конечно лучше, чем я представлял, но даже в этом случае, если с этого счета была проведена хотя бы одна большая транзакция (аренда квартиры + депозит, например), банк будет выгоднее — я могу размазать выплаты потраченного по оставшимся 11 месяцам, а не отдавать всю потраченную сумму целиком в день ухода.
Мне кажется, что понятия подменяете вы, потому что в вашем предыдущем сообщении вы почему-то ставите в противовес финансовую стабильность и способность изменить мир. Давайте для начала согласимся о чем мы будем спорить :) Мой аргумент был в пользу того, что при прочих равных, наличие первого увеличивает шансы второго.
Кстати, знаете какой бюджет нужно было иметь родителям Цукерберга, чтобы он смог проучиться сначала пару лет в Phillips Exeter Academy, а затем еще пару лет в Гарварде?
> На чём основываются ваши догадки о моём финансовом состоянии? Вы ничего о нём не знаете, но уже делаете какие-то выводы.
Вообще не имел цели оценить ваше состояние, но если мы дискутируем в контексте темы о наемной работе, а не в сабе r/fatfire, то чего уж скрывать, что это не состояние финансово-независимого человека? Я сам такой же.
Это не нормально, часть этих расходов компания может списать как налоговый вычет со своих доходов, но кандидат об этом не узнает, если до этого не знал сам. По уму и в случае несложного финансового положения, этот пункт вообще легко обходится кредитом в банке или одалживанием денег у родственников, так как очень редко вся сумма нужна сразу и целиком (невозможно перевезти вещи в несуществующую квартиру, не всегда риэлтор будет в помощь и тд).
Хотите изменить мир — в первую очередь измените его для себя и станьте финансово независимым от своей работы.
О, это интересно. Проведите пожалуйста логическую свзяь между вечным двигателем и нулевой инфляцией, я хочу на это посмотреть.
Здесь вам нужно дать определение для «беднеет». И вот почему.
Курс доллара отражает покупательную способность ваших денег на рынке, где торговля происходит в долларах. Есть некоторое равновесное значение количества закупок, на интервале между [покупает все местное; покупает все на внешнем рынке], с левой стороны которого населению без разницы, а с правой — становится невыгодно. Очевидно, что если население условно закупает всё на внешнем рынке, то каждая такая покупка несет большее бремя в его бюджете. У каждого бюджета есть лимит, при котором некоторые категории товаров начинают вычеркиваться из плана покупок.
При этом вы можете «богатеть» (вот для этого и нужно строгое определение) в абсолютных значениях — приобретать больше ценностей, чем у вас было ранее. Проблема тут в том, что на какой-то итерации происходит резкое снижение стоимости всего, что у вас есть, потому что новые открытия и технический прогресс вбрасывают на рынок что-то новое, что делает ваше богатство в абсолютных значениях неликвидом. Представьте, что вы в конце 19/начале 20 века на протяжении 10 лет производили и продавали кареты, а также содержали большую ферму по выращиванию лошадиных сил. Каждый год вы показывали рост в абсолютных цифрах, и даже вложили накопленное в расширение ваших хозяйств. По ВВП ваш район очевидно показывает хорошую динамику — много активности, деньги свободно проходят несколько рук и приращают их капитал. Но на 11ый год всё ваше производство стало сильно неактуально для окружающих, так как на рынке появился кто-то с серийным производством ДВС.
Точно так же и со странами, и их населением. Вы можете покупать по квартире в год, но если в какой-то момент ваш регион в силу разных причин становится неактуальным на рынке, ваши активы превращаются в обязательства по выплате, и вы начинаете продавать в ущерб себе.
Так что вы можете «богатеть» в настоящем и при этом «беднеть» в будущих возможностях. И это то, что показывает тренд на отрезке курса. Человек/страна жива не одним днем.
И да, если вам не нравится фраза «экономика стабильно падает», то давайте заменим ее на «экономика стабильно стареет». С точки зрения «экономики как процесса» это одно и то же.
Количество денег может не расти оттого, что ваше текущее производство может быть все менее ценно для остальных в мире, вы можете производить больше с каждым годом, но ценность единицы продукции может падать так, что общая сумма от реализации всего на рынке оставит вас с меньшим приростом, чем годом ранее.
> Стагнация производства. Деньги проще не вкладывать, потому что завтра вы получите меньше, чем потратили сегодня.
Вот только экономика работает не от принципа «проще», а от принципа «выгоднее». Деньги всегда лучше вкладывать во что-то, что при приемлемом для конкретного инвестора риске принесет максимум в виде приращеной стоимости. На риски влияют многие факторы, в том числе возможность вмешательства государства в экономику, регуляции рынка. Во время дефляции, при условии отсутствия государственного регулирования, инвесторам легче всего создавать рынок новой продукции, потому что стоимость ошибки постоянно снижается за счет снижающихся цен на оборудование и ресурсы вокруг.