• Где находить стажировки?

    @frank_sider
    Системный программист
    Узнайте в своем вузе, например, у меня был Центр трудоустройства выпускников и туда можно было сходить и узнать, какие есть подходящие вакансии, ещё ярмарки вакансий. Ещё можно узнать какие фирмы берут на производственную практику студентов, после них обычно берут на работу, если конечно хорошо себя покажешь. Я лично начинал с производственной практики на оборонном заводе, потом устроился туда на работу, 4 года проработал и ушел на мидла в частную фирму с ЗП в 4 раза выше, чем на заводе
    Ответ написан
    Комментировать
  • Как автоматизировать работу с приложением на ПК?

    @frank_sider
    Системный программист
    Для эмуляции нажатий на клавиатуру и считывания текста используй WinAPI (писать придется на С) - другого способа нет. Единственная сложность - это то, что такие программы антивирусы распознают как вредоносные. Если нужно управлять приблудой по сети тоже ничего сложного в этом нет - сокеты в помощь. Если есть исходники программы, которой нужно управлять, то лучше её допилить, а не заниматься изобретанием костылей.
    Ответ написан
    Комментировать
  • Насколько тяжело найти работу, связанную с разработкой ИИ в играх?

    @frank_sider
    Системный программист
    Если тебе интересна именно разработка игр (там не только AI на математике строится, но и графика, и звук, и игровая механика), то лучше начать и развивать свой проект, благо возможностей сейчас для этого полно - это и Greenlight в Steam, и конкурсы от издателей + как минимум 3 коммерческих движка в свободном доступе: CryEngine 4 (вроде подписка стоила немного на Steam + royalty-отчисления, но порог вхождения очень высокий), Unity3D (очень простой движок, низкий порог вхождения, но подписка для коммерческой разработки стоит конских денег, которые начинающий разработчик наврядли потянет), Unreal Engine 4 (если знаешь основы C++ и ООП, то порог вхождения будет даже ниже, чем в Unity3D + только royalty-отчисления, а там глядишь и свой движок напишешь - там как минимум нужны тригонометрия, линейная алгебра, аналитическая геометрия, матанализ, сферическая геометрия Гамильтона и теория функций комплексной переменной, численные и оптимизационные методы). И, кстати, как сказали выше, что AI не существует. AI - это суперпозиция оптимизационныйх и численных методов, математической статистики и дискретной математики
    Ответ написан
    Комментировать
  • Как правильно спроектировать приложение для микроконтроллера?

    @frank_sider
    Системный программист
    Посмотри паттерны проектирования итератор и команда - для твоей задачи они зайдут как по-маслу. А архитектура очень простая: каждый датчик у тебя будет объектом структуры с одним единственным элементом - указателем на функцию измерения и записи в ethernet-пакет результатов измерения. Таким образом ты сможешь поддерживать совершенно разные типы датчиков (аналоговые с измерением через АЦП и цифровые с итерфейсами I2C, SPI, UART and etc.) В своем коде можешь реализовать любой алгоритм обхода и формирования пакета (от структуры пакета будет зависит порядок обхода датчиков). Как сформировал пакет сразу отправляешь его в контроллер на отправку (можешь делать через буферизацию и прерывания либо ждешь пока контроллер отправит предыдущий пакет, а вообще самый лучший способ отправки - через DMA). Отправка третьим способом займен несколько наносекунд, а всю остальную работу возмет на себя железо. Во втором случае - чуть дольше, в первом - на скорости в 10 мбит/с 150 мкс, на скорости 100 мбит/с 15 мкс, на скорости 1 Гбит/с - 1.5 мкс.

    По кнопке здесь тоже все достаточно просто - заводишь внешнее прерывание и делаешь что должна делать кнопка. А можешь применить паттер команда и сможешь буферизировать операции от целой приборной панели.

    P.S. Имхо писать под микроконтроллеры на python - это не лучшая идея. Куда проще на чистом Си, так как у тебя есть доступ ко всем возможностям железа и ты не ограничем расками языка и библиотек.
    P.P.S. Написание программ для микроконтроллеров практически ничем не отличается от написания программ под обычные компьютеры - код он и в африке код будет. Разница в том, что на микроконтроллере тебе придется напрямую работать с железом и понимать как оно работать и понимать физику работы коммуникационных интерфейсов. А сайты - благо их навалом: easyelecronics, microsin, osdev. Короче гугл в помощь
    Ответ написан
    Комментировать
  • Различия между Embedded и системным программированием, разработкой ОС?

    @frank_sider
    Системный программист
    Есть - сам работаю в сфере разработки ОС, точнее RTOS жесткого реального времени, но рынок не настолько большой, как например, для Web - вакансии если и появляются, то чаще всего это НИИ, КБ, НПО и т.д. А разработка ОС - это лишь верхушка айсберга системного программирования: сюда же можно отнести и разработку компиляторов, и языков программирования, и отладчики, и сетевое программирование, и распределенные системы, и сложнейшие программные комплексы.
    Ответ написан
    Комментировать
  • Нормально ли такое тестовое задание?

    @frank_sider
    Системный программист
    Нормальное тестовое задание - у меня было задание без средств операционной системы просканировать шину PCI и вывести инфу об устройствах на экран, и при этом прога должна была запускаться с флешки, а потом еще и по ЕСПД сделать описание этой программы
    Ответ написан
    Комментировать
  • Какие знания нужны в 2020 году, чтобы устроиться аналитиком?

    @frank_sider
    Системный программист
    Аналитик должен уметь все то же самое, что и программист и даже больше: разбираться в разработке и анализе требований, проектировании, тестировании, программировании, досконально знать специфику предметной области, в которой работает, и говорить на двух языках: на языке программистов и на языке пользователей. А в предметную область может входить и математика. И чтобы дорасти до аналитика нужно для начала подняться хотя бы до мидла в программировании, чтобы понимать программистов и уметь донести до них информацио о том, что программа должна делать. А все остальное - это инструмент. А математику нужно понимать обязательно: математика - это не интегралы, производные, пределы, а целая философия, которая нас окружает везде и всюду и помогает оперировать очень абстрактными понятиями, а самое главное - ум в порядок приводит, как говорил Ломоносов.
    Ответ написан
    Комментировать
  • Почему выдает такую ошибку?

    @frank_sider
    Системный программист
    Ответ на вопрос уже дали в комментариях - в функции Protect убери точку с запятой около последней закрывающей скобки. И конструкций типа if (a) {} else b не используй - при чтении глаза режет, лучше изучи булеву алгебру, чтобы таких конструкций не писать и разберись со скобками
    Ответ написан
    4 комментария
  • Перспективы в системном программировании?

    @frank_sider
    Системный программист
    Конечно востребовано - без работы в ближайшие 50 лет точно не останешься. Новое железо выпускается чаще, чем меняются хотелки заказчиков сайтов, и задач напорядки больше - от разработки драйверов и до создания новых языков программирования, другое дело - здесь нужны спецы экстра-класса, поэтому и требования к людям соотвествующие, хотя работу найти сложнее - в основном этим занимаются исследовательские конторы
    Ответ написан
    Комментировать
  • Embedded developer или системный программист?

    @frank_sider
    Системный программист
    Эмбедед и системное ПО стоят близко друг к другу, но есть различия. И там и там нужно разбираться с железом, писать драйвера, но эмбедед все же ближе к прикладному ПО.
    Ответ написан
    Комментировать
  • Как вы изучаете языки программирования и технологические стеки БЫСТРО?

    @frank_sider
    Системный программист
    Getting started (Tutorial) -> пробуешь, что-то изменить/добавить/улучшить из tutorial проекта -> по-мере возможностей и времени задействуешь технологию в коммерческих проектах
    Ответ написан
    Комментировать
  • Есть аналог javadoc на c#?

    @frank_sider
    Системный программист
    www.stack.nl/~dimitri/doxygen

    Пример:
    /**
     * @file
     * @brief My cool file
     * @ingroup CoolGroup
     * @author Me
     * @date 06.06.06
     */
    
    /**
    * @addtogroup CoolGroup My cool group
    * @{
    */
    
    /**
     * @brief My cool class
    */
    public class Foo
    {
    /**
    * @brief My cool function
    * @param[in] a first argument
    * @param b second argument
    * @return result of adding a to b
    */
    public int bar(int a, int b)
    {
    return a + b;
    }
    }
    
    /** @} */
    Ответ написан
    Комментировать
  • Можно ли с эмулировать роботу контролера на ПК и управлять им с программы по USB?

    @frank_sider
    Системный программист
    А зачем? Можно же взять реальный микроконтроллер и все делать в железе. А Android Studio для микроконтроллеров это бред. Для микроконтроллеров Keil, Avr Studio, MPLab и т. д.
    Ответ написан
    Комментировать
  • Вопрос специалистам по работе с паяльником, микроконтроллерам и созданию устройств?

    @frank_sider
    Системный программист
    Если датчик, то использовать АЦП. Он есть в каждом микроконтроллере, ну или в почти каждом. Если цифровой, то SPI или I2C, при этом твой микроконтроллер будет master'ом, а модуль slave'ом. И эти интерфейсы не в каждом МК есть. И с АЦП и с интерфейсами ты сам опрашиваешь датчик, например по прерыванию (АЦП закончил измерять, генерируется прерывание, ты обрабатываешь данные в обработчике прерывания). Удачи!
    Ответ написан
    Комментировать
  • Можно ли напрямую работать с прерываниями BIOS-а с помощью Си?

    @frank_sider
    Системный программист
    Нет не получится использовать прерывания биос. Компиляторы компилируют 32 битный код. Исполнение такого кода возможно только в защищенном режиме. А прерывания биоса есть только в реальном режиме.
    Ответ написан
    Комментировать