LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1145|回复: 12

看了tonytop转帖的《如何系统的学习linux》后的一个问题

[复制链接]
发表于 2005-5-13 09:23:54 | 显示全部楼层 |阅读模式
这篇文章不可否认是一篇很好的文章,对于那些想学好linux的同学来说很有帮助,我就属于文中提到的连菜鸟也不配做的那类人,看过这篇文章后,马上跑到书店找寻linux的入门书籍,但是在挑选书籍的时候忽然想到这样一个问题,我要用linux来干什么?就象文中说的那样,如果我把linux当成windows来用(用来上网,聊天,看电影)那我还不如直接用windows,我是非计算机专业的学生,但是喜欢c语言,因为没有实践的机会,所以只能跟着潭浩强的书转悠,因为知道linux是由c语言编写而成的,所以想通过学习linux来更好的学习c语言,象我这种情况,也要很系统的学习linux吗?
发表于 2005-5-13 09:47:08 | 显示全部楼层
好问题
要想学任何语言, 语言本身只要几分钟就可以搞定,但是与平台相关的内容比如类库,IO 等等就需要好久好久了。只有了解一个系统才可以学会。至于编译和连接过程中发生的一切,要了解就要更长时间了,但是受益无穷。语言本身就是几十页的定义,并且都是差不多的。
谭的书算是不错了,不过我只打印了教学辅导那本配套书的附录...

BTW, 我这种想法,直接导致我现在编程能力狂差,你自己衡量吧
回复 支持 反对

使用道具 举报

发表于 2005-5-13 10:17:24 | 显示全部楼层
兄弟,欢迎加入Linux无极深渊!
Linux里的C语言编写,有本入门好书:
<linux programming unleashed>
在fei大哥的ftp里有,你也可以到网络上搜索一下。
在Linux里学C语言还有一个方法,就是Linus说的,Read the fxxking source code
回复 支持 反对

使用道具 举报

发表于 2005-5-13 11:37:46 | 显示全部楼层
fxxking是什么?
回复 支持 反对

使用道具 举报

发表于 2005-5-13 13:11:49 | 显示全部楼层
F word不好看,俺就用xx把中间两字母代替了。
回复 支持 反对

使用道具 举报

发表于 2005-5-13 13:39:24 | 显示全部楼层
恩。其实大家学习linux的目的不一样。
我也写了不少linux程序,但是配置linux几乎就是一团糟。
很多人玩linux很好,但是几乎不会开发。
个人有个人的目的嘛。

我觉得,只要你爱linux,linux能够给你带来快乐,那就是对的。
为什么非要去做什么别人眼里的高手呢?
呵呵

自由,开放,相互帮助,这才是linux社区的精髓。
回复 支持 反对

使用道具 举报

发表于 2005-5-13 14:31:08 | 显示全部楼层
Post by bbbush
好问题
要想学任何语言, 语言本身只要几分钟就可以搞定,但是与平台相关的内容比如类库,IO 等等就需要好久好久了。只有了解一个系统才可以学会。至于编译和连接过程中发生的一切,要了解就要更长时间了,但是受益无穷。语言本身就是几十页的定义,并且都是差不多的。
谭的书算是不错了,不过我只打印了教学辅导那本配套书的附录...

BTW, 我这种想法,直接导致我现在编程能力狂差,你自己衡量吧


稍微修改一下:
要想学任何语言, 语言本身只要几个月(如果你没有学过语言)甚至几天(如果你学过类似的语言)就可以搞定。但是与平台相关的内容比如类库,IO 等等就需要好久好久了。但是当你好久好久以后,发现最后自己还是只是知道了他们做什么的,以及怎么用,但是要想知道怎么自己去写又要好久好久。

我比较赞同先熟悉使用再学会开发的方式,但是如果你感兴趣的只是语言,或者说软件架构,开发等等,是没有必要学习linux的,这些在windows都能做,而且做的都很好,往往用linux的人都是出于对这个系统本身的喜爱,而不是出于对某种语言本身。

所以我的建议是:如果你喜欢C,那么在windows下面用vc来做开发非常合适,当然linux也能做,也做的非常棒,但是考虑到从你认识linux到你能够熟练的用命令行来build一个自己的程序,调试,运行,恐怕需要一个漫长的过程,而且需要你有其他一些必备的知识,所以除非你想做linux平台下面的软件开发,否则得不偿失。其实windows,linux都只是一个平台,上面都可以学习C/C++或者其他语言。

语言本身虽然简单,只是语法的一种组合方式,但是精通一门语言本身也是非常难的,在语言里面调调库不是什么本事,语言背后的东西,写程序的思想,对程序稳定性,安全性,平台无关性(如果需要的话),以及可扩充性的考量才是最难的。

一个小软件可能功能不多,但是可扩充性非常好,以后维护很方便,能够以插件的形式进行2次开发,跑起来很稳定,速度也很快,同时能够在linux/windows两个平台上面跑,这就是功力。
回复 支持 反对

使用道具 举报

发表于 2005-5-13 15:43:50 | 显示全部楼层
哎 我到底还是不懂事 谢谢 qhgary
弄明白自己要写的是什么应用,怎么写才能达到最好的效果,实在是太难了
回复 支持 反对

使用道具 举报

发表于 2005-5-13 17:02:34 | 显示全部楼层
Post by bbbush
哎 我到底还是不懂事 谢谢 qhgary
弄明白自己要写的是什么应用,怎么写才能达到最好的效果,实在是太难了


怎么会说到不懂事阿,:)你很热心阿,也帮我解答过问题。正如楼上说的在linux下面
应用和开发是两条路,很不一样的。比如擅长用gtk2和qt做开发的人,或者写driver的人
他并不一定很精通shell,大概连最基本的脚本也没写过,这个也没有什么奇怪的。毕竟
领域不同,这两条路都很重要,也都很有趣,其实对linux感兴趣的人都希望自己能够精通
这两个方面,都在互相帮助共同努力中。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-13 17:33:30 | 显示全部楼层
多谢各位的指点
我萌发想在linux下学习c语言的念头,是因为当时我在学习c的时候,一直想知道printf()和scanf()两个函数的源程序是什么,当时有人推荐我看赵炯写的《Linux内核0.11(0.95)完全注释,我看了几章觉得很有意思,所以想到linux下面去编程看看,后来又看了赵炯写的Linux操作系统的诞生和发展过程,对linux这个系统所内在的精神所吸引,想学习linux下面的编程,希望有朝一日能够为linux的发展做点贡献,在这之前我也接触过linux但是当时的想法就是linux越像windows越好,追求得是应用,而现在我希望通过linux更好了解计算机,我觉得计算机在算逻部分与人脑是一样的,也许其他的地方也会如此。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表