The 10 types of scientists

Diana Garnham identifies 10 types of scientists.

  1. Explorer
  2. Investigator
  3. Developer/Translational
  4. Service provider/operational
  5. Monitor/regulator
  6. Entrepreneur
  7. Communicator
  8. Teacher
  9. Business/Marketing
  10. Policy maker

I can identify with the “Developer/Translational” and “Entrepreneur” scientist types. Possibly with “Communicator”, “Teacher” (?!?) and “Business/Marketing” too.

Which types do you identify with?

Developer Stories

Paparazzi red carpet

I must be getting famous. I was contacted by a social media marketing manager at M80. His company is working with Microsoft to promote Visual Studio 2010. Ok, I think I’ve fulfilled the necessary disclosure requirements. And no, I don’t get anything out of this. And I doubt I’m really that famous, but give me a few seconds to savour my short-lived fame anyway.

Microsoft wants to get feedback, and I believe it doesn’t have to be about Visual Studio 2010 (or Visual Studio at all). They’ve created a YouTube channel called Developer Stories. And they want to know why you are a developer.

If you’re a video kind of person, please go ahead and upload a video of you telling your story. Forget about your biases and opinions about the companies involved. I believe a polymath programmer should be above that. If nothing else, I want to hear your story too.

Since I’ll stutter in front of a video camera, and thank goodness I don’t have one (which is just an excuse, since my bedroom is a lousy backdrop), I’ll have to tell you my story in blog post format.

Once upon a time…

Actually, I stumbled upon programming. Sure I joined the computer club when I was in junior college (about 17 or 18 years old), but I didn’t understand the point of all the arcane Pascal lines of code. When I got into university, I didn’t have the credits (nor background) for the computer science track. So I took up applied mathematics as a major, and computational science as a minor.

In my first semester of my freshman year, I took C programming (which was a requirement for the computational science minor). Variables, assignments, loops, algorithms. It was fun. I also couldn’t understand why some of my classmates had difficulty wrapping their heads around what I perceived as simple ideas. They couldn’t understand some programming concepts, and they had some trouble understanding how to apply and change and break down a problem into programmable, solvable parts. I mean, you calculate something, add it to a temporary variable, go to next iteration, calculate with different input, add to temporary variable, go to next iteration until done. That’s summation. What’s so hard?

It was then that I realised that some people just weren’t made for programming. I’m not saying I’m a genius at it. I may just have a knack for breaking down problems so a programmatic solution is possible. That’s what programming is, not the lines of code and algorithms and what-not. Well, I was good enough at it that I decided to upgrade my computational science minor to a major.

Programming is about solving problems

What’s so special about computational science? And what’s the difference between it and computer science? I’m not sure. Computational science is more about solving (scientific) problems using programming, rather than the programming itself. I’ll leave you to compare that with your understanding of what’s computer science.

And what do I mean by solving problems using programming? I drew Sierpinski triangles. I used Newton-Raphson method to find roots. I solved a gigantic set of 100 equations with a 100 by 100 matrix. And most of the problems were based in science or mathematics.

So my background is about breaking down problems and translating that into programmable parts. I didn’t learn about software development cycles, software management practices and all those complicated stuff. I was trained in the solving problems, not the meta stuff around it. I’m not saying those complicated stuff aren’t useful. Just be aware of what you’re doing.

Here’s a suggestion. Learn about your business processes and work flow. What does your company do? What does your company sell? Which industry? Because your value as a software developer goes up exponentially if you can solve a business problem, not that clever obfuscated one-liner of yours.

Don’t just be a programmer. Be a problem solver.

So after I graduated, even with a math background, I went for a software development career. I like solving problems, and programming is one method. This guy just about sums it up:

So that’s a summary of why I’m a software developer. And now for some free advertisement for Visual Studio. I like C# and Visual Studio. Probably because of my C background. There’s Intellisense, a well documented library of the .NET Framework’s functions, and… it feels “clean”. I’m not sure how to explain that to you. I’m a simple man. I don’t need a lot of what is called developer productivity tools. Maybe I haven’t a problem to solve that requires them.

[update]
And I only have the Visual Studio Express version, not the paid one (but I bought VS2005 way back if that counts). The professional version’s a little steep in price, you know, considering my recent foray into entrepreneurship.

So what’s your story? Tell me in a comment, a blog post, or a video response.

[image by Ad Hatcher. Videos taken from Developer Stories YouTube channel]