Three blog posts I'd love to read (and one that I wouldn't)
“Blogging about blogging” is tiresome, and I apologize in advance for inflicting this on you: I promise to return to technical subjects immediately. But I really do want to read what you
have to say, and what better way than to full-on ask you to write?
So here are three blog posts I’d love to read. Write any or all of these, and you have a guaranteed bookmark in my delicious feed
and my vote on sites like programming.reddit.com
.What I learned from Language X that makes me a better programmer when I use Language Y
Everybody has a pet language. And many smart people take a crack at learning a new language. Some take two years to try to port an existing, production application. Some read a book and throw it across the room, unconvinced that the new language offers much in the way of value. Whether you immersed yourself in the new language or merely skimmed it, what did it teach you that you can apply to your everyday work?
(I liked it so much, I wrote an entire post about it
LISP is worth learning for a different reason—the profound enlightenment experience you will have when you finally get it.
The most amazing example of this kind of thinking is Eric Raymond’s famous quote: “LISP is worth learning for a different reason—the profound enlightenment experience you will have when you finally get it. That experience will make you a better programmer for the rest of your days, even if you never actually use LISP itself a lot.”
You may not experience a profound
enlightenment from your next language. But if your mind is open to the possibilities, I bet you’ll learn a lot that will make you a better programmer for the rest of your days. Tell us about it.Something surprising that you probably wouldn’t guess about Language X from reading blog posts
I get that Java is verbose, that static typing finds bugs and makes it easy to add certain features to IDEs, that there are a lot of jobs writing Java programs, and that there are a lot of frameworks and libraries written in Java. Great. But one more post about those subjects had better be really, really insightful if it is going to get me excited.
The Little MLer introduces ML (and its object-oriented variant Ocaml) through a series of entertaining and straightforward exercises working with lists, structures, and even deriving arithmetic from types.
Learning ML through the book’s ten brief chapters will stretch your understanding of how to leverage types and type checking to write programs that are more than just type-safe but are also semantically correct.
The surprising thing I learned from ML is the power of expressing a program’s semantics with types. It has made me a better programmer whether I’m using a weakly but statically typed language like Java or a dynamically typed language like Ruby.
What can you tell me that might not be obvious from reading the same-old, same-old blog posts out there? For example: Java’s Annotations provide a unique meta-programming mechanism that allows you to write programs that are familiar to the everyday programmer but add code-generation magic
If I were coming to Java from the Ruby world, this might get me excited enough to really learn how to make my programs sing. I was excited to discover that the IntelliJ people have developed
@NotNull annotations that add null-checking to Java at compile time
.My personal transformation about Idea X
Bob Sutton wrote an amazing article about one kind of smartness, Strong Opinions, Weakly Held
. Now it’s great if learning a language or trying a new methodology taught you something new.
But it’s really, really
fascinating if you happened to change your mind about something you used to think was critical. If you have had a 180 degree change of heart and embraced what you formerly shunned, or now shun what you formerly embraced.
And I don’t just mean write and tell me the logical reasons that Ocaml taught you how strong typing can be much more powerful than what lame-ass Language X provides
. That’s true. But please, if that’s all you want to write, write “Five new things I learned from Ocaml that made me a better programmer when I use Lame-Ass language X” or “Something surprising that you probably wouldn’t guess about Ocaml from reading blog posts.”This
blog post is about YOU. Tell me about your personal journey. Give me the human story. When was it exactly that you had your Aha! moment? How did it feel to let go of years of prejudices and preconceptions? What did it feel like to take the red pill
Now that Ruby on Rails is having its fifteen minutes of fame
, people are lining up on either side of the love/hate divide and everybody seems to take its pluses and minuses for granted. But do you remember how dramatic it was when people like Bruce Tate had their “Born Again” moments
? Maybe today their enthusiasm seems subjective and “unprofessional.” But there’s a human story there: when people turn their back on two, five, or even ten years of belief in something, there is a powerful story to be told.
And honestly, I want to hear your
story, if you would care to tell it.I would read any and all of the above three posts with enthusiasm and a deep respect for you stepping outside of the usual same-old, same-old blog posts about languages and tools. But if you choose to write the next kind of post, it’s going to be hard for me to get excited:Here’s why such-and-such fhpxf tbng qvpx
I am not criticizing anyone who has strong opinions about why certain things are lame.
Just because it’s hard to prove something is lame doesn’t mean we should wander around saying that everything has its place and they’re all equally valuable and they all deserve the same real-estate in our minds.
We have to wield the axe and say NO to things, to decide that life is too short for programming in Language Z, or for struggling with Tool Omega, or for hiring people who don’t have a certain kind of degree
, or whatever else you know in your heart to be lame.
But speaking as your reader, posts telling me why you’re saying “no” aren’t that helpful. They tell me a lot… about YOU and your preconceptions, not about the lame things. When I re-read my own posts about failure
or about metaphors for software development
, I now think they say more about me and my journey than they do about shipping software.
The most useful purpose posts about “how lame things are” serve is to help people rationalize decisions they have already made
If I have already decided that Ruby is flawed
The post that is going to push me away from the lame thing isn’t the post about how lame it is. It’s the post about the useful idea and how good it is. And that’s why I am asking—or even begging—you to write a post describing “Five new things I learned from Methodology P
that makes me a better team leader when I use Methodology D,” or “Something surprising that you probably wouldn’t guess about the Factor
language from reading blog posts,” or especially “My personal transformation about estimating software schedules
Thanks in advance.