На днях меня поразило, что я почти ничего не знаю об оборудовании, на котором, как я ожидаю, будет работать мое программное обеспечение. Я был разработчиком около 5 лет, но я не изучал теорию / дизайн аппаратного обеспечения с тех пор, как покинул университет. Я даже больше не собираю свои собственные машины, потому что, будучи жестоко честным, я предпочел бы заплатить несколько дополнительных долларов и позволить выпадающему Comp Sci собрать его в магазине для меня.
Несмотря на то, что очень важно хорошо понимать основы того, что происходит под капотом, оно абстрагировано настолько далеко от нас, как разработчики, нам действительно не нужно заниматься сложностями Programmed I/O
или Memory-Mapped I/O
и т. Д ..
Или мы?
Обратите внимание, что я говорю о вашем ежедневном LOB-разработчике, а не о преданных ребятах из голого металла.
Итак, определите «среднее», как вы будете, но в целом, насколько глубоко компетентный программист сможет уметь погружаться?