This content has been written a long time ago. As such, it might not reflect my current thoughts anymore. I keep this page online because it might still contain valid information.

According to my PhD advisor, I am a sponge. What does that mean though? This is the purpose of today’s article. I am going to introduce a sort of Sponge Theory. First of all, it is not about SpongeBob. This theory is actually focused on two values: learning and sharing and the order matters.

Learning

One of the main goals of a sponge (the material) is to sponge an impervious surface in order to clean it. A sponge is especially good at absorbing water and water-based solutions. In other words, a sponge is able to store a large amount of liquid into it.

Obviously, as a human, being a sponge means that you are able to absorb a lot of information. You are interested in various topics, and not only technical ones. You read a lot, everything, all the time. You dig into topics that sound cool to you. You enjoy learning new things, and you try to keep you up to date, even on things that you don’t use to do.

Also, an interesting point about sponges as animals is that they filter the water they absorb. That is how they feed themselves. It is similar to you when you sort all the information you get. You certainly don’t agree with everything you read. Being able to distinguish useful information is tricky though, and it depends on various parameters such as the context in which you are living, your tastes, your aspirations, etc. But I am digressing…

Yet, behaving like a sponge is not only about swallowing and filtering information.

Sharing

As I said, a sponge is not only about holding water-based solutions. You can squeeze sponges in order to get the absorbed water (please, don’t do that with animals!). That is the second characteristic of a sponge, it is able to return what it contains.

You love sharing things you just learnt, either by talking to your friends, writing, teaching, tweeting, … For instance, I read a lot of RSS feeds and weekly mailing lists, and I tend to tweet about things that I consider relevant. I also teach time to time.

It is not that different in the Open Source world actually. You start by using an Open Source project, and end up by contributing back (you may not agree with me, that is my very own point of view). That is probably why I feel so comfortable in this world, but then again, I am digressing.

Conclusion

And here we are. Being a sponge is all about learning and reading a lot, in other words being interested in various topics, and then being able to transmit relevant information. Is it bad? No. I believe that I am lucky, and you should too. Being curious is important, being able to communicate is even more important! No matter how technically strong you are, if you are not able to explain what you are doing, or if you can’t discuss with your teammates, you are certainly not a good fit.

Be curious, learn new things, then talk to your teammates. You will become more valuable, and people will naturally come to you to ask you advices, or simply to share their new shiny things with you. Become a sponge, and join us!

Last but not least, remember that great programmers never stop learning and teaching.

So, are you a sponge too?