What are the most common types of projects for entry-level programmers?
Many aspiring programmers, myself included, start learning to code because they know they want a career as a software engineer—but it’s not always clear what they’ll actually be doing and what projects they’ll be a part of in that first developer job. I’ve learned that your role as an entry-level programmer can be vastly different depending on the company and team that you join.
Coming out of Flatiron School, my first job was as a developer at Constant Contact, an online marketing company. They had established product and codebase, which means I had to work with a lot of existing code, modifying it in some way (see: legacy code).
Here are some of the projects my friends and colleagues have encountered as entry-level programmers:
- Building internal tools to optimize your team’s workflow: Create a status board that shows all open pull requests, the number of thumbs they have on them (in this case, the team required two thumbs in order for a pull request (PR) to be considered “merge-able”), the status of the CI build (by changing the color of the row) and the Jira (project management software) ticket number associated with this PR. The skills required for this project include integrating with APIs, basic HTML/CSS/JS, and caching.
- Add a new feature to the application: Implement the registration, login/logout, and password reset feature for users utilizing the Devise gem (Ruby on Rails project).
- Tackle low priority defects: While this isn’t a fully-formed project, per se, it’s a good way for a new engineer to get the lay of the land. Team leads will often assign a list of defects, such as copy changes and small UI edge cases. This will allow the new engineer to get more familiar with the existing front and backend code, while writing test coverage around the defect, giving them some experience in working with the test suite.
- Create a “proof of concept”: Work with a single senior developer (or supervisor) to build out a prototype for an idea the product team is considering. Building a tool that is adjacent to an existing feature, like an API sandbox, helps a new developer become familiar with the app’s functionality and allows for a certain level of autonomy without the risk of affecting production code that is widely used.
The unexpected assignment…
In my opinion, the projects listed above sound like the type of work I’d expect for an entry-level developer. But I had a hunch that not all entry-level developers are given projects that fit their expectations, so I went to Twitter to see what I could find in terms of non-standard projects for junior developers. Here are two examples:
- Rather than being assigned a project, one new developer was tasked with observing her team and coming up with her own contribution. She created something similar to the GitHub status board. It integrated with Slack by using a bot that would ping the developers with the status of their pull requests, letting them know if they had new items for review, if they were in the clear, or if a PR went unreviewed for more than two days.
- Another developer was tasked with reverse engineering his company’s legacy drawing tool. Without much direction, he spent his summer opening the old tool, drawing a circle, making a slight alteration to it, and comparing the binary diffs of the two files so he could understand the patterns.
The TL;DR of all this is that it’s difficult to know what your first job as a programmer will be like (unless the company that hires you is explicit about your day-to-day responsibilities during your interview process), but that doesn’t really matter in the long run. Each task, feature, and project you work on will come with unknowns and new challenges—and will ultimately help you grow as a developer and team player.