Thursday, February 26, 2009

Programming thought-stuff

Hi, my name is Russell Glasser, and I've been writing software professionally since 1995.  I have a BS in computer science from UC San Diego (1997) and an MS in computer engineering from UT Austin (2007).  I currently do Java Enterprise development for a logistics company in Temple, TX.  In my past lives, I've done work that included scientific modeling, 3D virtual reality simulations, educational games, and data mining.  I also tutored a kid for two years and taught programming classes for about six months.

I'm a prolific blogger, and for a while I've been kicking around the idea of starting a new blog to share thoughts with my colleagues about software development.  I decided to take the plunge today.  I don't know if I'll be updating frequently or not, but add me to your feed and you can read my one post a year if that's how it turns out. :)  Also, I encourage people to ask questions, as it will give me more incentive to write new posts.  The only restriction is that I'm going to insist on keeping this as a purely professional blog, which means I will not field any questions that aren't at least marginally related to software.  If you want to discuss other topics, look me up or email [rglasser *at* apollowebworks *dot*  com].

The title of this blog was inspired by a quote from The Mythical Man-Month, by Frederick Brooks.  When I read it, I discovered that it perfectly encapsulated the reason why I decided to pick software as a career path.

Brooks wrote:

"The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures.

Yet the program construct, unlike the poet's words, is real in the sense that it moves and works, producing visible outputs separate from the construct itself. It prints results, draws pictures, produces sounds, moves arms. The magic of myth and legend has come true in our time. One types the correct incantation on a keyboard, and a display screen comes to life, showing things that never were nor could be.

Programming then is fun because it gratifies creative longings built deep within us and delights sensibilities we have in common with all men."

I hope you enjoy this blog.


  1. Thanks, Kazim. I'm trying to teach myself programming, partly as a backup skillset for when my IT support job gets farmed off to distant lands (or really smart AI), and partly because people like you seem to enjoy it so much.

    I'm currently pushing my way through Javascript tutorials, finding out that programming seems to involve a ton of memorization (commands, syntax, etc.) Not my strong suit.

    Good luck with your projects

  2. Hi James,

    One thing you will gradually see about programming is that even if there is memorization involved, if you do it right it comes naturally. People learn through repetition, and one thing you'll be doing a LOT is repeating the basic commands and structure of your chosen language. After writing and "if-then" construct a few dozen times, it should quickly become second nature. If not, that's what the internet is for.

    I rarely spend time intentionally memorizing a new concept. If I read about a technique and it sounds important, I make a sample program for practice before doing anything else with it. Then, once you've made your mistakes on the first pass, it becomes easier to get it right when you apply it to your professional application.

    For example, I occasionally use CSS, but because I don't do it often, I still haven't memorized a lot of command details, like "Do I use 'size' or 'font-size' here? Is it a # symbol or an & symbol before a hex color definition?" But I do have organized online bookmarks (in so I can look up the answer quickly and get on with the actual coding. Since I don't use CSS often, it's not too big a waste of time to look it up, and if I started using CSS all the time then I would remember it.

    Moral: If you haven't memorized what a language or a command does, it just means you need to practice with it more.