• Неужели у многих программистов проблемы с зубами?

    Это не "компания помогает со здоровьем", а "компания оплачивает (полностью или частично) медицинскую страховку".
    План ДМС, как правило, предусматривает стоматологию за дополнительные деньги, поэтому это отдельно и выделяют как бонус.
    621c714f82b53285775765.png
    Ответ написан
    1 комментарий
  • Как параллельно запустить два проекта в PyCharm?

    DevMan
    @DevMan
    эмм.... а если запустить с консоли что поменяется?
    не путайте ide с рантаймом.
    Ответ написан
    Комментировать
  • Компания просит уволиться из текущего места работы перед собеседованием, нормально ли?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Это ненормально, но так бывает. Я бы не стал увольняться и переходить к ним.
    Ответ написан
    7 комментариев
  • Компания просит уволиться из текущего места работы перед собеседованием, нормально ли?

    @Akela_wolf
    Extreme Programmer
    То есть вам они ничего не гарантируют, но хотят чтобы вы уже уволились? Скорее всего попытаются прогнуть на условия оплаты или (что вероятнее) на условия работы. Потому что вы уже уволились, работа вам нужна уже сейчас, а значит вы будете сговорчивее. Собственно это сразу показывает отношение к персоналу в данной конторе - нагибать и ставить ультиматумы. Поэтому, лично я бы после такого предложения не раздумывая сказал бы "до свидания. Хотя нет, прощайте"

    Нормальные компании не только не просят увольняться, но и, сделав официальный оффер (то есть пообещав заключить договор, а иногда даже уже заключив договор) согласны ждать 2 недели (а иногда и больше) пока сотрудник завершит дела на текущем месте работы и выйдет к ним. А не так: "вы увольняйтесь, а мы вас собеседуем. Может быть возьмем, может быть не возьмем, ничего не обещаем".
    Ответ написан
    2 комментария
  • Почему не появляется путь до картинок SCSS?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Это путь от выходного css файла, а не от sass файла, в котором он написан.
    Чувствуете разницу?

    В sass до сих пор не встроен резолвер путей к файлам, в отличие от других препроцессоров.
    То есть пути к файлам никак не обрабатываются, и отправляются на выход как етсь.
    Это проблема.
    Например у вас такая структура:

    dist/
      css/
        style.css
      images/
        image.png
    src/
      images/
        image.png
      sass/
        blocks/
          logo.scss
        styles.scss


    пока вы пишете прямо в styles.scss, все отлично
    .logo { background: url(../images/image.png); }
    Путь совпадает и в ваших исподниках, и в билде. Шторм радостно выдает подсказки.

    Как только вы решите писать в отдельном файле blocks/logo.scss, путь к картинке в исходниках становится другим, но в билде остается прежним. Шторм не может выдать подсказку.
    В других препроцессорах можно писать исходный путь
    .logo { background: url(../../images/image.png); }
    Они преобразуют путь на выходе до корректоного.
    В sass - нет.

    Если вы используете webpack в качестве сборщика, то для него есть resolve-url-loader, который худо-бедно исправляет данных недостаток.

    Другое решение - использовать пути от корня.

    .logo { background: url(/images/image.png); }

    Тут шторм сможет подсказывать. Нужно только папку dist пометить как Resource root.
    Ответ написан
    Комментировать
  • Зачем нужны "ссылочные" методы и почему они не удовлетворяют интерфейсам?

    WinPooh32
    @WinPooh32
    Stack Overflow answer searching expert
    *Human и Human это два абсолютно разных типа данных.
    Значит и реализацию для интерфейсов для каждого типа надо делать отдельно.

    *Human - указатель на значение типа Human.
    Ответ написан
    Комментировать
  • Зачем нужны "ссылочные" методы и почему они не удовлетворяют интерфейсам?

    func (h *Human) Speak() {
    
    }

    Если глянуть на внутренности языка, то метод это по сути обычная функция, у которой первым параметром является ресивер (тот объект, у которого вызывается метод). То есть, компилятор этот код превратит в
    func Speak(h *Human) {
    
    }

    Соответственно, при вызове метода в случае *Human будет передача структуры по указателю, а в случае Human, по значению, со всеми вытекающими.

    Что касается ошибки про несоответствие интерфейсу, то тут надо учесть, что если у структуры определены методы через указатель, то и соответствовать интерфейсу будет указатель на эту структуру: https://go.dev/play/p/o7EsGmeYSRS
    Если же без указателя, то соответствовать интерфейсу будет сама структура: https://go.dev/play/p/oTsXP4DXaMJ
    Но оба одновременно определить не получится.
    Ответ написан
    Комментировать
  • Phpstorm: как отлаживать js запускаемый из командной строки?

    Grapeoff
    @Grapeoff
    В чём концепция...?
    Просто в конфигурациях отладки создаёте профиль "Attach to Node.js/Chrome"

    62138e0751eba556960758.png
    А далее уже как-то запускаете ваше приложение в режиме дебаггинга.
    Ответ написан
    Комментировать
  • Как и когда обучаться программированию школьнику?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Беда в том, что вы учитесь по статьям и видео, из-за чего получаете только иллюзию компетентности и не можете сделать ничего сложнее калькуляторов. Опыт показывает, что достаточно пары-тройки учебников, чтобы сделать хоть кривенький, но вполне реальный пет-проект.

    P.S. Математика и олимпиадные задачи к умению программировать реальные вещи вообще отношения не имеет.
    Ответ написан
  • Как и когда обучаться программированию школьнику?

    @Akela_wolf
    Extreme Programmer
    Дальше учиться на практике. Берете проект, который хотите сделать, например игру. Начните с чего-нибудь простого, тот же классический арканоид или тетрис. Сразу же возникнет уйма вопросов: а как это? А как тут? А как тогда здесь? И через решение этих проблем будете поднимать свой скилл. Для подобных игр не нужно каких-то сложных библиотек (единственная библиотека, которая необходима - это та, которая позволяет рисовать на экране линии, квадратики и кружки). А потенциал для развития - на полгода минимум. Добавление уровней, режимов, бонусов, таблицы рекордов и т.д. Затем, например, изучение на примере этой игры более серьезной графической библиотеки (тот же OpenGL): псевдотрехмерность, текстурирование, освещение и т.д. В конечном итоге может получиться вполне симпатично выглядящая игра и большое количество опыта в разработке реального проекта.

    Разумеется, вместо игры можно взять любой другой проект, который вам интересен. Хоть программу для расчета рейтинга шахматистов по итогам турнира (это другая тема, тут придется изучать другие вещи) и совершенствовать эту тему, пока чувствуешь что есть еще что-то что можно сделать, но не знаешь как именно. Вот это постижение "как именно" и называется совершенствованием навыков.
    Ответ написан
    Комментировать
  • Как сфокусироваться на чтении?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Если замечаешь, что начал глотать страницы, "наказывай" себя и возвращайся назад, перечитывая их заново.
    Еще вариант - переходить на аудиокниги, когда занимаешься физическим трудом.
    Ответ написан
    Комментировать
  • Как сфокусироваться на чтении?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Целеустремлённость, дисциплина, концентрация и прочие подобные качества нарабатываются только регулярными волевыми усилиями.
    Ответ написан
    Комментировать
  • Как сфокусироваться на чтении?

    vabka
    @vabka
    Токсичный шарпист
    Если от чтения книги хочется оторваться, чтобы ютабчик посмотреть, то значит не так уж она тебе и нравится. Не такая уж она и интересная. В такой ситуации - не насилуй себя и делай то, что хочется.

    Если это какая-то техническая книга, то читать её без применения к какой-то своей задаче также будет не интересно.
    В такой ситуации - ищи задачу, которую тебе нужно решить с помощью этой книги.
    Ответ написан
    2 комментария
  • Как сфокусироваться на чтении?

    Надо читать книгу по таймеру а не до конца главы.
    Ответ написан
    Комментировать
  • Можно ли найти работу программиста после колледжа?

    vabka
    @vabka
    Токсичный шарпист
    Даже если ты каким-то образом достанешь диплом MIT, то тебя не возьмут на работу.
    У тебя нет базового навыка - поиска информации.
    Вопрос аналогичный твоему тут задают чуть ли не каждый день, и это легко можно найти.

    PS: Ответ - адекватные работодатели не смотрят на диплом.
    Ответ написан
    Комментировать
  • Какие советы по созданию резюме вы можете дать начинающим и не очень начинающим специалистам?

    saboteur_kiev
    @saboteur_kiev Куратор тега Windows
    software engineer
    С малых лет увлекался компьютерами. В школьные годы ходил на курсы «Сергис».После 9 класса отучился в колледже Бонча. После колледжа поступил в университет (закончить не смог из за семейных обстоятельств, в ближайшее время собираюсь перепоступать).

    Никому не интересно. Тут нет ИТ опыта.

    С компьютерами как эникей-сисадмин начал работать в судах

    У многих понятие эникей-сисадмин это тот, кто меняет мышку и переустанавливает софт. То есть продвинутый юзер.

    У моменту увольнения из был Консультантом(и ИО начальника отдела информатизации и статистики)
    Управлял отделом (пусть и маленьким)

    Непонятны задачи, непонятен размер отдела, непонятно в чем было управление. Тем более что в бюджетных организациях начальник отдела ни на ЗП ни на трудовые отношения влиять особо не может.

    Занимался всем (ремонт компьютеров, мелкий ремонт мфу, обновление и настройка по на пк и серверах)

    Ну вот. Что это за ремонт?
    Я понимаю, когда под "чинил мфу" ты бы написал "менял печку, перепаивал конденсаторы на платах". А так, среднестатистический эникейщик под ремонтом принтеров и МФУ обычно вытаскивает забитую бумагу и сдает картриджи на перезарядку.

    Я попал на время становления ИАЦ по этому на нас испытывали многое по
    И у нас было больше свободы и доступа в отличии от других судов
    Я многому научился за годы работы там

    Какая полезная и понятная информация.

    Позже я устроился на завод «младшим сисадмином»
    Позже стал начальником отдела
    И в итоге являюсь Инженером ТЗИ

    Какая полезная и понятная информация.

    За время своей работы я поднимал доменные, файловые сервера

    Создавал свой домен с нуля, или что такое "доменный сервер"?
    Что такое файловый сервер - просот расшарил папку на диске (сейчас может даже блондинка сделать), или ставил Novell Netware?

    Обновлял и правил 1с на серверах

    Что сюда входит? Обновлял темплейты отчетов? Писал код? Или просто по инструкции обновлял? Во многих компаниях обновление делает либо сам бухгалтер, либо отдельно выделенный человек. ЧТо делал ты - неясно.

    Тянул сеть и худо-бедно настраиваю микротики
    Поднял сеть видеонаблюдения на трассире
    Разобрался и привёл в порядок систему турникетов и шлагбаумов perco
    Позже прошёл обучение в perco (хотя по факту я уже все знал к тому моменту из того чему они учили)

    Ну хоть что-то конкретное. Но опять таки, микротики можно настраивать по-разному. Система турникетов и шлагбаумов - сам проектировал или просто оптимизировал уже имеющееся? (Скорее всего там очень простые настройки)

    Работал с поставщиками и менеджерами

    Так все это делают в конторах где нужно покупать какую-то технику.

    И по факту организовал пусть не идеальную, но стабильную работу на отдельно взятом заводе
    Я если чего-то не знаю то гуглю/ищу знакомых/техподдержку которые могут ответить на мои вопросы
    Да у меня есть пробелы в знаниях
    Я этого не скрываю
    Я слаб в теоретической части и я это понимаю
    По факту со многими вопросами приходилось разбираться на ходу

    В первую очередь ярко выражен недостаток в виде неумения сформулировать свои мысли и выдать конкретику. А это один из самых главных требований к любому айтишнику.

    Я пытался откликнуться на вакансии младших системных администраторов, эникеев в крупных и средних компаниях, но мне приходит отказ или просто игнор

    Так а требования совпадают с резюме?

    Соответственно прошу помочь статьями/объяснением как правильно создать резюме и как подать себя

    Да просто нужно давать конкретику. Названия технологий. Объемы задач. Конкретные зоны ответственности.
    За весь вопрос кроме слова "домен" и "микротики" не было ни одного названия продукта, ни одного бренда.
    Если ты даже не можешь сформулировать в понятный текст даже свой имеющийся опыт кто будет рисковать брать тебя на работу и учить чему-то что требуется на конкретной позиции?

    Вот после прочтения, я понятия не имею, сможешь ли ты поднять домен с нуля. Сможешь ли ты вайфай настроить с бесшовным соединением в частном доме чтобы добивало на 100-200м и не пускало соседних кидди-хакеров в локалку. Сможешь ли корпоративную почту хотя бы настроить или какой-то мониторинг организовать. Умеешь ли в скриптинг хоть на чем-либо.

    Нет информации никакой.
    Ответ написан
    Комментировать
  • Возможно ли устроиться программистом с общим образованием?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Нельзя устроиться с таким уровнем поисковых навыков. Этот вопрос здесь задавался уже сотники раз.
    Ответ написан
    3 комментария
  • С чего начать изучение программирования школьнику?

    @Akela_wolf
    Extreme Programmer
    Насчет линукса. Да, на мой взгляд однозначно стоит. Опыт работы в линуксе даст тебе более глубокое понимание как функционирует операционная система, возможность заглянуть "под капот", увидеть на практике такую вещь как разные реализации одного и того же (например разные оконные менеджеры - суть у них одна, но каждый реализует это задачу разными путями). Поэтому советую что-нибудь "конфигурябельное", типа ArchLinux (Gentoo - это уже совсем-совсем хардкор, новичку с ней будет тяжко). Что касается повседневных задач - да нет там никаких непреодолимых трудностей, если не брать какую-то прям специфику. Браузер - есть. Просмотр видео, прослушивание музыки - есть. Работа с документами - есть. Работа с графикой и 3D-моделированием - есть. Игры - тоже есть, хоть иногда и с приколами (но сказано что игры не интересуют, поэтому не так важно).

    Насчет языка. Вообще язык программирования выбирают под задачу. Если хочется заниматься, например, системным программированием (драйверы, файловые системы, загрузчики, ядро ОС, виртуальные машины/гипервизоры, СУБД и пр.) - то это C/C++. Если хочется заниматься нейросетками - там хорош Питон. Фронтендом - без Javascript/Typescript сейчас никуда. Но если говорить об языке программирования общего назначения (на котором можно написать множество прикладных программ), то я рекомендовал бы следующие критерии:
    • Статически типизированный. Особенно важно, на мой взгляд, в начале обучения, так как закладывает базу - навык писать код строго. Динамически типизированные языки, такие как PHP, Python, Javascript и пр. позволяют программисту писать код "как попало", что чревато трудноуловимыми ошибками, формируют "плохие привычки", которые потом будут мешать.
    • Поощряющий декларативный (функциональный) стиль программирования. Функциональный стиль программирования сейчас набирает популярность, так как позволяет писать более сложные программы и проще тестировать их по отдельным частям.
    • Кроссплатформенность. То есть возможность создавать программы для Windows, Linux, MacOS, Android и т.д. Это не столько про язык сам по себе, сколько про его окружение - наличие кроссплатформенных библиотек и инструментов для разработки.
    • Востребованность. Ну тут все просто - учить, например, Паскаль сейчас вряд ли целесообразно - реальную разработку на нем практически не ведут. Поэтому лучше изучать что-то с чем потом будешь сталкиваться на практике (в чужих проектах) и с которым легче будет найти единомышленников чтобы совместно разрабатывать большие проекты. И, в перспективе, строить карьеру в этой области.

    Итак, смотрим что у нас есть на этот счет:
    1. C/C++. Статически типизированный и довольно строгий. Очень сложный. На нем можно писать программы в любом стиле, включая метапрограммирование. Кроссплатформенный до жути. Позволяет решать задачи, максимально близко к "железу". Востребован ограниченно. Уникальная ниша - системное программирование и программирование микроконтроллеров. В силу его очень большой сложности - лично я не рекомендую.
    2. Javascript/Typescript. Динамически типизированный (у Typescript есть статическая типизация, но с приколами унаследованными от Javascript). Поддерживает как императивное, так и декларативное программирование. В первую очередь предназначен для браузеров, хотя сейчас есть кроссплатформенная платформа node.js. Востребован в первую очередь на фронте. Так что к нему стоит сразу присоединять в плане обучения HTML/CSS и какой-нибудь фронтовый фреймворк: Angular/React/Vue и т.п. Также пригоден для написания бэкэнда (node.js), десктопных приложений (Electron), мобильных приложений (React Native). Перспективное направление, но лично я не рекомендовал бы как первый язык из-за определенного бардака в экосистеме. В этом направлении легко нахвататься "плохих привычек".
    3. С#. Статически типизированный, поддерживает декларативное программирование, имеет реализацию для Linux (Mono), но в целом заточен на Windows. Вполне востребован, в частности используется в Unity (движок для разработки игр). Насчет него не имею личного мнения, так как не использую в своей работе.
    4. Java. Статически типизированный, поддерживает декларативное программирование, запускается на всем где есть JVM (включая Android). Write once, run anywhere. Востребован в основном в суровом энтерпрайзе, в больших проектах для серьезного бизнеса. Также применяется в вебе.
    5. Kotlin. Улучшенная Java, разработка фирмы jetBrains. Статически типизированный, очень хорошо поддерживает декларативное программирование. Позволяет легко писать асинхронный код (корутины). Запускается там же где и Java (так как использует ту же JVM), плюс имеет возможность компиляции в JavaScript и в native код для Windows/Linux/MacOS. Kotlin для JVM - вполне зрелое решение, Kotlin Multiplatform - пока еще нет, но быстро развивается. Является официальным языком для разработки под Android. Востребован пока не очень (в основном в области мобильной разработки), но его популярность растет и он начинает теснить Java в её традиционном сегменте. В перспективе может стать языком способным охватить большую часть сфер прикладного программирования: backend, frontend, десктопные и мобильные приложения. На мой взгляд - перспективно.
    6. Scala. Еще одна улучшенная Java. Статически типизированный, очень хорошо поддерживает декларативное программирование. Кроссплатформенный как и Java (сейчас вроде появился компилятор в JS, как и Котлина). Сложный. Очень легко написать конструкции в которых "без поллитры не разберешься". В силу сложности востребован мало. Есть уникальные фичи, но не так много по сравнению с Котлином (большая часть реально востребованных фич Скалы в Котлине есть). Ознакомиться в перспективе стоит, рекомендовать как основной язык не буду.
    7. Haskell. Статически типизированный, декларативный язык (не просто поддерживает декларативное программирование - на нем сложно писать иначе). Кроссплатформенный. Востребован в специфических областях. С моей точки зрения - король функционального программирования и в силу этого сложный (математические абстракции в полный рост). Ознакомиться также стоит, просто чтобы почувствовать всю мощь функционального программирования - мозг переворачивает очень хорошо и позволяет глубже понимать другие языки. Как основной язык - рекомендовать не буду.
    8. Python. Динамически типизированный, поддерживает декларативное программирование, кроссплатформенный. Вполне востребован в вебе, в научных исследованиях (нейросети). Опыта работы с ним имею мало, но рекомендовать бы не стал из-за динамической типизации.
    9. PHP. Динамически типизированный, поддерживает декларативное программирование, кроссплатформенный. Весьма востребован, но практически только в вебе (разработка сайтов). Очень низкий порог вхождения, из-за чего очень много плохого кода (хотя сейчас появились достойные фреймворки - Symfony, Laravel, Doctrine и т.д.). Как язык для изучения - не рекомендую.

    Конечно есть и другие языки, которые я не упомянул в силу того что не знаком (или плохо знаком) с ними.
    Из приведенного списка я бы в первую очередь выделил C#, Typescript, Kotlin. Мой личный выбор на данном этапе карьеры - Котлин, но думать, сравнивать и выбирать, разумеется, вам.

    Еще в перспективе стоит познакомиться с такой темой как СУБД и язык запросов SQL. В вебе, как я уже писал, пригодится HTML/CSS. Ну и далее конкретные специфичные вещи, подбираемые уже под конкретную задачу.

    Теперь о книгах. Книги по языкам рекомендовать не буду. Но назову несколько книг, которые, по моему мнению, обязательно стоит прочитать любому программисту:
    1. Э. Хант, Д. Томас. Программист-прагматик
    2. Р. Мартин. Чистый код.
    3. По мере набора опыта: Р. Мартин. Чистая архитектура
    4. При желании стать профессиональным программистом: Р. Мартин. Идеальный программист
    5. Сложная, но тем не менее умная книга: С. Макконнелл. Совершенный код

    Это то что пригодится в любом случае. А дальше - все зависит от выбранного языка и области его использования.
    Ответ написан
    12 комментариев
  • Как правильно создать pull request?

    Начать следует с того, что форкнут не тот репозиторий. Теперь повторите те же действия с:
    JetBrains/swot


    PR при этом нужно будет создавать из своего репозитория в их, но GitHub это автоматически должен помочь сделать.
    Ответ написан
    Комментировать
  • Нормально ли кидать эксепшены в Spring boot web app?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый вечер.
    Да, нормально.
    Само исключение (лог) не нужно отдавать на фронт.
    На фронт отдайте код http ошибки (4хх) и какое-нибудь кастомное сообщение: "Недостаточно средств".
    Посмотрите в сторону ExceptionHandler.
    Ответ написан
    Комментировать