• Необходимые знания для embedded developer'a?

    @OYTIS
    Embedded Software Developer
    Оффтоп: денег в вебдеве как правило больше, особенно в РФ (но глобально - тоже). Если это не смущает, читайте дальше =)

    С++, Linux, Verilog - это все хорошо, но я бы занимался этим после того, как поработаете какое-то время, и поймете, куда хотите расти.

    Абсолютный must, имхо:
    • Язык C. Это рабочая лошадка firmware, без него никуда, зато остальные языки - совершенно опциональны.
    • Какой-нибудь простой ассемблер (сегодня я бы сказал, армовский). Не обязательно быть мастером, но очень помогает понять, как работает процессор в принципе.
    • Скучная школьная теория: архитектура ЭВМ, устройство операционных систем, конечные автоматы - все это для эмбеддера куда более актуально, чем для веб-девелопера
    • Электроника. Необязательно уметь спроектировать шестислойную плату с учетом EMC, но читать схемы - это важно. А также способность потыкать плату тестером или осциллографом (в большинстве случаев ошибка все равно в софте, но успокаивает).
    • Стандартная периферия и интерфейсы: UART, I2C, SPI, DAC/ADC. Это до какой-то степени можно выучить и на ардуине, но лучше освоиться с настоящим железом
    • Умение читать документацию на железо. Должно прийти при освоении предыдущих пунктов, если не ограничиваться копипастом из туториалов.


    Если освоите до какой-то степени (главное - не увлекаться) этот набор, то можете работать в firmware. А дальше уже можете развиваться куда душа лежит, и где будут карьерные возможности - Linux, C++, электроника, DSP, whatnot.
    Ответ написан
    3 комментария
  • Как работают уровни в tcp/ip?

    1 Кладёшь деньги в бумажник, чтобы они не перемешались с остальным содержимым рюкзака.
    2 Бумажник кладёшь в рюкзак со всем остальным скрабом.
    3 Накидываешь рюкзак на плечи и дуешь по маршруту.
    Это была инкапсуляция))

    Как придёшь в место назначения, скинешь рюкзачеллу, достанешь из него бумажник, из бумажника купюру - декапсуляция.
    Ответ написан
    1 комментарий
  • Есть ли авторизованные учебные центры Cisco с трудоустройством?

    opium
    @opium
    Просто люблю качественно работать
    Нигде, тем более когда вы сами не можете трудоустроиться сами после них, как они то смогут? У вас и мотивации в десять раз больше и возможностей раз в сто
    Ответ написан
    Комментировать
  • Какой язык выбрать инженеру за 40?

    fedorez
    @fedorez
    Хатуль мадан
    Идите в мобайл под яблоки. Там объективно меньше толчея пионеров.
    Соответственно, учите свифт.
    А вообще каждый кулик хвалит своё болото.
    Определитесь что вам интересно, попробуйте. В случае мобайл дев - придумайте софтинку и и напишите её, опубликуйте в сторе. Проверьте, тащит ли это вас)
    Ответ написан
    2 комментария
  • Зачем устанавливается размер сокета SO_SNDBUF в исходниках traceroute?

    По всей видимости, это нужно, чтобы следующий пакет мог быть поставлен в очередь только тогда, когда ушел предыдущий, чтобы более точно вычислять задержки/таймауты.
    Ответ написан
    Комментировать
  • Зачем устанавливается размер сокета SO_SNDBUF в исходниках traceroute?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    В коде (строке 830) устанавливается размер исходящего буфера сокета (с которого отправлятся udp-пакеты) равный размеру отправляемого udp пакета (38 байт). Не могу понять - зачем это вообще нужно?

    Для экономии памяти, очевидно. Возможно было актуально в какой-то момент времени, судя по остальным комментариям в этом файле.

    может ли быть буфер настолько маленьким (какого вообще его минимальное значение)?

    Как трактовать опции сокетов -- это внутреннее дело ядра. В тегах стоит linux, линуксовый man 7 socket говорит следующее:

    SO_SNDBUF
         Sets  or  gets the maximum socket send buffer in bytes.  The kernel doubles this value
         (to allow space for bookkeeping overhead) when it is set using setsockopt(2), and this
         doubled value is returned by getsockopt(2).  The default value is set by the
         /proc/sys/net/core/wmem_default file and the maximum allowed value is set by the
         /proc/sys/net/core/wmem_max file.  The minimum (doubled) value for this option is 2048.
    Ответ написан
    Комментировать