Tuesday, February 26, 2013

Reviews as advice

I had a pretty astute reader dive deep between the lines of Archaea and surmise (correctly) that the author must have some sort of background in programming. Her review was:


Grow up with E.E. (Doc) Smith? Learn about life from Heinlein? H.Beam Piper one of your favorite authors? Dain White's Archaea is space opera at its best, complete with a (literal) deus ex machina. Well, maybe not QUITE a goddess, but Janis comes close and she's definitely 'ex machina'. I'm planning to download and read the other two novels about this merry band of space-farers. Some nice touches for those of us who program for a living - a hunky marine for me, a cute (don't call her small) weapons engineer for you plus a good selection of other characters. 
It's not great literature, but it's a great ride while it lasts - and there are 2 more to read! 
Now how can I learn to program without bugs and rewriting?


(emphasis mine)

It's maybe not as well known, but yes, as a point of fact I am a bit of a coder myself, and I started making websites professionally in 1995, and have been developing highly relational, intuitively managed dynamically generated database-driven web applications since 2000. This is part of the challenge I have when faced with writing a person like Pauli. In a way, he's a direct mirror of my own psyche, his insouciant slouch is mine, his furious fingers burning the keys off his board are mine. I can (quite easily) relate to his all-nighter tendencies, his drive to build the impossible, to write the code that can't fail.

As I am first and foremost the kind of person that tries to break the mold in everything I do, I decided to step outside of my science fiction author persona, and answer her question:

If you liked Archaea, I can't wait to see what you think of Janis and Red! As far as programming goes, above all be consistent in your approach, name variables intuitively and either write intuitive, self-documenting code, or put some extra time into comments and documentation. A good approach to application design is to work on the breadth first, then work on the depth, and test and debug as you go. Only add complexity to systems that are engineered with a solid, robust and scalable foundation. Lastly, remember... at the end of the day there really are no bugs, only extremely exciting undocumented features that need interfacing. Good luck, and thanks for reading!

No comments:

Post a Comment

Tweets