Задать вопрос
  • Где взять задания для новичка в C++?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    По знаниям: Прата.С, Введения в цикл for или же переменные, массивы, немного указателей, немного функций и сам цикл for.

    Продолжайте читать учебник, там ещё много всего интересного, а параллельно пишите программы, которые вам интересны, начиная с простых.
    Ответ написан
    3 комментария
  • Реально ли зучение фреймворков js, без изучения js?

    RomReed
    @RomReed
    JavaScript, Flutter, ReactNative, Redux, Firebase
    Стоит ли пытаться летать если ты ходить не умеешь?
    А по сути - НЕТ. Изучите js и только потом браться за фреймворки.
    Ответ написан
    3 комментария
  • Чем занять простаивающий сервер?

    romy4
    @romy4
    Exception handler
    например, сдавать как игровой. по крайней мере себя окупит
    Ответ написан
    1 комментарий
  • Что есть в C++, чего нет в C#?

    15432
    @15432
    Системный программист ^_^
    На C/C++ можно написать системный драйвер или микропрограмму для железки.
    В C/C++ есть union
    В коде на C/C++ можно использовать ассемблерные вставки

    Как уже писали, из-за близости языка к ассемблеру и машинному коду, упрощается работа с структурами данных и указателями, отсутствуют проверки и прослойки, само исполнение кода производится быстрее. Не требуется наличие .NET Framework, можно создать программу, не требующую вообще никаких дополнительных библиотек и ПО.
    Ответ написан
  • Какие курсы и какую литературу посоветуете для начинающего системного администратора?

    @User23
    Если хотите развиваться и прокачиваться обязательно пробуйте linux
    Ответ написан
    Комментировать
  • Как выбрать случайные файлы из папки?

    castomi
    @castomi
    Серверный администратор - tickets.settin.ru
    Вот так
    #!/bin/bash
    if ! [ $3 ];then
    	precent=6
    else
    	precent=$3
    fi
    ls $1 > ls.log
    while read line
    do
    	[ $[ $RANDOM % $precent ] == 0 ] && cp -R $1/$line $2
    done < ls.log

    Сохраняешь этот скрипт к примеру сюда /usr/local/bin , к примеру под именем cprandom
    далее делаешь его испольняемым.
    chmod +x /usr/local/bin/cprandom
    далее работаешь
    cprandom $1 $2 $3
    где
    $1 - это адрес папки с твоими файлами
    $2 - адрес папки куда копировать рандомные
    $3 - указать колличество цифр начиная с 0 которые участвуют в рандоме, то есть указывая 1 там всегда будет 0 и все файлы скопируются, 2 - 50 на 50, 3 , треть ну и т.п. По умолчанию стоит 6

    То есть к примеру
    cprandom /home/vity /tmp 20

    Приятного использования))
    Писал на коленке, даже не запускал ни разу, но вроде без ошибок. Если что пиши)
    Ответ написан
    3 комментария
  • Использование нелицензированного ПО в организации, кто несёт ответственность?

    Singaporian
    @Singaporian
    Вы ответственны только за установку. То, что поставили до вас - не ваша ответственность. Вам хватит достаточно скромных денег на адвоката, который докажет, что не вы это ставили (это можно увидеть в любой ОС, когда ее поставили: wmic os get installdate)

    Но для вас это шанс перевести все на Линукс и получить хороший опыт. Лучше думайте об этом.
    Ответ написан
    5 комментариев
  • Какой выбрать язык программирования?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Почитай лучше это, потом что-нибудь по алгоритмам. А на счёт языка, не особо важно какой, можешь и несколько параллельно учить, если хочешь игры, то изучай математику и какой-нибудь игровой движок, язык программирования знать слишком подробно не обязательно, и главное больше практики.
    Ответ написан
    1 комментарий
  • Список объектов с разными template?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    А как вы себе это представляете? Вектор - шаблонный класс и параметр шаблона задаёт тип. Поэтому вам нужно искать что-то готовое для этой цели или мудрить своё. Информацию о типе в любом случае где-то хранить придётся(ну или помнить что куда складывали, но это неудобно и не всегда получится), т.к. элемент контейнера - это просто набор байтов. Я вижу 2 варианта:
    1 выделять память большим куском и где-то сохранять информацию о типе, скажем так:
    до 4 байта - int, до 12 байта - double, до 50 байта - SomeType. Можно хранить в том же блоке данных перед каждым элементом. Для хранения информации о типе в C++ есть RTTI, там не так много возможностей, но всё же.
    2 хранить указатель на void и опять же тип, но на этот раз для каждого элемента.
    Если планируется хранить данные примерно так: [int, int , int, int, double, Color, Color, Color, Color, Color, Color], то можно сэкономить, сохраняя диапазоны.
    Первый вариант лучше тем, что данных не разбросаны по памяти.
    Погуглите, я думаю оба варианта уже кто-то реализовал.

    UPD: набросал на коленке первый вариант https://github.com/DevAlone/c-universal-container/...
    Ответ написан
    2 комментария
  • Насколько легко трудоустроиться программисту в 40+, 50+ итд лет?

    Arris
    @Arris
    Сапиенсы учатся, играя.
    Трудно - и с каждым годом будет все сложнее и хуже. С каждым годом растет объем пула "минимально-необходимых для программиста компетенций" . Каждый год появляются какие-то новые фреймворки, инструменты, фишки - которые по идее должны облегчать и упрощать разработку - но на деле вырастают непреодолимой стеной между тобой и "реальным миром веб-разработки". Потому что ты стареешь, а технологии молодеют.

    Я бы картинку нарисовал, но там очень уж нецензурный вид получается ;-)

    И "впихнуть" в себя все новые технологии ну не получается никак - ты или распыляешься и все знаешь по верхам... или идешь вглубь темы. Но тогда приходится откладывать новые технологии в сторону, потому что на них тупо не хватает времени и/или сил. В молодости - времени. Позже - сил.

    Уже сейчас чтобы тебя считали верстальщиком/программистом/фронтэндером/бэкэндером - надо знать в 2 раза больше технологий, чем 2 года назад. Этакий Закон Мура наоборот. Да вы сами просто посмотрите эти списки "компетенций"!

    Читаешь список требований к "Web-программистам" и видишь, что месяц за месяцем, год за годом HR-ы и те, кто там им задачи ставит, вписывают в требования все больше умных словечек, которые они сами услышали и не понимают, зачем оно им нужно и нужно ли? Все ближе и ближе ситуация подходит к "Если бы водителей принимали на работу как програм.... В 2010 году это была "шутка юмора". Сейчас это уже почти реальность.

    Пример хотите?

    Одна государственная организация выставила список требований к "веб-программисту". При зарплате в 35000 рублей он должен уметь чуть ли не МКС программировать и чуть ли не кластера из сотен серверов настраивать. А на деле основной задачей человека будет - таскать проекторы из аудитории в аудиторию, чистить мышки студентам, переставлять winxp и изредка, раз в полгода - добавлять статью на сайт гос.организации. Откуда информация? Связался с человеком, которому 45, который в этой организации работает уже 18 лет. Ему стаж капает, а деньги он зарабатывает совсем в другом месте.


    Что уж говорить об организациях коммерческих? Особенно тех, для которых веб-программист - и чтец, и жнец, и на дуде игрец?

    Но это все лирика и крик души. Извините.

    И да, к 35-40-45 годам по мнению "молодых и амбициозных IT-специалистов" ты должен обладать строго определенным списком компетенций как в профессии, так и по жизни (к примеру, я столнулся с отказом в приеме на позицию программиста потому что у меня нет... автомобиля. Зачем программисту автомобиль? Ну там сложная и длинная логическая цепочка, сводящася к "раз у тебя нет автомобиля - ты лох, а лохи нам не нужны").
    Мне кажется, проблема в том числе и в том, что подавляющее большинство этих самых "молодых и амбициозных" специалистов совершенно не думают о своем будущем. Нет, я не про то будущее, которое "куда я пойду, когда закончу вот этот крутой проект". Я о реальности. В их понимании 35 лет - это недостижимо далёкое будущее, а до 50 они не доживут (а если и доживут - то в мечтах тимлидами в гугле).

    Соответственно "молодые и амбициозные специалисты" с презрением смотрят на людей, которые отдали 15 лет разработке определенной платформы, платформы, которую сейчас тщится заменить какой-то пул новых технологий. По их мнению - все что старше 5 лет - ненужное устаревшее говно мамонта. А те, кто не знают появившуюся полгода назад технологию - отставшие от жизни ламеры.
    Also, Эффект Даннинга—Крюгера тут работает в полную силу.

    Резюмирую: трудно, если у тебя нет в резюме стапятисот сделанных проектов. И чем дальше - тем сложнее и труднее будет. Но тебе может повезти - если ты компетентный специалист в узкой области (даже если она 'legacy'). Или ты можешь найти синекуру - гос.организацию, в которой ты присоединишься к когорте таких же скинутых с паровоза прогресса "молодыми и амбициозными". Не переживай, через 20 лет скинут их. А ты останешься.

    Вот только кушать хочется сейчас. Хотя бы просто хлебушка.
    Ответ написан
    23 комментария
  • Что сначала начать изучать, язык С или сразу взяться за С++?

    Gromobanan777
    @Gromobanan777
    Self-employed professional
    Вы знаете, что хотите писать? На какой платформе? Какие проекты? Обычно вопросы, когда всё это осознаёшь, отпадают, по крайней мере насчёт выбора ЯП. Учите просто C конечно. Зная его, сможете написать любое десктопное приложение и выбрать, что дальше.
    Ответ написан
    2 комментария
  • Как передать counter is for loop внутрь макроса?

    @Mercury13
    Программист на «си с крестами» и не только
    Будет подставлено ИМЯ ПЕРЕМЕННОЙ b, а чему она равна — это уже другой вопрос. Никаких проблем не должно быть.
    #include <iostream>
    
    #define CHECK(a,b) \
       if ((a) == (b))     \
          std::cout << "Equal" << std::endl;  \
          else std::cout << "Inequal" << std::endl;
    
    int main()
    {
        for (int i = 0; i < 5; ++i) {
            CHECK (i, 2)
        }
        return 0;
    }


    После препроцессирования программа превратится вот во что…
    int main()
    {
        for (int i = 0; i < 5; ++i) {
            if ((i) == (2))
               std::cout << "Equal" << std::endl;
               else std::cout << "Inequal" << std::endl;
        }
        return 0;
    }


    Вывод в консоли
    Inequal
    Inequal
    Equal
    Inequal
    Inequal


    Разумеется, нехороши ситуации, когда в макрос подставляется код с побочными эффектами, но это другой вопрос.
    Ответ написан
    1 комментарий
  • Стоит ли решать задачи на codewars?

    BBmike
    @BBmike
    задачи на codewars это как гаммы для музыканта, которые они играют всегда.
    реальные задачи это как реальные произведения.
    одно не исключает и даже дополняет другое
    Ответ написан
    1 комментарий
  • Что нужно знать junior c++ разработчику?

    TrueBers
    @TrueBers
    Гуглю за еду
    C++ -- это инструмент для "обёрток" над низкоуровневыми вещами. Трудно что-то на нём удачно писать, не зная при этом устройство ОС, работы менеджеров памяти, тонкостей реализации каких-то фич. Также обязательно знать ассемблер, уметь отлаживать код, юзать отладчики. Понимать что такое кэш, предсказатель переходов, как работать с этим всем, оптимизировать.
    Библиотеки, фреймворки -- это всё для более высокоуровневых языков, в С++ только с этими знаниями будет очень тяжко. Ибо за вас он ничего не будет делать, к счастью.
    Ответ написан
    1 комментарий
  • Как поступить с выбором среды разработки после года работы в C++ Builder?

    Nipheris
    @Nipheris Куратор тега C++
    Как сделать переход с C++ Builder как можно менее безболезненным!

    Если действительно есть время и желание, то попробуйте поработать с "голым" стеком. Сборка - шелл-скриптом, редактирование в редакторе общего назначения. Тогда вы сможете выбрать по отдельности компилятор и редактор.
    Какой компилятор выбрать - вопрос отдельный, зависит от привычной вам платформы и ваших целей в плане изучения технологии. Можно, например, Клэнг попробовать.

    Когда всё это соберёте в кучу сами, можно будет попробовать CMake - инструмент непростой, местами даже замороченный, но не даст вам расслабиться и будет хорошим вложением времени, если вы собрались заниматься C++. В это же время вы можете определиться со своими предпочтениями в плане занятости и платформы на которой хотите работать.

    IDE станет для вас лишь одним из инструментов и вас этот вопрос будет волновать в последнюю очередь.
    Ответ написан
    Комментировать
  • Какие есть хорошие онлайн ресурсы по изучению С++?

    @cap_nemo
    Если хотите научиться писать на с++, то читайте книги отечественных авторов. Безусловно, полно классических книг иностранных авторов. Только для начала изучения лучше взять книги, которые учитывают российский менталитет. Иначе Вы рискуете тем, что вам забьют голову терминами типа "инкапсуляция", "полиморфизм" и другими страшными ругательствами, так и не объяснив их сути. Лучше разобраться в элементарных понятиях, и тогда вы почувствуете мощь С++ по сравнению с другими языками [может быть за исключением ассемблера :-) ]. А в качестве справочника по библиотекам, хороший ресурс этот.
    Ответ написан
  • Как реализовать такое на Python?

    Sly_tom_cat
    @Sly_tom_cat
    .
    Мой вариант:

    girls = { 'Женя': {'Брюнетка', 'Толстая', 'Умная'},
              'Лера': {'Блондинка', 'Худая', 'Глупая'},
              'Даша': {'Блондинка', 'Худая', 'Умная'}}
    
    def search(*words):
      return ', '.join([name for name, features in girls.items() if features >= set(words)])
    
    print(search('Худая', 'Блондинка'))
    print(search('Умная'))
    Ответ написан
    5 комментариев