Autonomous vehicle systems is all about hardware interraction with software and the algorithims that go well with it. For this, to be a good technician/engineer one must master the relevant software and hardware tools that are required for this.

All through the Udacity’s course for Self Driving Cars the language that I used mostly was C++. I also used Python for mostly high level programming like Neural networks and Machine Learning.

I however found C++ more fulfilling and faster than Python.

The key thing here is not about speed but which one has more tools and libraries which can interface with the current vehicle systems better. I find C++ more suitable for this.

Most of my C++ is self taught which is fair but there are some concept gaps that I need to fill in order to call myself a C++ programmer. For this I have decided to first learn some low level, good old C in order to master C++ well.

This will give me a chance to delve into the murky world of low level programming which I have always had an interest but never go to actually to do it. Self study is just about self discipline. Without self-discipline then most self study projects are just a waste of time.

To do this I plan to use Zed Shaw’s Learn C The Hard Way This is a practical approach to C language programming with various coding exercises with will help me to master the concepts of low level problem solving with limited memory. The book is all about Defense Programming.

In my opinion software development has become bloated with so many tools and IDEs. Also applications developed have become bloated due to the fact that memory has become cheaper hence larger. Am shocked to see that mobile apps have hit the 7MB mark.

No one writes good manuals these days. Code is less commented.

Enough of the ranting, let me get started.

Back to code :-))