The Practice of Programming The Practice of Programming by By Brian W. Kernighan Rob Pike. The approach put forward by this book is based on simplicity, clarity, generality and automation. Simplicity keeps programs short and manageable.
Clarity makes sure that they are easy to understand by other programmers and compilers.
Generality means they will work well in a broad range of situations and adapt well when new situations arise. Automation should be used by the programmer whenever possible. Allow the machine to work for us, freeing the programmer from the mundane tasks. You know the language from several courses and you have written several applications. This book does nothing but improve your style, your understanding of algorithms, your debugging skills, and your knowledge of program testing, performance strategies, portability and notation.