Learn Programming the Right Way

TL;DR, here are the books that will pave your way to a becoming a successful programmer. Be sure to read them in the right order.

Once you go through above books, you’ll be ready for a developer career in any direction.

A lot of us who’re just getting started in programming often are misled into starting with reading a book on one of the programming languages, such as C. This is unfortunately terribly wrong for beginners in my opinion. It’s like for a baby to learn to walk before she can crawl.

Crawl Stage

Programming language like C are called high-level languages, despite there are much higher level languages out there. During the Crawl Stage it’s important to acknowledge that you should kick off with something lower than a high-level language.

A first step I would recommend is to learn how a computer works. This is nothing to do with software yet. It’s the hardware level of things, such as CPU, buses, memory that determine how software is run. Programming without knowledge at this level is like driving a car without knowing how an engine works - You wouldn’t get very far.

Once you are familiar with how computers work under the hood, it’s time to learn how to command them to do stuff for you. But no rush yet. You surely can command them with any programming language, but do start with Assembly, which is a machine level language that directly works with CPU, registers, memory, etc. All languages are eventually compiled to machine code, but Assembly is the lowest-level possible human readable language you can access.

Walk Stage

Virtually no one uses Assembly language to code real world applications. It’s not as wieldy as we desire. High-level languages such as C, Java help abstract away many details and encapsulate what can be blocks or pages of code in Assembly within much more concise and human-readable code structure.

C Programming Language is a book I would recommend even if you don’t need it in your job. It’s got a lot of what you need to know about a high-level language such as basic logic structures, arithmetic operations, function definitions, etc. You’ll find it much smoother with other languages once you grasp this one.

I’ll later write about higher-level languages and programming paradigms. Stay tuned.

comments powered by Disqus