PDA

View Full Version : how to learn advanced C



csstudent
May 10th, 2008, 07:03 PM
i have learnt basic C to create simple text based apllications
but how do i increase my level so that i can write system softwares
like device drivers
(plz mention some sources of info)

Joeb454
May 10th, 2008, 07:11 PM
Ok please don't increase the font size too much (it's a little large :p).

And I'm not sure, I think device drivers contain a lot of Assembly Language

LaRoza
May 10th, 2008, 07:14 PM
i have learnt basic C to create simple text based apllications
but how do i increase my level so that i can write system softwares
like device drivers
(plz mention some sources of info)

C is very basic. The language itself is simple by design. The "advanced" part of C is independant of C. You have to learn about other things now to use C is an advanced way. (Algorithms, Data structures, drivers, etc)



And I'm not sure, I think device drivers contain a lot of Assembly Language

They can be mostly C also for the kernel.

http://www.freesoftwaremagazine.com/articles/drivers_linux

http://www.freeos.com/articles/2677/2/13/

Joeb454
May 10th, 2008, 07:19 PM
Oh ok, my mistake :)

Wybiral
May 10th, 2008, 07:45 PM
There's nothing advanced about C, it's just a language. You can "advance" _in_ C by becoming more comfortable with the language and the standard idioms. You can, however, as LaRoza said, advance in programming (in general) by learning more about algorithms, data structures, common design patterns, etc etc. None of these are specific to C, so if it makes more sense to use another language to learn these concepts, please do (it will be much easier that way). A good place to start would be the brilliant (and free) book, SICP (http://mitpress.mit.edu/sicp/full-text/book/book.html).

LaRoza
May 10th, 2008, 07:47 PM
There's nothing advanced about C, it's just a language. You can "advance" _in_ C by becoming more comfortable with the language and the standard idioms. You can, however, as LaRoza said, advance in programming (in general) by learning more about algorithms, data structures, common design patterns, etc etc. None of these are specific to C, so if it makes more sense to use another language to learn these concepts, please do (it will be much easier that way). A good place to start would be the brilliant (and free) book, SICP (http://mitpress.mit.edu/sicp/full-text/book/book.html).


I will get the sicp book also.

pmasiar
May 10th, 2008, 09:15 PM
There is no other way to learn it, except doing it, and you probably know it, but you feel your skills are not ready to dive into driver programming? Probably you are right.

Before diving into drivers, I would recommend you to become expert programmer in areas which are easier to debug than drivers. Learn different languages, solve tasks in more developer-friendly areas, where it is easier to see if you did something wrong. Do some cross-training in area you are interested in.