As a Software Engineering Manager, how can I continue growing my technical skills?
A lot of the techniques I recommend may apply equally well for engineers who aren’t making the switch to management, but I do think the risk is higher for managers and so it requires more deliberate investment. Engineers who are spending most of their time writing code are learning by doing, and are constantly reminded of how important it is to learn new things. However, managers may spend most of their time on non-technical issues, and so it’s easy to under-invest in technical knowledge.
The first step is to convince yourself that technical knowledge is important to your career as a manager. Firstly, while I do think that great managers can still support a team well if they are not technical experts in that area, all else equal, more technical knowledge will make you a better manager. For starters, it will be easier for your team to trust you and find you credible. It will also enable you to ensure your team is making the right technical decisions. Next, it will make it easier for you to coach your team, assess how they’re doing, and teach them to grow their own technical skills. Finally, especially in a field like software, there’s a risk that the industry will “drift” and your knowledge will become stale. So even if you’re in good shape now, it will still require constant investment to maintain your level of understanding.
Next, you need to find techniques that work for you. I find a mix of the following to be helpful:
Reading: I probably spend 30-60 minutes per day reading.
Blogs and articles:
I use Feedly primarily for this, and whenever I find anything online (on social media, etc.) that hasn’t made it into my Feedly, I add the source to Feedly. I also basically have a habit that whenever I have some downtime I try to open up my Feedly instead of social media. Hundreds of articles make it into my feeds, and though I only read a small subset of them, it’s still valuable to skim the headlines to see what people are writing about. So this also works a bit like a “discovery” mechanism to help me identify things I can invest more in learning using some of the techniques below. Basically, if I find something that seems like it’s important to my job or to engineers on my team, but I feel like I don’t understand it and can’t coherently explain it, it’s something I’ll find a way to learn more about.
More recently, I’ve tried to find curated or community-based newsletters. To name some of my favorites, I use DiscoverDev, O’Reilly’sFour Short Links, and HNDigest (which is just a daily aggregation of the top threads on HackerNews, that way I don’t have to remember to visit it myself). Sites that have discussion threads attached to links are valuable for supplemental content and to help me gauge the credibility of an article if it’s on a subject I know less about. If you have other recommendations, leave them in the comments and I can add them!
A lot of people I look up to recommend investing in a good Twitter account, but again, I’d rather not have the upkeep of building out my follows (I don’t use Twitter that often). There are some hacks, like using Nuzzel to see someone you look up to’s Twitter feed.
There’s always a bit of a lag between what’s happening in industry and what makes it into books, and they’re also a larger investment (of time and money), so I use them mostly for meaty, more evergreen content. Things like writing clean code, technical architecture, systems design, etc. are great book material. Sometimes, books are also a great way for me to pick up a new technology (I skim the book, then can use it for reference later), but if the technology itself is really new, technical documentation might be a better way to learn.
I also read a lot of non-technical books (and to force myself to understand and remember then, I try to write summaries on Quora).
Quora is also a great place to find content that is a little more authentic and less polished than books or even blog posts. You might think I’m biased since I work here now, but I’ve always found it a valuable resource, even before I joined the company (in fact, it’s one of the main reasons I was so excited to join).
Talking to people:
I try to stay in touch with smart former classmates and colleagues. The primary reason is mostly because I value the relationships directly, but as a side effect, it’s an awesome network to tap into for learning things. Whenever we catch up, I try to ask them questions about how their current company does things, or what they’re learning and if they have any advice for things I can learn.
Another great channel for learning new things is interviews. As a manager, you’re probably interviewing other people from different companies all the time. I use this opportunity to ask people what sort of things they’re learning, how they’ve solved certain technical problems in previous roles, and how they might solve certain technical problems I or my team are facing at the moment. It’s actually a great way to both learn things, and get signal on what sorts of things a candidate finds exciting and how they solve problems. I’m also “meta-learning” as I do this. For instance, if they tell me they used a particular technology to solve a problem, I asked them how they learned about that technology in the first place. You should, of course, make sure you don’t do this in an exploitative way (for instance, don’t ask a candidate to divulge anything that might be sensitive or confidential).
I find it really valuable to carve out time to just write code and try new things. As a manager, I don’t have as much time to do this at work (and also, I don’t want to necessarily be limited by my company’s current projects), so I often do this outside of work. For instance, things that I’ve explored within the past few months include: Amazon’s SageMaker, Terraform, Apache Spark, Apache Kafka, and Golang. Sometimes it’s just getting the tool set up and playing around with it, doing some tutorials, or building a fun side project. Trying things out helps go beyond.
I actually have a whiteboard at home next to my desk where I maintain a list of things I’d like to try out if I had more time. That way, when I do get that random downtime, I use that list. Random downtimes in my past have come in the form of everything from cancelled plans on a weekend, to being stuck at home due to really bad weather, to being under curfew during the Egyptian revolution.
Meetups: I’d like to do more of these, it’s just logistically more difficult than some of my other techniques, and I haven’t cracked the best way to make the most of the time I spend on them.
Conferences: Even though I don’t attend them in person all the time, many conferences will upload videos or summaries of talks given there, and those tend to be really valuable as well.
Find something that works for you. Different people learn in different ways, so if you find it enjoyable, and can incorporate it into your normal work/life time, you’re a lot more likely to stick with it.
This article is shared by www.itechscripts.com | A leading resource of inspired clone scripts. It offers hundreds of popular scripts that are used by thousands of small and medium enterprises.