Even though software development is often seen from a technical perspective, there's a softer side to it. It is hard to avoid not having to work with people unless you are a mythical programmer living in a cave somewhere in Finland.
To understand the topic better, I'm interviewing Aimee Knight about working with junior developers.
I'm a former competitive figure skater, graduate of the Nashville Software School, and software engineer at DramaFever, a subsidiary of Warner Bros.
Outside of work, I'm a weekly panelist on the JavaScript Jabber podcast, and I regularly participate in a variety others. In my spare time I love speaking at conferences, playing with new technology, running, working out, and trying new flavors of Kombucha!
My work with junior developers comes mostly in the form of mentorship. Indirectly, I also believe I'm able to reach juniors on a deep level by being a panelist on JavaScript Jabber and, through my conference talks and blog posts.
As far as mentorship, I've worked one on one with developers in a more formal sense where we set up weekly chats, and I also devote a substantial amount of time each week making myself available for more one of conversations on the phone, through Twitter DM or email. I've found the latter to be the most common.
In regards to JavaScript Jabber, I usually spend a bit of time prepping for each episode, and I always try to write down the questions that I initially have since I know others getting started will probably be in the same boat!
For my conference talks, I spend a lot of time brainstorming ideas and organizing my content in a way that will make it approachable to newbies, but also valuable to someone who's been programming for a decade. That is the most challenging aspect of speaking for me, but as someone newer, it's essential to me.
Working with junior developers is only slightly different from working with a mid-level or senior developer in my opinion. With junior developers, it's imperative to have a level of awareness in the situation.
In other words, a lot of juniors feel intimidated, so it's important to check in often and ask direct questions like, "does that make sense"? It's far too common for newer developers to not speak up due to the intimidation factor. I also advise when pairing to resist the urge to take over and let the junior drive!
I hear senior developers express to me how valuable and thought to provoke it's been for them when a junior presents them with carefully thought out questions. Statistically, it's also precious for seniors to work with juniors. Mentors are six times more likely to be promoted, and 20% more likely to get a raise.
Besides that, working with a junior can do wonders for burnout. Most juniors, especially those from boot camps are extremely hungry. The energy and passion they have for the field are contagious!
There are so many things I could name, but personally, I'm most excited about PWA's and AI! As far as PWA's, I've always wanted to build for mobile, and even in web development, I think AI is going to have a huge impact.
There are already things like The Grid that use machine learning to build websites! I recently bought Grokking Deep Learning and am excited to dive into it.
My advice is to get comfortable being uncomfortable. I have a talk on this... that's how strongly I feel about it being the key to success. For me, some of the hardest obstacles in my journey have been with my self-doubt. If you're aware of that though, you can shift your focus.
We are all human, and we have a finite amount of mental energy. So, it's important that you spend it wisely! If you can learn to become comfortable with the feeling of not knowing, you're able to focus solely on the challenge at hand, and you'll inevitably be able to tackle it that much faster!
I also encourage juniors to try and find a mentor or programming buddy. If you can find a mentor, it's probably the fastest way to progress. Developers who received mentoring were promoted five times more often than those who didn’t.
If nothing else, you can try to work on some small open source projects and get mentorship in the form of code reviews there. Your First PR is an excellent resource for finding newbie friendly projects.
I'm a huge fan of Kyle Simpson, so I'd be excited to see an interview with him next! I love his approach to learning vanilla JavaScript over focusing on a framework when you're getting started, and his content is comprehensive while also being completely approachable!
My latest deep dive topic has been CSS and browser internals. I spent two years as a full-stack JavaScript developer and made the switch to front end last summer. Working for an affiliate of Warner Bros means that design implementation is critical! It wasn't like the previous applications I'd worked on where the designs could be fudged a little. Applications for Warner Bros properties need to be pixel perfect!
I quickly realized I struggled with debugging CSS in the same systematic way I debugged my JavaScript. So, whether you're a newer developer or you've been programming a while you may be interested in a blog post I just finished all about this!
Thanks for the interview Aimee! I've found working with people from different backgrounds helps to give you perspective. Magic happens when you combine the views and find something new.