Skip to main content

A month of technical essays

This month, I’m going to try something a bit different. For the past six years or so, I’ve been teaching a one-credit course officially titled something like Thinking in C and Unix [1]. Each year, I tell myself that I’m going to write up my thoughts on the daily topics in more of a textbook format [2]. This year, the essay of the day series seems like an ideal way to get me moving forward on that project. And so, for the next month or so, I’m going to write an essay or so each day on the C programming language and development within the confines of the Unix programming environment.

This series allows me to return to a format I’ve regularly written in the past, and expect to return to again in the near future [3]: The educational technical essay. I like writing things that can help others learn, particularly the challenge of trying to explain some complex topics more simply.

This series should also encourage me to do a bit more background research before writing. I have about six different related books sitting around the house and office [4], waiting for me to read or skim them for ideas for the work. I don’t think I’ll need them for the earlier essays, which are mostly introductory. However, I think they’ll inspire and perhaps even guide additional essays. We’ll see.

I apologize to my many readers [7] who are not programmers or, who if they are programmers, don’t know C or Unix [8]. I hope that you’ll find that you still enjoy the tenor of my writing, or the occasional joke, or finding some of the numerous typos, or whatever. I will try to do a bonus essay at least once a week on a nontechnical topic. I will note that the first part of the introduction should be readable by a general audience. I’m less sure about the next two parts of the introduction. After that, I’m even less sure. But give it a try. Who knows what you’ll learn?


[1] Unofficially, the course is titled Don’t embarrass me; don’t embarrass yourself. I’ll explain why in the introduction.

[2] Or a technical book format, or an essay format, or something like that.

[3] The past: The many readings I’ve written for CSC 151, CSC 161, and CSC 207. The future: The new set of readings I expect to write for the revised CSC 151.

[4] Let’s see … Eric S. Raymond’s The Art of Unix Programming; Kernighan and Ritchie’s The C Programming Language; Kernighan and Pike’s The Unix Programming Environment; Bruce Molay’s Understanding Unix/Linux Programming: A Guide to Theory and Practice [5]; Mike Gancarz’s The Unix Philosophy [6]; the Valgrind reference manual; and probably some others that I’ve forgotten about.

[5] Recommended to me by John Norman ’82.

[6] Or its update, Linux and the Unix Philosophy, which seems much the same.

[7] Okay, I don’t really have many readers. But I think that most of my readers are nontechnical.

[8] Are there competent programmers who don’t know C and Unix? I’m not sure.


Version 1.0 of 2017-01-01.