Но в молодости высока вероятность создать семью не с той (не с тем). Как достичь идеала, я не знаю.
Изначально планировать долгосрочные отношения и выходить из них, если понятно, что долгосрока не выйдет (даже если она поехавшая, но очень хорошая в постели / он плохой парень, но дарит карусель эмоций), и не делать тяжело обратимых действий (вроде рождения детей, которых можно завести и в 30), пока не станет понятно, что это действительно надолго.
Возможно, вокруг вас рептилоиды нет нужного человека.
Имеете право. У каждого свой путь...
Просто в 34 уже привыкаешь к определённым паттернам, и те вещи, на которые был готов в 17, уже кажутся кринжовым бредом и тратой времени непонятно зачем. Детей я не хочу, со всем остальным могу (и привык) справляться самостоятельно.
ИМХО итого истина где-то посередине: сделать PoC (или, по моему опыту, условную местечковую тулзу для условного работодателя уровня «автоматизировал загрузку новой версии сайта на FTP-сервер») можно в одиночку, но потом таки придётся работать с другими людьми, если хочется, чтобы проект взлетел.
А так как мы вроде обсуждаем промышленное программирование за деньги, а бизнесам всяким нужны не только PoC'и, и платят они не за это, то либо сидишь всю жизнь делаешь местечковые тулзы-загружалки на FTP-сервера, либо приходится работать в команде (при всей моей нелюбви к командам).
Абстрактное мышление это не врожденная способность, а приобретаемая. Любовь к математике может быть на генном уровне, а способность абстрактно мыслить – только после полноценного образования.
Способность к абстрактному мышлению вполне может быть генетически обусловлена. Да, для её раскрытия нужны, скажем так, тренировки и обучение, но это не значит, что обязательно именно математическое образование. Этими тренировками и обучением может быть само программирование.
Только я даже после первого, технического ВУЗа, чувствовал свои пробелы в образовании, из-за которых возник даже, отчасти, комплекс неполноценности.
А у меня комплекс неполноценности возник после изучения фундаментальной математики, и? О чём это говорит?
и вы чувствуете себя успешным после пары курсов по программированию
Ложная дихотомия. Можно вместо пары курсов по программированию те же 4-6 лет потратить на глубокое изучение программирования, пет-проекты, опенсорс-контрибьюшны, и так далее.
У нас, в провинции, просто не было программистских команд, и сейчас нет.
И удалёнки нет? И интернета нет?
У меня был знакомый из какой-то депрессивной деревни, который работал со мной в команде удалённо лет 15 назад.
Большая часть кода для этих модулей найдена на Гитхабе и CodeProject. Собрал всё вместе, получился индивидуальный проект, целью которого является подготовка данных для другого моего пет-проекта (тоже модульного типа): «Новая компьютерная программа для запоминания иностранных слов и фраз»
Без фундаментальной математики и понимания декартово замкнутых категорий в этих задачах никуда.
Науку и высокие технологии никто вроде отменять еще не собирается.
Потому что у этого термина действительно нет хорошо определённого объективного значения, и проще будет, как это обычно бывает в человеческом языке, оперировать недоопределёнными терминами.
Вряд ли на таком определении можно строить какую-то объективную теорию.
А у нас нет объективной теории ООП, инкапсуляции, и тому подобных вещей. Любые попытки построить такую теорию разбиваются о неприменимость её на практике.
Ну или давайте с другой стороны. Что такое по-вашему инкапсуляция?
По сути вы подменили одно умное слово другим умным словом, а это даже как-то не красиво. В таком направлении дискуссия мне не интересна.
Для протокола отмечу, что вы сами начали разговор с того, что написание в ФП-стиле с передачей лямбд в функции может ломать инкапсуляцию, но теперь при попытках поговорить по существу требуете от других прямо определять этот термин. Почему вам не нужно было его определять, когда вы сказали, что инкапсуляция от этого ломается?
Edwin Brady — автор единственного в мире по-настоящему строго типизированного языка —: «ну да, ну да, кустарь я».
Ну он же далеко не единственный автор. Вот первая версия:
— на пару с не-рискну-транслитерировать-фамилию.
Вот вторая версия:
(плюс 570 commits 69 663++ 27 241-- в репе с blodwen). Снова далеко не один, и в моём личном опыте я с gallais и buzden встречался в обсуждении пуллреквестов или у них в дискорде сильно чаще, чем с самим Эдвином.
В продакшеге у вас один код который его сетит и он всегда исполняется при инициализации, а в тестах вы резетете его после/перед каждым тестом. Да конечно можно и функцию резет в самом типе реализовать, но она не нужна в продакшнене, а опшионал ее и так реализует.
А если бы вы просто имели параметр в конструкторе, то вам бы не пришлось ничего ресетить: вы просто создаёте новый объект на каждый новый экземпляр класса. Десинглтонизация снова выигрывает!
Я как раз на плюсах и пишу там помимо * и -> есть еще и валью и валью_ор и в 23 ещё и прочие функциональные зены и элсы подвезли.
Первый тейк - относится не к невозможности писать в функциональном стиле, а что в сях не очень с полиморфизмом(обойдёмся без void*), и эти требования как то выше не предполагались. Хотя я на функциональных языках не программировал, мб это там повсеместно.
Это там именно что повсеместно. По крайней мере, в ML-семействе.
А второе - да, ошибся, код написал за 3 минуты.
Это как раз норм (для C++), потому что C++ и C не приучают думать в терминах типов. Функциональщик начал бы с написания сигнатуры и автоматически подумал «а как я инт-то верну на пустых входных данных? надо в Maybe завернуться».
а волнует он не потому что это "общепринято", а потому что человек это такая скотина которая в одиночку не живет обычно
Человек живёт в стае, а не в парах. Да, человек в среднем моногамен (или скорее полигиничен) на фоне других живых существ, но это не то же самое, что хотеть пару.
Есть альтернативное мнение, что лучше жениться найти долговременного партнёра как раз сильно до 30, чтобы иметь опыт совместного преодоления проблем (и вырабатывать этот опыт на кошках не очень важных проблемах вроде «уволили с первой работы в 23»), потому что это помогает лучше понять, кто рядом с тобой, да и выработать какое-то совместное уважение и, не знаю, признательность, что ли.
И тогда он просто психологически чувствует близкого ему человека с такими же жизненными ценностями и взглядами.
Никого не чувствую в 34 (и никого не хочу чувствовать, перегорело).
Нет, потому что в этих исследованиях рассматриваются не только подобные смерти, но и заболеваемость условным диабетом, депрессией и прочим (чуть ли не Альцгеймером). Холостяки сливают, увы.
Я хочу опровергнуть квантор всеобщности частным случаем (весьма распространённым, к слову), когда выражение под квантором (улетающие байндинги из локального скоупа ведут к нарушению инкапсуляции) не выполняется.
Но можно и проще (для вас): покажите ФП-пример (раз мы тут ФП обсуждаем), где это ломает инкапсуляцию.
Например опшионал может быть нужен только для тестов, а не в продакшене, тогда нет нужды ни в каких проверках
Почему? Кто мне это в типах гарантирует? Это ведь сломается при малейшем рефакторинге или изменении требований.
Вообще какое-то странное требование, чтобы в тестах нужно было, а так — нет. Можно какой-нибудь пример, чтобы я лучше понимал контекст?
то доступ к значению опшионала кинет исключение или терминирует программу кому как нравится.
А если вы пишете на плюсах (мои искренние соболезнования)? Как там, что у нас operator* и operator-> говорят про пустой опшонал? А, во:
The behavior is undefined if *this does not contain a value.
Всё как всегда в плюсах.
Если же опшионал на самом деле нужен в продакшнене то ваша замена с конструктором не эквивалентна т.к. проверку на пусто кто то где то всё ж таки должен делать.
Я и говорю, что эта замена не эквивалентна, а лучше: проверку нужно делать один раз и в условном main(), а не размазывать её по всей кодовой базе с неясной семантикой на пару.
С ней основная проблема в том, что целые числа там — это некоторый класс эквивалентности, а не напрямую единственным образом строящийся терм, а работать с классами эквивалентности в мейнстримных и устоявшихся пруверах исключительно больно, если кубы не гонять, но cubical type theory мы пока не очень понимаем. Возьмите любой результат из гугла по запросу «setoid hell» на ваш вкус.
Другой вопрос — причём тут вообще пруверы, но это уже моя профдеформация. На бумажке при разговоре с другим человеком с группой Гротендика всё норм.
Изначально планировать долгосрочные отношения и выходить из них, если понятно, что долгосрока не выйдет (даже если она поехавшая, но очень хорошая в постели / он плохой парень, но дарит карусель эмоций), и не делать тяжело обратимых действий (вроде рождения детей, которых можно завести и в 30), пока не станет понятно, что это действительно надолго.
Просто в 34 уже привыкаешь к определённым паттернам, и те вещи, на которые был готов в 17, уже кажутся кринжовым бредом и тратой времени непонятно зачем. Детей я не хочу, со всем остальным могу (и привык) справляться самостоятельно.
Это ты proofs for free не смотрел ещё.
Притащил вам ещё салютов
Скрытый текст
Наконец-то мы избавились от этих тиранов!
ИМХО итого истина где-то посередине: сделать PoC (или, по моему опыту, условную местечковую тулзу для условного работодателя уровня «автоматизировал загрузку новой версии сайта на FTP-сервер») можно в одиночку, но потом таки придётся работать с другими людьми, если хочется, чтобы проект взлетел.
А так как мы вроде обсуждаем промышленное программирование за деньги, а бизнесам всяким нужны не только PoC'и, и платят они не за это, то либо сидишь всю жизнь делаешь местечковые тулзы-загружалки на FTP-сервера, либо приходится работать в команде (при всей моей нелюбви к командам).
Способность к абстрактному мышлению вполне может быть генетически обусловлена. Да, для её раскрытия нужны, скажем так, тренировки и обучение, но это не значит, что обязательно именно математическое образование. Этими тренировками и обучением может быть само программирование.
А у меня комплекс неполноценности возник после изучения фундаментальной математики, и? О чём это говорит?
Ложная дихотомия. Можно вместо пары курсов по программированию те же 4-6 лет потратить на глубокое изучение программирования, пет-проекты, опенсорс-контрибьюшны, и так далее.
И удалёнки нет? И интернета нет?
У меня был знакомый из какой-то депрессивной деревни, который работал со мной в команде удалённо лет 15 назад.
Без фундаментальной математики и понимания декартово замкнутых категорий в этих задачах никуда.
Платят за них ну так, разве что.
Потому что у этого термина действительно нет хорошо определённого объективного значения, и проще будет, как это обычно бывает в человеческом языке, оперировать недоопределёнными терминами.
А у нас нет объективной теории ООП, инкапсуляции, и тому подобных вещей. Любые попытки построить такую теорию разбиваются о неприменимость её на практике.
Ну или давайте с другой стороны. Что такое по-вашему инкапсуляция?
Для протокола отмечу, что вы сами начали разговор с того, что написание в ФП-стиле с передачей лямбд в функции может ломать инкапсуляцию, но теперь при попытках поговорить по существу требуете от других прямо определять этот термин. Почему вам не нужно было его определять, когда вы сказали, что инкапсуляция от этого ломается?
Надо продолжать традиции предыдущих президентов!
Ну он же далеко не единственный автор. Вот первая версия:
— на пару с не-рискну-транслитерировать-фамилию.
Вот вторая версия:
(плюс 570 commits 69 663++ 27 241-- в репе с blodwen). Снова далеко не один, и в моём личном опыте я с gallais и buzden встречался в обсуждении пуллреквестов или у них в дискорде сильно чаще, чем с самим Эдвином.
А если бы вы просто имели параметр в конструкторе, то вам бы не пришлось ничего ресетить: вы просто создаёте новый объект на каждый новый экземпляр класса. Десинглтонизация снова выигрывает!
Запретили уже стайлгайдом или линтером
*и->?Это там именно что повсеместно. По крайней мере, в ML-семействе.
Это как раз норм (для C++), потому что C++ и C не приучают думать в терминах типов. Функциональщик начал бы с написания сигнатуры и автоматически подумал «а как я инт-то верну на пустых входных данных? надо в Maybe завернуться».
Человек живёт в стае, а не в парах. Да, человек в среднем моногамен (или скорее полигиничен) на фоне других живых существ, но это не то же самое, что хотеть пару.
Есть альтернативное мнение, что лучше
женитьсянайти долговременного партнёра как раз сильно до 30, чтобы иметь опыт совместного преодоления проблем (и вырабатывать этот опыт накошкахне очень важных проблемах вроде «уволили с первой работы в 23»), потому что это помогает лучше понять, кто рядом с тобой, да и выработать какое-то совместное уважение и, не знаю, признательность, что ли.Никого не чувствую в 34 (и никого не хочу чувствовать, перегорело).
Нет, потому что в этих исследованиях рассматриваются не только подобные смерти, но и заболеваемость условным диабетом, депрессией и прочим (чуть ли не Альцгеймером). Холостяки сливают, увы.
У этих сторон сильно разная сила этого форса.
Учитывая вышесказанное вами про ваши положительные качества — всё больше напоминает все эти мемы-картинки про just be yourself bro and ask her out.
Лет 17-18 (или три четверти карьеры) печального опыта, оставившего такой след, да.
Инкапсуляция — это сокрытие иррелевантных деталей реализации. ООП-модификатор
private— это просто частный случай.Я хочу опровергнуть квантор всеобщности частным случаем (весьма распространённым, к слову), когда выражение под квантором (улетающие байндинги из локального скоупа ведут к нарушению инкапсуляции) не выполняется.
Но можно и проще (для вас): покажите ФП-пример (раз мы тут ФП обсуждаем), где это ломает инкапсуляцию.
Что он вырастит? Геморрой от ночей дебага или шишку на лбу от бития об стол, когда дебаг совсем не удаётся?
Почему? Кто мне это в типах гарантирует? Это ведь сломается при малейшем рефакторинге или изменении требований.
Вообще какое-то странное требование, чтобы в тестах нужно было, а так — нет. Можно какой-нибудь пример, чтобы я лучше понимал контекст?
А если вы пишете на плюсах (мои искренние соболезнования)? Как там, что у нас
operator*иoperator->говорят про пустой опшонал? А, во:Всё как всегда в плюсах.
Я и говорю, что эта замена не эквивалентна, а лучше: проверку нужно делать один раз и в условном
main(), а не размазывать её по всей кодовой базе с неясной семантикой на пару.О, группа Гротендика.
С ней основная проблема в том, что целые числа там — это некоторый класс эквивалентности, а не напрямую единственным образом строящийся терм, а работать с классами эквивалентности в мейнстримных и устоявшихся пруверах исключительно больно, если кубы не гонять, но cubical type theory мы пока не очень понимаем. Возьмите любой результат из гугла по запросу «setoid hell» на ваш вкус.
Другой вопрос — причём тут вообще пруверы, но это уже моя
профдеформация. На бумажке при разговоре с другим человеком с группой Гротендика всё норм.