Protests in America – Black Lives Matter

Over the last few weeks the US has been moved to action about policing and racial justice in response to the murder of George Floyd. As someone who is deeply concerned about these issues I always struggle to find words I feel do the topic justice; they seem too important to stay silent, too critical to speak about poorly, and too complex for me to write about well. For my limitations in what follows, I’m sorry.

As a society we are still working to understand that the violence and murders by police we see played out regularly in the new is not just the fault of the individual officers or their by-stander colleagues, but also the fault of our society as a whole. This has not happened in a vacuum. Our communities have voted too often for people and policies that brought us here instead of doing something better.

But all those are things you can read about in detail from more skilled writers than me. And if you haven’t you should.

I want to talk here more about the fact that we all know we cannot trust the police to handle complex situations, in particular protests. It is why we all set our expectations that it is simply someone else’s job to maintain calm when large crowds are involved with police.

The most basic sign of this lack of trust is that no one doubts the importance of the long-standing understanding among families raising children of color that they must teach very young kids how to de-escalate with police because they cannot trust officers not to shoot a child playing alone in the park. If that’s not something you’ve known was happening for a long time, I recommend Clint Smith’s letter to his then-future son, and more broadly his recent interview on TED Radio Hour. If you are a person of color, a woman, or mentally ill it’s long been clear that society expects you to protect yourself against police officers.

Beyond those seemly obvious, but still debated reasons, we have all long shown we don’t trust police in how we talk about protests. Until the videos of police violence from protests caused a shift in how we talk about these events in the last few weeks we had a very standard story around any riot, protest, or civil unrest which assumed police could not handle angry expressions of the first amendment.

The story starts with a nonviolent march or gathering, and then degrades into a violent riot because of a few bad people in the crowd. The police are be cast as innocent bystanders until the violence broke out, then they became heroes working to regain control for the rest of us. We see these stories on the news and wring our hands about a good message being marred by violence – too bad they didn’t learn Dr. King’s message.

If you have been to a large protest you probably know in your gut that’s not how it works in real life. In practice throughout the day the police are making decisions about how to interact with the crowd. Often this starts with little or no containment during the initial events, then the police start to restrict the group’s movement. They use increasingly aggressive tactics to try to control the physical direction of protesters putting pressure on the crowd they say they want to keep calm. Sometimes they say this is to enforce a permit, sometimes they claim to be protecting businesses, and sometimes they don’t give any reason. When things finally turn angry and violent, the police have made themselves the front line and often starting the actual fighting. There is no actual reason to make this shift in most cases, just things like a sense that protests after dark are more dangerous and the cost of policing.

An anti-Trump march in Philadelphia in 2017, well after their permit expired and out of bounds for the march, but being guided by police not confronted for another hour or two.

We have long criticized marchers for damaging small businesses, burning their own neighborhoods, while ignoring that police and politicians tried to control where protests were held and used force to keep people in their neighborhoods.

A wet older man standing in front of the water cannon truck with lots of younger people on the ground around him.

Reporters, politicians, and police would ignore all the research of large crowd dynamics, and blame the crowd for doing what large groups of angry people do when pressed – fight back.

In the US we started to assume it was the protester’s job to stay nonviolent in the face of extreme police response during the 1960’s and 1970’s when the civil rights and antiwar movements showed it was possible. It is also important to remember that while there were amazing peaceful protests in that period, there were also large riots, rebellions, and general civil unrest. We remember the great example set an inspired few, not the larger contexts of events that unfolded.

Riot police, and other officers in the shade talking with protesters.
The protesters at this event invited the police into the shade and offered them water and fresh fruit. It was meant to help keep the officers calm on a hot day, because we could not trust them to remain calm without our help.

Just because we want large protests expressing anger at our government to be nonviolent that does not mean we can reasonably expect every group to manage the needed level of organization and training to make that possible. We have a paid, trained, group of people we already expect to show up for these events – why don’t we assume they are going to help make sure these events are empowering expressions of our first amendment rights? Why do we assume that the unpaid citizens exercising their rights need to be able to handle situations that police cannot?

Currently our police are badly trained at de-escalation, even though it’s been shown to keep them safer. That training will cost money, but we could cover that by cutting funding of unneeded weapons like armored personnel carriers. I know some people who can run that kind of training – trust me they would do a lot of training for the annual maintenance budget on one of those things.

People at the side of the road with signs that read: No Human Being is Illegal. Families belong together. My Family Came as Refugees. No Heat No Ice. Keep Families together. And other slogans.

Yes, being a police officer is hard. I agree with the many officers complaining that we expect them to do all kinds of things they shouldn’t be asked to do because yes they need better solutions around them. And of course they should expect they will come home safely at the end of their shifts. But just because a job is hard, and can be dangerous, does not make it okay to do the job badly – in fact that seems like an argument to do the job well.

The flaws in our system are not the fault of individual officers – no one officer can reform the system (although any one of four police officers could have saved George Floyd’s life by stopping his murder). No one mayor, police chief, nor any one person has the power to make the kind of change we need to make our communities safer for everyone in them. Everyone is responsible for their own personal behavior, but dismissing gross misconduct including murders as the acts of a few “bad apples” instead of recognizing that they are part of a system that our society built is an injustice in itself.

The system is well past needing simple reforms being debated in Washington and many state legislatures. Maybe if we’d really reformed things after the police riots of the 1960’s, when departments were smaller and officers less protected from consequences, we could have used incremental measures. Now we need drastic sweeping changes. We need to understand that Camden, NJ’s choice to disband and rebuild their department was a first step that shows you’re serious but doesn’t mean you’ve made enough progress. After you totally reboot you still have to be ready to totally rebuild.

Handmade sign reading Are you going bkwds? or are you going fwds?
We are going forwards, we don’t have a choice, the question is where will that take us?

SC Dug May 2020: Virtual Backgrounds

This month’s SC DUG meeting featured Will Jackson from Kanopi Studios talking about his virtual background and office.

Before everyone was learning to use Zoom virtual backgrounds, Will had built out a full 3D room for his background, including family pictures and other fun details. He talked about what he built and may inspire you to try some more personalized than swaying palm tree and night skies.

If you would like to join us please check out our up coming events on MeetUp for meeting times, locations, and remote connection information.

We frequently use these presentations to practice new presentations, try out heavily revised versions, and test out new ideas with a friendly audience. So if some of the content of these videos seems a bit rough please understand we are all learning all the time and we are open to constructive feedback. If you want to see a polished version checkout our group members’ talks at camps and cons.

If you are interested in giving a practice talk, leave me a comment here, contact me through Drupal.org, or find me on Drupal Slack. We’re excited to hear new voices and ideas. We want to support the community, and that means you.

Images from NYC 2020

Back when we were allowed to go out and about, my wife and I spent a few days in New York City so she could attend a conference. We explored a few of the art museum and I got some time to just hang around Central Park and take pictures. I had started to post this gallery a while back, but got distracted by life and didn’t finish. So as a reminder that there is a larger world out there, and we’ll get to go back to exploring it one day I figured I’d finally get this finished.

The first day we just wondered a bit, including taking the Station Island Ferry across and back to get a few classic pictures.

A friend let us use her membership to the Met. So we spent a long day walking the exhibits. Since you can get better pictures of more or less all their art than most people are likely to take in the galleries (and no small number of people were taking pictures of whole works) I focused on the faces within larger works.

We also popped into MOMA on Free Friday and the Guggenheim on their give what you like Saturday evening. Those events were both about the art, and clearly for some in New York about being seen at those open chances to explore.

We explored Central Park together and separately. I love getting a few hours to just stroll through a place with my camera. Trying to take a mix of classic pictures and few that are less common.

Before too long we can go back to having adventures and getting out. But in the meantime stay safe as best you can.

SC DUG April 2020: Remote Work Round Table

This month’s SC DUG was a round table discussion on working remotely during the Covid-19 lock down. We had actually planned this topic before the crisis emerged in full, but found ourselves having to pivot our talking points a fair bit.

The discussion centered on things that people are dealing with, even those of us who work remotely on a regular basis. A few resources were shared by people on the call, including Pantheon’s Donut Slack Bot.

If you would like to join us please check out our up coming events on MeetUp for meeting times, locations, and remote connection information.

Thoughts for the Newly Remote Worker

Don’t expect to get a good routine down in the current conditions.

About three years ago I wrote up some of my thinking on what you need to succeed in remote work and I still stand by most of that advice. But right now many of those suggestions may need to be goals you are working towards.

A few days ago my friend Johanna, who like me routinely works from home, learned she’ll be working from home while she and her partner try their hand at homeschooling and offered this tweet:

She’s both absolutely right (and smart, so if you’re on Twitter you should follow her), but also a little wrong. This is not what work from home normally is like, but this is what work from home is like in this moment.

Right now a huge number of people are suddenly working remote for the first time. Some of you probably wanted to this for a long time and are suddenly getting the chance, and some didn’t really want a remote job but now are forced to try it.

While some companies already have the tools and habits in place to make remote work successful, most probably don’t. What’s more, many people are now also doing childcare/homeschooling at the same time. So let’s be clear this is a terrible way to start working remotely. But here we are, so let’s talk about ways to use enough duct tape to make it work.

Your Boss

Lots of people probably have bosses that are deeply uncomfortable with this whole thing. They may have fought allowing remote work for long time because they worry about monitoring remote work and have no experience with remote management–those fears are likely still there and will put them off their game. Managers who are uncertain about basic working conditions can make bad choices that make a bad situation worse – like trying to monitor everyone on video conference all day. I’ve worked remote for bosses that didn’t trust me if they couldn’t see me, it’s hard and makes it hard to be successful. Long-term if they don’t learn to adjust you should probably find someone better to work for, but in the short run that’s probably not an option (and hopefully they will adjust) so let’s talk about strategies you can use to get through.

Check in early in the day so they know you’re up and running.

This should be something informal like a quick email to verify a meeting or other detail, a chat message just greeting them warmly, or something similar. Basically give them a sense that you are around and active before they ping you to find out if you remembered to wake up. You don’t want to sound needy or like you’re asking their permission to do work, as that can encourage micromanagement instincts.

Check in again at the end of the day, letting them know you’re leaving.

Again this should be something informal and simple that gives them, and you, a sense of closure to your work day. This helps avoid them feeling like you just disappeared while they adjust to the routine.

Leave a documented work trail with timestamps.

Think emails, notes from meetings, hours tracking and billing systems, Word documents with update timestamps, version control systems, and other things that you can point to that will remind them you really were working even though they didn’t see you (and if things get ugly something you can show others to prove you were working).

Start early or work late a few times early on.

Again this is about helping them see that you really are working hard even though they can’t see you. You still need to maintain work/life balance so don’t do this every day, or even most days, just enough that they are able to notice the effort in a crisis.

Suggest new or better tools to help support the sudden remote culture.

They probably know things aren’t working super well, and a chance to blame tools may be welcome. So research and suggest tools that make things better. Try to spot the things that have them uneasy about the situation and offer tools that might help with those challenges.

Your Tools

On the topic of tools, if your team just went fully remote you probably are lacking some tools to do all the things a great remote team has in place. You aren’t going to fix that overnight, but don’t let the perfect be the enemy of the good here – a tool that your team uses is better than the perfect tool that no one adopts.

So if you need to pick a chat client try the low hanging fruit first. You’re a Microsoft shop with 365 setup? Use Teams. You a Google apps shop? Use Hangouts. Salesforce? Chatter. Use Zoom a lot? Well their chat is terrible so use Slack (everyone else should probably default to Slack too). Some of those tools are far better than others but each has a niche they serve very well, and maybe your team will switch one day but get started now and worry about using it really well later.

Your Family

Don’t sweat the kids and pets interrupting. My current team was nearly 100% remote before all this started. We’re professional, have a strong team work ethic, and work hard to make sure our clients see that. And you know what, people’s kids and pets get in the way sometimes. Rarely does it matter for more than a minute or two. Right now, we’re running into a lot more of that than is normal. So are our clients. It’s going to be just fine.

Normally we try to limit interruptions, but honestly pets and kids are welcome cute distraction more often than not. My dogs wander my office and often end up on camera. My boss’s cat frequently strolls across his desk during check ins. Other people’s children come in and wave to all the people on their parent’s computer screen. Sure there are times we need to focus and someone’s dog really really needs to bark at that cat outside the window. Or a child needs their parent’s attention the very minute we’re trying to solve a hard problem. It’s just part of how things flow, and within my team we understand it as a part of work from home since it gives us all more time with the people that matter most to us all (hint: not our colleagues). Family, in whatever form they come, are part of what makes us who we are and allows us to see each other as a more complete person.

Yes, in this moment when kids are suddenly off from school with few places having formed any reasonable plan for education continuity, even for experienced teams we are expecting it will be disruptive. The entire American workforce is going to have to learn to deal with either their kids, or their colleagues kids, suddenly being around. Do your best to maintain focus and professionalism, but expect cracks, and let those imperfections help you get to know your colleagues better.

The next few weeks or months will be a lot of remote work duct taping even for experienced teams. You, your team, and your families, will learn to get better at this over time. Embrace that you’re learning, expect mistakes, and just plain do the best you can at the moment.

Crash Teaching Online

This is a guest post by my wife Elizabeth Georgian. She’s a professor at a local university and is one of many scrambling to move all her courses online.

This has been an interesting week for academics as we move to online instruction, perhaps for the first time.

At my university, we heard on Monday that we’re going online next week. Needless to say, this has been a pretty chaotic few days. Here’s what I’ve learned and the order in which I found it helpful to tackle the problem. For context, I’m a history professor at a regional public university, teaching four classes, with a lot of general education students. I mostly teach face-to-face, but I’m online in the summers.

Email your students right away

Contact them even if it’s just to let them know that you’re working on a plan. Give them a time frame of when you expect to be able to share more information. If you’re planning on taking your course in the Learning Management System (aka an LMS such as Blackboard or Moodle) offline while you work (more on that in a minute), tell them that, otherwise they’ll panic. Most importantly, let them know that you care about them and that you know it’s a stressful time for everyone. If your counseling center is offering remote help, tell them how to access it.

Let go of trying to be perfect and forget about best practices.

We aren’t teaching online—that takes a lot of time to do well—we’re teaching remotely in an emergency. The most helpful article I’ve read so far was “Please do a bad job of putting your courses online.

Figure out what’s most important for the rest of the semester.

Here are some things that might be your top priority:

  • Delivering content
  • Helping them complete a particular project
  • Supporting students with limited technology
  • Making sure you set up your classes in a way that allows you to care for your own health needs or for your loved ones.

You can’t do it all and now’s not the time to try, so decide what matters most right now.

Ask what technology your students can access where they are.

Depending on your student body and location, maybe all of them will have laptops and high speed internet, but some of us teach at institutions where students may need to finish classes on their smartphone or are returning to rural areas with limited internet access.

Decide if you want to teach synchronously, asynchronously, or both?

Asynchronous instruction is easier for students who have to share computers with partners, who are switching to remote work or learning, it accommodates parents who are suddenly home schooling, and it helps students with limited internet access. But there’s a benefit to real time options too. For some of our students, we are the adult in their life they feel connected to and it’s important to preserve that connection. Optional video office hours or reading discussions can help them stay connected to the class and the university without hurting their grades if they can’t participate.

Plan ahead and minimize changes.

The more of the class structure and assignments you can preserve, the less confusing it will be for your students and the easier it will be on you. Free response assignments will take longer to grade but are faster and easier to set up in most LMSs. If you’re concerned about your students’ access to high-speed internet, keep new work based in printed resources your students already have whenever possible. Avoid timed tests or quizzes or ones that require remote proctoring. Planning assignments you can send by email or snail mail if needed will save you time and effort later.

Find or become a mentor.

If you haven’t taught online, try to find a mentor in your discipline who is comfortable with your LMS. If you have, help out your less experienced colleagues. Distance learning experts are over loaded and they may not understand the needs in your particular discipline.

Hide your course from your students temporarily (warn them first).

Students tend to get nervous when they see you making changes in the LMS. Particularly if you’re making substantial changes or creating new assignments, you will set something up wrong, screw up a deadline, or rethink an assignment, and you want to be able to fix that stuff and make changes before you take the course live. Just don’t forget to reopen access.

Communicate regularly with your students.

It’s a lot easier for them to disconnect from online class than it is in a face-to-face class, particularly right now when they’re stressed, suffering from vacation syndrome, or both. Since they may not be used to online learning, they will need more routine reminders about deadlines, particularly if you’ve adjusted them due to an extended spring break.

Don’t forget to be human.

It’s fine, even helpful, to let your students know you’re stressed too or that you don’t have all the answers. If you’re doing video lectures or office hours, go ahead and introduce them to the people or pets in your home that may wander on camera—I always let my students meet my two greyhounds before they show up uninvited. Now is the time to set some boundaries between work and life, maybe that means not checking your email after dinnertime or taking a walk at lunchtime. Taking care of yourself will help you be a better teacher.

Two greyhounds laying on beds on a hardwood floor.
Henry and Petey.

SC DUG March 2020

This month’s SC DUG featured Chris from MindGrub and Kaylan from Pantheon talking about Load Testing.

Launching a website can be a nerve-wracking experience, often times with developers working up until the wire trying to finish that one last feature. If only there was a crystal ball that would show you a vision of how your site would fare when the masses were set loose upon it.

Good news for you, there is! Load testing.

View the slides from this talk.

We frequently use these presentations to practice new presentations, try out heavily revised versions, and test out new ideas with a friendly audience. If you want to see a polished version checkout our group members’ talks at camps and cons. So if some of the content of these videos seems a bit rough please understand we are all learning all the time and we are open to constructive feedback.

If you would like to join us please check out our up coming events on MeetUp for meeting times, locations, and remote connection information.

SC DUG February 2020

Suggestions for learning the skills we all need to advance.

This month for SC DUG I gave a talk on the importance of self-directed learning for professional development as a developer — or really any other modern career. It was an extension and revision of my December blog post on the same topic. The presentation runs a hair over 30 minutes, and parts of the discussion are included as well.

We frequently use these presentations to practice new presentations, try out heavily revised versions, and test out new ideas with a friendly audience. If you want to see a polished version checkout our group members’ talks at camps and cons. So if some of the content of these videos seems a bit rough please understand we are all learning all the time and we are open to constructive feedback.

If you would like to join us please check out our up coming events on MeetUp for meeting times, locations, and remote connection information.

Wedding Photography for Non-Wedding Photographers

Like most amateur photographers I often attend friends’ weddings with my camera and take a lot of pictures. I’ve also been tapped to be wedding photographer for a few friends and family over time, usually as a planned favor or gift but not always with forewarning. From those experiences I’ve learned a few things about taking pictures at weddings that I think make the couples happy while giving you good pictures to share.

A couple dancing at their wedding, the bride is smiling as they do a spin. In the foreground is their table with their place cards, drinks, and flowers showing.

Have Fun. The whole point of being at a wedding is to celebrate the couple’s love and coming life together. I’ve gone to weddings where a friend or family member got obsessed with competing with the official photographer or couldn’t accept that the couple didn’t really care about having official pictures. Your job is not to get great pictures, it is to be part of the celebration. If that means you miss a great shot or you end up in the back during the cake cutting talking to a buddy you haven’t seen in ten years, that’s just fine. Enjoy this time your with friends and family first, the pictures take second place to everything else.

A newly married couple talking to each other taken from a distance through a window.

Don’t get in the way. Just because you brought a nice camera does not give you permission to be a jerk and push your way to the front of every group. Official wedding photographers can be pretty pushy about getting pictures at the best times from the best angles — it’s literally their job. Your friends are paying good money for their services, so don’t cause them trouble or act like you also can also be that pushy. If you stand next to the photographer you are just duplicating a picture they are already taking, go find a different place to stand. And don’t bother the couple for extra pictures either, they have enough going on and are getting lots of pictures taken of them, they don’t need a friend bugging them to do a few extra.

Newly married couple walking away from the camera have walked passed a metal fence.

Focus on informal images. The official photographer will take portraits, family pictures, and other standard formal pictures. But while they are focused on those, all kinds of other things are happening that aren’t on their todo list — focus your energy there. I like to look for the things that are happening when the couple and photographer aren’t paying attention. Pictures of the couple being relaxed together; of friends who are behind the photographer; of the photographers, DJs, and others who are often trying to be unnoticed. If everyone turns to look at something glance back the other way and see if there is a great picture there to be taken.

A couple looking at the camera cross a space with several people

Take pictures of as many friends and family as possible. The photographers are rightly focused on the couple, their families, and whoever else they were told to focus on. It used to be normal for them to skip nearly the entire reception — after the cake was cut and the bouquet tossed they would bolt — and while that’s changing they still focus on the main action of the dance floors and toasts. But dear Aunt Marge may not be much of a dancer anymore and that pregnant friend from college might be happy to sit the whole time. Try to document for the couple as many people as you can so they have at least one image of everyone on the guest list.

A bride and flower girl mugging for the camera, while the official photographer takes their picture.

Don’t sweat the editing. Leave the perfectly polished images for the professionals. Sure you might want to color correct or make other tweaks cause you enjoy it, but mostly your friends will be happy with what comes in because it’s part of the celebration. The photographer will provide a perfectly edited set (at least they should), so focus on giving your friends a more complete overview of events.

A flower girl seated at dinner, the picture is taken carefully around the table decorations.

Share what you take, quickly if possible. It often takes a busy photographer weeks or months to turn around a set of images that are properly edited. Couples often like to start to share images on social media as soon as possible, and pictures from other friends’ cell phones will pile up quickly, so help them enjoy that part of the celebrations and get yours into the mix as soon as you’re able. I tend to give my friends copies of just about everything. Even if I edit some I will often send the original in case they want the version where Aunt Marge was at the edge of frame and I cropped her out.

Couple holding hands and raising their linked arms in celebration at the end of their wedding.

Be prepared to pinch hit. A few times I’ve been to weddings where the photographer was a no-show and I was the only person around with a nice camera. Take a deep breath, ask the couple what they want from the pictures, scribble a list of the most important images to capture, find a friend to assist in gathering people for group shots, and then do your best from there. While you do now get to push your way to the front of crowds and ask the couple to pose for portraits, your first job is still to make sure the couple — and the guests — are enjoying the day. The union and celebration is still more important then the pictures.

On Being Self-Taught

Eventually we are all mostly self-taught.

From time to time conversations come up among developers, and other fellow travelers, about being self-taught vs getting formal training. Over time I’ve come to realize that the further and further you get into your career, the less the distinction means anything; eventually we are all mostly self-taught.

I’ve written before about the value of my liberal arts education and I stand by my assertion that what I learned in that setting was, and is, valuable to my life and work. But just because something was useful to life does not mean it was the only way to acquire the skills. It’s a good way for many people, but far from the only way.

For anyone in a technical field, and most professional fields really, to succeed over time you need to learn new tools, skills, and techniques. The tools I knew when I graduated college are all largely outmoded or significantly upgraded, and I’ve had to learn a variety of technologies that didn’t exist in 2001.

Within the Drupal community lots of people talk about being self-taught, sometimes with pride sometimes with embarrassment, but in truth very few people were formally trained on the platform. Lots of very successful developers in the Drupal community (and beyond) have degrees in fields like religion and art history, not computer science, and have taught themselves how to do awesome things. In fact, I’ll argue that just about every Drupaler taught themselves most of what they know about Drupal. How they did that can vary widely, but we are a community with few formal training programs and lots of people who stumbled into Drupal trying to solve a non-technical problem. Even advanced workshops at conferences dig deep into one small area and expect you to generalize that knowledge to your projects, which I count as self-teaching. For example, I had a friend ask the other day about how to control the PDO connection settings in Drupal 7 — which I didn’t know how to do, but knew they were similar to Drupal 8 — so I sent him my Drupal 8 instructions and he figured it out how from there. He’s now taught himself how to do what he needed for that project and in the process generalized the approach for whatever he may need next time.

So then it is important for all of us to find, and hopefully share, techniques for self-teaching — even for those who have some kind of formal training. Here are my suggestions for people who are starting out and haven’t yet found the pattern that works for them:

  1. Assume you first solution is wrong. Most of us have, or will, stumble our way through a project where we don’t really know what we’re doing without a lot of support. We usually learn a great deal in the process, and launching those projects can feel pretty good cause you’ve succeeded at something hard. It is easy to get into the habit of assuming the solutions from that project were correct because they worked. In truth those projects are really rough around the edges, and just because we got it to work does not mean the solution was good. Assuming the first solution is good enough forever is how you become an expert beginner which then takes a lot of effort to undo. Once you have a working solution, step back and see if you can think of a better one, or see if you now can guess better search terms to see if someone else wrote up a different solution to the same problem. Admit your work could be better and try to improve it.
  2. Learn a few more programming languages. Most people who are self-taught from the start, and even some who have a BA/BS in Computer Science, only know 2 or 3 programming languages (PHP, JS, and CSS+HTML are often the only languages new people learn at first). One of the courses I took by chance in college forced me to learn 8 in 16 weeks. It was grueling, miserable, and darned useful. I can still learn a new language in just a couple weeks and rarely do I hit a language construct I don’t recognize. You don’t need to go that far. When I first started out a mentor told me you should learn a new language every year, and for several I did. Some of those, not the languages I learned in college, are the ones I use most day-to-day. All told I’ve spent time writing code in more than twenty different languages. That many isn’t terribly useful but the more languages you learn, the more you learn to understand the elements of your primary language.
  3. Learn basic algorithms and to measure complexity. The kind of thinking that goes into formal algorithms will help you be a better developer overall; badly thought through processes is the place I tend to see the largest gaps between developers with and without formal training. Any college-level CS program will put you through an algorithms course that teaches a variety of specific algorithms and force you to understand their structures. If you didn’t go through one of those programs, this is probably the course that will help you the most. On the one hand most of us rarely rewrite these algorithms as on modern platforms some library or another will provide a better version than we are likely to craft for our project. But learning what they are, when they are used, and how to understand their performance is useful for any project that involves lots of data or processing. MIT has a version of their algorithms course from 2011 online, or find one through another provider. Even if you just watch the lectures (really watching, not just vaguely have them on while cooking and cleaning), you can learn a great deal of useful information. I learned a lot watching those lectures as it refreshed and updated my understanding of the topics.
  4. Find and learn from mentors. Notice I used a plural there; you should try to find a few people willing to help you learn your profession, and more generally help you learn to advance in your field. Most of us benefit from learning from the experiences of multiple people, and who we need to learn from changes over time. I had the great experience of having a few wonderful mentors when I was first starting out, and much of the advice they gave me still serves me well. Some of it contradicted, and resolving those contradictions forced me to learn to do things my own way and find my own solutions.
  5. Learn other platforms. This is both a protection against future shifts in the market, and also a way to see how things work from outside your current professional bubble. Drupal developers can learn a lot from writing a WordPress plugin, or better yet an add-on for a platform in another language (think about Plone, Gatsby, or Hugo). Or try to learn to work with a platform like Salesforce or AWS. Other platforms have different communities, different learning styles, and different patterns. Like understanding additional languages, different platforms help you broaden your understanding and provide insights you can bring back to your main work.
  6. Learn to give and take criticism. Part of learning is getting feedback on your work, and part of being on a team is sharing feedback with others. If you took art or music classes in high school or college you probably learned some of the basic lessons you need here, but if you didn’t, consider taking one now at your local community college or art center. The arts are wonderful for getting experience with criticism. For all art is often open to interpretation, it also requires specific skills. If you play off-key, it sounds wrong. If your sculpture collapses under its own weight, the project failed. If your picture’s subject is out of focus, you need to re-shoot it. Sure there are brilliant artists who can violate all the rules, but if you have never experienced an art critique you are not one of those artists. The experience of getting direct, blunt, and honest feedback will help you understand its value and how to give that feedback yourself.
  7. Share what you think you know. We learn a great deal with we teach others. Both because it forces us to refine our thinking and understanding so we can explain it, and because learners ask questions we cannot answer off the top of our heads. This can be user group or conference presentations, internal trainings for your team, mentoring junior developers, writing a blog, or anything else that gets your from learning to teaching. It’s okay if you’re not 100% right, that’s part of how we learn. A few years ago I was doing a joint project with a junior developer who asked me a lot of questions, and pushed hard when she thought I was making mistakes. When she asked why I was selecting a solution or setting a pattern, she was never satisfied with “because that’s the best way to do it.” She wanted me to explain why that was the best way. If I couldn’t walk her through it right away, I went back and hunted for reference material to explain it or if that failed I tested her counter ideas against my plans to see if I was missing something. While I was usually right, not always and we did make changes based on her feedback. More importantly it forced me to show my work in fine detail which was a good exercise for me and gave her insights to help her do better work.
  8. Find your own patterns. At the start I said this list was for people who didn’t have their own patterns yet. In the long-run of your career you need to figure out what you need to know to get to where you want to go next. Eventually you will need to find a pattern that works for you and the life you are living. No one can tell you what that is, nor how to learn it all yourself. Experiment with learning styles, areas of work, roles, and types of projects as much as you are able until you feel your way to the right solutions for you.