学习C语言不要心急,要循序渐进,须知欲速则不达的道理。千万不要盲目的写大量的代码,这样做只会堆出大量的低档次代码,同时使你形成不好的代码习惯。先买本基础的教材来看看,使得对C语言有个初步的认识。
推荐教程:C语言视频教程
如果你的身边有高水平的开发人员,那么再好不过了,多多向别人请教。但是就我了解的情况来看,大部分的初学者并没有在进入IT行业后得到一个资深的软件工程师的指导,而恰恰是在入司后就被推向前线,替老板们骗取客户口袋里的钱,在这个过程中很多人都是在苦苦的堆代码,赚着可怜的薪资。尽管我也是在拿着可怜的钱,但是有一点我是幸运的,因为我在我的第一家公司里遇到了带领我走向Unix和C语言领域的导师,正是他的一句“Unix和C语言是你一生都要去学习的技术”让我狂热的爱上了它们,正是他的一句“你有root口令,并不是你有root口令这么简单,更多的是一种责任”(说这句话的前提是我用root口令进入SUN服务器后删除了别人的东西,因为我认为这些是无用的东西)使我对责任这两个字有一个非常具体的认识。所以在这里请广大读者允许我用一些篇幅来对我neusoft的导师yuhj表示深深的感谢。同时也对CU的朋友们表示深深的感谢,可以说,你们是我的第二导师,我已经离不开你们了。
希望大家都比我幸运,没有得到幸运之神垂青的朋友们也不要灰心,多上CU上来和大家交流交流,讨论讨论吧,但是注意在论坛上讨论的时候不要刨根问底,很多事情不是一句话就说的清楚的,别人只能给你一个指引,再具体的只有靠自己多研究研究、琢磨琢磨。闲暇的时候去精华区看看,你会有意外的收获的。
千万不要一看到英文就头大,尽管我也是这样,并不是看不懂(毕竟也接受过CET4、6级哑巴英语的教育,还是能看懂的)。man的帮助是最好的教材并且很多国外的论坛对技术的描述是很清楚的,也是很简单的,更重要的是,你会在上面看到些在国内论坛上看不到的东西(计算机的技术一直都是由西方向东方传递,希望有朝一日老外都到我们中国的论坛上来寻找技术资料)。
学习C语言有一件事情也是必须要学的,而且最好是同时学,有的朋友可能已经猜出来了,没错,是Unix。Unix和C语言可以说大家提的很多了,有Unix的地方就有C语言,同时也正是有了C语言,才有了Unix(我们还是先讨论讨论鸡生蛋还是蛋生鸡的哲学问题吧,谁拿西红柿打我),甚至有人说C语言就是为了Unix而设计的,可见Unix和C语言之间的非同寻常的关系。学习Unix现在容易多了,以前Unix都是运行在大型的服务器上的,可是现在有了Linux(按照GNU的意思,Linux就是Linux还不能叫Unix),大家可以在自己的PC上装一套Linux来学习,注意学习Linux不要拿Linux和Windows来比较,它们不可同日而语。Linux会让你知道什么是经典,永远让你在一个方向上大展宏图,Windows只会让你在别人的套子里耍上大刀,不时的还要换一个套子耍耍。下面罗列了一些我在学习Unix的一些经验:
1) 学习Unix和C语言,先向大家推荐一本书《Unix高级环境编程》,这本书是学习Unix和C的经典之作,尽量把书中提到的系统调用都写个练习程序,先感性的认识一下Linux系统提供给用户的系统调用都是干什么的,怎么用。系统调用是内核提供给用户的功能用以申请内核服务,对于Linux内核的学习,从系统调用入手是个不错的办法。学习过程可以参看Linux的联机帮助,和网络上的资料。当你觉得差不多了的时候,那我给大家出一道联系题目吧:实现一个ftp服务器和客户端的功能,完全可以自己定义一些应用层的协议,只要能实现用简单的命令传输文件就可以了。
这个题目可以使你练习到TCP/IP的基本编程方法和文件操作的基本方法对于后面学习内核的文件系统会有帮助的。
2) 当你对Unix系统有了些了解后,同时对于大部分的系统调用(关键是关于文件的系统调用,对于Linux系统的内核来说从文件系统入手相对容易一些)也有了清楚的认识后,再推荐你一本书《Linux内核情景分析》,该书是关于Linux内核的经典之作唯一美中不足的是没有关于网络子系统的详细介绍。你可以从文件系统的系统调用入手,慢慢的你就会对Linux有了一个更深入的认识。同时注意很多经典的方法和思想在Linux中的运用。你会认识到为什么Unix把所有的东西都看成文件,对什么东西操作都是对文件操作,你会慢慢体会到Unix的经典之处了。
3) 当你对Linux内核有了些了解后,你就可以找个方向来专门发展了,如果你想对眼下流行的网络编程感兴趣,那么再推荐你一本书《TCP/IP详细解释》,这本书是关于TCP/IP协议的经典之作。你会学习到TCP/IP协议栈是如果实现的,为什么,各层协议之间是如何工作的。你看完了这本书后,你就可以自己写一个dos攻击程序和sniffer了。
我说的简单,其实我提到的每本书至少都够你研究很长时间的,所以希望初学者别着急不骄不躁,相信只要努力过,一定会成为高手的。
在写代码的时候大家要注意养成好的代码习惯和风格还有抽象能力。
下面给出大家在写代码的时候的20字方针:
1) 函数要小
尽量的把函数弄的通用点,代码行少点,一个函数只完成一个简单的功能,一眼就能看出来此函数有没有代码错误,每个函数都是健壮的,那么你的程序就是健壮的。
2) 代码要少
完成一个功能的时候在逻辑清楚的情况下代码越少越好,千万不要比代码谁写的多啊。
3) 算法要好
在完成一个功能的时候要考虑效率,目前计算机的内存很大,所以内存已经不是首要考虑的因素了,但是在某些特殊的地方效率还是很重要的。有效率高的算法,就不用效率低的算法,看看本版有一篇精华贴子是关于把一个字符窜两边的空格去掉的帖子(trim),很多人都提出了算法,但是有一个算法是最好的,效率最高,代码最少,是算法要好的最好体现
4) 命名要清
命名要清楚,最要用汉语中的谓宾结构如set_buffsize()
5) 文件要多
尽量把一个大的程序安功能分成多个文件,一个文件尽量不要超作1000行,这样就很清楚的知道那个文件代码是健壮的,那个文件有可能有隐患,在代码检查的时候可以有针对性的检查某几个文件
电脑c语言好学么?
不是很好学,不过C语言是基础性的,学好了路子广,学其他的也简单些。好好学吧,现在互联网科技公司待遇都还不错,会编程很吃香
c语言c 哪个好学
C语言好学。C语言是一种面向过程的语言,非常适合初学者入门学习编程。其语法相对简单,易于理解,而且学习C语言可以很好地掌握计算机底层运行的基本原理。C语言的特点使其易于学习:1. 基础语法简单:C语言的语法结构清晰,没有太多的复杂概念和难以理解的特性。这对于初学者来说非常友好,可以更快地掌握基...
c语言和python哪个好学?
好学肯定还是python好学的,因为python是在c语言的基础上发展起来的,所以后续的肯定好学。
c语言和c哪个好学
C语言相对好学。理由如下:语法简洁性: C语言的语法结构较为直观和简洁,具有较少的规则。相对于某些高级语言,其语法的复杂性可能因其扩展特性和功能性而变得稍显庞大,C语言则更容易上手。它提供了基本的编程概念框架,如变量、数据类型、循环结构等,这对于初学者理解计算机程序的结构和工作方式非常有...
c语言和c 哪个好学
C语言相对好学。C语言是一种通用的、过程式的计算机程序设计语言。其历史悠久,应用范围广泛,是许多计算机程序员的入门语言。相比其他高级编程语言,C语言具有以下特点,使其成为较好的学习选择:1. 基础性强:C语言是学习其他编程语言的基础。掌握C语言可以帮助理解计算机程序的基本结构和逻辑。对于初学者来...
c和java哪个好?
碰到问题基本搜索即可搞定,工作也好找,应用范围广,大厂都用。2、从学习难度来看,Java语言要比C语言简单一些。因为c语言属于底层开发语言,算法逻辑较为复杂,例如指针、内存分配、释放等概念都需要我们掌握。3、C语言比较好学,简单,速成。C语言用得比较广,而且是很成熟的面向过程的一门语言。
c语言好学吗 c语言好不好学
1、c语言不好学。2、C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准...
C语言和易语言哪个好学
1、C语言想对易语言更难;C语言与底层相关,专业性更强,同时C语言是在国外发展起来的,大多数文档均为英文版,甚至部分没有中文翻译;而易语言是中文本土语言,使用操作更符合中国人习惯,上手容易;2、应用范围不同;C语言更多应用于底层相关,应用于各种领域;而易语言目前只应用于计算机平台;3、C...
c语言好学吗学多久
C语言的学习难度不大,特别是对于那些有一定计算机基础的人来说,掌握起来会更加轻松。如果你对计算机操作并不陌生,那么在一个月左右的时间内,你就能独立编写出自己的程序。我建议你选择一本篇幅适中的教程,仔细阅读并理解其内容。接着,你可以将书中的示例输入到电脑中,自行调试运行。在此过程中,不...
c语言好学么
答案是:C语言是否好学,取决于个人的编程背景和想要达到的目标。对于有一些编程基础的人来说,C语言可能不太难学,因为它是一种较为基础的编程语言,语法结构相对简单,而且有很多现成的教程和文档可供参考。对于初学者来说,C语言可能较难学,因为它需要掌握一些比较抽象的编程概念,如手动内存管理等。...