wwcsf-algos
Welcome to the Women Who Code SF Algorithms and Whiteboarding Interview Prep repo! As a chapter of Women Who Code, our mission is to inspire women to excel in technology careers. Our community is open to all who support our mission. Maintainers are dedicated to ensuring that this repo stays a safe and inclusive space. Please see the Women Who Code Code of Conduct for more information.
0. How to use this repo
You're starting at the right place! This file contains general resources and links to pages on specific topics. If you're looking for code examples, take a look at the code examples folder.
1. How to contribute
We are looking for your favorite resources and new problem sets, as well as code examples in any language. If you've never contributed to open-source before, let this be your first contribution! Here's a step by step reference to contributing.
Contributing to our content pages
All of our documentation is in Markdown, and most of the issues labeled 'good first issue' involves editing or adding content in Markdown. Here is a good Markdown cheatsheet: https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet
Contributing to the code examples
If you are a more advanced coder, we would welcome your help reviewing PRs of code examples. The purpose of the code examples is to provide a best-practices, model solution for a problem or data structure. Currently, most of the outstanding PRs are in C++ and Python.
2. General Study Resources
These are a list of free online textbooks, video lectures, and visualizations. If you are looking for comprehensive, structured curriculums to guide your study, these are places to start.
2a. Free Online Textbooks
- Grokking Algorithms, Aditya Y. Bhargava: A guide to a few carefully curated algorithms, with helpful drawings. Code examples in Python.
- Python DS, Brad Miller and David Ranum: Data Structures textbook in Python.
- Open Data Structures, Pat Morin: Data structures textbook in pseudocode.
- Think Data Structures, Allen B. Downey: Data structures textbook in Java.
- Think Python, Allen B. Downey: Intro programming textbook in Python, with chapters relevant to algorithms and data structures.
- Algorithms, Jeff Erickson: An Algorithms textbook by a professor at University of Illinois, Urbana-Champaign.
2b. Video Lectures
- Harvard CS50 Lectures.
- Recommended: Lecture 3 - Algorithms and Lecture 5 - Data Structures
- Strong programming foundations from mycodeschool, YouTube Channel.
2c. Free Courses
- Coursera, Data Structures by UCSD
- VisuAlgo: The tag line for this resource is "visualizing data structures and algorithms through animation". This is an incredible resource for any level of coder. Animations step through processes, and the explanations link to related topics, helping you synthesize your knowledge and build on previous undertstanding. The text is small and dense but it is well worth reading. Make sure to create an account to tailor your preferences and create a training plan.
- Scaler Topics: A curated interactive space for aspiring programmers to learn and master their coding skills.
2d. Articles
- Wikiversity Data Structures and Algorithms: Provides an overview of the Data Structure and Algorithms conceptual landscape. Recommended for its definitions of technical terms.
2e. Problem Sets
- A table of leetcode problems that you can filter by pattern, by Sean Prashad
- Curated list of top 75 leetcode questions organized by topic
- List of Top 20 DP Interview Questions on Geeks for Geeks
3. Resources and problem sets, by category
- Arrays & Strings
- Linked Lists
- Trees and Graphs
- Sorting and Searching
- Recursion
- Backtracking
- Dynamic Programming
- Design
- Hashmaps
- Big-O
- Stacks and Queues