Задать вопрос
Ответы пользователя по тегу Программирование
  • Что изучать для написания своего кроссплатформенного приложения?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Основные принципы программирования не зависят от платформы или ЯП. Изучать надо то, что нравится. Кроссплатформенных ЯП хватает. Например C# - для него есть Xamarin.
    Ответ написан
    5 комментариев
  • Как развивать свои навыки ,когда нет рабочих проектов?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Решать задачи или исправлять баги в ПО с открытым исходным кодом / свободном ПО. В сети полно багтрекеров и задачников, где можно выбрать задачу по своему вкусу и выполнять её. Себе - опыт, репутация, бонус в резюме и плюсик в карму; сообществу - новая фича / исправленный баг и куча радости по этому поводу :)
    Ответ написан
    Комментировать
  • Поиск решения задачи, не похожей на предыдущие. Есть ли идеальный алгоритм?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Это очень простой алгоритм на самом деле. Этим людям явно не хватает мотивации, чтобы включить мозг и решить новую для них задачу. Дело не в том, что они не могут найти решение, а в том что для этого нужно включить мозг и подумать. Если человек ленив или не способен к мышлению, особенно к творческому (а поиск решения и разработка нового для себя алгоритма - это таки творческий процесс) — то ему уже ничего не поможет, кроме кнута и палки.
    В данном случае надо этих джуниоров загнать в тупик и под давлением стресса заставить работать. Например, дать вот такую новую задачу, запереть в кабинете и дать час-два: все то время, которое он потратит на поиск решения более часа-двух - вычесть из зарплаты. Или, например, уменьшить премию. И пускай решает хоть целый месяц, но решит. Уверен, большинство быстро сообразят, что лучше таки включить мозг и ненмого напрячься, чем потом сосать лапу или искать новую работу. Ну а те, кто не таки не смог решить такую новую задачу, даже когда их в жопу клюнул жареных петух... Думаю ответ очевиден — пускай ищут профессию по умениям и навыкам. Ибо IT и программирование — это ежедневная учеба и усвоение новых знаний. Без этих навыков человеку в IT делать нечего. Кстати, программирвоание по тяжести труда тяжелее добычи ископаемых в шахтах.
    Ответ написан
  • Стоит ли давать Haskell школьнику в качестве первого языка?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Возможно прозвучит глупо, необдуманно и слишком сложно: раз уж девятиклассник смышленный — то может попробовать дать ему сразу несколько ЯП? Пускай попробует решать задания разными способами — сначала с помощью одного ЯП, потом с другого ЯП. Пускай сравнит их в деле — это даст возможность выбрать то, что ему действительно интересно. Или, например, один ЯП — для разминки мозгов, а другой — для.
    Ответ написан
    2 комментария
  • Выбор специальности образования

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Никого не слушайте и идите туда, к чему ближе сердце, разум и душа располагают — собственное счастье намного важнее. Тем более, что современный мир IT развивается настолько стремительно, что внезапную популярность и актуальность может набрать практически все что угодно.
    А сменить поле деятельности можно успеть в любой момент — было бы желание учиться чем-то новому.
    Ответ написан
  • Веб-сервер своими руками

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Вот пара линков полезных: citforum.ru/programming/unix/sockets/ и allasm.ru/set_12.php
    В целом логика под виндой и никсами одинаковая. Самое «сложное» в веб сервере — работа с сокетами. Работает примерно так:
    1. Инициализируем сокеты;
    2. Создаем (socket) — ОС выдаст нам новый сокет;
    3. Настраиваем сокет (setsockopt);
    4. Ассоциируем (bind) этот сокет с айпи и портом;
    5. Начинаем «слушать»(listen) сокет — вообще, слушает ОС, а мы только обрабатываем данные;
    6. В цикле принимаем (accept) соединения — accept возвращает управление и новый сокет как только появится запрос на указанные ранее порт и айпи (иначе INVALID_SOCKET вернет);
    7. Начинаем асинхронный(для проверки/тестов все можно и в одном потоке делать) прием данных (recv) из полученного сокета;
    8. Обрабатываем принятые данные.
    9. Отправляем ответ (send);
    10. После окончания приема закрываем сокет;
    11. Возвращаемся в начало цикла — пункт 6.
    Само собой при асинхронной обработке цикл будет только получать новые сокеты и отдавать их «воркерам» — рабочим потокам.
    В скобках — вызовы апи сокетов, под линуксом почти все то же самое.
    Под виндой все сокеты в Ws2_32.dll.
    Если что непонятно — отвечу в меру своих знаний 8)
    Ответ написан
    1 комментарий