学习感悟
最近做事做着,倒是挺忙活的,但发现自己的基础是越来越生疏了。以前看过的东西,最近都没什么概念啦。也是这屁事做的没一点技术含量,用到的东西比较少。这些时间来的学习,感悟挺多的。学习需要技巧,IT技术行业的学习更需要技巧,信息量太大,更新太快!这里总结一些以后要注意的学习技巧。
1. 做事情应该有结构和流程框架的思维方式,就像写代码,不能一股脑儿的奔着目标功能去,要有结构和流程。看代码也是的,要去看Coder的代码结构风格和整体的框架。尤其是阅读一些优秀的开源代码,你要相信你能从中学到很多东西。关注代码中的知识点很重要,这样你能有印象(巩固了基础),会思考别人是怎么用的,这样用有什么好处。就像下面这段代码:
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/stat.h>
#include <string.h>
#include <sys/stat.h>
#include <fcntl.h>
void event_loop()
{
for(;;) {
sleep(10);
printf("Do something...\n");
}
}
void main()
{
pid_t pid;
int fd;
char buf[64];
pid = fork();
if(pid < 0)
exit(1);
if(pid > 0)
exit(0);
fd = open("/var/run/daemon.pid", O_WRONLY|O_CREAT, 644);
if(fd < 0) {
printf("unable to create pid file.\n");
exit(1);
}
if(lockf(fd, F_LOCK, 0) < 0) {
printf("unable to lock pid file.\n");
exit(1);
}
ftruncate(fd, 0);
sprintf(buf, "%d", getpid());
write(fd, buf, strlen(buf));
close(0);
open("/dev/null", O_RDWR);
dup2(0, 1);
dup2(0, 2);
setsid(); // Create a new session.
chdir("/");
umask(0);
event_loop();
}
这是一个简单的后台守护进程的框架,多去关注这种架构,而不是被Coder带着跟着他的流程走,这样我们虽然会在迷宫中找到出口,但我们出去了,依然对迷宫一无所知。
2. 多看代码;代码里面存在真理,其他一切都是猜想。我有个同事说他看了iscsi-target的代码,感悟很深,对用户态,内核态交互,对以前看的LDD3有了更深的理解(可以称为升华?)。
3. 多看一些经典书籍,如O'Reilly等。工作上的事,很多都是表象的事情,或者由于做的太专,而长期扎在里满,或许你的工作效率更高了,但知识积累并没有随着效率提高而增长。所以业余时间的学习很重要,我们这个行业是最需要学习的行业,不断的学习!
4. 代码输出或文字输出;曾听一位前辈讲课说,输出的东西,才是真正自己的东西。很多人应该有这样的经历,就是你知道这事应该怎么做,你上机很快就能把它写出来,但让你说出原理,说的让别人听的明白(甚至一些不懂技术的人),这会让你反复的解释,反复的比划或许别人还是没能听懂。把一些多维,结构性的东西压成一根线条样的语言表述出来,确实需要很好的组织语言的能力。写代码也是的,把你的代码一行一行,一个字母一个字母的输出来,表述你的设计,也要经过长期的实践才能。我现在写这篇blog就觉得我吸收前辈课堂上的经验,但却一塌糊涂的表述他的观点,这也是为什么要常要求自己写blog的原因。
经验、技巧--> 多看代码,书籍 --> 思考,总结 --> 写代码,blog
强调方法 强调输入 强调思考 强调输出
知识需要流动!
评论 (0)