作者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/cn.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