Giter Club home page Giter Club logo

ud-problem-sets's Introduction

ud-problem-sets

These practice problems are intended to help mentees of the Underdog Devs program get intro software engineering problems.

See also our Mentee Google Drive and corresponding README file.

How to approach this material

Work your way through the problem sets over time. We strongly recommend following our problem solving tips, especially the "Checklist for problem solving". Apply it to every problem that you do!

These problems are where you should be spending most of your time. Don't stress if it takes a while to complete a problem.

Put your solution file(s) in the solutions directory of each problem set. You can delete the .placeholder file that's in the directory.

We strongly recommend not using outside sources until after you've successfully solved a problem. That's not to say you can't look up syntax, but we don't recommend looking up how to approach a problem or possible solutions for it until you've successfully solved it yourself. It will only slow your progress by relying on outside resources to be able to solve problems.

The order of the material

We recommend the following order:

  1. problem-set-1 (Beginner level) - More basic problems to help prepare you for the wordplay problems.
  2. wordplay-problems (Beginner level) - These are the ones you need to successfully complete in order to try and get into the UnderdogDevs cohort.
  3. problem-set-2 (Intermediate level) - This and the later steps are usually used as material during the UnderdogDevs cohort.
  4. problem-set-3 (Intermediate level)
  5. basic-applications (Intermediate level) - These problems can optionally include some UI if you want to.
  6. mini-interview-questions (Intermediate level) - Real 30 minute interview problems.
  7. interview-questions (Interview Ready level) - 60 minute interview questions
  8. advanced-topics (Interview Ready level) - Miscellaneous topics that would be good to learn more about.
  9. hard-interview-questions (Interview Ready level) - These interview questions are probably harder than you can expect for an intro software engineer position. But they're good practice!

After you've eventually completed these, we recommend spending most of your time working on your resume, your LinkedIn profile, and finding jobs to apply to. You can also practice other interview types, like soft skills interviews, debugging interviews, take-home interviews, UI breakdown interviews, and system design interviews. For more info and practice for these other interview types, ask your mentor.

How to get started

We recommend downloading this entire repository and using it as your working space. You can even upload your work to your GitHub account if you'd like!

To download it, you can either use git or download the ZIP file.

Using git

This is our recommended way, but if you'd like to jump right into problem solving or run into troubles you can always go the ZIP route and then set up git later.

git is a version management system which is used in basically every software engineering job. To learn more about it, see TheCodingTrain's series on git and GitHub. The main video is cloning a repo.

Go ahead and clone this repo!

Using a ZIP file

If you got the repo downloaded using git, skip this section.

First download the ZIP file by scrolling to the top of this page, clicking "Code", then clicking "Download ZIP".

Now you will need to use your file explorer to find that ZIP file and unzip it. This will create a new folder / directory that you can use as your working space.

Set up your developer environment

There are a lot of code editors (also called IDEs) and setups for you to choose from. For whatever language you're using, use a search engine and search using the following format: "set up basic programming environment for [LANGUAGE] developers". But replace [LANGUAGE] with your language of choice (like JavaScript, Python, etc.).

Then get started on the first problem set!

Other resources

Make sure to check out these resources in our mentee Drive!


Practice problem attribution

We sourced some data from this list and this article. Some of the problems came from Harvard's CS50 course. Others were found in various places online or created by mentors at UnderdogDevs.

ud-problem-sets's People

Contributors

zachsaucier avatar will513r avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.