When I was younger, I had strong opinions about many subjects. I felt I was right about a great many things, and anyone who disagreed with me was wrong. In my mind there was a right or a wrong, a black and a white, with little room for grey. Others were certainly entitled to their own opinion, but that didn’t make them any less wrong if their opinion differed from my own.
As I’ve gotten older, I’ve begun to realize in programming, and in life, so often things rely on a two word phrase that makes all the difference: it depends.
If I ran a developer bootcamp, I’d call it “A Practical Human’s Development Bootcamp” and on the first day I’d start with, “when you graduate from here, you won’t know anything. Knowing something takes time. My job is to give you the right questions to ask to learn something.”
I’d probably go out of business, but it’d be a good time.
I read a very dissapointing post by Anthony Ferrara called Rambling on Internals last week. It describes how frustrated Anthony has become with PHP’s internals mailing list, the process that PHP uses to select and create new features, and the plain fact that there are many trolls on the PHP internals list who have their own agendas, not the agenda of the PHP project, at heart.
Reading Anthony’s article was an eye-opening experience to the challenges that PHP faces. And while I can’t say that I agree with all of his statements or choices, I can say with some certainty that I understand his point of view. PHP Internals has long been known as a troll’s paradise.
Five months ago, I had an opportunity to accept a contract to work at Mozilla as part of the webdev team. There was a match for my skills on a contract basis, and even though it meant leaving permanent employment for the uncertain world of contracting, I knew it was something I would never forgive myself if I didn’t engage. I didn’t know then just how right my decision was, but after spending a week in Portland with the team at OSBridge, I was shown just how right my decision had been.
Mozilla, along with Emma, hosted a party during OSBridge. During the party, we asked attendees a simple question: “What do you want the web to be?” A video was compiled with their responses, which you can view here:
Every developer has a toolkit of favorite tools and applications that help them develop more effectively. Being individuals, developers often differ (and in some cases, argue) about the tools they use. One of the most frequent questions I’m asked is “what are the tools you use?” and that was the genesis of this blog post. While there are many tools that I would feel lost without, I have listed the five that I see as most crucial to my ability to effectively develop software.
Dual monitors with a fast machine
Last week, I began working on something that didn’t pan out. For whatever reason, I went down the wrong path, and ultimately abandoned the task I was working on. In discussing it with my boss, he mentioned to me that it was better to realize early on that something wouldn’t work than to trudge onward, insisting that it be finished due to the “sunk cost” of the time already spent.
This got me thinking about how often we consider the “sunk cost” in our decision-making process, especially when it comes to our software development.