Я в программирование залетел впервые в 19 лет. Ну, ладно, в 18, если считать пару hello-world-ов на паскале.
Следующие 5 лет я кодил и читал книги/статьи каждый день, минимум часа по 2, а то и все 6-8, когда девушка была занята. В общем, посвящал этому почти всё своё свободное от учёбы время (учился я не на программиста).
Я так или иначе по меньшей мере погружался н базовом уровне во все незнакомые буковки, что мне тогда встречались. В общем, мне некому было меня направить и спросить мне тоже было не у кого, программистов я никого не знал.
Сидел на форумах, сидел ночами за книгами, тыкал код, тыкал ОС, тыкался в документацию. Каждый божий день. Я сейчас за год столько нового не впитываю, сколько тогда за 2-3 месяца.
А сейчас, ну дай бог раз в неделю чего-то где-то почитаю вне рабочего времени. На работе да, приходится постоянно сталкиваться с новым, но... Мне ведь за это платят, это уже не считается) А после работы хоть потоп, мне вообще пофигу на IT, у меня свои интересы есть)
Повестка в военкомат не является направлением на военную службу. Повестка военкомат - это предписание явиться в военкомат, что наверное можно классифицировать как "призыв на военную службу", но не как "направление на военную службу".
Реальность, как известно, может отличаться от законов. Ну и не стоит забывать, что в ряд стран можно уехать и без загранпаспорта
Сложно сказать. Два года назад - точно было далеко не сразу. Многие с повестками на руках успешно границу пересекали. Сегодня - не знаю тех, кто бы проверил.
Там было интереснее. Я разработчик на С++. Они искали Rust разработчика, но сказали, что если опыта в С++ больше 6 лет (мой случай), то готовы взять.
У меня уже был оффер на руках, я им сказал, что если у них четырёхэтапные собесы или лютые тестовые, то сразу нет, если процесс найма оперативный, то давайте.
В итоге, созваниваемся с HR и она мне почти с ходу: "нужно будет выполнить тестовое на 3-3.5 недели". Я ее тормознул и сразу отказал. На этом разговор закончился.
Мне как-то прислали тестовое с объёмом работы на 3 недели) Причем это не я даже оценил, а их собственная оценка. Я даже задание читать не стал, просто сразу отказал)
Но, чтобы быть успешным программистом, нужно хотя бы часть своего свободного времени посвящать изучению программирования.
Успешным насколько? Я просто когда прошёл в молодости стадию "всё такое новое и интересное", в лучшем случае трачу пару дней своего личного времени в месяц на какое-то "дообучение". Т.е. прям сажусь, открываю IDE, пишу там чего-то. Или открываю какую-нибудь новую для себя технологию, читаю документацию, играюсь с ней.
И это в лучшем случае. Бывают месяцы, когда я этого вообще не делаю. В большинстве же случаев сегодня мое "изучение программирования" - сводится к чтению хабра, чем я занимаюсь просто в качестве "убить время".
БОльшую часть новых технологий или погружение в уже известные я выполняю в рабочее время. После работы - да хоть бы и потоп, у меня вон еще 44 игры на XBox не пройдены, с женой вон в театр надо сходить, кота за пузико почесать.
При всём этом я как-то дорос до состояния "Senior Developer", но конечно я не работаю в гугле там и не получаю десятки тысяч долларов ЗП. По современному курсу моя зарплата едва дотянет до 4к в долларах, но я живу в Москве и мне этих денег просто за глаза хватает.
Успешный ли я программист? Ну, я явно звёзд с неба не хватаю, но проблем с работой не испытываю (пока что).
Когда я это увидел впервые на какой-то конференции, я такой: "да вы с ума все посходили". Причём на википедии даже не описан такой смысл у этой буквы в греческом.
Ответ на SO по этому поводу, привёл меня к мысли, что все реально с ума посходили)
Это довольно странный и даже строго говоря некорректный аргумент и вот почему
Кастомный deleter является частью типа умного указателя в С++. Соответственно формально мусорный тип мы всё равно порождаем.
Более того, сам Deleter - это тоже не какая-то функция, это "функтор", т.е. по сути структура с переопределённым оператором скобочек. Т.е. придётся если подходить к вопросу совсем дубово, то придётся породить целых два новых мусорных типа.
Даже если вы не согласны с пунктами выше вы всё равно породите мусорный тип через using просто для удобства.
Вы же не будете каждый раз писать что-то такое:
Код на С++17
// Где-то приходится написать мусорный
// Deduction Guide
namespace std
{
template<typename P, typename D>
unique_ptr(P*, D&&) -> unique_ptr<P, D>;
}
// одна единица трасляции
auto ptr1 = std::unique_ptr(&s, [](session* s){ close_session(s); });
// другая единица трасляции
auto ptr2 = std::unique_ptr(&s, [](session* s){ close_session(s); });
// мы вынуждены каждый раз писать длиннющие
// некрасивые лямбды, потому что не хотим ни
// порождать новые типы, ни мусорные глобальные
// объекты
Код на версиях ниже С++17 еще страшнее
// Можно так
auto deleter = [](session* s){ close_session(s); };
auto ptr1 = std::unique_ptr<session, decltype(deleter)>(&s);
// Можно совсем пойти страшным путём
// но я бы такое никогда на ревью не пропустил
auto ptr2 = std::unique_ptr<session, decltype([](session* s){ close_session(s); })>(&s);
Вы скорее всего, удобства ради, напишете вот такое
Работает с любым стандартом
// Упс, мусорный тип
using session_ptr = std::unique_ptr<session, decltype([](session* s){ close_session(s); })>;
// Зато какой удобный!
auto ptr = session_ptr(&s);
Да, как "ситуативный костыль", где за каким-то хреном нужно один раз вызвать какую-то функцию при завершении работы вместо деструктора - можно и не порождать мусорный тип. Но это костыль. С чего я соббсно и начал.
Ну и да, кстати в Rust написать обвязу вокруг Box, если нужен такой функционал - дело недолгое, но на мой взгляд вообще не нужное.
Нужна RAII обвяза для какой-то невнятной ерунды - породи такую обвязу явно и будет счастье. Вроде неплохой подход.
Не могу, не работаю с базами данных. Если бы пришлось, я бы для этих целей использовал бы DataGrip
VSCode значительно (ЗНАЧИТЕЛЬНО) функциональнее Sublime.
Без плагинов это конечно практически просто редактор текста, но с рядом плагинов - это вполне себе полноценная кроссплатформенная, кроссязыковая IDE.
Автопополнение есть
Анализ кода и навигация по нему есть
Базовые функции рефакторинг есть
Отладка есть
Интеграция с clang-format есть
Переключение между тулчейнами (я С++-сник) - есть
Интеграция с тестовыми фреймворками - есть
Чего ещё надо? Профилирование разве что, его не хватает да.
Я использую VSCode для всяких мультипоточных ковыряния и прочих кишочков и всё хорошо)
Единственное в чем студия действительно удобнее "из коробки" - это профилирование CPU/GPU (особенно GPU).
В остальном, VSCode более чем юзабелен, пускай и требует некоторого напильника.
Нууууууууууууу.... Я бы не сказал.
Я в программирование залетел впервые в 19 лет. Ну, ладно, в 18, если считать пару hello-world-ов на паскале.
Следующие 5 лет я кодил и читал книги/статьи каждый день, минимум часа по 2, а то и все 6-8, когда девушка была занята. В общем, посвящал этому почти всё своё свободное от учёбы время (учился я не на программиста).
Я так или иначе по меньшей мере погружался н базовом уровне во все незнакомые буковки, что мне тогда встречались. В общем, мне некому было меня направить и спросить мне тоже было не у кого, программистов я никого не знал.
Сидел на форумах, сидел ночами за книгами, тыкал код, тыкал ОС, тыкался в документацию. Каждый божий день. Я сейчас за год столько нового не впитываю, сколько тогда за 2-3 месяца.
А сейчас, ну дай бог раз в неделю чего-то где-то почитаю вне рабочего времени. На работе да, приходится постоянно сталкиваться с новым, но... Мне ведь за это платят, это уже не считается) А после работы хоть потоп, мне вообще пофигу на IT, у меня свои интересы есть)
Надеюсь он меня сразу убьёт. Жить в постапокалипсисе вообще не хочется)
Людей нет. Рубашек нет. Даже комнаты и той нет.
Точно может? :)
Я почти сразу отказался от этого, перестал употреблять "мягкие" формы побудительных предложений, всякие "пожалуйста" и "можешь ли ты".
Довольно быстро привык общаться с железякой как с поисковиком) Сухо, скучно, повелительно, по делу)
Повестка в военкомат не является направлением на военную службу. Повестка военкомат - это предписание явиться в военкомат, что наверное можно классифицировать как "призыв на военную службу", но не как "направление на военную службу".
Реальность, как известно, может отличаться от законов. Ну и не стоит забывать, что в ряд стран можно уехать и без загранпаспорта
Сложно сказать. Два года назад - точно было далеко не сразу. Многие с повестками на руках успешно границу пересекали. Сегодня - не знаю тех, кто бы проверил.
Законодательных ограничений мне неизвестно.
Обучение - да, но темпы этого обучения серьезно снижаются с годами и это вполне себе ок
Нет, я специально уточнил, что она имеет ввиду. Потом уже не удержался и рассмеялся. Не очень профессионально себя повел, да.
Там было интереснее. Я разработчик на С++. Они искали Rust разработчика, но сказали, что если опыта в С++ больше 6 лет (мой случай), то готовы взять.
У меня уже был оффер на руках, я им сказал, что если у них четырёхэтапные собесы или лютые тестовые, то сразу нет, если процесс найма оперативный, то давайте.
В итоге, созваниваемся с HR и она мне почти с ходу: "нужно будет выполнить тестовое на 3-3.5 недели". Я ее тормознул и сразу отказал. На этом разговор закончился.
Не помню, но по-моему аббревиатура компании была из четырёх букв. Какой-то там блокчейн проект на Rust. Было два года назад, запамятовал.
Мне как-то прислали тестовое с объёмом работы на 3 недели) Причем это не я даже оценил, а их собственная оценка. Я даже задание читать не стал, просто сразу отказал)
Откуда у вас edgeSet в контексте функции dfs?
У меня стойкое ощущение, что автор статьи пытается изобрести Go (он же golang).
LE и BE - куда более распространены, чем фразы вида "от старшего к младшему".
Настолько распространены, что я буквально впервые вижу, чтобы кто-то их вообще использовал хоть где-то.
Успешным насколько? Я просто когда прошёл в молодости стадию "всё такое новое и интересное", в лучшем случае трачу пару дней своего личного времени в месяц на какое-то "дообучение". Т.е. прям сажусь, открываю IDE, пишу там чего-то. Или открываю какую-нибудь новую для себя технологию, читаю документацию, играюсь с ней.
И это в лучшем случае. Бывают месяцы, когда я этого вообще не делаю. В большинстве же случаев сегодня мое "изучение программирования" - сводится к чтению хабра, чем я занимаюсь просто в качестве "убить время".
БОльшую часть новых технологий или погружение в уже известные я выполняю в рабочее время. После работы - да хоть бы и потоп, у меня вон еще 44 игры на XBox не пройдены, с женой вон в театр надо сходить, кота за пузико почесать.
При всём этом я как-то дорос до состояния "Senior Developer", но конечно я не работаю в гугле там и не получаю десятки тысяч долларов ЗП. По современному курсу моя зарплата едва дотянет до 4к в долларах, но я живу в Москве и мне этих денег просто за глаза хватает.
Успешный ли я программист? Ну, я явно звёзд с неба не хватаю, но проблем с работой не испытываю (пока что).
Со мной это случилось после появление
std::iota.Когда я это увидел впервые на какой-то конференции, я такой: "да вы с ума все посходили". Причём на википедии даже не описан такой смысл у этой буквы в греческом.
Ответ на SO по этому поводу, привёл меня к мысли, что все реально с ума посходили)
Но, ведь...
Это довольно странный и даже строго говоря некорректный аргумент и вот почему
Кастомный deleter является частью типа умного указателя в С++. Соответственно формально мусорный тип мы всё равно порождаем.
Более того, сам Deleter - это тоже не какая-то функция, это "функтор", т.е. по сути структура с переопределённым оператором скобочек. Т.е. придётся если подходить к вопросу совсем дубово, то придётся породить целых два новых мусорных типа.
Даже если вы не согласны с пунктами выше вы всё равно породите мусорный тип через using просто для удобства.
Вы же не будете каждый раз писать что-то такое:
Код на С++17
Код на версиях ниже С++17 еще страшнее
Вы скорее всего, удобства ради, напишете вот такое
Работает с любым стандартом
Да, как "ситуативный костыль", где за каким-то хреном нужно один раз вызвать какую-то функцию при завершении работы вместо деструктора - можно и не порождать мусорный тип. Но это костыль. С чего я соббсно и начал.
Ну и да, кстати в Rust написать обвязу вокруг Box, если нужен такой функционал - дело недолгое, но на мой взгляд вообще не нужное.
Нужна RAII обвяза для какой-то невнятной ерунды - породи такую обвязу явно и будет счастье. Вроде неплохой подход.