What is computer science?

Computer science is the study of processes that interact with data and that can be represented as data in the form of programs. It enables the use of algorithms to manipulate, store, and communicate digital information.

Some common books to refer for computer science are-

  1. A Dictionary of Computer science
    It provides comprehensive coverage of computer applications in industry, school, work, education, and the home, this fully revised dictionary is the ideal reference for students, professionals, and anyone who uses computers.

2. Java Coding Interview
Cracking the Coding Interview New Book by Best-Selling Author Mr Kotiyana. This book is here to help you through the INTERVIEW process, teaching you what you need to know and enabling you to perform at your very best.

3. The C Programming language
The C Programming Language is a computer programming book written by Brian Kernighan and Dennis Ritchie, the latter of whom originally designed and implemented the language, as well as co-designed the Unix operating system with which development of the language was closely intertwined.

4. Programming Pearls
The essays in this book present programs that go beyond solid engineering techniques to be creative and clever solutions to computer problems. The programs are fun and teach important programming techniques and fundamental design principles

5. Computer Systems: A programmer’s perspective
Computer systems: A Programmer’s Perspective explains the underlying elements common among all computer systems and how they affect general application performance.

6. Coders at work: Reflections on the craft of programming–  is a 2009 book by Peter Seibel comprising interviews with 15 highly accomplished programmers. The primary topics in these interviews include how the interviewees learned programming, how they debug code, their favorite languages and tools, their opinions on literate programming, proofs, code reading and so on.



7. Domain Driven Design-

Domain-driven design is an approach to software development for complex needs by connecting the implementation to an evolving model.