Programming Creativity: Defy Dogma, Make Waves


To paraphrase this great talk from Bret Victor:

I saw an awesome talk (link above) from Bret Victor called “The Future of Programming.” Bret comes out wearing a pocket protector and gives a lecture (using old-school transparencies) on everything an engineer from the 60s/70s would have expected of progamming today.

The best point of Bret’s talk I summarized above, but here’s more: we, as programmers, should never limit ourselves to the practices we have constructed. It doesn’t take long for technology to change, but it does take a long time for they way we think to change. Best example: the programmers who were writing code in binary were very resistant to jump to Fortran.

I’ve been writing code full-time for a little over a year now. At this point I am fairly comfortable with a JS framework or two, a language or two, some front-end and back-end design patterns. I skim headlines and do a good amount of reading. I feel confident tackling most hey-make-my-website-do-x requests.

BUT. Until now, I’ve never considered it part of my job to imagine new ways to solve these problems. A huge number of my “solutions” were the result of Googling and sites like StackOverflow. It occurs to me: What if everyone is like me? How does that scale? Is my ability as a programmer limited to problems that have already been solved, solutions outlined? Am I creative? Am I contributing?

I forgive myself for the time up until now, and maybe a few more months. I’m just wrapping my head around concepts like parallelism/concurrency, API design, architecture/system design, etc.

But really, I’m SO VERY GLAD that I saw this video, that I can start pulling this perspective into every day problems, and that there is plenty of time to question everything.

Which reminds me – it’s super important to always question everything: Asking WHY we’re using the tech/architecture/whatever we are using is the best way to learn and form opinions, which is a hugely important part of being an engineer. There’s a great talk on trying to become an expert by Angelina Fabbro called JavaScript Masterclass that talks about this.

Uncle Bob (in awesome talk on software dev professionalism) says (among other things) that we have to surf the waves of software engineering, and when the next wave comes along, we need to jump to it. He’s right. But it’s just as important to jump in and make those waves.