Wednesday, October 14, 2009

Getting back in shape 2

I told you a few weeks ago that I decided to get my feets wet using Ruby on Rails to work on a little project.

However, I soon realized that it was going to take more time than expected.

Even if I understand how Rails works, having a backgroung using other MVC frameworks, there is a wealth of things to know before starting.

Since I'm alone, I can't peek on an existing project, starting slowly by correcting bugs and so on, as I would do if I worked for a company: I have to learn enough about Rails before starting. Fortunately there are some very good books, so it's only a matter of time.

In the meanwhile, I still need to practice my Ruby. A programming language is like a foreign language: even if you know the grammar, if you want to be fluent, you have to use it.

I was thinking about what I could do: I needed a little project, self-contained so that it has a begining and a end, if possible with a deadline in order to prevent it from going out of hand. After all, I'm still looking for a job, and that has to be my main occupation.

I don't even know how I stumbled upon it: but I discovered the Ruby Programming Challenge for Newbie: every 2 weeks, you have a problem to solve, in Ruby.

It's a very cool idea: you work on a problem that you wouldn't necessarily have thought of (so it pushes you a bit out of your usual zone), you have a deadline, the solution can be pretty short which means that in my case I don't sacrifice too much time from my job searching, and you get reviewed by your peers (well in that case, your elders, since you are supposed to be new to Ruby), which is at the same time very scary and the best way to learn.

So I gave it a go, and finished yesterday. I'm submitting my solution today for review.

As expected, I learned a lot in the process and had a lot of fun. Being an hardcore perlist, I kind of got frustrated at Ruby sometimes but that's okay, the more I get the hang of it, the more I like it.

Now I have to wait till next week for the review! It's going to be a long few days :).

Thursday, October 1, 2009

Good tools to work well

You know, it is something that my grandfather repeated over and over: "A good worker needs good tools in order to work well".

In the particular field of development, we have two kind of tools: hardware and software. I'd like to focus a bit more on hardware tools.

Looking for a job in Seattle is a very interesting "job". I basically spend my time finding companies, trying to learn everything I can about them and figuring out if I'd like to work for them or not.

More often than not, I am able to find pictures of the offices, where the developers work. And there is one constant: they have the most amazing workstations ever.

Here, you wouldn't think of letting a developer code on a four years old 17" monitor. The absolute minimum I've seen is 22" single monitors, the average workstation is dual 24", and Google has the most humongous screens I've ever seen (bellow, Seattle office of google).

In France, I remember struggling for a few month to upgrade the ram for my team, and changing the monitors was just out of question. The only guy who had a wide-screen was the front-end designer. Don't even ask me about the CPU power of the workstations.

How crazy is that?

Here, when you pay somebody $75k+ you provide him the best tools money can afford. It is just common sense, really. If he spends 10 minutes a day more than necessary compiling an application, by the end of a month he lost 3 hours, more than the value of a CPU upgrade.

At one of the companies I worked for, I had such a slow PC that launching Eclipse took 15 minutes. No kidding. I launched it, and went for coffee.

I don't know where this 'cheapness' comes from in the french culture. I think that it is partly because the guys who decide how to spend the money don't have a clue of what is a developers job.

And the developers don't even complain. I don't think they even realize it! It's a cultural thing.

Well, guys, if you read me: this is not normal. Your work is the blood of your company. You deserve the best tools money can buy.

I already talked a bit of the psychological impact of having cool gear on a developer. But the truth is, you don't even need this reason. You need cool gear, because it makes you more efficient by an order of magnitude. And in the U.S where efficiency is the most important criterion, this was understood long ago.

Search Results