Monday, July 31, 2006

You aren't what you study

For no particular reason, I decided that I would poke around to learn more about a language called Python. What is great about this language is that it is an interpretive language with variables that can be dynamically be typed. What is means in normal English is that Python is a language that doesn't need to be compiled into a .exe program before running, but actually be run as a text-file that can do a very wide variety of tasks. In addition, the language intepreter automatically knows how to deal with what data you put into the program instead of you telling what kind of data you are putting into every variable.

Why is this good? This isn't just good, but it's excellent because you don't need to keep lists of your own modules and compile them into a .exe program to run. If you need to make changes, you don't have to recompile the program-- you just make your changes and run it immediately. It's quick and good... and getting things done quick and good is always a good thing!

My first introduction into an interpretive computer language was Matlab, a math simulation software package which I've used for image and acoustic processing. I would further my work with this software by implementing robotic tracking algorithms (using probability), simulating differential equations and even writing my own poker game as extra projects (or class inspired projects). But this is a slight tangent...

What I would find today while surfing on net is a company that developed a packaged software to make installing python and developing code easier by a bunch of people running a very successful looking company out of BC. More interestingly the CEO is an Engineer, the CTO has BA in Physics and a PH.D in cognitive science, the business and project management guy has a physics degree and there are a bunch more with degrees in Computer science and physics.

What first struck me first is how did a a large chunk of senior management people out of physics make it into a computer software company? Then it struck me that people don't necessarly have to be exactly the things they were trained to do.

For even me as a person that studied Engineering Physics with a specialization in electrical engineering in my undergraduate life, I have so far looked at various problems that are not directly in my field of training. I have worked in a robotics lab building circuitry for a motor control system (unfortuately it didn't work 100%), I've done image processing work (including tracking targets in 3D), I've programmed a robot tracking technique out of description out of some research paper and a few other things that I haven't been directly trained to do.

As I realize now, that my background (as much as I didn't understand it at the time) is providing me with the tools to leap into other problems that are not directly related to my specialty, as I have noticed from these people. This is important, because you can't be trained for problems in the real world-- there are always going to be ones popping that you've never seen before all the time. But what you can be, is trained with experience in dealing with problems you've never seen to deal with more of the same. That is exceptionally empowering because you're never going to be working on the same thing forever; and when something new pops up, you'll have enough background to get started and work in many different fields.

My hat is off to these guys.

No comments: