Должен ли инженер-программист знать, как собрать собственный компьютер?[закрыто]

StackOverflow https://stackoverflow.com/questions/58864

  •  09-06-2019
  •  | 
  •  

Вопрос

Имея опыт работы на Mac, я никогда не тратил много времени на сборку/настройку собственного компьютера, за исключением периодического обновления оперативной памяти и замены жестких дисков.Я чувствую, что хорошо понимаю, как работает компьютер на концептуальном уровне, процессор, шина, память и т. д., но на самом деле у меня нет большого практического опыта в том, как собрать все это воедино/разобрать.

Мой вопрос: можно ли что-нибудь получить в плане навыков разработки программного обеспечения, научившись собирать собственный компьютер?Если вы всю свою жизнь собирали аппаратное обеспечение, как это повлияло на то, как вы пишете или думаете о программном обеспечении?

Это было полезно?

Решение

Собирая компьютер, вы не узнаете многого полезного для программиста.Знание того, где разместить PCI-карты и как подключить процессор, на самом деле бесполезно ни для чего, кроме сборки компьютеров.

Я действительно думаю, что вам нужны некоторые базовые знания о том, как работают компьютеры, но все, что интересно программистам, уже спаяно на материнской плате.Вы узнаете гораздо больше, изучая программирование на языке C или ассемблере и, возможно, прочитав книгу Чарльза Петцольда «Код…».

Другие советы

Остерегайтесь программистов, которые несут отвертки.(Леонард Брандвейн)

Вы ничему как программист не научитесь, собирая компьютер.Я прекрасно могу пользоваться туалетом, не устанавливая канализационную систему.

Зависит от того, какой вы ученик.Если у вас хорошее воображение, вы, вероятно, сможете узнать все, что нужно знать об аппаратном обеспечении, не касаясь ничего, кроме книги, есть люди, которым нужно смотреть на вещи, чтобы улучшить свое понимание.

Тем не менее, вы можете многому научиться, если воспользуетесь возможностью собрать новый компьютер в качестве учебного, например, найдите время, чтобы посмотреть, где находится южный мост, какой это чип, и поискать его, найти, где находится SATA. контроллер, какой он марки, и посмотреть его, посмотреть его характеристики и так далее и тому подобное.Если вы просто соберете все детали как можно быстрее, вы, вероятно, узнаете, что делать в случае неудачи, и сэкономите несколько долларов, не более того.

Кроме того, создание вещей увеличивает интерес к ним, что не может быть плохо.

Создание собственных компьютеров сделает вас лучшим специалистом широкого профиля, а не лучшим специалистом.Если вы смотрите на программирование как на специализированное применение кода в редакторе, превращающееся в приложения, то создание собственных систем никак не поможет этой практике.

Однако, если вам нужно поставить сервер в Коло, администрировать его, выяснить, когда он выходит из строя, будь то ваше приложение, или неисправный диск, или плохой вентилятор, который пошел на сбой, тогда да, зная, что это за части, понимая, что они делать, какие из них вы купили и почему, является ли проблема аппаратным или программным обеспечением, то сборка компьютера — это минимальный первый шаг на этом пути.Если вы не несете ответственности за фактическое выполнение и полезность вашего кода, то это пустая трата времени.

Человек должен иметь возможность сменить подгузник, спланировать вторжение, убейте свинью, контактную корабль, разработать здание, написать сонет, счеты баланса, построить стену, установить кость, утешить умирание, принимать заказы, дать Заказы, сотрудничать, действовать в одиночку, решать уравнения, проанализировать новую проблему, навоз, программируйте компьютер, готовьте вкусную еду, эффективно сражайтесь, галантно умирайте.Специализация – насекомые.

Эх.

Честно говоря, я считаю, что сам процесс сборки компьютера на самом деле не улучшает ваше понимание компьютеров.Вы не собираете эти детали, вы собираете их в корпус, следуя инструкциям.

Однако необходимо добиться некоторых улучшений в обеспечении правильной работы операционной системы с компонентами и устранении связанных с этим проблем.

И точка зрения Аку насчет экономии денег хороша.

Преимущества очевидны:

  • Вы можете сэкономить пару долларов для хорошего использования
  • Если вы потеряете должность инженера-программиста из-за того, что слишком много занимаетесь SO, вы можете зарабатывать деньги, собирая компьютеры.

Когда я в последний раз покупал компьютер в сборе, то обнаружил, что между процессором и радиатором нет теплопроводящей пасты.

Что касается навыков разработки программного обеспечения, я не нашел никаких преимуществ.

Нет, не обязательно, но я думаю, что программисты должны знать, как можно оптимизировать код для оборудования, на котором он работает.

Ресурсы ЦП, памяти, сети и диска оказывают большое влияние на производительность.Программисты должны знать, когда и как использовать кэширование для повышения производительности приложения, а также как использовать код для использования больших ресурсов, когда они доступны.

Будучи компьютерщиком, я бы сказал научитесь собирать компьютер для развлечения.

Цитирую одного из наших отцов-основателей (Джефф Этвуд):

В моей книге один из лучших способов понять аппаратное обеспечение - это испачкать руки и собрать его вместе, включая установку ОС, сами.Жаль, что программисты Apple программисты не могут этого сделать ...

Хотя я не уверен, что это сделает вас намного лучшим программистом, но это инструмент, который вы используете.Эти машины постоянно ломаются или нуждаются в модернизации.Я думаю, что иметь возможность сделать это — хорошая идея, и создание ее с нуля — это лучший способ научиться этому.

Если вы носите обувь, вам, вероятно, следует знать, как ее завязать.Но, скорее всего, если вы достаточно умны, чтобы их носить, вы сможете во всем разобраться.

Если нет, то у вас проблемы.

Ну, честно говоря, я не знал, какие детали выбрать, чтобы собрать первоклассный ПК для разработки или игр.Я знаю, как все сочетается друг с другом, знаю узкие места программного обеспечения и т. д.

Когда мне нужно собрать компьютер, я сначала нахожу цель.ПК для разработчиков?игры?мультимедиа?Офис?Потом я думаю о требованиях.Очевидно, что простой офисный ПК работает с гораздо меньшим объемом жесткого диска, встроенным графическим процессором и т. д.Когда я это понял, я просматриваю в Интернете обзоры, уже готовые системы, тесты аппаратного обеспечения Тома, чтобы попытаться найти лучшую комбинацию в рамках моего бюджета.Еще одна вещь, которую следует принять во внимание, — это новые разработки.Если, например, Intel выпустит новую модель процессора в течение месяца, я бы подождал этого, чтобы цены на младшие модели упали.Получив список необходимых компонентов, я либо иду в местный компьютерный магазин, либо нахожу лучшую цену в сети.Я предпочитаю местный магазин, потому что это экономит мне много времени, когда я получаю неисправный компонент или мне нужно потребовать гарантию.Хотя обычно немного дороже.

Сборка - это в основном логическое мышление, немного терпения и сосредоточенность ;)

Я собрал свой собственный компьютер, но не думаю, что это добавило мне возможностей стать инженером-программистом.Знание того, как его построить, также не поможет вам стать лучшим инженером.

Понимание того, как работает компьютер и как программное обеспечение взаимодействует с оборудованием, делает вас лучшим инженером.

Тот факт, что я могу разместить многоядерный процессор на материнской плате, не означает, что я понимаю, почему мне помогают параллельные процессы или что значит ввести критическую часть вызова функции.И поскольку у него есть кеш размером 4 МБ, это не означает, что я понимаю, что делает кеш и как работает подкачка.

Есть много людей, которые умеют создавать компьютеры, но меньше тех, кто может разрабатывать для них программное обеспечение.Если бы это было так, то инженеры-программисты зарабатывали бы гораздо меньше, чем они.

Если все в серии «Напиши отличный код» имеет смысл, то я бы сказал: нет, от создания системы для своей работы вы мало что получите.Теперь работа техническим специалистом и необходимость диагностировать проблемы аппаратного и программного обеспечения расширяют ваши возможности решать проблемы и могут помочь.Проблема в том, что этому нельзя научиться, соединив пару компьютеров ради развлечения.В конечном итоге вы упускаете из виду все странные вещи, которые делают разные производители, и если вы сможете это применить, это поможет расширить ваше общее представление о хороших и плохих дизайнерских решениях.

Я склонен думать, что каждый раз, когда вы чему-то учитесь и расширяете свои знания и кругозор, это хорошо, поэтому я скажу «да».

До того, как присоединился к Культу Mac, я собирал свои собственные компьютеры под управлением Windows и Linux.Я немного научился, но не думаю, что это сделало меня лучшим программистом.

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

Редактировать:

Существует большая разница между пониманием основ работы компьютеров и сборкой их из деталей от Newegg.Понимание того, как функционируют процессор, кэш и память, неоценимо для программирования.Знание того, как обновить видео, — полезный навык, но он не помогает в повседневной разработке программного обеспечения.

Да, но не в том смысле, о котором вы думаете.Я думаю, что невероятно полезно узнать об основах конструкции микропроцессора, архитектуре памяти и т. д.Еще лучше, если вы сможете получить комплект проекта, чтобы сделать что-нибудь простое с помощью PIC или Stamp.Отбросьте абстракции и изучите немного битовый уровень.Также рекомендуется просмотреть соответствующие книги Паттерсона и Хеннесси.

Сборка ПК из компонентов — хорошее разовое упражнение, просто чтобы понять проблемы совместимости различных частей.

Как программист, много лет создававший компьютеры, я бы сказал, что это не оказало мне существенного влияния на качество или структуру моего кода, но это имеет дал мне хорошее представление о том, как качество вашего оборудования влияет на удобство работы конечного пользователя при запуске кода.

Кроме того, и я думаю, что, возможно, это самое большое преимущество:Создание собственного компьютера дает вам достаточно знаний, чтобы сказать, хороша ли система разработки, предоставленная вам как сотруднику, или нет.Предоставление ИТ-специалисту/руководителю информированного мнения о том, почему предоставленная им система неудовлетворительна, может стать ключом к получению обновления.

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

Знание компьютерного оборудования сделает вас лучшим программистом.Возможно, это не произойдет напрямую, но будут случаи, когда это принесет вам пользу.

Это действительно зависит от того, какими вы хотите видеть свои навыки.Было бы пустой тратой времени возиться с аппаратным обеспечением, если вы хотите специализироваться на сложной математике или конкретных типах программного обеспечения (ИИ.например).

Однако, если вы хотите заниматься такими вещами, как создание роботов с собственным разумом, вам необходимо знать как программное, так и аппаратное обеспечение.Если вы хотите разрабатывать игры, особенно в качестве инди-игры или даже в одиночку, вам придется подражать нескольким профессиям и специализациям.Каким был бы кошмар, если бы независимый разработчик не понимал, как аппаратное обеспечение различает системы.

ИМХО, вы не можете называть себя настоящим ботаником, если не умеете работать как с программным, так и с аппаратным обеспечением.Когда я встречаю программистов, которые не знают, как установить видеокарту, я не понимаю, смеяться мне или плакать.

Конечно, не все достаточно умны и увлечены технологиями, чтобы интересоваться ими до такой степени, что хотят знать, как создается оборудование, не говоря уже о том, как оно собирается и затем программируется.Повзрослев, я научился реже смеяться над другими и вместо этого понимаю, что им, возможно, не нужно изучать аппаратное обеспечение, сосредоточившись на программном обеспечении.Это, конечно, не является обязательным требованием.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top