抛砖引玉,各位老鸟也谈谈感想 :)
[1]不嫌烦的话,可以看Linux下各种软件的源代码.
[2]看系统中自带的info,man page,doc,HOWTO and FAQ,
掌握快速查到想要的东西的决窍.
要学会自己解决问题的话,这条很重要.
[3]到网上找点东西看.比如看看相关的web,订阅一些mailing list...
据我所知全球最大的关于Linux C programming的mailing list是
linuxCprogramming@i-docs.net
订阅方法:
You can also make such adjustments via email by sending a message to:
linuxCprogramming-request@i-docs.net
with the word `help' in the subject or body (don't include the
quotes), and you will get back a message with instructions.
另外,这个List有人在放消息:
I am trying to get more members on the Linux C Lists...
And again, more members on the Linux C++ List too...
我正准备去订这个C++的List.
[4]和别人share你的idea和资源,而不是以藏私为乐. (我很鄙视后面这种行为)
[5]尊重别人的见解,你可以反驳,但是尤忌把别人的见解称为"垃圾".
[5']不要学FreeBSD :) 开个玩笑//hehe
[1]遇到问题可以先在BBS上找精华区文章, 如果没有的话, 提出来.
[2]最好自己能获得一个linux机器,最好是root.
[3]安装linux至少5遍.
[4]编译安装一些软件. 编译安装过程中努力解决自己遇到的问题.
[5]拿到所有的东西, 首先看ReadMe和Copyright.
[6]多参加讨论组maillist, 例如bugtraq之类的.
[7]在BBS上积极参加讨论.
[8]多浏览些linux网站, 转贴些新闻到bbs的linux版.
[9]到一定程度, 碰到问题就要自己通过看man或者how-to解决了,因为也许你是
你周围解决这一问题的第一人. 解决后, 将经验写出来,供大家分享.
[A]有兴趣的话, 在linux下写程序吧. 搞个简单的socket程序玩玩.
[B]有时间编译内核玩玩, 然后是安装什么声卡/显卡之类的, 折腾两天.
[C]有空配置个samba玩玩, 还有squid, 再搞些比较流行的东西编译编译.
[D]......
[ctrl-d]
> 很抱歉地打扰你。我只是个业余的计算机爱好者,想学点东西加深对
> 计算机的理解,特别是网络。本来想通过学LINUX来达到这一点,但是
> 折腾拉好长时间还是没什么进展,因为不知道该从何处开始和该怎么样
> 循序渐进,从而用较少的时间尽可能多的学点东西//是不是在做梦?
> 不知道你能不能给些具体的建议?
有网友给我来信,又看到了班竹发的文章觉得非常好.下面是我的一点建议
,浅陋之处,欢迎指正.下面是我的回信,有修改.
首先,我恭喜你选择了linux,因为选择了linux就是学习成功的一半。
其次,我也是个计算机业余爱好者。不过,经过一定时间的摸索。
我觉得可能,如下的建议对你有用。
1。不需要频繁的装各种类型的dist,精通一个dist就行了。
如果学redhat,应该着重掌握它得命令封装。然后其它的各个地方
不同的dist是一样的。例如:网络的配置,redhat需要改几个文件.
其实,根本上子要掌握ifconfig,route就能在任何dist上配置网络.
2。要学好英语,因为,随机文档是最好的老师。
尽量的多用info $command,不要养成对中文的依赖。
3。精通c语言。
这种精通并不是对语言结构的精通;它应该是对linux下的系统调用
和glibc的精通.
有上面的三部分的基础后,你应该会用各种命令,有自己学习能力。
那么,你可以继续下面的工作。
4。请买w.r.stevens的书,即apue,unp,tcp/ip v1,2,3,似乎都有中文版。
~~~~~~~~~~~~~~~~~~?2,3还没有看到。
apue应用c在linux下编程,tcp/ip v1,2,3解释tcp/ip协议组
unp是网络具体编程
(btw:stevens书写的好,程序也编的好)
5.请加入某一个项目开发小组,和高手们一起进步
比如校内的gnosis,校外的aka站点下的项目.
6.阅读源码
流行的是lisoleg项目,其实其他的应用软件的源码阅读可能更重要.
7.自己独立开发某一个项目
那就恭喜了,你已经是个高手了.到时候,别忘了叫我参加.
上面总的学习流程大概如下
1------\ |5
2------ |--->4--->|----->7
3------/ |6
学习网络编程,我觉得对我而言,英语是最大的障碍.
总之,个人情况之不同,学习可能有不同的地方
希望上面的建议对你有用.
希望大家一起交流,进步.