Back to Basics

I’ve spent entirely too long being an “enterprise” developer. Too much time putting a UI on a database with a dash of proprietary ‘secret-sauce’ to justify 6- and 7- figure per annum license agreements. Too much time stringing together an ever-growing collection of frameworks, containers and libraries to build these applications in the name of ‘enterprise Java’.

These are precisely the reasons why I’m going back to basics and learning low-level programming. What do I intend to do with such knowledge? Who knows. Maybe a job building development tools, data-stores, web-servers, platforms, etc. or maybe not. Either way I’ll be learning something new and thinking about concepts that I don’t get to think about in my professional setting.

I don’t know about you, but when I hear ‘low-level programming’, I think of good, ‘ol-fashioned C. So that’s where I’m starting, getting back into the land of structs, pointers, header files and other things that give most Java developers nightmares. From C, I intend to re-kindle my brief affair with Go and possibly Rust, learning lower-level programming in a language built for modern multi-core machines.

So far, I’ve dusted off my old copy of Practical C and have been burning through the early chapters. From there I’ll go through Learn C The Hard Way since I had a wonderful time picking up the essentials of Python with Learn Python the Hard Way.

Any useful tips for getting into lower-level/system programming?