Tag: Learn And Be Curious

Writing On A Saturday?

Writing On A Saturday?

Show yourself grace, but get back on the horse as soon as possible, right? Fortunately I happen to have some free time this morning. Did the breakfast dishes while listening to some Pink Floyd, which took me right back to high school when I was an obsessive fan (circa “The Division Bell”). It got me reminiscing as well about the various kinds of software development I’ve done over the years. Here’s some significant milestones:

  • Age 4: Dad buys our family its first computer, a TI-99/4A
  • Age 5: Someone gives me a green paperback with a bunch of Basic programs; I spend hours typing them into the computer and figuring out how to print the American flag in ASCII characters, among other things
  • Age 7: I’m a regular at the local library’s “programming” section, and start writing simple games (still on the TI computer, and still all in Basic)
Early code sample
Based on where I found this at my parents’ house, I’m guessing age 8
  • Age 9: My first upgrade: a Tandy 1000 TL/2 from Radio Shack; within a few days of having it at home I inadvertently format the boot disk, bricking the machine
  • Age 10: Now having the ability to save programs to floppy disk, I get pretty into QuickBASIC, especially fiddling with the game Gorillas
  • Age 11: We upgrade again, to a Tandy 386, with an internal hard drive and VGA graphics; somehow my parents think it’s a good idea to put the computer in my bedroom
  • Age 12: I teach myself C, and begin memorizing powers of 2 (up to 65,536) and digits of Pi (3.14159265)
  • Age 14: I take a correspondence course in Pascal, where I learn legitimate structured programming; lacking email or the Internet, I printed out code and mailed it to my teacher
  • Age 16: Wanting to keep a secret journal, I write an encryption algorithm (a substitution cipher that would have worked reasonably well had I not used Pascal’s built-in pseudo-random number generator); but it was enough to keep my sister out
  • Age 17: The Internet happens; “hijinks” ensue of which I will speak no more
  • Age 18: Now running a Pentium 2, my dad comes home from work to find I’d completely disassembled the machine; he was not pleased, but I put it right back together again without issue
  • Age 19: I take my first college course (C programming); it was interminably boring
  • Age 20: VisualBasic comes so quickly to me that I finish the entirety of the class’s projects in a couple of weeks; I was so brazen I told the professor I had no intention of coming to class the rest of the semester except to take exams (still got an A)
  • Age 21: Compilers, number theory, combinatorics, and linear algebra give me all kinds of new programming ideas; I spend gobs of my free time optimizing an algorithm to compute the largest possible determinant of an nxn binary matrix
  • Age 22: I write a Monte Carlo Simulation to determine if there’s an advantage to having the first turn in Monopoly (spoiler alert: there is); I also get hired by TRW
  • Age 23: My boss hands me a book on Ada and tells me I have 2 weeks to learn it; I do so by porting a bunch of my college work, in particular a Number Jumbler solver
  • Age 24: During my time at graduate school I make side money doing LaTeX typesetting
  • Age 27: Now back at Northrop Grumman, I build an algorithms doing terrain analysis and flight path optimization (still in Ada)
  • Age 28: Ada goes the way of the dodo, and I’m porting stuff to C; I’m also starting to get into mapping software and learn the “right” way to compute distances on the Earth’s surface
  • Age 29: I write my favorite single piece of code ever (ask if you’re curious)
  • Age 30: My first visit to San Diego, where I give a presentation on my flight path algorithm
  • Age 31: I spend way too much time working on a huge proposal that we end up not submitting
  • Age 32: We move to San Diego and I get my first taste of technical leadership; I also start learning the basics of HTTP API design
  • Age 33: Thinking of making a job change, I go to my first interview since college; it does not go well, and I decide to take a couple classes on web development at SDSU to beef up my resume
  • Age 34: I convince my management to buy an 84″ touchscreen for our mapping application; we make the interns assemble the stand
  • Age 35: After nearly 13 years, I take my second job at Everyone Counts who I somehow tricked into believing I knew Java (which I’d learned in college but hadn’t seriously used since)
  • Age 36: I mistakenly reveal I took a class in Perl at SDSU, which I eventually use to become the technical lead for the company’s voting application
  • Age 37: It’s a year of learning, as I get a Code School account and get smart(ish) on Angular, Node.js, and Docker, among other things
  • Age 38: I revive this blog and decide to write a bulleted list of my history of software development

Well, that was fun (for me, at least); I probably could have doubled the length, but I’ve already spent too much time on it. If you’ve read this far, I thank you!

Pumping Iron

Pumping Iron

When I created this blog a couple of years ago, I’d been inspired by Soft Skills, a book of general life advice for software developers. It covered a range of topics, but one that particularly caught my attention was a recommendation to build an online presence through writing, primarily as a résumé building exercise.

That made a lot of sense, but I didn’t stick with it for long, perhaps because I wasn’t in the job market at the time. Nor am I now. So why the revival?

Part of that had to do with a conversation I had with our UX designer about domain names, which reminded me of how happy I’d been to snag this one. But the biggest reason was a side comment made in Joel Spolsky’s four-part series on writing effective software specifications:

Writing is a muscle. The more you write, the more you’ll be able to write. If you need to write specs and you can’t, start a journal, create a weblog, take a creative writing class, or just write a nice letter to every relative and college roommate you’ve blown off for the last 4 years. Anything that involves putting words down on paper will improve your spec writing skills.

The average software developer needs to write more than what you might expect, and those who do it well are rare. I want to be among them.

I’m Back?

I’m Back?

Two weeks ago my credit card number was stolen. What a pain! But one of the happy consequences of going through the past year of charges and updating all my auto-pay items was the rediscovery of this website.

What’s changed in the nearly two years since I last posted? A lot and yet not very much. So I won’t bother with a play-by-play. Instead I’ll tell you a few of the things I’m working on now, each with a coolness factor (5=super awesome, 1=lame)

  • Node.js (3)
  • Docker (4)
  • Kubernetes (4)
  • Gitlab CI (4)
  • Amazon AWS (4)

Hmm, I rate my technologies like I rate my beer: most of it’s pretty cool, but rarely do I give out a minimum or maximum score. I wonder if that’s a consequence of being a Nine on the Enneagram. Which reminds me that I need to request this book from the library. . . . and done.

Wow, this has been pretty stream of consciousness. And not as difficult as I’d thought to write. Perhaps I’ll do it more.