Welcome to your new "job"! This isn’t your ordinary DSA course. Developers have been debating for ages about whether excelling in DSA translates to success in an actual job. I aim to bridge this gap by demonstrating how DSA skills make a difference in a real-world working environment. This course uses DSA knowledge to solve mock issues you might encounter in a real codebase.
So dive right in and be ready to fix problems because you’re hired!
The Difficulty Levels
Each week, we will focus on a specific data structure. For five days, we will explore a new algorithm each day. This course is designed to be completed in three sets of ten weeks, starting with beginner-level problems in Cycle 1 and progressing to advanced problems in Cycle 3.
Feel free to jump up a cycle if you find the problems too easy, or move down a cycle if you struggle with the concepts. While this course has a general outline and timeline, we encourage you to take it at your own pace. Make sure you are comfortable with the concepts before moving on.
The Process
Daily Ticket: Each day, you’ll receive a new ticket in your mailbox. Clone the ticket and add it to your personal repository.
GitHub Repository: Once you have your copy set up, find the link to the GitHub repository and clone it if you haven't already cloned the main repository in the past.
Team Protocol: Follow the proper protocol for working with a team on GitHub. This includes making your own branch of a repository, making a pull request, fixing your issues, and submitting that pull request for review.
Code Reviews: Just because your ticket is solved doesn’t mean your workday is over! The next thing you should be doing as a developer is performing code reviews for other developers so that their fixes can be merged with the main branch.
Auxiliary Developer Tasks: After that is complete, you are encouraged to perform some auxiliary developer tasks, such as adding to the documentation (which will serve as your personal notes as you work through this course), helping other coders debug, or even working on a personal or side project.
FAQ
What skill level should I be at to do this course? I’m new to coding and not sure if I am ready for this.
This course starts at the beginning and works its way up to harder difficulties. You should have a basic knowledge of JavaScript, but if you can write a function or establish a variable, you can take this course. We will have documentation on hand for you to practice your research skills and learn how to do new things.
I’m pretty comfortable coding at this point. I’ve made full stack applications and I am definitely not a beginner. Will I get anything out of this?
Absolutely! There are two ways for you to go about this. You could restart at the beginning and do maybe a week’s worth of problems a day for review to strengthen your basic skills, or you can skip ahead to where you think you are weaker and work on that. Generally, if you have made a full-stack application and are comfortable with the basics, you should be able to start at the intermediate level for the right balance of challenge and feasibility.
What constitutes cheating? If I use ChatGPT, will that defeat the purpose?
This is your journey, and the reality in the real world is that the way you get a job done doesn’t matter all that much. With that being said, some workplaces will have an issue with using AI because the codebase is proprietary and no one really knows much about what is happening with the information AI receives.
I would encourage you to NOT use it for this course and instead practice your skills at reading documentation. If a new technology comes out, AI might not be able to help you yet, so being able to read and understand the docs will be a valuable skill for you to have.
What tools and technologies will I need to know?
You should be comfortable with JavaScript and familiar with Git and GitHub for version control. Additionally, familiarity with using Coda for managing tasks will be beneficial, but not required. We will have walkthrough videos of each stage of the process so even if you don’t know all that much you should be able to manage it.
How will my progress be tracked?
Your progress will be tracked through the completion of tickets and GitHub pull requests. Regular feedback from code reviews will also help you improve.
What if I have questions or need help?
Feel free to use the comments and voting features in Coda to collaborate and communicate with other developers. You can also refer to the project documentation for guidance on specific tasks and workflows.
Want to print your doc? This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (