Ten Letters to my Younger Self
by Mark Menard
I've been building software for longer than I care to admit. (I started on a VIC-20. Yes, I'm almost a gray head, if I had hair.) In that time I've made a lot of mistakes. Learn from my mistakes as I talk about ten letters I wish I could write to my younger developer self.
- Do not become over enamored of your new shiny tool. Everything is not a nail.
- You're not as good as you think you are. You don't know what you don't know yet. Learn harder, learn faster.
- Naming things is hard, hard, hard. You can't do it alone. You're just not that good.
- It always takes longer than you think it will. Always. And no you're not good at estimating. Here's how to get better...
- There is no accepted wisdom in software development, especially when touted by a company. Look beyond "official" standards. That's where the good stuff is.
- The latest framework, language, paradigm... these too shall pass.
- Learn Lisp. It will change how you think.
- Learn C cold. It will make you appreciate Lisp, and understand memory.
- Always hunt the error. It will come back to bite you.
- In the end successfully building software requires communication. Literate code isn't enough. Clean code isn't enough. Tests aren't enough. All the technical stuff isn't enough. Talk with your stakeholders, and learn to write literate executable specifications that communicate with your stakeholders.
As I say in the abstract, I've been at this a long time. I'm self taught and I really wish someone had explained these things to me when I was younger. I would have saved a lot of time, and excellerated my progress in the art of development.
My speaker bio:
Mark Menard is the founder of Enable Labs, a boutique consulting firm, in Troy, NY, specializing in product develoment, business productity and problem solving. Mark recently did the Intro to Ruby and Rails at LosAngeles Ruby Conf, and has spoken on Ruby at several events including BarCamp Albany and CodeCamp Albany. He has also spoken on Software Patents at TEDxAlbany in 2010. Mark frequently presents on Ruby issues at the TechValley Ruby Brigade; and does training sessions covering Ruby, Rails, refactoring, test/behavior driven development, and other software development topics.
Mark used to be a Java developer and caught the dynamic language bug when he started coding in Groovy and then discovered Ruby. Since then he has added iOS development using Objective-C, Ruby's twin separated at birth.