“Understading how things work gives you control.”

If you’re a beginner that is trying to get into programming, you might feel a bit overwhelmed about all these technologies and programming languages that exists, there’s too many of them which you can pick up. You can narrow your language options a bit by choosing the field you’re more interested, that being desktop applications, web development, or embedded system, among others. Although that can give tips to choose one language, I think there’s one that can teach you the core concepts of programming in a more fast way and with less pain. That language is C.

The reasons as to why I think C is perfect to start programming are several, first of all, C is a very small and minimalistic language, for example: it has only a handful of keywords (32 to be exact.) It allows you to stay focused on things that matters for the beginners, and those are: variables, functions, objects, conditional statements, loops, basic structures like arrays and lists, and so on. Besides that, it introduces you at such important concepts like memory and pointers, which are the bread and butter for every programmer (even though high level languages try to hide these features for the sake of simplicity).

Okay, where do I start with C?

If you’re on a Windows machine, I recommend to install MinGW which is a set of tools including the GCC compiler. If you’re on Mac you can install GCC too. And for resources to learn C you should check the K. N. King’s book available at: http://knking.com/books/c2/. After that you might want to read this one http://shop.oreilly.com/product/0636920028000.do to get a more insight view about how memory works (the stack and heap, allocations, freeing memory, etc.)

I hope that with these tips your experience with C will be a pleasant one. Good luck!