# Done with C theory. Now what?



## cynosure (Jul 11, 2008)

Hi guys
Actually I have recently completed C theory from E.Balagurusamy (Tried all the programs too). Although I know its not a very good book but now I want to upgrade my skills and take them further. 
Is the theory given in EBG complete in every aspect or there's something more to C which one should learn to become a professional coder?

And if theres something more to C then should I move into the advanced C territory  or should I do a bit of more basic programming to get my fundas clear before moving into advanced C. What should I do, ?

And also tell me how to practice at this level. Most examples given are not of much quality.

Waiting for suggestions.


----------



## FilledVoid (Jul 11, 2008)

Do all the problems on Projecteuler.net.


----------



## rhitwick (Jul 11, 2008)

I'l suggest u to go through the "Let us c" book by Yashvant Kanetkar..........it has a lot of problems..........means exercises

Another book is "A Book on C" by Kelly-Pohol, just go through over it once c if its any of ur use.......

I c dat u want to become a geek in C  so if possible get a copy of "*The Indispensable Guide to C*" by Paul-Devis.........u'l come to know why I'm recommending it.

P.S. get a copy of "Exploring C" by yashvant kanetkar........u'l thank me......


----------



## Faun (Jul 11, 2008)

let us see by Yeshvant Kanetkar is the best way to ruin your skills.


----------



## ThinkFree (Jul 11, 2008)

^^Let Us See  . I thought It was Let Us C.


----------



## Faun (Jul 11, 2008)

^^see the very first thought of it ruined my writing skills too


----------



## rhitwick (Jul 11, 2008)

T159 said:


> let us see by Yeshvant Kanetkar is the best way to ruin your skills.





T159 said:


> ^^see the very first thought of it ruined my writing skills too



I agree its not a good book to learn C, but its exercises are good..........he has already completed C theory(he told so) so he should look only for problems now........
For advanced knowledge my other recommendations are worth a consideration......


----------



## Faun (Jul 11, 2008)

^^ i prefer this one
*www.amazon.com/Puzzle-Book-Alan-R-Feuer/dp/0201604612

and for deeper knowledge 
K & R

what is the output of:

x = (2,5);

Best way to learn c programming is to use GNU GCC compiler.
add -Wall and -pedantic before compiling.


----------



## MysticDews (Jul 11, 2008)

The best way to improve your programming skills is to apply them. Try doing a mini project, something like a real-world application.

Try making small applications like may be a library management app, a student grading and attendance recording system, some small text based game or something similar. Try to cover up as many concepts as possible in the code that you write. Like in the above applications, you can use different data structures, files, pointers, etc.

Another very good way is to go through the inbuilt help. You'll get to know all the functions, header files and what they do, their syntax and examples.

This should certainly help. All the best


----------



## amitgg (Jul 11, 2008)

how can you forget programmin in c (schaum series)


----------



## Sukhdeep Singh (Jul 11, 2008)

MysticDews said:


> The best way to improve your programming skills is to apply them. Try doing a mini project, something like a real-world application.
> 
> Try making small applications like may be a library management app, a student grading and attendance recording system, some small text based game or something similar. Try to cover up as many concepts as possible in the code that you write. Like in the above applications, you can use different data structures, files, pointers, etc.
> 
> ...



+1


----------



## QwertyManiac (Jul 11, 2008)

I'd second Filled-Void's suggestion of solving mathematical and logical problems and also doing so on free online judges like UVa and SPOJ, etc.

Math is the best way to apply a newly learnt language's tools too.


----------



## cynosure (Jul 11, 2008)

Thank you all for giving me links to euler, UVA and SPOJ. I will try to solve as many of them as possible. OK this was about solving maths puzzles, there was one more thing that I asked. 

Is the theory given in EBG enough or theres more to C than given in that book.


----------



## QwertyManiac (Jul 11, 2008)

For having to do anything with C, reading the entire K&R's "The C Programming Language" is a must. Kapda and Roti as we Indians would say  But I guess all topics of those kind are covered in other books too, but their approach is the best.


----------



## praka123 (Jul 11, 2008)

^for non g33ks ,that book sure sounds greek  

I am relying on a expensive C for Dummies 2nd Edition (dan gookin)


----------



## Sykora (Jul 11, 2008)

If you're mathematically minded, go do projecteuler. Otherwise, do SPOJ/uVa. Those test more general programming skills rather than mathematical skills. Once you're done with that, and you're really inspired, go checkout the code of an open source project written in C, and see if you can help them out.


----------



## cynosure (Jul 11, 2008)

@praka123: But "C for dummies" sounds like it was made for starters...but I have already covered quite a ground in the language.


----------



## aniket.awati (Jul 12, 2008)

I would suggest devoloping some small games like tic tac toe. These games strengthen the logic and you need to use quite a lot of libraries and graphics to get them going. In short it is study with fun.


----------



## angermanagement (Jul 12, 2008)

@cynosure: true.In that case ,K&R will be just fine.


----------



## Nimda (Jul 12, 2008)

QwertyManiac said:


> For having to do anything with C, reading the entire K&R's "The C Programming Language" is a must. Kapda and Roti as we Indians would say  But I guess all topics of those kind are covered in other books too, but their approach is the best.


+1

@cynosure:
Don't forget to solve the exercises in K&R..

Regarding, practice, I'd recommend that you work on a couple of small projects (in C of course) and get used to the actual language and coding styles. And then, when you're comfortable converting your ideas to C code, pay a visit to Online Judge sites like UVa and SPOJ since these sites put a higher emphasis on problem solving skills and algorithmic knowledge than actual coding skills..

Oh and don't forget to read others' code! Reading code is as important as writing it..


----------



## cynosure (Jul 14, 2008)

^ True. Uva and SPOJ put up quite difficult questions. I am unable to solve them right now. ProjectEuler is "somewhat" easy.

Will now try my hand on some small projects.


----------



## FilledVoid (Jul 14, 2008)

> ^ True. Uva and SPOJ put up quite difficult questions. I am unable to solve them right now. ProjectEuler is "somewhat" easy


Somewhat Easy?  Just wait till you finish quite alot of them. Those questions are supposed to be solved in one minute. of course you might be able to pull off a brute force but solving them in one minute is what makes your skills better.


----------



## QwertyManiac (Jul 14, 2008)

With just basic C you wont get far, you will need to learn some GMP library stuff for huge number ranges.


----------



## cynosure (Jul 15, 2008)

^TRue. BAsically I solved some puzzles of project euler using python(I know a lil bit) as C (whatever I know of it) does not support huge numbers . I thought this must be some default as even unsigned long long does not support really huge numbers.


----------

