I often tell people that there are entire worlds of jobs outside of the world of software engineering that are still in tech but don’t involve coding. A lot of people are very surprised to hear this. One of the reasons I think they’re so surprised to hear this is that you can’t major in a lot of the jobs that we have in tech in university. Here’s a list of jobs that are currently available (and staffed by many people at companies across the planet) that to my knowledge there are no majors for at the major universities:
-Community manager or developer advocate
-Project manager
-Technical writer
-Sales engineer
And yet there are people all over the world who are doing these jobs right now, often in as lucrative a role as the engineers they are working with. How can this be? All of these people are people who learned to do it on the job. And yet, in order to get many of these jobs, you need to have had the job experience to be qualified to do them. How can that be? Because we have a Catch-22 around this entire class of roles where industry knows we need them and has created these roles but universities haven’t caught up and made curriculum for them.
I myself am a program manager who was entirely trained on the job in a number of roles that I had to learn entirely in the “field.” I got more and more skilled at the roles I was doing, but when I started out, I had to have someone who was just willing to take a chance on me when I had no experience. I often tell the story of being put into network deployments at Google having no experience in networks and no experience in project management…so I was perfectly qualified for the job (har). There are indeed certifications in program management, many of them very respected, and yet in order to get the jobs in this field you need to have the certification as well as the job experience. I don’t know a lot of companies that will hire someone who just has a certificate. I’m sure they exist, but they’re hard to come by and not well known.
And so we are left with an entire set of jobs that someone has to be willing to take a chance on you in order to get. Why is that?
What if I was a student in high school who woke up tomorrow and decided what I wanted to do with my life was become a community manager? What would I do in university? I tell you what I’d do right now: I’d major in something else and hope for the best when I got out of school. That seems a shame and like a missed opportunity in this field.
Now, I’m not necessarily arguing that we should create an entire degree or course of study for 4 years for someone to learn to be a community manager (although I would argue there’s certainly 4 years’ worth of material I could teach on program management). But I think people should be able to express interest and learn about these topics when they’re going to school. Maybe a minor? Maybe an emphasis? The industry needs to have another way to hire for these roles when people are out of school. I know a lot of folks who are in these fields and the way they parlayed this experience to their work was simply that they majored in computer science in school and then “dropped out” of coding once they were getting into the job market. They instead decided to use their technical knowledge and apply it to another field. Certainly most of the people I know who are in tech writing are not people who majored in tech writing at school but instead in either English or Computer Science or both. The problem with so many of the people in these fields majoring in computer science in college in order to get into these fields when they’re out of school is as I’ve said in public before we have a lot of barriers to entry for people to major in Computer Science that already exist and are creating walls for these people. And that’s just for the people who know they’re interested in Computer Science! What about the folks who aren’t sure yet (and I would argue are exactly the people who are best served by looking at a career that is still in tech but doesn’t involve coding every day).
There’s got to be a better way, right? Surely this is a solvable problem with all the smart people we have in the room.
What’s up with all these roles to be a community manager or a program manager that require people to have 10 years experience in this field? That’s absurd and not actually useful, right? A lot of the developer advocate roles I see posted nowadays are roles that require a Computer Science degree, not I think because you’re going to be working on algorithms everyday with your community, but instead because I think they have no other shorthand for “we need you to be able to talk tech.” Wouldn’t the better way to address this be to simply find ways to test someone on that? Why not have a set of questions that ask the candidate to explain technical concepts to you that you understand and can gauge the person’s technical knowledge from?
Here, I’ll start with a suggested question that would glean a person’s technical knowledge:
1. Could you explain recursion to me?
2. What is A/B testing?
3. How do you make the burn rate for a team faster? Can you? Should you?
I don’t have an answer to that last question, and I would love to know what other folks think is a good answer to that, because I would like to subscribe to your newsletter. In the meanwhile, couldn’t we find a way to test people on the skills we want them to actually have for the job and then have that link to the job in question? Why are we having job experience translate to a job? Surely everyone has to start somewhere. Why can’t we have junior community manager roles just like we have junior software engineer roles? Why can’t we have junior tech writers? And should those roles require 10 years of experience and a computer science degree?
In the meanwhile, why don’t we work up the curriculum for teaching someone to be a community manager and see if it’s that different from being a human resources person, and then maybe we can have a larger conversation about the fact that there is so much overlap between the two things and we in tech are just using different words for the same thing. But that’s another blog post.