I was refreshing some of my terminology over the past week when I came upon a post by Martin Fowler about Dependency Injection. I was reading this and I understood the words, but it really made no sense to me.
Then I read another blog post by James Shore. It basically summed up dependency injection in a few words “giving an object it’s instance variables”. WOW. Something that made sense. Something I could immediately relate to and get, draw abstraction and application.
Why is it that essentially the same thing is explained two entirely different ways? Do some people get the former and have it make complete sense?
I’ve also noticed at conferences I go to a session and after about 5 or 10 minutes I am completely bored. It’s because they’ve said the main topic in the first few minutes, then spend the remaining 40 minutes giving pseudo examples about movie or car objects… Yawn…
Do other people think like this or are they just as bored as I am? Or are computer scientist just really poor story tellers?
What’s a perfect programmer? Someone that writes perfect code, writes perfect test, uses a perfect language or framework or uses the perfect methodology?
I think there are plenty of good programmers, people that try to be perfect for their boss, or their peers, or because they might be a perfectionist. I think there are a lot of programmers that think other programmers are “bad” or not as perfect as them.
If your goal is to be perfect and strive for perfection, I don’t know how you’ll ever be happy because there’s always new technology or someone better at some aspect of programming than you. There’s always a better way to do something if given enough time and thought.
Is there something better than perfect? What about remarkable? What’s that like?
Well remarkable programmers are always learning, they are always innovating and they are not afraid to make mistakes. They are also not afraid of challenging the status quo and creating something new because what’s around is not good-enough. Remarkable programmers spend more of the day creating than they do anything else. Remarkable programmers also know there are many points of view and it’s not who’s point of view is most correct, it’s about getting something done. Remarkable programmers have a difficult time navigating though politics and agendas because those don’t contribute to what’s most important to them, shipping, creating something, and doing something new.
So if I had to choose between being perfect and remarkable, I’d choose the latter, what about you?