為什麼我總想了解程式設計中更底層的知識,而不是問題的解決?

時間 2021-05-29 22:47:24

1樓:Abby Chau

好奇心是動物處於對某事物全部或部分屬性空白時,本能的想新增此事物的屬性的內在心理,如:雞肉有沒有能提供生存能量的屬性,可不可以吃。是進化中生存的必備條件,包含動物至少要知道,哪些東西有可以提供能量屬性,可以吃,哪些動物屬於天敵,有吃我的屬性,見到要跑。

好奇心越重的動物,生存能力越強,因為它們不斷探索各種物質的屬性,獲取了更多的知識來應對周邊的環境。

2樓:陳宇飛

這是好事,有興趣打破沙鍋說明選對行了。我當時也是對socket很感興趣,socket看完看到poll,看到epoll,然後一直找就找到了這本書

這本書寫的不錯,udp tcp epoll 各種例項都有。雖然後來的工作中沒有太多機會用到,但是去了大公司以後有的時候要看crc,retransmit這類基本資料,在哪些地方做connection termination,你在做乙個真的分布式系統都會遇到,多了解一些總是有好處的。

不要太功利,只要有時間多學一點都是好事,不要追求學的都可以致用,畢竟那種追求自我認同的感覺,不是其它快樂所可以代替的。我是大一閑的蛋疼到用直接用epoll實現過乙個c++的mvc的,至今沒人用,so what,我覺得我很屌就可以了。

3樓:Zakk

承認吧,了解所謂的底層知識、前因後果、來龍去脈,比實際地解決乙個問題,要輕鬆和放鬆得多,因為並沒有在為任何乙個事情負責。

4樓:Neo Wong

我也是這樣,我覺得我的原因是多方面的,第乙個想到的是因為之前有過沒好好學的"教訓",所以想重頭開始;第二,我覺得如果懂得"底層"的東西,上層的東西就會舉一反三;最後一點,跟性格有關,不弄得特別明白渾身不舒服。

5樓:sin1080

除了金老師說的科研外,感覺各種造輪子也比較符合這種思維方式的同學。你可以考慮往各個大廠的基礎架構類部門等造輪型部門發展,特別如果你學完socket這類難用的庫的原理之後總有想把它變好用的衝動的話。

6樓:

題主這個問題是乙個心理學問題, 和程式設計毫無關係我(無證心理學愛好者)來惡意揣測一下.

其實你根本不擅長解決實際問題, 所以潛意識裡規避了學習解決實際問題. 這樣一來, 每次問題解決不了, 你都可以有藉口說: 我把時間都花在了學習底層知識上, 所以也正常, 雖然我解決不了這個手頭的問題, 但我知道socket的tx,rx buffer是多大啊, 我還知道NIC也有自己的buffer.

沒有應用到實際問題上的知識, 僅僅是資訊而已, 並不是什麼通匯底層原理.

即使你讀了20本十萬個為什麼, 也不會有人對你刮目相看.

7樓:朱麗啦

我也有類似的感覺,不過看了底層之後感覺如果不是層層的封裝就是一些資料結構相關的東西,看多幾次就沒什麼特別大的感覺了,挖不出太多的黑科技

不過在調一些奇奇怪怪的bug的時候還是會和底層打交道的。另外如果進度不趕的話,做乙個東西慢慢看,慢慢翻到底層還是挺好的,就是很少會有進度不趕的專案,所以一般是調bug要翻到底層的情況比較多。

8樓:但歌大風雲飛揚

你看所有語言都具有的這樣的東西一般需要你深入了解比如socket,比如執行緒,至於個性如果是你主要的那一兩種你可以深入了解,其他的就只需要知道怎麼用就可以了,比如你不做c你了解那麼多指標也沒用咯→_→

9樓:布客飛龍

因為 socket庫比較特殊,你用它就必須知道他的原理。類似的庫還有threading。

但不是所有系統相關的庫都這樣,比如檔案io,你其實不需要知道資料塊是怎麼分布的,不需要知道inode是怎麼回事,不需要知道b+樹怎麼實現。只需要了解檔案、目錄、許可權、屬性,然後讀寫就是了。

你剛學程式設計的時候,肯定能玩轉io庫,fs庫,但就是玩不轉socket庫。庫和庫是不一樣的,清楚就好。

10樓:

恭喜你,這叫求知慾。你一定要穩住,計畫好自己的時間,在完成工作的基礎上,合理地向下探索。不要讓求知慾跑掉。

一名合格的程式設計師,就應該像你這樣。

11樓:rhodesiax

如果單純的是不踏實就算了,軟體開發是一門實踐課,熱愛技術,閱讀原始碼,想要知道 underhood 下的執行原理,是值得稱讚的,前提是做好手頭的事情,否則老闆可能把你炒掉

12樓:紫色銀子

你以為科學是怎麼發展的?就是一些擅長思考的人不滿足於事情的表面解釋,一定要追本溯源才罷休。

這已經不是單純好奇心的問題了,而是源於對未知事物的不安。只有知道內部的原理才安心,這種心理說不上好壞,順其自然吧。

13樓:

知其然並知其所以然是成為乙個優秀程式設計師良好的習慣。如果你急需乙份技能來生存,目前不建議深入研究,要學會先生存,後發展,千萬不要有強迫症,過度的研究底層,會使你的精力和時間浪費到和工作干係不大的地方去,而且學著學著就跑偏了。這些東西可以以後工作了回過頭來再深度研究,那時候你才知道你到底想要的是什麼,該不該深入學習。

14樓:丁果

保持這種好奇心是非常有必要的,特別是求學階段,會讓人成長迅速。很多底層的通用協議都是千淬百煉,比較容易從中學到好的設計。

但我注意到一點,你這裡特指底層知識。我想指出一點,底層的知識並不一定比你以為的上層多高大上,好的設計都是相通的,上層學到的優秀設計,往往在底層也是這麼做的。反而底層的知識大多技術棧陡峭,容易陷進去。

我建議是保持這種好奇心,但不糾結於具體的某個方面,及時止損。

15樓:靈劍

是應該的,計算機網路是非常複雜的系統,不了解基本原理直接上手極其危險,低階的比如不了解TCP是流而非資料報,中級的比如不明白tcp可能出現兩邊狀態不一致以及出現的條件,高階的比如搞不懂reuse_addr是怎麼回事,都會出大事。

16樓:csxs

個人經驗是,底層和上層,很多解決方案都是類似的。

所以上層的通用解決方案,可能就是底層的解決方案。

經驗不足的時候,看底層和上層的解決方案都是對自己有幫助的,比如可靠傳輸是如何保障的。

學習階段確實可以研究一下

17樓:

先用,遇到瓶頸再去有階段有層次的深入,連淺層的表象都沒辦法搞明白 ,住深了能懂? 再說窮究根源,估計一輩子不夠用,連歷史這種蓋棺論定的學科,成為專家的也大多是只能某個分支,比如近現代史專家

18樓:中公教育優就業

這位童鞋,小U的建議是,如果你是CS(Computer Science)專業的學生,你這種求知的態度,還是棒棒噠,適合深入了解每個模組背後實現的機理,做學術研究,挺需要這種態度的。

不過,如果是日常工作的話,凡是鑽研到底的態度,或許不太適合把任務給如期做完。

比如,就拿你想弄清楚的Python Socket模組舉例子吧。團隊裡的Leader,想讓你寫個爬蟲,放在伺服器上;本地端用來接收爬蟲的爬來的資訊。

所以,你的任務,應當是偏重爬蟲程式的設計、和可靠性的實現,本地端和伺服器端之間通訊的Socket模組只是你這個任務中的一小部分。

試想,乙個正常水平的工程師,完成這個任務,大概需要2周的時間;而你卻用太多時間鑽研各種模組底層的實現了,反而耽誤了整體專案的進度,這個可能會有些得不償失。

其實啊,乙個人的命運,不但要看技術、能力;更重要的,是順應「歷史的程序」,長江後浪推前浪,計算機程式設計這方面涉及到的知識和領域,實在是又廣又深,你窮其一生,也很難在一門語言裡做到絕對權威的專家。

與其做一輩子技術,不如跟對乙個團隊,或是做乙個早期創業專案的技術合夥人,後期的股權回報,比技術提公升帶來的回報大多了,希望你好好權衡一下吧~~

19樓:六界之道

我和你有點像,如果你告訴我用哪些語句就可以實現某個功能,如果沒有弄懂這些語句到底做了什麼我是不會輕易放進我的程式裡面的,特別是當我直接使用語句對我的程式整體完成了一些不可控的影響的時候,但是不會太過深入,研究ping我就只需要知道ping的原理,我不會去研究資料報的組成結構,說白了我只會了解我所用的語句的實際作用,從函式到引數,我比較喜歡這種整個程式每個語句都在掌控下的感覺

20樓:Wayne

親,首先說,你這種學習習慣挺好的,但不要因為太糾結太底層的東西而耽誤了應用層的進度。

其次,TCP/IP協議是必修課,你如果是自學程式設計的話,找時間把這些知識補充回來吧,很有幫助的。

然後看看編譯原理,作業系統原理,再底層就是硬體了,CPU架構,記憶體,外設,Motherboard,各種IC,再然後就是VLSI設計(Very Large Scaled Integrated Circuit Design),到這步,你就應該知道最底層的資料是怎麼處理的了,一堆1101010101010101,再然後就是CMOS電晶體設計,之後就是矽…

你可以試試看,到哪步能夠滿足你的好奇心。如果到了矽原子還想往下挖的話,你估計就快該信主了…

21樓:James Swineson

這是兩種完全不同的學習模式。問題的解決往往不需要底層知識(尤其是計算機學科的實際問題),因為 99.9% 問題別人都遇到過了。

學習底層知識意味著花費大量時間學習一些現在看起來沒什麼卵用以後可能突然就有用了的東西。

關鍵還是在於看你有沒有時間去這麼做。

另外反駁一下說不需要深究的。了解底層實現細節有個好處:很多時候,知道底層是這樣乙個架構以後,就能明白上層為什麼只能這麼設計。

於是你是不用看上層實現的,臨時讓你自己糊乙個上層的話即使效率不如現有的高但是也一定能用。

22樓:黑客思維玩遊戲

擁有刨根問底的習慣真的很好,但是解決實際問題依然重要。

我也是乙個愛刨根問底的人。能把越多底層的東西搞懂肯定是越好的,這個毋庸置疑。但是要注意,刨根問題是需要時間成本、精力成本、精神毅力成本等的,尤其是當花費了大量的時間精力試圖研究清楚乙個東西的原理而未果(沒有達到預期)時,會很受挫的,你的潛意識會受挫、受傷,漸漸地會阻礙你刨根問題的行為。

所以,這個要適度,要結合時間、精力情況把握好度,該刨的時候刨,該直接用的時候就直接用。

我想了解大家原生家庭中父親是什麼樣的?

學淵 和你分享我乙個朋友的故事吧,他從小由奶奶帶大,父母關心的很少,他父親覺得掙錢給孩子用才是最重要的,忽略了他的感受,其實他更希望的是父母在身邊,然而他現在變得很叛變,後來怎麼樣我就不得而知了,其實我覺得吧,多陪孩子比掙錢更重要吧 我父親是乙個存在感很低的人 低到什麼程度呢 從小不管他在家還是不在...

我想了解現在的95後都在做什麼?

瘦子 97年大專畢業,學的機電一體化,所以不負所望我進了廠。大學喜歡打籃球,這幾天打了下身體是真的累,是那種一點力氣也提不出來了,大學累了還有後勁。可能是上夜班上的吧,所以我想轉行,迷茫。我怕死,不想這麼年輕就得這個那個,所以我感覺年輕應該做自己喜歡的,不是一塵不變。大不了重新來過,我不想老了,後悔...

我想了解形上學,請問有什麼適合入門的書籍?

jack hewitt 推薦讀中哲的怕是過分誤導了,根本不是一回事。推薦讀哲學史的,有點捨近求遠,老套路,效率低。推薦亞里斯多德形上學的,對提問者要求高了,沒有抓住入門二字。會帶偏。能讀英文嗎。能讀的話有兩本入門讀物供君挑選。inwagon的metaphysics是一本入門書,loux的metaph...