Clean Code by Robert C. Martin

About the book: This book is widely considered to be The Bible on Clean Coding. The book works through examples in the contect of Java but the examples are still applicable and generic enough to apply to pretty much all coding languages. The author says how even bad code can function but if code is not clean, it can bring a development organization to its knees.

The author, noted software expert Robert C. Martin AKA "Uncle Bob", presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship. Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code "on the fly" into a book that will instill within you the values of a software craftsman and make you a better programmer - but only if you work at it.

Code Documentation Tool: Doxygen

This is an in-code self-formatting documentation system. You essentially write pseudo-code amongst your actual code that works with multiple languages. Then when you build your code Doxygen will build an online HTML document or an offline LaTeX reference manual that contains all the information that you have written about your code base or your API.

Check out the Doxygen website for more information on programming languages that this tool can be used with, compatibility with various operating systems and installation and user guides.

Google Code Styles

On their GitHub page, Google have made open-source online style guides for most common languages. As discussed in the Introduction section of this course, I outline a few so-called "grammar rules" that are used throughout the course. The rules outline on this page are merely what Google use as their conventions and are pretty similar to what I have outline here. If you are using a codebase that originated from Google, you will find that it will adhere to these styles. View the style guide at this link.

Free Online Courses at Udacity

I think Udacity is a great site that offers beginner, intermediate and advamced level courses in all things programming. Free courses that they have include Android and iOS deveopment, web development, language specific courses and, quite helpfully, Git. Most of the courses are free but you can pay to enrol on to a Udacity Nanodegree that are usually partnered and certified by large tech companies such as Google.

I have used them in the past to teach myself Python, Web development (used in making this course!) and when I first started out using Git. It is useful in that you can do these courses easily in your spare time.

Free Online Resourses for Git

What Git is and how it can be used are discussed in the last section of the course on Version Control. Here I have put together a small list of learning resources for Git:

There are a many online resources to learn Git. Udacity (mentioned above) also has one that I used when I was learning. Though if you are ever stuck with it, Git's enormous online community will be able to help you with a simple internet search.