1
jrtzxh020 2020-04-10 08:51:43 +08:00
爱好者挺好的,能时刻享受爱好带来的快乐。当爱好变成工作,就会变质了。为什么要悔恨?
|
2
love 2020-04-10 09:09:49 +08:00 via Android 9
不好意思,我觉得你觉醒后的这段话也挺业余的☺
|
3
iceheart 2020-04-10 09:16:11 +08:00 via Android
嗯,抽象能力是程序员应该具备的基本素质,楼主这方面要加油!
|
4
abc612008 2020-04-10 09:26:32 +08:00 4
我觉得你可能还是没有彻底理解……
|
5
gemini767 2020-04-10 10:05:50 +08:00 1
马达马达答捏
|
6
wysnylc 2020-04-10 10:06:36 +08:00
挖掘机和锄头,你觉得锄头超厉害
|
7
doveyoung 2020-04-10 10:22:57 +08:00
看不懂,我太菜了
|
8
chitanda 2020-04-10 10:33:59 +08:00 1
unix 的 c 库,只是用一个和内核里相同名字的函数来代替系统调用
|
9
movieatravelove 2020-04-10 12:12:49 +08:00 via Android
学汇编吧,和底层指令来一场邂逅
|
10
qof3990 OP |
11
qof3990 OP @movieatravelove 真的吗?我以为到操作系统这一级就可以了,还需要更深入吗?
|
14
qof3990 OP |
15
no1xsyzy 2020-04-10 13:33:04 +08:00 1
@qof3990 抽象,可以拿我高中时候数学老师的那段话解释下:
小学是 1+2=3 初中是 x+y=z 高中是 []+[]=[] ([] 读作 “空框”) 将某种特性提取出来,形成抽象。比如提取出 “可以加的东西”,那么任何 “可以加的东西” 都可以丢进 []+[] 的 [] 里面。 交换律:x○y=y○x,那么我们知道一个群符合交换律,那么交换群的性质可以全部往上面丢。 同样,对文件进行部分抽象:它可以读可以写 —— 得到一个可读可写的流。那么某个 TCP 连接也是文件,某段内存也是文件。所以打开 TCP 连接的表现是产生文件描述符( fd ),文件也可以映射到内存上去。 如果把两个可读可写流头尾拼在一起就得到了代理( proxy ),双方只和代理交流,但感知上似乎正在直接和对方交流。 |
16
qof3990 OP @no1xsyzy 醍醐不不不提壶灌顶啊。原来 liunx 一切都是文件是这个意思啊。万分感谢🙏🙏🙏
有什么书或文章推荐吗?搜了一下这方面的文章和书还真不少。 |
17
nicebird 2020-04-10 14:10:10 +08:00
哈哈所以你还是一个业余爱好者。
一个好的开发者必须是从顶到底打通的,可以根据最顶层的代码,想象到硬件的执行,预估性能消耗,这样才能掌控住一个复杂的、规模大的系统。 |
18
qof3990 OP @nicebird 我很向往这样通盘掌握。你有什么学习路径的建议吗?先学硬件再学操作系统最后学应用。这个难度曲线有点陡啊,不好爬,不好爬…
|
19
qq515391365 2020-04-10 14:19:57 +08:00
为什么大家都说写库是造轮子呢.
|
21
nnnToTnnn 2020-04-10 17:42:01 +08:00
@qof3990 打个比喻把。 同样一直笔,有的人只能画出一些杂乱的线条,而有的人却可以画出来非常美丽的画。 和描述出非常详细的房屋设计图。
所谓的底层,无非就是笔和纸张而已。 是什么样的笔,什么样的纸,有没有直尺,圆规。这些都不重要。重要的是你想用编程来创造些什么? 其他无非只是工具,花时间熟悉而已。 学习,就是不断自己去探索的一个过程。 有人喜欢汇编,所以用汇编写了一个编辑器 RadASM 。 |
22
nnnToTnnn 2020-04-10 17:44:55 +08:00
```
可惜可惜,二十年光阴荏苒,虚掷蹉跎。如果我早明白这个道理,可以节省多少时间啊!无数次我打开类的内容,茫然四顾,匆匆离去。一次次将近在眼前的机会,轻轻丢落。如果我早明白了,也许我现在也是一名正真的程序员,而不是一名爱好者。 时光一去不再来,只留悔恨泪滂沱… ``` 时间并不是借口,只要你想去做这个事情,那么你就一定会做成功,成为正真的程序员,之所以没有成为,而是你自己不想成为。 仅此而已。。 你不愿意去为了去成为程序员而去放弃一些东西。 |
23
qof3990 OP @nnnToTnnn 先生所言,振聋发聩。前有王江民 38 岁学编程,我现在能幡然醒悟,定为时不晚。
话说用汇编写汇编语言编辑器还真是有趣又硬核的行为啊。佩服~ @chitanda 原来还有这样的操作。 “ UNIX 所使用的技术是为每个系统调用在标准 C 库中设置一个具有同样名字的函数。 从实现者的角度观察,系统调用和库函数之间有重大的区别;但从用户角度来看,其区别并不非常重要。系统调用和库函数都以 C 函数的形式出现,两者都为应用程序提供服务。但是,我们应当理解,必要时我们可以替换库函数,而通常却不能替换系统调用。 应用程序可以调用系统调用或者库函数,而很多库函数则会调用系统调用。 系统调用和库函数之间的另一个差别是:系统调用通常提供一种最小接口,而库函数通常提供比较复杂的功能。” 听起来似乎给系统做了个增强。程序员的知识又增加了。 |