The 7th Position

Bryan Housel is not impressed...

How to Be a Real Musician

I was once a Real musician.

Maybe I still am a musician of some kind, but I wouldn’t call myself a Real musician any more. I haven’t picked up the trombone in a long while, so I’m basically retired now. I’m OK with this, because I have a bunch of other interests now, which I’m sure I will eventually retire from when the time is right.

Back when I was a Real musician, I played the trombone in a bunch of salsa and jazz bands around Philadelphia. Most nights I was either in rehearsals, or stopping by jam sessions, or playing paid gigs on the weekends. It was fun, and then it stopped being fun, so I retired.

Being a Real musician is both less and more difficult than you think. Less difficult, in that anyone can do it. More difficult in that you won’t get there overnight.

If you want to be a Real musician too, this post is for you.

I Have My Own Word

be·hou·sel - (bĭ-hou ‘zəl) -verb (used with object), -seled, -sel·ing

To unimpress or underwhelm.

“Audiences were behouseled by The Phantom Menace.”

Related forms:
be·hou·sel·ment, noun
be·hou·sel·ing·ly, adverb

What’s the Most Fun You’ve Ever Had Programming?

During the dot-com bubble in the late ’90s I worked at a startup company called OpenWorlds, just me and a few other programmers in a small office.  We were building a toolkit for using VRML and X3D, which was a kind of 3D version of the HTML that powers the world wide web.  VRML never took off, for many reasons that seem obvious now, but at the time people were excited about anything involving the web or 3D graphics.

The best part of the job was traveling to conventions like SIGGRAPH to demo our software with a bunch of other startup companies. They did this thing called the Web3D RoundUP where each company had a few minutes to do a demo, and the audience, served alcohol beforehand, had noisemakers to let you know how well the demo was going. If you went over time, they’d shoot you with ping pong ball guns.  There was a lot of last minute coding going on, and the demos were pretty crashy, but the whole party atmosphere at the time was loads of fun.

If There Is One Thing You Learned Along the Way That You Would Tell New Developers, What Would It Be?

To be really successful in this business, you need to be more than just a programmer.  You need people skills, communication, and empathy.  You need creativity and curiosity - never stop reading and learning.  You need to be a critical thinker and a problem solver.

Get out in the world and meet people who are not programmers, and understand their needs, and build software that they can use.

If You Knew Then What You Know Now, Would You Have Started Programming?

Yes! In fact, I majored in Electrical and Computer Engineering in college. This involved lots of circuit design, robotics, electronics, power systems, etc. I got a minor in Computer Science almost as an afterthought. But if I knew then what I know now, I would have majored in Computer Science instead.

Today’s hardware is complicated stuff, and I realized about halfway through getting my degree that engineers today are pretty much limited to working on tiny pieces of big projects. Sure, there was time when a few engineers could launch a hardware company from their garage, but those days are long gone. The barrier to entry in the hardware business has increased so much that you now need to be a big international company, like Sony or Apple, to begin to think about bringing new hardware to market.

Software has gotten complex too - but creating software is still accessible to anyone with an idea, a computer, and an internet connection. The tools that we use to create software are, themselves, other pieces of software that have evolved to match the demands of this business that we’re in. We have frameworks and toolkits and libraries (often free!) to handle all those complicated details for us. Developing software still feels creative and personal. Once it’s complete, you can show it to people and say, “I did that.”

What Was Your First Professional Programming Gig?

One of the best decisions I made was to go to Drexel University for my undergraduate degree, because they basically require everyone to go on internships. You get your degree in 5 years, but for the middle three years you alternate between 6 months of class and 6 months of paid internship. Drexel even had a required class for all freshmen to teach you how to write a resume, how to interview, how to act at work, etc.

So in 1995, my sophomore year in college, I went to work at my first internship for a small consulting company called Gnostech. I remember in the interview they asked me:

  1. Do you ever work on programming projects on the side just for fun?
    (“Yes, I’m working on an online game. I haven’t decided whether it will be set in medieval times or outer space, so I’m trying to be as generic as possible.”)

  2. Do you know the difference between C and C++?
    (“Not really, they look the same, but I know in C++ you can change around how the operators work.”).

I guess those answers were good enough for them, so they marked me down as a “qualified alternate” and I somehow got the job.

Gnostech was a typical small company, and they did all kinds of various computer stuff for other companies in the area - which actually made it a fantastic place to do an internship. One day I might be installing a network, another day I’d be soldering components onto circuit boards, another day I was writing software to test the circuit boards.

What Was the First Real Program You Wrote?

I remember playing a prank on my dad when I was a little kid. The Commodore 64s had an overheating issue where sometimes random exclamation marks would start to appear on the screen. Using the RND, PEEK, and POKE commands, I figured out how to clear the screen and start putting those ‘!’ symbols all over the place. My dad initially got mad, thinking he would have to return yet another Commodore 64 to Toys ‘R Us or wherever he got it, until I showed him that it was just some silly program that I wrote.

How Did You Get Started in Programming?

Back in the 1980’s, books and magazines would list BASIC programs and you could type them in line by line and run them yourself.  I remember getting an “Artificial Intelligence for the Commodore 64” book that started out with some simple classic computer programs, like Tic-Tac-Toe and Towers of Hanoi, and worked its way up in difficulty to ELIZA. It took me forever to type in that complete Eliza program, but I remember playing with the program for hours, trying to ask it silly questions.  For an impressionable little kid, that was pretty powerful stuff, to be able to type in a complete program and interact with it.

The Commodore 64 had all of these cool peripherals that you could get for it. We got the 1541 Disk Drive and started swapping games with friends.  Anyone could copy games and disks, and you could even punch a hole in the side of the disk to make it double sided.  I wrote a menu program to load the games from the disks.  If I could go back and write that program differently, knowing what I know about programming today, I wouldn’t hardcode all the filenames.

When I was 12 years old, I borrowed a 300 baud modem from my friend Adam Foxman and never gave it back.  We both got involved in the BBS scene, and we did our share of leeching warez, playing Legend of the Red Dragon and Tradewars, reading the Anarchist Cookbook, and all the other fun stuff that went along with the BBS scene at the time. Basically, everything that has happened to me since 1988 has been somehow Adam’s fault.

By age 16, I had saved up enough money to buy my own computer, a brand new Intel 486 DX2/66, PC with a US Robotics Sportster 56k modem, and I decided to set up my own BBS.  I ran a copy of WWIV, mostly because all the other friendly sysops in the 215 area code were running it, and we could easily get the source code (which at the time was C).  I even got connected to WWIVlink so I could send mail and post messages that would get shuffled around the country. People used this pre-Internet to trade source code snippets and modifications.

Predictably, one of my favorite mods for WWIV was replacing the normal chat with that silly Eliza simulation, so that when people would hit ‘C’ to chat with the sysop, they’d be chatting up Eliza instead.  The mod even put random delays, typos, and backspaces into the chat.  At the time, many of the people who could call my BBS were still new to computers and didn’t catch on that they were chatting with a bot.