2008-09-12 57 views
5

從Mac背景的,我從來沒有真正花了很多時間擺弄/組裝/調整我自己的電腦超過偶爾RAM升級和換出硬盤。我覺得我對計算機在概念層面,CPU,總線,內存等方面的工作有很好的把握,但是我沒有太多的實際經驗將它們放在一起/分開。軟件工程師是否應該知道如何組裝他們自己的計算機?

我的問題是,通過學習組裝我自己的電腦,在軟件工程技能方面有什麼可以獲得的嗎?如果你花費了整個生命將硬件整合在一起,那麼它是如何影響你對軟件寫作或思考的方式?

回答

9

你沒有學到多少這是有用的程序員從組建一臺電腦。知道把pci卡放在哪裏以及如何插入處理器對於除計算機之外的任何事情都沒有什麼用處。

我認爲你需要一些關於計算機如何工作的低級知識,但所有對程序員有趣的東西已經在主板上焊接在一起。你將從編程C或程序集中學到更多東西,也許閱讀Charles Petzold的書代碼...

0

如果你穿的鞋,你應該知道如何打一個。但是,最有可能的是,如果你足夠聰明,可以穿上它們,你可以把它弄清楚。

如果沒有,你有問題。

2

好處是顯而易見的:

  • 您可以節省幾塊錢的用於 用好
  • 如果你失去了你的軟件工程師的職位掛得多,這樣您就可以賺錢組裝電腦。

我上次購買組裝電腦我發現CPU和散熱器之間沒有導熱膏。

至於軟件工程技能,我沒有發現任何好處。

+0

夠正確 - 假設我沒有考慮我的時間:) – 2008-09-12 13:10:07

2

Eh。

我真的覺得組裝電腦的實際行爲並不能真正從根本上提高你對電腦的理解。你不是在製造這些零件,而是按照說明將它們組裝成一個箱子。

雖然在使操作系統正確運行組件和調試相關問題方面有一些改進。

而阿庫的省錢點是好的。

0

好吧,說實話,我不知道哪些部件可以選擇組裝頂級開發或遊戲PC。我知道如何將所有東西放在一起,我知道軟件瓶頸等等。

當我必須組裝PC時,我所做的是先找到目的。開發PC?賭博?多媒體?辦公室? 然後我想到了要求。很顯然,一個簡單的辦公室電腦可以在很少的硬盤空間,一個GPU上工作,等等。當我知道我在互聯網上搜索評論時,已經組成了系統,tom的硬件基準,試圖在我的預算內找到最佳組合。另一件要考慮的事情是新的發展。如果英特爾在這個月內發佈了新的CPU型號,我會等待,因此較低型號的價格將下降。 一旦我有了所需組件的列表,我可以到我的本地電腦商店或在網上找到最好的價格。我更喜歡當地的一家商店,因爲這樣可以節省很多時間,當我找到一個零件或需要保修時。通常有點貴,但。

組裝主要是邏輯思維,有點耐心和繼續專注的;)

5

警惕誰攜帶 螺絲刀程序員。 (倫納德Brandwein)

你不學習任何組裝PC的程序員。我可以在沒有安裝排污系統的情況下使用廁所。

1

沒有不必要的,但我認爲程序員應該知道代碼如何針對運行的硬件進行優化。

CPU,內存,網絡和磁盤資源對性能有很大影響。程序員應該知道何時以及如何使用緩存來提高應用程序的性能,以及如何利用代碼在可用時使用大量資源。

作爲一個極客,我會說學習如何組裝一臺有趣的電腦

1

引述我們的創始人之一(Jeff Atwood):

在我的書,最好的方法之一 懂硬件是讓你 的手髒,並把一個一起, 包括安裝操作系統,你自己。 這是一個恥辱的蘋果程序員不能 做到這一點...

雖然我不能肯定它使你太大的更好的程序員 - 但它是你使用的工具。這些機器不斷突破或需要升級。我認爲能夠做到這一點並從頭開始構建一個好主意是學習這種方法的一種方法。

0

我已經建立了自己的電腦,但我不認爲它增加了我成爲軟件工程師的能力。也不知道如何建立一個幫助你成爲一個更好的工程師。

瞭解計算機是如何工作的以及軟件如何與硬件進行交互使您成爲更好的工程師。

僅僅因爲我可以將多核CPU放入主板並不意味着我理解爲什麼並行進程可以幫助我,或者說進入函數調用的關鍵部分的意義。而且因爲它擁有4 MB緩存,並不意味着我明白緩存的作用以及分頁的工作原理。

有許多人可以構建計算機,但可以爲他們設計軟件的人更少。如果是這樣的話,那麼軟件工程師會比他們做得更少。

0

在我加入Mac Cult之前,我曾經構建自己的Windows和Linux計算機。我確實學到了一點,我不認爲這讓我成爲更好的程序員。

雖然這不是無用的知識。這就像一個廚師,他對管道知識也知之甚少。這些知識並不適用於你的核心任務,但是當出現問題時它可能會很方便。

編輯:

有了解的計算機如何工作的基本原則,並把一個與新蛋部分一起有很大的區別。瞭解CPU,緩存和內存函數如何對編程非常有用。瞭解如何升級視頻是一項有用的技能,但它對日常的軟件開發沒有幫助。

4

取決於你是什麼樣的學習者。如果你有一個良好的想象力,你可能可以瞭解所有關於硬件的知識,而不必觸摸任何東西而不是一本書,但有些人需要觀察事物以提高理解。這就是說,如果你把建造一臺新電腦作爲一個學習機會,你可以學到很多東西,例如花點時間看看南橋是哪裏,哪個芯片是它並查找它,找到SATA控制器在哪裏,哪個品牌是它,查看它,查看它們的特性等等。如果您只是儘可能快地將這些零件拼在一起,那麼「您可能會在失敗的情況下學會該做什麼,並節省幾塊錢,沒有更多。

此外,構建事物會增加對它們的好奇心,這並不壞。

0

如果系列中的所有內容「編寫偉大的代碼」都有道理,那麼我會說不,實際上沒有太多的事情要實際建立一個系統,因爲你的工作就是這樣。現在作爲一名技術人員,不得不診斷問題,硬件和軟件,這增加了您解決問題的能力,並有助於解決問題。問題在於它不是通過將幾臺電腦放在一起以獲得樂趣而學到的。你最終錯過了各種製造商所做的所有小奇怪的事情,如果你能應用它,它可以幫助擴大你對設計選擇好壞的總體印象。

0

我傾向於認爲,只要你學到了東西,擴大了你的知識和視野,這是件好事,所以我會說'是'。

0

是的,但不是你想的意義。我認爲了解基本的微處理器設計,內存架構等是非常有價值的。更好的是,如果你能得到一個項目工具包,用PIC或Stamp做一些基本的工作。獲取抽象概念並在比特級學習一點。有關帕特森和軒尼詩書籍的評論也被推薦。

從組件構建PC是一次很好的一次性練習,只是爲了理解各個部件的兼容性問題。

3

建立你自己的電腦使你成爲一個更好的多面手,而不是一個更好的專家。如果您將編程看作編輯器中的專用應用程序,然後構建您自己的系統,則無法幫助實踐。

但是,如果您需要將服務器放入colo中,請執行此操作,找出它何時崩潰,無論是您的應用程序,壞的驅動器還是壞扇子,而不是南下,那麼就知道所有碎片是什麼,瞭解他們做了什麼,您購買了哪些產品以及爲什麼,硬件或軟件是否可能成爲問題,然後構建一臺計算機是這條路的最起碼的一步。如果您對代碼的實際執行和效用不負責任,那麼這是浪費時間。

一個人應該能夠改變 尿布,計劃入侵,宰殺一 豬,康涅狄格州的船舶,設計建築, 寫一首十四行詩,餘額賬戶, 壘牆,設置骨骼,舒適 死去,接單,發號施令, 合作,單獨行動,解決方程式, 分析新問題,瀝肥, 編程電腦,煮美味餐, 有效率地戰鬥,死心塌地。 專門用於昆蟲。

0

至於誰建立電腦多年程序員,我要說的是,它並沒有給我過我的代碼的質量和結構相當大的影響,但已經給了我怎麼了良好的基礎硬件質量會影響運行代碼的最終用戶體驗。

此外,我想也許這是最大的好處:建立自己的PC可以讓你足夠的知識來說明作爲員工給你的開發系統是否是好的。向IT /管理人員提供有關爲什麼他們提供的系統較差的知情意見可能是獲得升級的關鍵。

0

任何涉及您直接處理的技術都會幫助您在與該技術相關的所有任務中變得更好。

認識計算機硬件會讓你成爲更好的程序員。它可能不會直接這樣做,但會有一些對您有益的實例。

這真的取決於你想要你的技能。如果你想專門研究複雜的數學或特定類型的軟件(例如A.I.),那將浪費時間來搞亂硬件。但是,如果你想做一些事情,比如用自己的頭腦構建機器人,你需要知道軟件和硬件。如果你想開發遊戲,尤其是作爲獨立遊戲或者獨奏遊戲,你將需要模擬多種工作和專業。如果獨立開發者不瞭解硬件如何區分系統,那將是一場噩夢。

海事組織,你不能稱自己是一個真正的書呆子,除非你知道如何做軟件和硬件。當我遇到不懂如何安裝顯卡的程序員時,我是否應該笑或哭是有衝突的。當然,並不是每個人都足夠聰明或充滿熱情,對技術感興趣,並希望知道硬件是如何創造的,更不用說組裝和編程了。隨着我的成長,我學會了在其他人面前少嘲笑一下,並且瞭解他們可能不需要在專注於軟件的同時瞭解硬件。這當然不是要求。

相關問題