作者PeeHighTW (台灣尿高人)
看板Soft_Job
標題[請益] 豬屎屋工作,求書單
時間Sat Jan 7 17:36:19 2023
代 po:
Hi all,
目前正在豬屎屋工作,仍處在讀書的階段,
每次在讀前輩們的 Code ,心裡都會想“這種 Code 我大概寫不出來” QQ,或者是硬體
相?
比方說為什麼要設 memory barrier 這些,
甚至是 Linux 的 READ_ONCE 也是我工作之後才知道
如何讀 Register、cache 的操作等等
還有上層設定 HAL 層的函式、設 callback 等等。
因為不同的平台可能用到的 hardware 不一樣,而程式碼要去能夠去編譯給不同的平台
因此上層跟 HAL 層要切的很開,而目前讀的程式碼確實辦到了
要是我來寫肯定只會用 define 去包QQ
大概看得懂是用函式指標去包跟傳 callback,但真的要我寫可能有困難
想問版友有沒有推薦的書籍?
簡單來說,就是硬體知識 + 如何寫出好 C code。
目前有兩本在我的名單內:
1. 21世紀 C 語言
2. 程序員的自我修養
2. 我看一下目錄,我大概都懂,不曉得還需不需要買來看;
前者感覺偏向 C 語言的部分,讀了應該對我有幫助,但關於硬體部分我還是沒頭緒(控
re
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.25.51.184 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1673084181.A.222.html
1F:推 noahleft: 很多東西只看書也很難學會,通常是剛好碰到這種情況然01/07 17:45
2F:→ noahleft: 後才去找對應的資訊01/07 17:45
3F:→ noahleft: 程序員的自我修養我有,但很多細節真的是遇到了才會理01/07 17:46
4F:→ noahleft: 解01/07 17:46
5F:推 e12518166339: 如果單純的想應徵一般新人的韌體開發,應該可以不01/07 18:18
6F:→ e12518166339: 用這麼焦慮,你問的這個很多人即便已經工作三年可01/07 18:18
7F:→ e12518166339: 能也不懂,如果真的那麼焦慮,那就好好寫學校作業,01/07 18:18
8F:→ e12518166339: 有多餘的時間就把csapp的lab拿來做做看01/07 18:18
9F:推 OriginStar: Intel긠64 and IA-32 Architectures Software01/07 18:38
10F:→ OriginStar: Developer Manual,到Intel網站就可以下載了。我早期01/07 18:38
11F:→ OriginStar: 大概國高中時有買本Intel 8086指令集的書,簡單說就是01/07 18:39
12F:→ OriginStar: 講解電腦是如何運作,然後可以透過什麼指令讓電腦做什01/07 18:40
13F:→ OriginStar: 事,例如透果某中斷讓電腦發出逼聲,當然早期電腦是比 01/07 18:41
14F:→ OriginStar: 較簡單的01/07 18:41
15F:推 undersky: 演員的自我修養(X01/07 19:19
16F:推 enthos: ARM有一本超好的舊書是這本嗎? Arm System Developers01/07 19:23
17F:→ enthos: Guide: Designing And Optimizing System Software 200401/07 19:23
18F:推 RouterHsieh: 不介意看英文的話我覺得CSAPP應該蠻有用的XD01/07 20:04
19F:→ loadingN: 白嫖LWN.net01/07 20:48
20F:推 menesn: Design Pattern01/07 22:14
21F:推 Gaogaigar: csapp 其實介意英文也有簡體版01/07 22:53
22F:→ Hsins: CSAPP 的本體是作業 01/07 23:08
23F:→ Lipraxde: 硬體知識喔...在學校學到的如果能應用到工作中,配合內01/07 23:15
24F:→ Lipraxde: 部的文件,應該就很夠用了吧?01/07 23:15
25F:推 deflife: jserv的課01/08 00:32
26F:推 leoloveivy: 看書不如在可接受的時間多包一些issue來解也可以提升01/08 00:54
27F:→ leoloveivy: 又有錢01/08 00:54
28F:→ leoloveivy: 好像有一本簡體嵌入式還行啦01/08 00:55
29F:推 twicm: Memory barrier 需要讀一下 ISA 關於MMU 的部分和指令集01/08 01:04
30F:→ twicm: 裡barrier 相關的指令,再配合應用的場景01/08 01:04
33F:→ OriginStar: 貼圖是Volume 3A: System Programming Guide01/08 10:29
34F:→ OriginStar: 與Volume 1: Basic Architecture 一部分內容01/08 10:30
35F:→ OriginStar: 如果原PO的疑問是為何要使用某個指令,可以去K一些CPU 01/08 10:30
36F:→ OriginStar: 發展的書籍或文章01/08 10:33
38F:推 bnd0327: 已經進去了就不用自己嚇自己,都是人寫出來的扣01/08 11:40
39F:→ hackfox: 你這症頭多code review幾遍就好了,你要的不是學習,而01/08 12:18
40F:→ hackfox: 是經驗01/08 12:18
41F:→ GoalBased: 你學數學的時候 問題就不出來是多看幾本書 還是多寫幾01/08 12:50
42F:→ GoalBased: 次01/08 12:50
43F:推 dmeiki: Jserv的課。01/08 13:30
45F:推 a27417332: 推樓上,其實那些東西基本原理就是學校教過的01/09 02:39
46F:→ a27417332: 忘記的話可以去找一些計算機結構的課程來補01/09 02:41
47F:推 brightest: Arm architecture reference manual01/09 07:52
48F:→ leolarrel: 為什麼這樣程度的人可以在豬屎屋工作?01/09 09:52
49F:→ gR7P4zXH: 樓上粗暴01/09 11:07
50F:推 newking761: 因為現在沒得挑人啊01/09 12:16
51F:推 pacino: 好奇,有人在學校學的可以無縫接軌?01/09 12:18
52F:推 NCTUFAIWEN: callback寫法就只是經驗而言,直接複製貼上也可以動01/09 12:19
53F:→ NCTUFAIWEN: cache知識如果薄弱成這樣的話...應該回去K計組吧==01/09 12:20
54F:→ labbat: 怎麼沒有人提risc-v01/10 00:31
55F:推 snaketsai: xv6 RISC-V book01/10 22:00
56F:推 lovebridget: 不重要 都是by case 就照那包code寫法寫就對01/10 23:49
57F:→ lovebridget: 工作大部分都改值而已 不應該也不可以大改 01/10 23:50
58F:→ lovebridget: 你去問寫的前輩 假設還沒離職 多半也照著寫而已01/10 23:52
59F:→ labbat: 連編譯工具都傳10年同版本沒有變,變革是應該的01/11 00:45
60F:推 OnlyRD: 不就基本的Linux kernel development & LDD3 看一01/11 21:15
61F:→ OnlyRD: 遍概念就都有了01/11 21:15
62F:→ OnlyRD: ?細節的部分你就google一下就好啦,網路上一堆論01/11 21:15
63F:→ OnlyRD: 壇跟分享。剩下01/11 21:15
64F:→ OnlyRD: 硬體相關要深入,spec拿出來k,都有寫,懶一點至少01/11 21:15
65F:→ OnlyRD: application o01/11 21:15
66F:→ OnlyRD: r development guide要看啊。 01/11 21:15
67F:推 askacis: Linux kernel 是你最好的老師01/20 12:38
※ 編輯: PeeHighTW (49.216.31.36 臺灣), 12/12/2023 17:42:24