我大一学c时跟你有同样的感觉。现在也不能说是很明白,但希望对你有一点帮助。c是一个介于高级语言和汇编之间的语言,而且相对于现在的java,c++诸如此类,它已经比较老了。但并不是说它已经毫无用处了。它和java,c++的区别在于它是的编程核心思想是面向过程而java和c++则是面向对象。这一点多说无益,你学得多了才能体会,现在纯属废话。
c的应用主要在于开发系统软件。这跟它出现时的背景有关。那个时候电脑尚没有完备的操作系统,一切都在起步阶段。因此c开发出来就是为系统软件所用的。而现在操作系统的开发趋于完善,加上微软的垄断。c在这方面的用途我们一般人自然体会不到。但为什么有人让你去学嵌入式呢?这是因为另一种自由软件开发linux操作系统,它的开发也是基于c。而linux是开放源代码的操作系统。这就是说,无论什么人,只要懂得c懂得编程都可以把这个操作系统的源代码拿来重新编写,然后使用。而嵌入式系统,就是我们平时用的家电汽车微波炉内的控制系统,它其实也属于操作系统,只是相比于电脑上的操作系统,功能单一罢了。例如微波炉里的操作系统只需要调控功率以及定时提醒。这类系统的开发就是嵌入式开发,而嵌入式的开发用的就是c。
你问c的开发界面为什么类似于dos,这是因为你写的c程序默认的是dos控制台应用程序,就是说在操作系统下模拟出一个类似于dos的界面,让你运行简单的程序。
而你提到的图形界面开发,我想应该是指windows应用程序。这类程序就是编写出来看得到菜单,工具栏。可以交互式的响应你的消息(比如你点右键,就会弹出对话框之类。)这用专业的话形容就是,可视化编程。这类编程的原理很复杂,要用到应用程序接口API,框架,模板,库,工具包。但操作起来和掌握都比c要容易的多。这就好像windows操作系统的原理比dos复杂得多,但却b比dos容易用一样。大部分工作都由别人做好,你只需告诉它你要做什么。
现在你刚学了c,估计对这些体会不多。
如果你要学图形界面编程的话。有两种途径;
一是先学c++,然后学基于c++的MFC可视化编程;
二是先学java,然后学基于java的可视化编程WCF。
我也还在读书,因此疏漏之处在所难免。
但希望我的回答对你有帮助。
C语言四书五经,书店,网店都有卖的。先把它准备好。然后看着有一定程度后,把它的题目都在你的本本上敲出结果来。目的:学习动手编程!
接下来分析linux内核或者网卡驱动程序,目的:了解思路!
国人的书只合适考试的。建议不要看,什么谭的,无语中,都是些计算,加减乘除的。要看看外国的书,还有一点,在工作中,并不是什么计算重要。而是
指针,函数指针,结构体,才是重点。
建议入门步骤:了解函数,常量,变量,通过自己写个双链表,来把你说的变量,和我说的指针联起来,实现双链表的大部分功能,一般书上都有写的。
另外C++, C语言,只不过是不同的语言而已,学习一种就可以了,真正的程序员可以在需要学习其他的语言时,花1,2个月就可以学好。这就是程序员的本能,不用的话,就不要去学,浪费时间。。举个例子吧。我在做网卡驱动,看过了30万行的代码,我根本就不会C++,只用C,如何才能做到一个真真的程序员,不在乎你学习多少种语言。你的C语言就看了谭的书,连入门都没有,5年的C语言开发人员,都不敢说他们都入门了。
另外有个建议:有了C基础,趁热打铁,开始学习linux吧,通过看kernel学习真正的C语言。建议自己在linux下编译个英语字典,五子棋等的小游戏,练习下。
时间不好说,这个东西是慢慢积累的。在工作中,2年可以让同事认为你不是初学者。我想问问 你写过多少万行的代码, 如果没有的。就每天敲个几百行,1,2年久OK了,等毕业找个好工作。!!!!
要学的还很多,只学了C就想成程序员是不可能的,C++、数据结构、数据库都要会的。建议去考证,而且程序员证几乎没什么用,你得考到软师才算可以,学的东西简直太多了!继续努力吧!
它可以锻炼你的思维能力,尤其是逻辑思维能力,所以要继续加油哦!!!
C是编程基础,只有学了C才能更好的学习其他语言,其实都是触类旁通的。之后可以学数据结构(这个比较难的)。学习不要求学多,要的是学精。我建议接下来深入钻研一门Java就好。现在手机软件基本上都是用它编写的,很实用,而且有市场。