想成為計算機技術高手,一定要懂彙編嗎?

時間 2021-05-07 11:57:20

1樓:併發世界

程式設計技巧是一種器。重要但不是根本。什麼ACM程式設計冠軍與是否是乙個計算機科學家應該沒有太大關係。

計算機學科最重要的可能還是概念的塑造。在各種概念的基礎上,不斷的總結新概念。最後的境界可能是走向邏輯。

2樓:laugh cry

學科細分到今天這種程度已經不可能出現整個領域的高手了,如果說你想成為軟硬體互動部分的高手懂彙編是必須的,還得懂一些物理知識。

3樓:林森

我乙個搞web開發的,學彙編有毛用。看到有人說,不學彙編怎麼知道c/c++背後那些事,怎麼定位bug?好吧,那是c/c++的問題,跟我web開發毛關係?

前端開發者都不是計算機從業者麼?都算不懂計算機麼??就沒乙個高手麼??

這什麼邏輯?看看人家樓主在說什麼,太多人答非所問啊。沒說不讓學啊,你用得著你就學啊,搞核心開發你能不學麼?

樓主是這意思麼??

還有乙個類似的例子,一提python學習,必定有人說要看看原始碼!!有毛用??他自己都沒看完過。

事情根本不是你想象的那樣。深入了解汽車設計原理才能成為厲害的賽車手?舒麥加那些人需要學修車麼??

他俱樂部那些修車的是幹什麼的?他學修車有毛用??咱哪個人開車開的比舒麥加好??

想當然的人真多啊。。。一些毫無邏輯的理論真誤導人啊。。。。。

4樓:Thor

對問題一定要有層的認識,在不同的層,其研究內容,方法,技巧,思想是完全不一樣的。

最底層的半導體器件的研究內容是電子的輸運特性,如何低尺度、高速、低耗等操作電子的運動,以達到更高半導體效能的要求。學科方向是半導體物理,凝聚態物理,光子學等等;

IC層研究思想是如何將這些底層的器件有機的組合應用起來實現基礎的邏輯運算,如何在基礎的邏輯運算上再實現相對複雜的運算功能;

往上就是ISA層,架構層,語言層(機器語言,組合語言,C語言,C++等等),演算法層。。。。

問題的關鍵在於你研究和專注的工作在哪一層。

最後強調:每一層的對問題的研究方式、思想、技術途徑是不同的。每一層都有非常深刻的科學問題,技術問題,哲學問題待突破。

5樓:zhifang zeng

從低階語言到高階語言,都是圖靈等價的。唯一的不同是,抽象的介面不同。高階的抽象介面可以讓你遮蔽不需要知道的細節,讓你開發更快速。

但是,並不是所有的高階抽象介面都滿足需求與足夠穩定,所有,你需要知道底層的細節,這樣你就可以搞出符合自己需求的高階抽象介面,還有,甚至找到鮮為人知的bug(這就是hacker)。比如,當你底層知識融匯貫通後,c可以不必用main為方法名啟動。

6樓:討厭複雜

計算機高手都是怎樣的感覺。我發現現在有很多問題沒有解決啊。高手請幫我解決口袋錢很少的問題。

計算機高手不是把錢裝進自己口袋,而是先把錢裝進我的口袋,再讓我自願把一半裝進你的口袋。太給力了。

7樓:吳洋

技能都是用到了,去學。

或者感覺那個方面自己很弱,去補。

我不知道高手學不學彙編,我是一些C語言語法模糊,用反彙編更好理解。

8樓:

乙個菜鳥的想法

學彙編的目的並不是為了靠彙編開發軟體,而是掌握計算機硬體如何被驅動,作業系統如何執行,高階語言如何被生成。寫軟體當然還是高階語言好,個人偏好是python,雖然不得不用其他的。

當然每個人側重點不一樣,像搞演算法的高手也未必程式寫得好。我在寫神經網路的時候看過hinton徒弟寫的程式。演算法很厲害,但是程式水平只能呵呵了。

我心中的程式高手的時候,指的不是這一類人(也許其他人心中是),而是指類似linus或者thompson這樣偏重工程的高手。對於這樣的人而言,了解彙編是必須的。

這只是我個人想要達到的目標。也許很多人只是把寫程式當做是謀生工具,生活工作之餘,略有興趣。那麼能夠在某個技術框架中熟練有見解,能快速地寫出原型,解決各種細節,就是高手吧。

這樣定義的話,學習彙編也就沒有必要了。

9樓:

看你要做計算機什麼領域的高手吧,要是常和C/C++,作業系統核心,嵌入式開發等偏底層的領域,彙編還是必須要學的,而且也好學好。

看你的需要,自己興趣愛好。

10樓:chauncy

就我個人理解一下,會程式設計是小學生,精通某種程式設計需要什麼的是初中生,能寫乙個OS的高中生,懂電路(當然包含前面的能寫出OS的人哦)算大學生,掌握CPU製造工藝那你就是研究生牛人了。彙編只是乙個程式設計需要而已。

11樓:

換個口味,彙編和高階語言的區別大概是修車和開車的區別,如果你只開不修,就沒太大必要懂,如果你覺得適當條件下,或者不可避免的要修修,那就學學。

另外,還看你對計算機高手的定義如何了,intel的工程師不僅懂彙編,彙編的硬體實現就是他們的工作;知乎的後台服務據說是用python寫的,他們大概不懂彙編。一般來說,兩者都不愧是高手,具體到個人,看你喜歡啥了。

12樓:陳然

大概在另外一撥人的眼裡,成為計算機學科的高手應該是把數學學好。你們這群人都只是低端的碼農,只有把高等數學學好,精通概率、統計、隨機過程、抽象代數,熟練掌握各種建模方法,才是電腦科學的王道。再結合各種領域知識,年薪百萬輕輕鬆鬆。

弄點高階演算法幾十億被收購瞬間財富自由。

技術只是技術本身,計算機發展了這麼多年,無數新技術層出不窮。每個人都靠著自己的專長在這個領域發家致富。有的人是因為懂客戶需求,有的是擅長做設計,有的人擅長把成熟的技術應用到傳統的學科之中。

彙編只是這茫茫技術中的一種而已。

本質上來講,高手的本身並不是掌握了什麼技術,而是能夠幫助別人解決問題。一種技術只是解決問題的一種方法,而不是唯一的方法。如果解決這些問題需要精通彙編,那麼你一定需要掌握。

如果想解決的問題並不需要了解彙編知識,你大可以不掌握。彙編知識與很多其他知識在知識本身這個層次上並無優異之分,只不過在計算機領域更底層一些。

最後,計算機的基礎知識,比如作業系統、資料庫、計算機網路、編譯原理,該了解的肯定要了解,該入門的要入門。

至於是否要精通,如果你發現在你成長的過程中遇到的瓶頸,是對於底層的了解,那你就應該精通。

13樓:陳天

如果不是做kernel相關的開發,沒必要專門學,遇到問題的時候拎著手冊能看懂就好。比起掌握彙編指令來說,更重要的是理解CPU的體系結構,運作方式。

14樓:

曾經有過一段較長的時間是主職x86彙編,回想那段時光應該只能用「痛並快樂」來形容了

題目所言技術高手,實在是乙個過於模糊的概念,計算機包括太多的程式語言和應用領域,彙編顯然不是乙個評價是否為技術高手的標準

單純的彙編語法並不能夠作為乙個計算機高手的標籤,因為語法並不複雜能夠通過組合語言去了解計算機執行機制也只是為某些人提供了更好地一種理解方式,但並不是所有技術高手都被要求必須有這個興趣或能力

15樓:KevinShn

曾經聽機核一期節目,當時正值《the last of us》發售之際,機核請了頑皮狗工作室參與該項目的乙個程式設計師做嘉賓,依稀記得裡面說,為了讓手電筒的光照效果達到理想中的情況,需要直接上彙編操作ps3上不知道乙個叫什麼的裝置,雖然完全聽不懂,但瞬間腦中冒出了兩個字,「高手」!。

16樓:張明鋒

懂彙編還是必要的條件(能看懂相關資訊),做程式profiling的時候很有必要。但是沒必要重新將組合語言抬高到乙個很高的寫程式的條件。

17樓:h8liu

技術高手不一定要懂彙編。但是可能懂彙編的技術高手可以比不懂彙編的技術高手能勝任的任務多一些。

不贊同@郭凜的回答。

當然,在當今流行的晶元架構下,只是寫MOV和CMP要寫過gcc,已經是很不容易的事情了。但是gcc並沒有覆蓋所有指令集的各個角落。比如,如果要充分利用SSE/MMX/AES-NI等相對比較新的指令集,常常還是需要內嵌彙編來救火的。

再比如,如果到了手機上或者其他嵌入式計算裝置上因為體系結構的不同,gcc就未必總是能做出最好的選擇了。再比如,如果到了有不同IO/DMA/匯流排架構的伺服器上,不了解底層的基本原理和架構邏輯,很多程式寫出來是很難發揮出硬體應有的威力的。這如果在公司裡,對應帶來的就是資源的浪費和服務產品的成本劣勢。

當然,程式設計並不只是作業系統和硬體,但卻也脫離不了作業系統和硬體。Google的發展和成功有很多因素,但是他們的大部分工程師都知道乙個cache hit和乙個cache miss的效能區別恐怕也是很重要的因素之一。對計算需求的認識和計算應用的設計固然很重要,但是對計算實現的執行恐怕也是同樣重要的。

Facebook經常會拿出來講的一句話是乙個程式1%的效能優化,跑在整個集群上,往往為公司節省的是上百萬的成本開銷。

什麼是技術高手我不知道,也不太在乎。但是不關注細節的程式設計之美,恐怕更多是偷懶的花拳繡腿,在殘酷的競爭環境下怕是不容易站住腳的。

18樓:李斌

更多的是一種情結吧,由於作業系統在整個產業鏈中的獨特地位,所以早期宣傳的比較多的是linus或者一些黑客高手,他們的本質上是系統工程師,最早成功的一批人也是他們比如微軟之類的,所以給人的印象是搞底層的人或者會C和彙編很牛。但現在情況慢慢變化,我覺得後面作業系統或底層可能更多是一種公共平台的東西,不再那麼重要,所以系統工程師的重要性有可能會逐步下降。

另一方面更重要的是把計算機技術只侷限在系統或底層是不對的,打個不恰當的比方就是照相與油畫,可能給人的印象是牛人都是搞油畫的,但其實論藝術性,照相的水也很深牛人也很多,攝影高手也可以完全不懂油畫。

19樓:waterwu

前端趟槍了這是…… 敢情我們不是「技術人」,或是「做計算機的」?

一直認為電腦科學研究的是各層介面的控制,如果說彙編是必須,那為什麼不說電路設計什麼的也是必須??

就我所知,就算是做後台或是效能開發的同學們,也大多完全不需要接觸組合語言。誠然對組合語言有了解會對工作有益,但別的知識所能帶來的好處顯然比彙編多得多。他只是門語言,是針對操縱硬體而設計的,無他。

現在能關注的東西實在太多了,在我看來,就大多數程式設計師而言,學習組合語言純屬浪費時間精力和熱情。

20樓:

彙編只是個工具,你去搞實現的時候視需要而定。

不做實現的話,腦子裡也能模擬一下演算法的細節,吧?

我覺得,學習彙編的意義主要是為了結合計算機原理把握其工作的整個過程和每個細節。其實仍然是乙個比較膚淺的部分,至少相比那些指導電腦科學發展的數學理論來說,是這樣。

把目光放在程式的本質,資料結構和演算法上面,你仍然可以發現這裡有你一生也無法全部掌握的知識。

計算機技術會有不再更新的那一天嗎

俠客某 有,算盤作為最初的計算機,已經停止了更新。小規模的技術革新都會淘汰原有的技術,比如Windows xp已經停止了更新。而出現光腦或者量子腦,也會直接替代現在的電腦,等到後期出現了更高階的產物,可能人們已經不再叫它計算機了, 唐之杜 如果不再更新 也不是完全不更新,而是更新速度慢,每次更新都是...

計算機相關專業一定要買遊戲本嗎

i7 4720HQ 數媒的話要用pr那些配置要的高一點,如果是轉後台開發或者前端的話,隨便乙個穩定用就行了,不需要顯示卡多棒棒的遊戲本,ThinkPad那種就不錯。 陳皮檀香 也就是效能有要求,移動工作站可以了解一下,但是你的預算不一定拿的下。所以說買遊戲本比較合適,縮水其他不常用的方面的東西換效能...

大學一定要考計算機二級嗎?

酒心巧克力 別問,問就是一定要考!大學估計是你一生中時間最多,最閒暇的時光了,這種時候不學習,什麼時候學習?對現在的大學生來說四級和二級應該是標配吧 計算機二級可以作為你以後求職的乙個籌碼,可以是你考研面試上的加分項。是你作為應屆畢業生想要落戶上海 廣州等地區的硬性條件之一。是部分大型國企招人的硬性...