You're working hard to become a web developer, but what will be expected of you once you're hired? In this informative article, tech industry experts Matt Lawrence and Mike Karan provide insider details on what you need to learn, helping you to be well-prepared for your first job in the tech industry!
Topics covered in this article include:
Working independently vs. working with a team
Expectations for a Junior Developer
Gaining familiarity with the codebase
Developing layout skills
Working with APIs
Completing tasks and documentation
Junior developer struggles
First tasks for freelancers
Gaining experience through open-source communities
Image generated by Microsoft Image Creator powered by DALL·E 3
Working on your own
When you first start learning web development, you will spend plenty of time working independently. You have the time and freedom to work at your own pace, choosing the tech stacks you are comfortable working with without adhering to any constraints.
While this approach results in developing technical skills, it doesn't necessarily teach you how to work effectively within a team. In a team setting, you won't have the same time and freedom to work at your own pace or choose the tech stacks you prefer, and you'll need to adhere to certain constraints.
Understanding the expectations for a junior developer joining a team can boost your confidence and provide you with a competitive edge, as you will be prepared for what lies ahead!
Working with a team
So, what is expected of you as a junior developer joining a team? Mike points out that during the interview process, your technical skills can be assessed, but it is difficult to determine how effectively you can collaborate with a team. Let's take a look at what will be expected of you.
Working with a team involves:
The ability to collaborate effectively within a team
Knowing when and how to ask necessary questions
Capability of providing prompt responses
Keeping the team adequately informed about project updates
These "team" skills are outside of the technical scope and are crucial in Mike's professional opinion, accounting for 50% of your career success.
As a hiring manager, once a candidate is hired, Mike assesses their ability to effectively work with a team during the first week, month, and beyond. Since each individual is unique, closely observing a new hire will uncover areas where they require assistance to enhance their performance, ultimately aiming for the team's overall success.
Gain familiarity with the codebase
The first thing Mike wants from a newly hired junior web developer is to gain familiarity with the codebase.
Familiarity with the codebase includes:
Set it up: Install the necessary dependencies and configure the development environment for the project.
Run all of the tests: Execute the entire test suite to ensure the code is functioning correctly.
Run development scripts: Use scripts provided by the team to automate tasks and streamline the development process.
Understand the build pipelines: Grasp the process of compiling, building, and deploying the code to different environments.
The basic structure of the codebase: Comprehend the organization and hierarchy of the project's files and directories.
Run the codebase locally: Launch the application on your local machine for testing and development purposes.
Once you become familiar with the codebase, you will be expected to accomplish tasks using it. Simple beginner-friendly tasks include converting code by creating components and updating the language of the code.
Gain layout skills
As a front-end web developer, it is essential to not only acquire layout skills but also to demonstrate versatility in the technologies used for designing these layouts. As previously mentioned, solo development differs from team development, and you will be required to work within certain constraints.
Company constraints include:
Frameworks used: The specific front-end or back-end frameworks that a company utilizes for development, such as React, Angular, or Vue.js.
Libraries: Pre-written code packages that are used to help streamline development and solve common problems, like jQuery or Lodash.
Company color schemes: The specific set of colors that a company uses for branding and design consistency across their products and materials.
Company style sheets: Predefined CSS files that dictate the appearance and styling of a company's applications, websites, or products to ensure a consistent look and feel.
Design systems: A collection of reusable components, guidelines, and principles that are used to maintain consistency in a company's user interface and user experience across multiple platforms and products.
Mike's example of the expected layout skills involves designing a seasonal header component for a fall marketing campaign. Successfully creating a layout that adheres to the company's guidelines is an excellent way for you to familiarize yourself with the company's design principles.
When it comes to design layouts, the goal is not about speed; it's about how you can seamlessly integrate into the team!
Having skills in working with APIs is another common expectation for junior developers, as a significant portion of your tasks will involve working with third-party services.
As a junior front-end developer:
Mike provides the following practical example of working with APIs: Updating the comment section in the codebase your team is working with to display a comment updated timestamp, whereas currently, it only shows the comment creation time. To accomplish this, you will need to write the code and familiarize yourself with the codebase by determining where to implement the changes and learning how to use the API to achieve this goal. Mike points out that this task may be rudimentary for some, but since there are numerous steps to cover, it can be challenging for novice developers.
💡 Tip: Understanding what you can accomplish independently and identifying areas where you struggle with APIs will provide valuable insights for your team. This will help your team determine where you need to improve your skills so that they can offer better assistance.
As a junior Back-end developer:
Having some back-end API skills will give you a competitive advantage! Mike explains that as a full-stack developer, he benefits from the assistance of junior developers on his team who can perform simple (in terms of backend) yet valuable API tasks.
These API tasks include:
Creating APIs: Developing new interfaces for communication between different software components.
Writing tests for APIs: Creating tests to verify the functionality, performance, and reliability of APIs.
Setting up API troubleshooting: Establishing methods and tools to diagnose and resolve issues with APIs.
Fix/deploy new cloud functions: Address issues and deploy serverless functions in cloud services like AWS or GCP.
Mike provides a practical example of working with an API in the back end of development, creating a dashboard. A dashboard that displays requested information from the back-end codebase will provide valuable information for the team. Mike further explains that since the team is preoccupied with other high-priority tasks, they don't have enough time to create these useful dashboards. This makes it an ideal task for YOU to take on!
To get some hands-on practice with several beginner-friendly API projects, you may find my following articles helpful:
As a junior developer on a team, you will be assigned tasks that contribute to your group's project. These tasks will involve research and time. Matt and Mike share the following insightful advice on this topic.
Matt brings up real-life situations where you are faced with the job of completing tasks on custom codebases that are not "Googleable!" Wait, what? That's unheard of! Well, as lone-wolf developers, we are accustomed to tackling projects of our choice, which are most likely common, with plenty of Googleable resources. However, with a private closed-off codebase, Google won't help you. You will need to hopefully rely on codebase documentation provided by company staff entrusted with it. (Now I understand why Mike emphasizes the importance of creating good codebase documentation!)
As these tasks are your responsibility, it's up to you to resolve them on your own or by asking your team for help. Members of your team should be helpful and accommodating since your tasks are important to the completion of the project. However, not everyone will be eager to help you, especially in a toxic work environment. Although these negative task-related situations may be inevitable, it's ultimately your responsibility to make sure your assigned tasks are completed in a timely manner, with or without the help of your colleagues.
💡 Tip: Mike advises working 45 minutes to 1 hour on tasks before asking for help from your colleagues if you cannot resolve them.
The last, but arguably the most important, task required of a junior developer is to document codebases. In Mike's experience as a professional developer, he has noticed a lack of good documentation of proprietary codebases. As Matt mentioned earlier, you will not find the information you need online when it comes to private codebases of companies you work for.
As a junior developer with a fresh perspective, navigating the codebase your team is working on, it's an excellent idea to thoroughly update and add documentation to it!
Once again, proper documentation of proprietary codebases is essential, as it ensures a smooth transition between the departure of current developers and the arrival of new developers joining the team.
Junior Developer Struggles
As an experienced programmer in the field, Mike has identified a pattern of common challenges junior developers face. He has compiled the following list of these frequent struggles.
Knowing what potential obstacles to expect and receiving proper guidance and support from your peers can help you overcome these common challenges faced, ultimately setting you up for long-term success in the industry!
Legacy codebases: Old, outdated code that may be difficult to maintain or understand due to lack of documentation or use of obsolete technologies.
Too much information is thrown at them: An overwhelming amount of new information and tasks, making it difficult to focus and prioritize learning.
Complex build pipelines: Intricate processes for compiling, building, and deploying code, which may be challenging to understand and manage.
Complex dev setup: Advanced development environment setup, such as Docker, can be difficult for beginners to configure and use effectively.
Lack of documentation: Insufficient or missing documentation for codebases, making it hard to understand and navigate the project.
Boredom: Feeling disinterested or unchallenged by assigned tasks, leading to disengagement and reduced productivity.
Lack of guidance/mentorship: Insufficient support and guidance from experienced team members, making it difficult to learn and grow professionally.
First tasks for freelancers
If you are having trouble landing your first junior developer job, freelancing may be a good alternative. You can gain relevant job role experience and start earning an income!
What skills do you need? What tasks will be expected of you?
To succeed as a freelancer, you should be familiar with various tools and technologies, such as no-code tools like Wix, Squarespace, and Webflow, or creating basic static websites using HTML and CSS. If you're using HTML, CSS, or WordPress, you'll also need to know how to deploy and host your content.
In addition to technical skills, effective communication (soft skills) is crucial for freelancers. You'll need to understand your client's needs, provide clear deliverables and pricing, and manage project timelines.
You can start working immediately
You are your own team
No interview required
A lot of work and responsibility
You will have to troubleshoot on your own
Handle clients with multiple personality traits
If you're considering freelancing instead of starting a junior developer job, you'll have more responsibilities on your plate. As a freelancer, you'll need to create products for clients from start to finish, often taking on a full-stack role.
If you would like a beginner-friendly introduction to get started, you can read my article, Freelancing 101 - with Sarah Shook
Where to get experience
As an aspiring developer, preparing to work on a team is crucial for your future career. Joining the Eddie Hub Open-Source Community is a great way to gain hands-on team experience. The Eddie Hub community is FREE to join, with no membership fees or subscription costs. All you need is a free Discord and GitHub account to participate and contribute to this inclusive and accessible open-source community!
So, what experience will you gain in the Eddie Hub open-source community? By participating in Eddie Hub, you will have the opportunity to:
Work on real projects: Contribute to various projects in the community, allowing you to work with different technologies and programming languages. This exposure helps you develop a well-rounded skill set.
Collaborate with diverse team members: Engage with developers from different backgrounds and skill levels, fostering an environment where you can learn from others and share your knowledge. This experience will help you understand the dynamics of working in a team.
Improve your communication skills: As you work with others on projects, you will need to discuss ideas, provide feedback, and ask for help. These interactions will enhance your communication skills, which are essential for working in a team environment.
Learn project management and organization: Participating in open-source projects will expose you to various project management tools and methodologies. Understanding how to manage tasks, deadlines, and resources will prepare you for teamwork in a professional setting.
Build a professional network: By collaborating with others in the Eddie Hub community, you will forge connections that can lead to job opportunities and professional growth.
Contributing to open-source projects is a great way to learn new technologies and software development practices. You'll have an opportunity to learn the project's codebase, development workflow, and coding style. You will also gain valuable hands-on experience working on a team, helping you develop the necessary skills to excel in your future career as a developer!
Be sure to listen to the episode!
Episode 269 What I'd Expect From a Junior Developer
Be sure to check out HTML All The Things on socials!
Learn to code using Scrimba with their interactive follow-along code editor.
Join their exclusive discord communities and network to find your first job!
Use this URL to get 10% off on all their paid plans: tinyurl.com/ScrimbaHATT
This article contains affiliate links, which means we may receive a commission on any purchases made through these links at no additional cost to you. This helps support our work and allows us to continue providing valuable content. Thank you for your support!
Sponsored content: This article was kindly sponsored by the original publisher, allowing me to share my expertise and knowledge on this topic.
My other HTML All The Things articles
So, what should you expect when you're expecting a developer job? Up to this point in your journey, you have likely been accustomed to working independently, with the freedom to choose the technologies and timeframes for completing your projects. However, as a junior developer, you are expected to adapt and collaborate within a team. Common tasks expected of junior developers on a team include gaining familiarity with the codebase, developing layout skills, working with APIs, completing tasks in a timely manner, and documenting.
In addition to the expectations for you as a junior developer, it's important to be aware of the common struggles you will face in your first job, such as dealing with legacy codebases, being overwhelmed by too much information, navigating complex build pipelines and development setups, facing a lack of documentation, experiencing boredom, and having insufficient guidance or mentorship. By understanding these challenges, you will be better prepared to overcome these obstacles and know when to seek help and guidance from your team.
Being an employed junior developer doesn't necessarily mean you need to work at a company on a team; you can alternatively choose to freelance! As a freelancer, you'll have flexibility in choosing what client projects to work on, and you will hone your skills across different technologies, all of which can be a great way to gain experience and build your portfolio before transitioning into a full-time role! However, you will have a lot of responsibility, and effective communication skills and time management are crucial.
Finally, contributing to open-source projects is a great way to learn new technologies and software development practices to best prepare for your first junior developer job. You'll have an opportunity to learn the project's codebase, development workflow, and coding style. You will also gain valuable hands-on experience working on a team, helping you to deliver on what's expected of you in your first developer job!