If you’re starting a new programming job, it’s easy to be overwhelmed by all that you’ll have to do to settle in. On top of your core job responsibilities, every company has their own preferred methods of keeping the team in the loop and staying organized.
The good news is, there are tons of great tools and software packages that engineering teams all over the world rely on to help them work together more seamlessly. Sure, there’s no one-size-fits all solution, but there are options.
Whether this is your first engineering gig, or you’re a seasoned dev looking for recommendations for new tools to use, we’ve rounded up a list of tools for you to consider — many of which are top picks from Codecademy engineers.
1. Code version control and collaboration
With 73 million users, it’s clear that GitHub is a favorite in the development community. GitHub is an online platform for keeping track of Git changes with a web UI, while Git is a command line tool for code version control. In other words, devs use Git to track changes made to their code, and they host their work and collaborate with other devs on GitHub.
You can have your own personal account on GitHub to showcase your work, and there’s also a paid version of GitHub made for teams of devs to collaborate internally.
2. Collaborative coding tools
As a developer, you’ll likely spend a decent amount of time participating in collaborative coding with one or more developers from your team. This might happen remotely or face-to-face and the tools you use here can make all the difference. There are a few popular options you can look into.
Amazon Web Services (AWS) Cloud9 uses shared environments, which allows multiple developers to collaborate on the same cloud-hosted project in real-time. The fact that you can use Cloud9 directly in your browser and you don’t have to install anything on your computer makes this a favorite among devs. Another bonus of Cloud9 is it comes with tooling for over 40 programming languages, including Ruby, Node.js, JavaScript, Python, PHP, Go, C#, HTML, and CSS.
Another popular option is Visual Studio Code Live Share and its extension pack, which comes highly recommended by Codecademy devs. When working on code together in Live Share, you don’t need to sync the code or configure the same development tools, settings, or environment as your partner, which is a nice feature. One extension in particular that Codecademy devs love is called GitHub Pull Requests and Issues. With this extension, you get GitHub comments inline as they come in and you might find that you don’t need to go to github.com much anymore. Git Blame and GitLens, which show you who changed something in the code and what it was, are two other helpful features to check out.
Tuple is another option you can look into if you’re looking for a solution for macOS.
3. Project management
The number of developers needed to work on a single project depends on the complexity and timeline of a project. And while it’s one thing to keep track of a smaller project, it’s a whole other thing when you have multiple developers, a data scientist, and a product manager involved. Thankfully, there are several project and task management solutions for productivity enthusiasts.
Jira is an Agile project management product that’s very popular among dev teams. It was originally designed to be an issue-tracking and bug-tracking product and has evolved into a powerful work management tool for teams of all sizes. Along with built-in features like commenting and categorization, teams can pick from numerous plugins and integrations to get the most out of the platform.
Asana allows you to assign and prioritize tasks and workflows for multiple projects at once. There’s also a timeline tool to help you manage dependencies and foresee potential project bottlenecks. A big advantage of Asana is that there’s full transparency on what everyone on a project is supposed to do. This makes it a great choice for Agile projects, especially sprints.
Trello is another popular project management solution that was essentially designed for Kanban, which is another Agile methodology. Once your team sets up its first project in Trello, you’ll notice that the app mimics the sticky notes of a Kanban Board with cards and columns (or lists). One big advantage to this approach is that it’s easy for everyone on the team to see who is doing what. And, unlike paper-based Kanban sticky notes, Trello allows you to open cards for more information, including labels and attachments.
Notion is a project management solution that we know very well here at Codecademy. Through our partnership with Notion, anyone involved in the project can access updates to learn who is working on what, what the status is, and what the timeline is. It’s been particularly helpful for Codecademy engineers to organize all their information in one place and eliminate the need to bounce between numerous tools for project details.
GitHub Issues, which is available by default in every GitHub repository, helps you to plan and track your work. You can focus on important tasks and keep plans up to date simultaneously with GitHub Issues.
Lastly, if you’re looking for a task management option yourself, the Google Tasks extension is a Kanban-style list that’s helpful to track your own to-dos, and you can easily share it with anyone.
4. Document creation, storage, and management
With 73 million users, it’s clear that GitHub is a favorite in the development community. While devs use the software Git to track changes made to their code, they host their work and store different versions of a project on GitHub. Devs can have their own personal accounts on GitHub to showcase their work, and there’s also a version made specifically for entire teams of devs to store and manage files.
For API documentation, Swagger is a solid option to check out, especially for RESTful APIs and GraphiQL/GraphQL Playground for GraphQL APIs. One feature Codecademy devs appreciate about Swagger is how it updates docs on the endpoint every time you change a field, so self-documentation isn’t necessary if you use Swagger.
The two other big players here are Google Workspace and Microsoft 365. Both options are browser-based experiences that allow engineering teams to collaborate in real-time on a variety of documents, as well as manage your own file storage and share documents and folders with colleagues.
If you’re interested in looking into Notion for its project management software, it’s also worth noting that you can use Notion to manage, save, and share files directly in the app.
5. Communication
Real-time messaging is the core function of Slack, but that’s a bit like calling your smartphone a tool for just talking. Engineers use Slack to bring together project groups, whether everyone is based around the world or just around the office. Slack makes it easy to create and manage messaging channels based on specific topics, and groups of related messages within a channel can be bundled as threads. So, when you need to look up responses to a question you posted, it’s easy to see everything as one group rather than searching through a ton of message bubbles.
Sometimes text-based communication just doesn’t cut it or maybe you just want to see your teammate’s face once in a while. Zoom can be particularly helpful these days to get through a long stretch of remote work or to help flesh out what might be lost through text.
6. Support and troubleshooting
If you have a question about coding or a problem you need help with, Stack Overflow is likely the first place you go, and you’re definitely not alone. (Though if you’re not familiar with Stack Overflow, it’s a public platform that features questions and answers on all things computer programming.) Over 100 million programmers and code enthusiasts use Stack Overflow to problem-solve and connect with others in the community. It’s truly an invaluable resource!
Collaboration is a key skill for developers
As a developer, you’ll likely be doing a lot of solo work, but you’ll also collaborate with your teammates in some capacity, whether that’s through pair programming or just checking in for a one-on-one. Either way, having the skills to effectively collaborate with your team is important. Also, one way to stand out as a job candidate is to highlight your knowledge and experience with different collaboration tools, so don’t forget to add these to your resume if you have experience with any of these tools.
Feeling motivated to take your skills to the next level or learn a new tool, software, or programming language to prep for your next job? Check out our full course catalog where you can learn about Git & GitHub, Intermediate SQL for Product Managers, API Development with Swagger and OpenAPI — just to name a few topics.
Our Career Center is another great resource that can help you navigate the job-hunting process, especially if you’re looking for interview prep help.