Over the past few years I’ve been mentoring rising Software Engineers and really enjoying seeing the growth as these folks enter into this fast paced industry. I’m often asked for advice on ways to achieve success. Here’s my list of 11 recommendations:
I like to start by saying:
You chose a field where the learning never ends. The technologies, patterns, techniques, etc. are constantly evolving. That can be extremely exciting but also overwhelming at times. You’re thinking about it in the right way. As you’re getting started, and even well into your career, here’s my advice.
- Avoid jumping onto the latest bandwagon. Whether thats a framework, language, library, design pattern, etc. If you’re constantly jumping from one to the other you aren’t able to be successful in any of them.
- What’s hot? Understand the technologies, trends, patterns that are being talked about in the community. Avoid jumping on them right away (see #2) but being aware of them is ok. A healthy curiosity for new technologies is great to have.
- Consume everything. Listen to podcasts, read blogs, articles, etc. but do so in moderation. If you’re constantly consuming you’ll likely feel like you’re falling further behind which is definitely not the case.
- Imposter! Be familiar with Imposter Syndrome, every professional developer experiences it throughout their career, it’s normal and you’re not alone. Don’t let it stop from pursuing anything.Build something.
- Build something everyday. Build something that no one will ever see. Build something that is embarrassing. The more you create using the skills you acquire the strong you will be as a developer all around. This will improve your debugging abilities, your Googling abilities, ability to understand documentation. It can be something fun or something useless. Follow a simple blog tutorial, etc. This gives you something to show in your portfolio or talk about in interviews.
- Be a hoarder. Start compiling a repository of code snippets, etc. that you can rely on. These might be the result of some great Google finds or StackOverflow answers. If you have you’re own library of resources you can find information much faster then next time. Google is your friend, don’t be afraid to use it! I capture a lot of this kind of information in blog posts or GitHub Gists, find something that works for your flow.
- Learn your flow. Employers are most interested in your ability to join a team and be successful and productive as quickly as possible. Don’t worry about being a rockstar in a specific technology. If you have your processes and tools dialed through repetitive practice the better you’ll be able to start contributing.
- Look at a lot of code. In libraries, blogs, tutorials, GitHub repos, etc. The more you read code the better you will be able to reason about code. Seeing how a project structures their code, names their variables, or documents the code will help you define how you write your code.
- Take a break!! It’s easy to get sucked into learning and doing and coding and thinking about coding non-stop, 24/7, but you need some time away from the computer. Find a hobby that is away from the screen, something that you enjoy. For me I do a lot of woodworking, building furniture or stuff for friends. It’s another way for me to exercise creativity. Others like cooking or something outdoors. Taking time away also let’s your subconscious process everything you’ve been doing. I was a few years into my career before I realized how important this really can be.
- Collaborate with others. Through a small side project, Meetup group, etc. It’s amazing what you can learn from others.