Thank you to The Nerdery for underwriting the Know this Nerd? series.
When and how did you originally become interested in technology?
As far back as I can remember, I always wanted to be a techno-gangster. When I was a little kid, I would explain how the automatic doors at the supermarket worked to baffled adults, and take things apart to learn their mysteries, usually putting them back together almost as they were.
I wrote my first emails on some archaic Macintosh when I was 4. Throughout my life it has proved excruciatingly difficult for me not to ask “why?” and “how?” about nearly everything, so being into technology, to me, seems pretty natural.
At what age did you write your first computer program? What did it do?
Unless you count the Logo programs to draw pictures mathematically when I was 6 or 7, the first program I wrote was probably for the TI-86 at 11. Out of laziness and boredom, I wrote BASIC programs to perform mundane tasks like solving quadratic equations and finding roots of polynomials. At that point in my life, assembly code was an equally interesting and frightening beast, but playing the ASM version of Super Mario Brothers in class was awesome.
What do you do now? What languages are you proficient in?
Lately I’ve been writing iOS and Android apps, but that has also involved a fair amount of server-side programming and database architecture. The languages I use most often are Objective-C, Java, Python, and PHP, but I’m reasonably fluent in several others. At this point in my nerdery, I see the difference between programming languages as similar to the differences between dialects of a spoken language. It’s all kind of the same, but different interpreters and compilers like to be talked to a bit differently.
How have you increased your skillset over the years, formally or otherwise?
Formally, I’ve done next to nothing to increase my skillset. I have a love-hate relationship with the post secondary education system and have amassed enough credits for about 7/8 of a BCS at this point, but have limited interest in finishing it. How I really learn is by doing: trying, failing, and ultimately succeeding, so that’s precisely what I do, all the time.
Which do you prefer in programming, the struggle or the achievement?
The struggle, for sure. Achievements are nice and all, but at the end of the day, the intellectually-stimulating struggle and the creative process therein are why I do what I do.
What people, groups, projects, or resources were most influential in your development as programmer?
In high school, all the students were given (read: paid for as part of tuition) Apple laptops and we had a student-run Tech Lab where the less nerdy kids could come whine about their computer problems. It provided me an environment where it was perfectly acceptable, if not encouraged, to geek out about algorithms and discuss the relative merits of different programming languages and frameworks. Before then, I was scornfully mocked for stuff even remotely like that, so it was a very welcome change. We even made Beatles ripoff t-shirts that said “We all live in a yellow subroutine” on the front and had some punny Perl code on the back. I’m pretty sure I got rid of mine a long time ago.
What do you enjoy about it? Is there anything you dislike?
I like everything, the lifestyle, the constant and varied mental challenges, the stress, the gratification, and the satisfaction and awe that arises from looking at the final product of something I’ve created.
If you were to be doing anything else, what would that be?
Running my own gin distillery, record label, and justifiably useless gadget conglomerate.
What does agile software development mean to you?
Agile development is a nice idea, but can get rather impractical sometimes in real world situations. My personal development paradigm is a twisted mashup of agile, lean, and mad scientist. I will say that timely, succinct, and frequent communication between collaborators is key. That, and version control usage is next to godliness.
Where do you spend most of your time online?
I honestly don’t spend too much of “my” time online, but when I do I guess it’s at sites like Last.fm, Soundcloud, and Discogs. Other than that, I spend horrendous amounts of time on Stack Overflow, and the iOS and Android reference libraries.
What concerns you most about where technology is headed?
The advent of true parallel computing would mean lots of code rewriting, which for me would be no big deal directly, but if the frameworks and platforms I use and write for on a daily basis were fundamentally altered, I’d have to learn to how to handle that, but on second thought…
What excites you most about where technology is headed?
… that sounds really exciting. Three dimensional transistor arrays in ICs, signal processing in the terahertz band, non-silicon-based CPUs, and data encoded à la DNA are pretty fascinating ideas too.
Is there anything else you would like to add?
Thank you for this opportunity