Since I started my professional career, I’ve worked with countless developers in person and online. I’ve done 1:1 sessions, conference talks, guest lectures, and even taught an 8-month Bootcamp in 2019 (shoutout to the Launch Code crew here in Memphis).
During all of those engagements, there’s one question I’ve been asked over and over again…
“What advice would you give someone looking to become a developer?”
There are lots of variations to that question, but they are all pretty much the same. Here are my top five pieces of advice!
Here’s the number one piece of advice you’ve probably already heard, but probably need to hear again. Just build something!
Want to get better at writing code? Write code! Crazy huh?!
First off, tutorials are great. I’ve learned a ton from them, but I learn so much more from pushing myself to build something further on my own. It’s funny how a “simple idea” becomes pretty involved when you start working out the finer details.
I know what you’re thinking… “but what do I build?”. Well, think about something that would be useful for yourself. I’ve been playing lots of disc golf recently, and I could use an app to help track my scores.
Start with a small idea, build it out, and then expand on it!
This might start out simple, but I could easily build out more advanced features like authentication, saving scores in a database, sharing scores with friends, etc. The cool thing is you’ll be motivated to finish an app that you benefit from.
Building my personal site has been quite an amazing learning experience, and it’s one of the best decisions I’ve ever made.
For more ideas, check out this repository from Florin Pop.
One of the other big benefits of building out a few sample projects is that you can (and should) use them on your portfolio. When you’re looking for your first job, you don’t have the professional experience to show, but you can talk about side projects you’ve worked on.
Building a Harry Potter Quiz app for Android helped me get a job at Microsoft!
During my senior year of college, I interviewed with Microsoft, one of the top tech companies in the world. In 90% of my interviews, I talked about the Harry Potter Quiz app I made for Android. They loved that I was passionate and capable enough to learn on my own to build a working application. These are the kinds of conversations that set you apart from other candidates.
It’s common to jump into programming and quickly feel overwhelmed. Every day, you’ll hear people talking about the hot new library, framework, etc. It’s easy to get lost in the whirlwind and not know where to start or where to go next.
Strive for understanding, not speed!
Also, as you spend more time programming, pay attention to the things you enjoy and focus on them. I think it’s good to get experience with different aspects of development, but following your interests helps you stay engaged while learning.
Focus on the things that you enjoy the most!
What do you get most excited about? Frontend, backend, design, databases, infrastructure, automation? Don’t be afraid to branch out and gain experience in different areas, but make sure to let yourself enjoy the things you work on.
“Invest in yourself” is the single best piece of advice I’ve ever gotten in my career. It may seem obvious, but often we fail to make intentional efforts to improve ourselves. That has to change!
Spend some time thinking about what might be holding you back from getting your first job.
Need to improve your technical skills? Algorithms? Data structures? React? Find tutorials or courses online and practice, practice, practice.
Need to improve your people/career skills? Maybe you need to work on your communication skills? Reach out to a friend and see if they can conduct a mock interview for you.
Want to become a public speaker? Sign up to give your first talk at a local (or virtual) meetup! Meetups are often in need of speakers, and they are a great place to get started! The Code Connector Meetup is always looking for lightning talk speakers.
Whatever it is, search for resources you can use to help improve those areas. Honestly, YouTube is a great start for almost anything! I recently started picking up woodworking on YouTube 💪
Historically, I’m a pretty cheap person, so financially investing in myself is tough. I’m always looking for the cheapest option, but I’ve learned in most cases you get what you pay for. Sometimes, you just have to spend the money on the resources you need. Here are a few things I’ve spent money on.
- tons of courses (from Udemy, Wes Bos, Level Up Tuts, Frontend Masters, etc.)
- new laptop, monitors, hard drives
- recording equipment for streaming and creating videos
I know many of us don’t have a lot of disposable income (my wife and I follow a pretty strict budget ourselves), so don’t think you have to spend a lot of money.
Maybe one month you take $10 to buy a course on Udemy…
Maybe you save $10/month for a few months to buy a more expensive course…
Maybe find a freelance project for $1000 and use that for a new computer…
Overall, if you have the means, don’t be afraid to pay for the resources you need to improve yourself and your career.
My personal motto is Learn Build Teach.
- learn constantly (hence the many courses I’ve purchased and taken)
- build projects based on what you learn
- teach other people how to do it too
I built a Discord Server around the philosophy of Learn Build Teach. I'd love to have you there! Join the Discord.
One of the biggest benefits of teaching others is it helps reinforce the things you know (or thought you knew). Trying to explain technical concepts helps you gauge how well you actually understand a topic yourself.
Overall, teaching helps you learn…seems ironic but it’s true!
Keep in mind that teaching doesn’t always mean standing in front of a classroom. Teaching means creating content that people can learn from, and this can have many different forms.
- tweeting a code snippet
- writing a blog article
- creating a YouTube video
- doing a live stream on Twitch
Here are a few of the benefits of creating content…
I mentioned earlier that side projects are great to have on your resume. Well, so are blog posts, videos, etc. As I said, being able to explain technical concepts in an understandable way is a skill. If I was looking to hire someone, the ability to help teach others on my team would be an attractive characteristic.
Teaching is one of the big ways I made a name for myself during my career at FedEx. My ability to teach others in my organization helped me establish myself as a leader in technology.
Gaining more followers on Twitter, YouTube, etc. might seem vain, but practically speaking it can be very useful. The more people that know about your content and your brand, the more people that reach out to you about job opportunities. Again, I’d rather hire someone with technical skills as well as the ability to communicate effectively and teach others.
You can also use the content as a resource for yourself. By documenting the things you learn in a video or blog post, you create a reference for yourself going forward. If you ever forget how to do X in the future, go back and read your post.
I’ve come across my previous articles/videos many times in the past when looking for an answer to a specific problem
I use creating content as a way to force myself to learn new things. For instance, I’m currently learning more about Next.js. Well, if I give myself a deadline for creating a video in the next two weeks, I’ve now given myself a reason to learn. By forcing myself to create videos on different topics, I learn more and more.
I've created 100s of videos on YouTube, and I learn something new with each one!
After teaching an 8-month Bootcamp, I realized that the most successful students were the ones who invested in each other. They were the ones who asked the most questions, who shared the things they learned, came out to meetups (pre-COVID), etc.
As your learning and looking to build a new career, you need people in your circle that you can trust.
You need people who won’t judge when you ask a question you’re embarrassed to ask.
You need people that you can learn from.
You need people that you can teach something to (benefits of teaching above ☝️).
I built a Discord for the community around my motto, Learn Build Teach. Join the Discord.
Honestly, you just need something to feel like you’re a part of something.
You need to know it’s not just you.
You need to know that you’re not the only that faces imposter syndrome.
You need to know everyone else is constantly learning as well.
You need to know experienced developers Google the shit out of everything too.
Connecting with other people in different stages of their careers gives you some perspective and (hopefully) a sense of belonging, and that’s a pretty powerful thing.
I love programming because it’s simultaneously one of the easiest and difficult careers to get into. It’s “easy” because there are so many resources. You don’t need a 4-year degree (at many companies). You can literally change careers from watching FREE YouTube videos and building out a nice portfolio.
At the same time, learning to program is just difficult, especially when you try to do it in isolation. You need a community that you trust to support you. Once you find your rhythm of learning and sharing, you’ll be in a good spot!
As you're learning I'd love to hear about what you're working on. Feel free to share with me on Twitter!