We r doing some programming stuff at the moment in another subject with the code C. Ive heard that it is a simple code.
Here is some advice from a coder of 25+ years: All code is simple. Its what you do with that code that makes it complex.
If you want to be "good coder", continue to learn languages. If you want to be a "great coder", learn processes. If you want to be an "excellent coder", do the first two, then study computer history and realize its all been done before, so "steal" from your forefathers and don't reinvent the wheel.
I'm only half-joking here.
Go find, beg, borrow or steal a copy of K&R and read it; note that it is out-of-date as far as the language "C" is concerned (so only attempt some of the examples in the book if you are really intrepid and want to experiment), but the underlying principles of the language and programming, which it details, are still valid.
You would also do well to study and understand the base mathematical principles of computing as laid down by Alonzo Church and Alan Turing; these principles are extremely fundamental to computer science, establishing that calculating machines could be used for general symbol processing, which was a very fundamental shift in thinking without which we wouldn't have the computers we have today.
Another thing to study is the difference between the Von Neumann and Harvard architecture; microcontrollers (including the ATMega) typically use the latter (indeed, most CPUs today use some form of the Harvard architecture, as it is inherently more secure from a code execution standpoint, as well as having other advantages). Knowing the differences and similarities of the architectures, why and how they came about can help you to avoid some pitfalls, as well as giving you another knowledge base from which to pull ideas from to help solve problems.
Ultimately, to summarize the above: Know your history. Computer Science has a long and glorious history, one that arguably dates back thousands of years to the early Greeks and beyond. Man has always sought ways to mechanize thought and calculation, and to re-create himself in his machines. To ignore this vast history would be doing a disservice to yourself and your education. To study it...
Awe doesn't begin to describe it, IMHO...
