Контакты

Достижения

Все достижения (3)

Наибольший вклад в теги

Все теги (63)

Лучшие ответы пользователя

Все ответы (128)
  • Какие навыки требуются Junior программисту микроконтроллеров?

    @dima20155
    you don't choose c++. It chooses you
    1. Прежде всего, нужно знание схемотехники, но в вашем случае этот этап можно вычеркнуть.
    2. Естественно, знание основ С и С++ (синтаксиса, базовых конструкций). Советую вам использовать в своих проектах С++, поскольку зачастую вы сможете писать в стиле С без каких-либо проблем, а при необходимости воспользоваться фичами/библиотеками для С++.
    3. Навыки hardware и software отладки. Здесь просто нужна практика с любимой IDE.
    4. Понимание указателей, типов памяти (статическая, динамическая, автоматическая, регистровая). Как память выделяяется и прочее.
    5. Знание базовых структур данных. Это немного скользкий пункт, поскольку С++ предоставляет хорошую (хотя и весьма минималистичную) стандартную библиотеку STL, в которой есть большинство из необходимых структур данных, но они используют довольно много дополнительной аллокации памяти, поэтому если пишете под что-то 8битное, то имейте это ввиду.
    6. Знание git на базовом уровне сейчас важно для джуна любой IT специализации.
    7. Неплохо бы иметь базовое представление о том как устроен микроконтроллер и его архитектура.
    8. Неплохо бы понимать RTOS (FreeRTOS - классика жанра), а главное зачем он нужен, а когда он не нужен или вреден.
    9. Лично мне всегда в работе пригождается python, но это всегда сторонние задачи/автоматизация.

    P.S. Нашел ещё вот такой RoadMap.
    P.S.S. Получилось довольно объемно. Но пункты 2-5 по сути можно объединить в один. Все это можно изучить написав парочку проектов для классической STM32 + HAL.
    P.S.S.S. Сам начинал как hardware разработчик. Путь embedded разработчика начального уровня не был сложным для меня и занял не очень много времени.
    Ответ написан
    Комментировать
  • Как быстро получить случайное слово из файла на 12 ГиБ?

    @dima20155
    you don't choose c++. It chooses you
    Вариант с потолка: генерируйте случайную позиции в файле (от нуля до размера файла в байтах). Читаете все окружающие символы пока не найдете два символа новой строки ('\n') до и после исходной случайной позиции. Между этими символами новой строки и будет ваше случайное слово.

    Рандом, конечно же, не совсем честный и сильно зависит от различия в длинах строк в файле.
    Ответ написан
    22 комментария
  • Как вычислить мат.выражение представленное в виде дерева?

    @dima20155
    you don't choose c++. It chooses you
    Можно пройтись поиском в глубину (DFS) до последнего узла и дальше двигаясь в обратном направлении выполнить вычисления.
    1. вначале мы находим самую нижнюю ноду, а она точно цифра (в противном случае смысла нет)
    2. делаем шаг назад и выполняем вычисление
    3. редактируем имеющуюся структуру "укорачивая" дерево (то есть вместо знака действия у нас теперь цифра)
    4. делаем так пока не получим дерево состоящее только из корня, которое и будет решением.

    Попробовал написать решение твоей задачки, код по ссылке
    https://godbolt.org/z/PzWjYjvfz
    Ответ написан
    3 комментария
  • Как сделать перегрузку "=="?

    @dima20155
    you don't choose c++. It chooses you
    Замените строку
    if (planets[i].name == name_d)
    на
    if (planets[i] == name_d)
    Если хотите, чтобы вызывался operator==
    Но у вас там кроме этого ещё очень много странностей.
    Зачем сравниваете строки напрямую? Есть strcmp
    Зачем вообще работаете с сырыми строками, если даже не следите за очисткой памяти?
    Лучше замените все на std::string.
    Ответ написан
    Комментировать
  • Почему gcc: command not found в этом случае?

    @dima20155
    you don't choose c++. It chooses you
    Либо добавить директорию в path, либо alias, либо просто явно указывать путь до бинарника, все способы ок.
    Ответ написан
    1 комментарий

Лучшие вопросы пользователя

Все вопросы (4)