Dev Discomfort

Frank Chimero recently wrote a post, “Two Sentences About Getting Older and Working on the Web”, which is short enough that I’ll just quote it here in full:

It is time to come clean: Github is confusing, Git is confusinger, pretty much everything in a modern web stack no longer makes sense to me, and no one explains it well, because they assume I know some fundamental piece of information that everyone takes for granted and no one documented, almost as if it were a secret that spread around to most everyone some time in 2012, yet I some how missed, because—you know—life was happening to me, so I’ve given up on trying to understand, even the parts where I try to comprehend what everyone else is working on that warrants that kind of complexity, and now I fear that this makes me irrelevant, so I nestle close to my story that my value is my “ideas” and capability to “make sense of things,” even though I can’t make sense of any of the above—but really, maybe I’m doing okay, since it’s all too much to know. Let the kids have it.

…which reminded me of a recent A List Apart blog post by Susan Robertson, “Overwhelmed by Code”, where she writes:

There is a constant pressure to learn new things and keep up with all the latest ideas: new frameworks, new platforms, new ideas of how to write code, they just keep coming out. In addition, the ebb and flow of what is desired from a front-end developer keeps changing. It used to be that knowing CSS and HTML was enough, then jQuery came along, then responsive techniques, then Node.js and then Angular, Ember, etc., etc., etc. That list, right there, it tires me out.

I’ve been thinking a lot about those two posts, because they echo my ambient, long-running fear about being left behind by my industry. Things move extremely fast in web design and development, and sometimes (okay, many times) I feel like my relationship with my tools has gotten flipped—instead of them existing to serve my needs, I feel like I have to improve myself to be able to use them. And don’t get me started on how tightly-coupled some of these tools have become. You find something that sounds cool, until you realize that this other thing is a dependency which requires this other doohickey, and suddenly you have to understand five different parts in the chain when you really just wanted the first thing. The prerequisites have gotten so large that it feels like I can’t even get good at something before the whole rickety system has been replaced by something new. Not necessarily better in ways that matter to me, mind you. Just new.

It takes time for these things to soak in, and time is something we are extremely miserly about. I’ve been using Drupal for a number of years, and it’s probably only in the last year or so where I’ve finally developed a good mental model for how it’s designed to work. That’s three or four years of muddling around with the framework before reaching a state of relative clarity. No wonder most people balk at the learning curve.

I don’t think I understood Git until I had to teach my students how to use it. And even then I didn’t really understand its distributed nature until I set up a repo to push to multiple remotes. Brains are maddeningly slow like that.

What helps, then? I like Susan’s suggestion to stop and think about what you enjoy:

So lately I’ve had to do some evaluating. What do I want to focus on, what do I love about the web? What do I actually want to learn, versus what I think I should learn.

Having a colleague or a mentor who can reduce the complexity is good, too. I find it helps to have someone who can look at the problem in front of you and sift the signal from the noise: Oh, you want to do x? Don’t worry about all this other stuff. Start here.

That’s probably where I feel the strongest pull on my own personal focus. Frank mentioned in his post how it feels like we lack the people willing to slow down and take the time to share knowledge. And the thing is, anyone can do this. There’s always something you know that could help somebody else. Many times when I find myself saying, I wish someone had told me this a year ago, I also think: I can be that person for someone else.

Earlier today I sat with two of Bluecadet’s developer apprentices during their three-month checkin. I told them that it’s ok to feel overwhelmed, because everyone feels that way to some degree. I want them to feel like they can explore things at their pace, that they can play on the edges of their understanding without feeling defeated. I want them to grow comfortable with being uncomfortable, if that makes any sense.

I essentially told them the things I have to remind myself: it’s okay to take time. Rushing doesn’t improve things, it might even slow you down. Focusing on a few things and doing them well is worthwhile. Sharing what you learn—even while you’re still figuring things out—is even better.