How to Self-Mentor

Over the years, I've often found myself wishing for a mentor, but have only had a proper mentor twice (both were senior co-workers). As I got started in developer relations, I again felt like I needed one, but I really had no options for that being remote and mostly autonomous (at the time, my job is a lot more collaborative now). Instead of throwing my hands up and hoping for the best, I decided to break down why I was feeling that way and think of creative ways to get similar results.

Let me share with you what I've learned.

Why We Want a Mentor

Why is it that we want a mentor? What's the outcome we're looking for? For me, it's usually some combination of the following:

  • I feel directionless.
  • I don't know if I'm learning the right thing.
  • I don't know whether the code I'm writing is good.
  • I can't seem to finish anything.
  • I'm just down in the dumps.

On top of that, I'm also feeling so overwhelmed that I don't want to dig in and do the work required to research these answers myself. In short, I'm looking for a silver bullet in human form. No, not Martin Short in Arrested Development.

Martin Short in Arrested Development

Is that you, too? Often we're looking for some mythical senior developer or lead architect somewhere to tell us the one thing we need to learn or build that's going to rocket us to a FAANG job (Facebook, Amazon, Apple, Netflix, Google), a more senior position, or Twitch stardom. Those things don't happen in one fell swoop, though. They happen over years of focused effort.

So, on a deeper level, what are we looking for when we want a mentor? We generally want:

  • Direction: We want someone to break down for us what to learn and what not to worry about yet.
  • Quality Control: We want someone to check our code quality to make sure it’s right. As we get a little more advanced, we also want someone to let us know if what we’re doing is a “best practice.”
  • Accountability: We want someone to check in on us and keep us from falling off the wagon of working towards our goals.
  • Encouragement: We all want a cheerleader for when we're running low on motivation. Nothing wrong with that.

Is there a way we can achieve those same results without having one single mentor carrying the burden?

How to Self-Mentor

To self-mentor, we basically need find suitable replacements in all four areas. Here are some things that have been helping me in each of those areas.

Direction

Figuring out the direction you want to go, and whether it's the right one, is a little bit of art and a little bit of science. There are a few different sources for this you can use:

  • If you have a development job and a boss, that's going to set a lot of your direction. We often don't feel like this is valid because the day job rarely feels cool or exciting enough to feel like we're making progress. Truthfully, you are making more progress just by racking up experience points. Don't worry that it's not in Hip Framework X — the beauty of programming is that experience transfers between technologies.
  • Seeing what's trending in both the job market and what people are talking about is another good indicator of a direction you could go. Be wary of chasing every new technology that pops up on Twitter. It's better to go a little broad at first as you build up experience. A lot of the coolest technologies disappear in a year.
  • What are people you admire and respect doing? I have a handful of people I follow as "trendsetters" because I trust their judgment. They're not jumping around between flash-in-the-pan technologies, so I can tell when something is worth my attention.
  • Here's another one people overlook: money. That could be freelance work, a full time job, or a product like a book or video course. If someone is willing to pay you to code in or teach a technology, that's a good sign you're doing something right. There are a lot of surprises here. I'm still able to pick up cosulting clients for migrating from AngularJS to Angular a few years later.

Quality Control

This is probably the trickiest of the group because tech is always changing. You’ll need to “triangulate” a few different sources as you work through this.

  • A lot of coding tutorial websites like AlgoExpert and Execute Program have built-in IDEs that run tests and check your work. This is very helpful for just knowing if your code runs and is syntactically correct.
  • While conference talks are great for ecosystem news, they can also help you identify patterns and best practices that industry leaders are using.
  • Courses, articles, and training from high-quality sources can also show you patterns and best practices.
  • Never underestimate the value of the docs. Docs are meant to not only teach you the nuts and bolts of a technology, but also the best practices.

Accountability

Here are four different places you can find accountability:

  1. Individual accountability: find a friend and commit to each other to do something. Start with short, small commitments (e.g. a small project in a week). It's like a gym buddy, but for code. An excellent medium for this is Twitch. Live stream building a project together!
  2. Learning in public: Writing out what you're learning about doubles as a means of accountability. This is even more true if you commit to a regular cadence. Pro tip on that: give yourself an end goal. For example, "Write lessons I learned studying JavaScript every Friday for four weeks" instead of "Write every week about JavaScript lessons." You're much more likely to stick something with a hard stop. You can always start another round!
  3. Group challenges/learning cohorts: There are various groups challenges that you can get involved with. For example, hashtags like #100DaysOfCode and study groups for things like JavaScript30. There are also groups cropping up as "learning cohorts," which are kind of like book clubs for coding.
  4. Paying a consultant: This isn't always an option, but sometimes the shortest path between two points is to just pay someone to help. A few years ago I hurt my back. I had to do a bunch of tedious exercises to get better. Do you think I'd have done them if I wasn't paying a physical therapist to pester me? Heck no! You can often just offer to pay someone for an hour of their time to pair up with you on something. It might feel expensive, but it also might save you tens or hundreds of hours.

Overall, remember: deadlines and dollars get stuff done!

Encouragement

Don't neglect this part of the process. We all need support! Sometimes we just need someone to let us know we're doing alright. Heck, I know I do. We're also notoriously bad at "feeling" our own progress. Here are some ideas on where to go:

  • Discord servers. I've been so happy to be part of different Discord groups. One that has been particularly welcoming is called Code Cafe Online. A lot of Discord servers also have a "celebrating wins" channel, which is a great idea.
  • Twitter friends. Sometimes you just need people on the internet to cheer you on.
  • Slack channels. Groups like CodeNewbie have dedicated Slack channels that can be a great motivation boost. Soe
  • My email list. No but really, feel free to write me whenever you need a boost.

Endless Mentors

Use the framework I've laid out above to build yourself a system to learn and improve. This unlocks basically an endless list of mentors by proxy. Rather than seeking out the One True Mentor, figure out who you want to be like and observe them. What are they doing well? What is driving their success? You can have endless mentors if you know what to look for and how to harness those observations into action.

Warning: implement this slowly!

If you've read this far and feel overwhelmed, don't worry. That's normal. Remember: building a system like this doesn't happen overnight. Take it one step at a time. First pick the area that you feel like are feeling the most pain. Are you feeling lost? Are you frustrated by your code quality? Are you never able to finish projects? Are you feeling down and ready to give up? Work on these one at a time and don't get discouraged if the first attempt doesn't work. Keep at it. Remember: it's not a failure, it's a test.

If you liked this article, hop on to the Developer Microskills newsletter. Each week, I send out a practical, actionable way to improve as a developer and developer advocate.

No Comments Yet