Sometimes the physical act of starting can be the biggest obstacle in the way of reaching any goal. If you’re a beginner developer or just starting out in your career, you may feel overwhelmed with all the advice floating around. You might also have a fear of learning the wrong programming language (spoiler: not really a thing), intimidated by coding exams, or nervous about engaging in social media discussions.
While all of these feelings are natural, there are several ways you can overcome them. We sat down with Rizel Scarlett from our Developer Relations Team to get her advice based on her own experience.
How important is choosing a programming language speciality in the beginning?
When you were a kid, you had to learn some language to express yourself. With that foundation, your brain can build on that as you learn a second or third language using syntax and grammar.
Fundamentals for programming languages include:
- Creating and calling a function
- Creating variables
- Understanding and explaining conditionals
- Making API calls
- Understanding scope, string, array manipulation, and data structures (which will all be different based on what language you’re working with)
If you can demonstrate fluency in these fundamentals for a particular language, most hiring managers understand that you are not limited by your current language. Read through The 2021 State of the Octoverse Report shares popular programming languages over the years, if you want a detailed breakdown of language popularity and usage.
Should beginner developers learn traditional languages before more emerging languages and frameworks?
Rizel: I’ve heard of people learning a framework before mastering the fundamentals and doing just fine. I personally don’t think that would’ve worked for me. Since a lot of these frameworks are based upon fundamental languages, I think you’ll have a better grasp of the framework and an easier time learning the framework if you already know the language. Think of frameworks as a dialect of a language: it’s going to be hard to pick up AAVE (African-American vernacular) if you don’t know English, but it’s not impossible to do.
If I don’t have a full-time position as a developer currently, what can I do to gain more experience?
Rizel: My first and top suggestion would be exploring the open source community because that is most similar to the experience of working on a team. You’ll be making pull requests and working in a cool place that already exists, and it gives you something to stand out from the rest of the applicants.
My second suggestion is to start your own personal passion project, and make something that pushes you to create something out of the ordinary. Start with a project you’ve done in a tutorial or bootcamp. Push yourself to think, “what else can I add to this?”
Finally, go ahead and apply to apprenticeships and internships. It’s not something that entry-level developers often think about (but any non-traditional developer is), but I think it’s a good opportunity to get your foot in the door without having too much responsibility.
I’m interested in working on an open source project, but have no idea where to start. Any tips for choosing a project?
Rizel: You can start with github.com/topics where you can find open source projects using programming languages or tools you’re interested in. When you’re new to an open source project, you should look for issues with the label good-first-issue. This indicates that the task doesn’t need legacy knowledge of the project, and it should be something that a new developer can take on. There’s also a whole bunch of tools that aggregate and identify good-first-issues in projects.
First Timers Only provides a list of aggregators that find those good first issues for you. It also has a tutorial for you to learn and understand the Git workflow for contributing to open source projects. It’s slightly different from contributing to a project you own or a project owned by your company.
There’s also a Twitter account called Good First Issue that tweets issues that are labeled good first issue. I like it, because you can immediately get a notification on it before someone claims it. Tip: good first issues can be a little popular.
What should I include in my portfolio?
Rizel: First of all, I think that it’s completely okay if your portfolio is simple. Include a link to your code–whether that’s hosted on GitHub, GitLab, or BitBucket. This allows recruiters and hiring managers to see evidence that you can code, track growth over time, and get insight into your problem-solving skills.
If you want to go all out, you can include a bio and fancy stuff that shows off your personality or a project you worked on that you’re passionate about. But I think at the most basic level, you can just have a quick about you section, links to your socials, and links to your hosted code.
How should I go about seeking a mentor, and what can I expect from this type of relationship?
Rizel: You can seek out mentorship by joining a formal program. I got a mentor from Girls in Tech or the women who code Slack channel. You can gain a mentor from your school or coding bootcamp that you graduated from.
Groups like #100Devs have people who are happy to mentor. You can also interact with people on Twitter, and not just slide in their DMs saying can you mentor me, but you can use them as informal mentors and inspiration by learning from what they tweet and blog about. Sometimes people on Twitter post that they’re open to chatting with others via Zoom. Book time with them, and get a chance to learn from them. Be aware that they’re busy, and most importantly, don’t expect them to find you a job.
You and the mentor can set the terms of what you’re looking for and expectations. Normally, I’m looking for help brainstorming ways to solve issues I’m facing in the industry, like career growth, performance evaluations, or interviewing.
Tip: GitHub DevRel Team members, Michelle Mannering and Damien Brady, teamed up on this post for how to make the most out of a mentoring relationship.
How can I use social media to establish my brand the right way?
Rizel: Use whatever medium you like the most to document your journey, whether it’s Twitter or another platform, and use that to share what you’ve been working on, any new skills you’ve learned, etc. You don’t have to be an expert to create social content. Post as you learn, even if you feel like it’s small. Open source is all about sharing and collaboration, so don’t be nervous to share your code/work with the community.
The industry needs more vulnerability and honesty about things people don’t know. That can help build your brand as well. Don’t ever be afraid of coming off as “too beginner.” People will support you.
Who are some great developers to follow to help keep me inspired?
On Twitter, I highly recommend following:
I also post about what I’ve learned, and I’m transparent about what I know, so give me a follow as well @blackgirlbytes. 🙂
I’m afraid of coming off as too beginner if I respond to anything. How do I overcome that?
Rizel: I understand worrying that you would come off as too beginner. I think we’ve all felt that before. But there’s nothing wrong with being a beginner. You do know things. Show what you know! Also, be honest about the things you don’t know. The industry needs more of that.
How should I approach job applications?
Rizel: Apply to as many positions as possible regardless of the titles. Some junior roles won’t have the word junior in them. Above all, be wary of applying to a role with no mentorship. That can be discouraging, overwhelming, and maybe even drive you out of the industry. Companies are often flexible with their leveling and certain roles, so don’t rule anything out at first.
As you are looking around for jobs, see if you know people who work at the company you’re interested in. That connection always helps with early conversations. Reach out to people on LinkedIn and Twitter if they are acquaintances or if a friend or colleague can introduce you. Connections and relationships make such a difference in your career.
How do I prepare for a coding exam?
Rizel: Websites like HackerRank, LeetCode, codewars.com, and pramp.com can help you prepare for a coding interview. You can also ask a mentor or software developer friend to mock interview you and give you real time feedback. People also suggest reading the book Cracking the Coding Interview.
For me, I take the brute force approach. In that sense, I see interviews as practice a lot of the time. I prefer this, because now I get a very realistic view of the experience and an understanding of what I should work on for any roles I apply to in the future.
What differentiates a beginner from a mid-level developer?
Rizel: This varies by company and is a topic worthy of its own article. The honest answer is that it depends. At some of the start ups I’ve worked at, I’m still considered junior. But as I talk with people, some of them consider me mid-level. I consider myself closer to mid-level. Some people measure by years of experience, which is zero to three years for a beginner developer and three to five years for a mid-level developer. These are baselines and are helpful but shouldn’t be an end-all-be-all rule.
From my perspective, beginner developers may need more assistance figuring out how to start or dive into an issue, whereas mid-level developers may have a stronger idea of where to start. Mid-level developers probably plan, research, and design a bit more before actually writing code to make sure that the solution is optimal. This isn’t to say mid-level developers don’t still need help, but they may have a better idea of the problem and the solution because they’ve seen something similar in the past.
Even though finding a job or establishing yourself can be more challenging when you’re first starting out, there are several resources and helpful professionals who want you to succeed, and will do what they can to help you.
You’ll have to do a lot of legwork, but as the saying goes: you get what you put in. For even more ways to get your first job in tech, check out Cassidy Williams’ guide on GitHub’s The ReadME Project.