I’ve got into the speaking and writing thing more by accident than for anything else. Long story short: around 8 yours ago I was pretty active on a FoxPro community in Brazil, and since there was a huge lack of material in Portuguese for the tool, I’ve ended up writing some articles and doing some presentations. As it turns out, people actually enjoyed my work done on that.
I have always liked reading a lot, as well as seeing other people presenting. In both cases, I always pay close attention as to how the writer or speaker is delivering the explanation. Very often I read different articles based on the same subjects, just to see how different writers approach the topic.
For me, it has always worked better when the content is presented in ways that I can relate to. Since I’m no genius, I’ve always hated when I read or see things that make me feel a complete ignorant, and some writers/speaker have the skills to do just that. Some of these guys write and speak as if they were doing it for a mass of other geniuses. That approach has its place among some academic crowd. However, as far as I am concerned, this is just not the way to go when delivering content for most software developers.
Developers may have a very different background: some have started on school and went through all the theories, but most have “become” developers coming from other areas, and therefore, skipping much of the “formal” learning process. There’s also a part of the crowd that’s not composed by developers, but instead, features managers, testers, and other professionals who are interested on the topic at hand for one reason or another.
For example, my experience is that Object Oriented Programming (OOP) is one of the hardest topics for people to understand and make real use out of it. I think that is so only because writers seem to make it that way on purpose.
I remember back many years ago when I started reading some material on the subject; the thing was just way over my head. Then, at some point, I’ve run across one or two articles that explained the topic to me in a way that made me yell “Holy Crap!! Now I got it!!” (Eventually, I’ve decided to title my OOP presentations as “OOPs, Now I got it!” J). After the understanding dawned on me, I couldn’t stop wondering why some people have to make it so difficult to grasp. To this day, I still can’t answer that question (I have some theories, though: maybe the person just wants to use some big words and look really smart; or maybe the person just doesn’t realize that other people don’t have a clue of what he or she is talking about). I felt so jubilant that I had finally understood the dreaded topic I had to find a better way to explain it to other people.
Not too long ago I remember seeing an article that was an “inheritance 101” kind of deal. I felt an urge to read the article, because like I said before, I enjoy learning how other people explain a same topic, that way I may learn better ways to do it myself. Well, on this specific article, I just couldn’t manage to go beyond the first page (ok, I’ve tried to glance over the other pages, but that still didn’t do it for me). In order to explain the subject, the author chose to draw analogies with some sort of game which I had never heard before. There was a link to a site about the game, but that to me was a big no-no. I mean, come on, here I am reading an article about inheritance, and when I barely started I already have to go to some website to learn about some unknown game that I have no interested on whatsoever?! In this case I even was fortunately enough to know well about the primary topic, but I felt sorry for somebody who didn’t know it and was looking forward to learn something.
I’m all up for analogies when trying to explain things, even more so for complicated topics. However, I prefer to use analogies based on something that every person should know by heart. If the person doesn’t immediately recognize something one uses as an analogy, then it is useless. Analogies have to be made based on things that every person would not even have to think about what’s been said, and it shouldn’t matter where the person comes from (using an analogy that only a Brazilian would understand is just as useless for an American reader, for instance).
That is the main reason why I use pretty simple analogies on my articles and presentations, and that’s been working out great. It doesn’t matter where I’m presenting a session, or what country a person who’s reading my article comes from, they all know things like human being, man, woman, car, etc. Saying “a man is a type of human” makes a lot more sense than saying “Mr. Frodo is a type of hobbit” for somebody who doesn’t know a thing about Lord of the Ring (ah, but they could always go ahead and read the books or watch the movies, right? ;)).
A couple of years ago I did a 3-hours long presentation on OOP at Microsoft in Brazil. At the end of the presentation, there was this lady manager and one of her developers who came to me and said: “All last week we’ve had training on OOP with this professor who’s a Java guy. You’ve done in three hours what that guy couldn’t do in 5 days! We finally got it.”. Facing such positive feedback, I’ve decided to put that material on a video training. A friend of mine, who works at a university in Brazil, liked the video, and showed to some of the students there. The feedback I’ve got was this: “Gee, that 3-hour video is much better at explaining this then a full semester at school”.
This is not a blog post to brag about me; instead, this is a plea for writers and speakers out there: Please, when writing an article/book or doing a presentation, make sure people will actually understand what you’re talking about. Life is already too complicated just the way it is. J