In my former career as a scientist, I had the life changing opportunity to live and work overseas. The fresh-faced boy that I was from Podunk, America moved to the slick city of Frankfurt am Main in Germany. While I was assured by my future colleagues long before I moved, that everyone in Germany speaks English, they lied. Life outside the laboratory for me meant learning German or learning charades. When you’re in the grocery store and you know you need batteries but you can’t find them and you have no idea what the German word for ‘battery’ is, it’s either a humorous and humbling game of charades, or your wireless keyboard stays dead (True story. The most silly part though is that I was so committed to not using English that it only prolonged the whole affair because German for battery is in fact, ‘Batterie’).
The reason I bring this up is that my current metamorphosis into a web developer has reminded me of this experience quite a lot. During my three years in Der Vaterland, I went through four stages of adaptation to my new environment.
Stage 1, “What the… ?”: Being immersed in a new culture is an eye-opening experience I would recommend everyone have in their lifetime. When you have a splitting headache and the pharmacist in the tiny little dorf looks blank when you say “Tylenol,” you learn humility. The same is true for learning programming. A computer can do wondrous and amazing things, but unless you know how to tell it what you want, you’re dead in the water. And when you take your first peek at the intricate code underneath the pretty pictures, your initial reaction is almost always the same as a newborn infant: “What the…?”
Stage 2, The Mute: One of the most intimidating things for me in Germany was the deli counter. Countless varieties of delectable sausage (Germans know sausage) and various other meat products were presented in neat rows without a label anywhere to be seen. I knew what I wanted (the sliced ham three columns over and two down from the top), and the smiling matron behind the counter wanted to give it to me, but when I opened my mouth nothing came out. This is when I realized I’d learned to take information on board, but hadn’t yet learned how to formulate the language myself. I had exactly that experience a few weeks back when my mentor suggested I use a hash in a program. I knew what it was and why it would be useful, but for the life of me I couldn’t remember how to write it. I was just as mute as that day at the deli and recognized I would need much more practice writing code without training wheels.
Stage 3, The Two-Year-Old: Anyone who has been a parent will have a clear memory of what their child was like at two. Aside from eating they are either screaming at you, producing alarmingly smelly poop or blithely running headlong into mortal danger. This is not far off the life of a programming noob and pretty much where I stand now. If you ask me to generate a brand new web app and give me some specs for what you want it to do, I am now able to build it for you. The code underlying, however, will probably make a senior developer wince when they look under the hood, and they’ll estimate I have about a week before someone files a lawsuit for breach of privacy.
Stage 4, The Ugly American Accent: After three years in Germany I was reasonably facile with the German language. I was down with most of the grammar and understood amazingly long words like: Donaudampfschiffahrtsgesellschaftskapitän (Danube steamship company captain), but opening my mouth still communicated “I am an American speaking German” loud and clear. Fortunately, your programming ‘accent’ means very little to the computer. The only language the i7 processor in my MacBook speaks is binary and it doesn’t really care if the incoming stream of 1’s and 0’s has a slight twang of Ruby or Java or C# to it. The result is still the same.
I’m now only a couple months off before I hope to land my first job as a developer. For now, I’m keeping my nose to the grindstone in bootcamp so I start turning out code that smells of lilies instead of strained carrots and reminds senior developers more of an aspiring Vermeer (with a dash of Dali) and less of Elmo.