Every now and again, I get that feeling of what it would be to look at my current life from the vantage point of my younger self. What would a 17 year old version of myself think of my current life? I had one of these moments when I arrived at the Venice airport yesterday morning.
I've been to the Marco Polo Airport a half dozen times over the past few years, usually to go to the International Centre for Theoretical Physics in Trieste. The airport feels very familiar and I'm quite comfortable with it. After landing, I waked straight out with my carry-on and computer bag and headed straight for the rental car station (noleggio auto). The woman manning the AutoEuropa/Dollar/Thrifty stall recognized me and proceeded to give me a better rate and said "you remember the way out to the cars?" To which the answer was "yes." I popped out and got my car and then began driving out without looking at a map. I knew all the turns and main cities, very much like the drive from SF to Palo Alto. Knowing that the main city is Udine, where the toll booths are, knowing the exit off the A4 on to the SS14 and knowing the blind turn down to the Adriatico guesthouse.
It's just a strange life being with dozens of cities around the world: New York, Tokyo, London, Florence, Chicago, Oslo, Geneva, LA, Istanbul, etc. There's no wonder or feeling of exoticness that there was a decade ago. It's hard to imagine before it happens.
I guess what is missing is the expected level of anxiety around traveling to some place half way around the world (okay only 9 timezones). After traveling for a decade, I'd gotten so familiar with having stress levels rise. The purpose of stress is to cause you to be more aware and vigilant -- Experiencing the narrowing of vision and the raising concentration and a general level of jumpiness. Instead that's all gone and life on road is comfortable.
It's a bit sad, because that sense of newness is one of the reasons people travel. I don't think it's gone for good, but I think I need to travel to new places to experience it and that list is beginning to shrink. Europe is a very small place to me now. I still have a couple of countries to axe off the list: Portugal, Ukraine, Belarus, Lithuania, Latvia, Moldova, Iceland, Malta, Cyprus. But that's getting to be short now. Africa and South America are still mostly unexplored and India I've still yet to go to. I should go to one of these places in the aftermath of tenure.
Sunday, September 18, 2011
Friday, September 16, 2011
Learning Something New
As you get a bit more mature in your profession, things begin to get easier. You've seen most things before in some guise, you've had practice at dealing with the issues and most ideas arise from synthesis with other ideas. You can get really confident about things and have your ego inflate. You look at younger people and think, "What's wrong with these people, it was so easy for me!" Of course that's baloney.
As a way to keep myself in check, every now and again I take up a challenge to learn something new. A while back it was cooking. More recently it was improving my writing. Recently it's been learning modern programming.
I know how to program alright. I'm pretty good at C, comfortable with Objective-C, can write C++ in a jam. Java and Python look pretty straight forward to pick up. So after reading around for a bit, I found that the big new thing is Scala. Scala's big thing is that it is a fully-enabled functional programming language -- meaning that functions are "first-class citizens" -- i.e. you can pass functions in every way you can pass a variable. In functional programming languages the whole structure of coding changes so that you want to avoid thinking in terms of states, instead you should think in terms of operations. This is a big change, because if you're familiar with object oriented programming, you'll know that the whole idea is built around having states that you're keeping good track of.
Scala is also an object oriented language too, built on top of Java. Of course, I don't really know Java -- most importantly, all the standard libraries and classes. While this is considered a great feature of the language for most computer scientists, for me, it's a bit of a block trying to figure out what the Java-like object oriented syntax is doing at the same time as learning the truly bizarre looking functional programming.
I have to say that the functional aspects of the language are so bizarre and non-intuitive that I had to give up and go back to more back to more elementary concepts. I didn't know this beforehand, but there were two different types of paradigms for programming -- the Turing-style of state-ful programming that we're all familiar with and the Church-style which is what functional programming descends from. There's a whole mathematical branch of computer science called Lambda Calculus and Combinators that is required to really understand functional programming. And so I'm back at basics staring blankly at definitions and trying to decipher what they mean.
I definitely see progress and it's great because it's opening up whole new ways of thinking. But it gets me back to the start of feeling so comfortable with your knowledge because you're restricting yourself to a small playground. I feel like I'm 18 years old and in real analysis for the first time again and feel real stupid -- which is a good feeling to know that there are major intellectual challenges out there.
Labels:
Functional Programming,
Learning,
Programming
Location:
Menlo Park, CA, USA
Subscribe to:
Posts (Atom)