cs-fundamentals icon indicating copy to clipboard operation
cs-fundamentals copied to clipboard

šŸŽ“ Data structures and algorithms

Coding Interviews

Side Projects

Data Structures

  • Array

  • Hash Table

  • Linked List

  • Tree / Binary Tree

  • Graph

  • Stack

  • Queue

  • :octocat: thejameskyle/itsy-bitsy-data-structures - All the things you didn't know you wanted to know about data structures - https://github.com/thejameskyle/itsy-bitsy-data-structures

Searching and Sorting

  • Binary Search

  • Breadth First Search (BFS)

  • Depth First Search (DFS)

  • Counting Sort

  • Quicksort

  • Merge Sort

Concepts

Learning Guides

  • Grokking Algorithms - Free book designed to be easy to follow explaining common computer science algorithms.

  • Pathrise - https://www.pathrise.com/guides/tags/swe/ - Compiled list of guides to help you find a software engineering job.

  • HackerRank Interview Prep Kit - https://www.hackerrank.com/interview/interview-preparation-kit - Curated list of exercises from the HackerRank team organized around key concepts you'll need to know.

  • Rithm School Computer Science Fundamentals with JavaScript - https://www.rithmschool.com/courses/javascript-computer-science-fundamentals - I've been following along with some of this as I don't have a comp sci degree. They explain the concepts and then point you to additional resources for learning the material (like youtub videos and specific codewars problems) Very helpful.

  • Coderbyte - https://coderbyte.com/challenges/?a=true - Lots of programming challenges, access 10 for free otherwise $30 per month

  • :octocat: yangshun/tech-interview-handbook - https://github.com/yangshun/tech-interview-handbook 4k+ ā­ repo with helpful non-technical tips. Additionally has section covering Algorithm, Front End and System Design questions

  • :octocat: mr-mig/every-programmer-should-know - https://github.com/mr-mig/every-programmer-should-know - Don't let the title scare you. This repo covers at a high level things ranging from Career Tips to Data Structures, Security, Architecture and Algorithms. It's a lot but can be helpful to overview concepts and find new things to learn

  • :octocat: jwasham/google-interview-university - https://github.com/jwasham/google-interview-university#final-review - One man's somewhat crazy task to become a google software engineer. 48k+ stars. I believe he ended up working at Amazon. go figure

  • 30 second interview questions - https://github.com/fejes713/30-seconds-of-interviews - A list and website of common interview questions you're bound to encounter during tricky JS interviews.

Finding companies to apply to

  • https://employbl.com/companies - Employbl is a directory of tech companies and startups in the Bay Area. Find companies by type or location, upload your resume and find a company right for you :)

  • https://whoishiring.io/ - Most impressive job site aggregator I've ever seen in my life. Scrapes all the boards and has a map of where every company is located.

  • https://huntr.co/ - Tool for keeping your applications and search organized on a Trello-style board. they also have a chrome extension for quickly adding jobs from various sources.

  • https://breezy.hr - I used this one as a recruiter. It is actually built for HR departments but has a chrome extension and can be helpful for adding people and specific individuals you're reaching out to. This way you remember to follow up and can find like-minded people. One catch is that you need a custom email address like @your-domain.com. Signing up with your gmail account won't work.

  • https://betalist.com/jobs/collections - companies and jobs grouped by category like female led startup or decentralize all the things for blockchain related jobs.

  • :octocat: https://github.com/connor11528/sf-companies - shameless plug here. I've got another repo going with companies located in downtown San Francisco. The data is available as a CSV file and includes company addresses.

Services

  • Interview Cake - https://www.interviewcake.com/ - Interview Cake is a thoroughly documented site on programming interviews and concepts. It can be expensive for the year membership but if you're serious about buckling down to learn the fundamentals can be worth it. They also offer a money-back gaurantee.

  • Daily Coding Questions - https://dailycodingproblem.com/ - Coding question emailed to you everyday for free. If you want the answer emailed to you the following day it's $8/month.

  • exercism - https://exercism.io/ - Level up your programming skills with 2,629 exercises across 48 languages, and insightful discussion with our dedicated team of welcoming mentors. Exercism is 100% free forever.

  • codewars - https://www.codewars.com/ - Codewars has thousands of questions generated by the community. You'll never run out of practice problems. They're organized by difficulty, concept and programming language.

  • codesignal - https://codesignal.com/ - Really great user interface and user experience. I like the gamification and points system they have going on.

  • Irfan Baqui: ace coding interviews - https://www.irfanbaqui.com/coding-interview-prep/ - get one free problem to practice each week and get the solution next week

  • interviewing.io - https://interviewing.io/ - Anonymously practice coding interviews with engineers from prominent tech companies.

  • Pramp - https://www.pramp.com/ref/gt7 - Real practice with actual engineers. Book a time and practice interviewing with real human beings

  • LeetCode - https://leetcode.com/ - Pick from an expanding library of more than 190 questions, code and submit your solution to see if you have solved it correctly.

  • Coderbyte - https://coderbyte.com/challenges/?a=true - Lots of programming challenges, access 10 for free otherwise $30 per month

  • HackerRank - https://www.hackerrank.com/domains - Very popular platform for practicing coding questions. HackerRank is used by companies to evaluate candidates also

  • InterviewBit - https://www.interviewbit.com/ - Practice Coding Interview Questions. Give us time and we get you the job you deserve.

  • Codility - https://codility.com/programmers/ - Become a better programmer. Develop your coding skills with our lessons. Take part in our challenges.

  • Codility Solutions - https://www.martinkysel.com/codility-solutions/ - One engineer's solutions to the codility.com problem sets.

  • Testdome - https://www.testdome.com/Tests - Get certified and prove your knowledge to potential employers. Score well on one of our public tests, and you will get a free certificate of achievement.

  • CodeEval - https://www.codeeval.com/ - Find out how you rate against top coders. Unlock awesome startup jobs and hacker deals.

  • Outco.io - https://outco.io/ - 1 month interview prep bootcamp in San Francisco

Javascript

  • :octocat: amilajack/js-algorithms - https://github.com/amilajack/js-algorithms - A collection of algorithms written in javascript

  • :octocat: benoitvallon/computer-science-in-javascript - https://github.com/benoitvallon/computer-science-in-javascript - Computer science reimplemented in JavaScript

  • :octocat: lukehoban/es6features - https://github.com/lukehoban/es6features - Overview of ECMAScript 6 features (21k+ stars)

  • Khan Academy Algorithm Course - https://www.khanacademy.org/computing/computer-science/algorithms

  • :octocat: romyilano/Learning-JavaScript-Data-Structures-and-Algorithms - https://github.com/romyilano/Learning-JavaScript-Data-Structures-and-Algorithms - Solutions to Learning JavaScript Data Structures and Algorithms by Loiane Groner (book pdf)

  • :octocat: nzakas/computer-science-in-javascript - https://github.com/nzakas/computer-science-in-javascript - Collection of classic computer science paradigms, algorithms, and approaches written in JavaScript.

  • :octocat: JacopoDaeli/algorithmic-challenges - https://github.com/JacopoDaeli/algorithmic-challenges - Solutions to algorithmic challenges written in C, Python, Java and JavaScript.

  • Hack Reactor Prep - http://www.hackreactor.com/prep-programs/ - free course and practice problems from Hack Reactor

  • JS: Interview Algorithm - http://www.thatjsdude.com/interview/js1.html - JS: Interview Algorithms questions and solutions

PHP

  • Efficient data structures for PHP 7 - https://medium.com/@rtheunissen/efficient-data-structures-for-php-7-9dda7af674cd - Medium article about implementing data structures with modern PHP

  • 30-seconds-of-php-code - https://github.com/appzcoder/30-seconds-of-php-code - A curated collection of useful PHP snippets that you can understand in 30 seconds or less.

  • SOLID Principles in PHP - https://laracasts.com/series/solid-principles-in-php - SOLID represents a series of guidelines that developers can use to, if done well, simplify and clarify their code.

  • Object Oriented Bootcamp in PHP - https://laracasts.com/series/object-oriented-bootcamp-in-php - covers fundamentals of OOP in PHP, including tricky concepts like difference between Interfaces and Abstract Classes

SQL

  • Khan Academy SQL course - https://www.khanacademy.org/computing/computer-programming/sql - Great course covering SQL principles. Highly recommend.

  • Udemy MySQL Bootcamp - https://www.udemy.com/the-ultimate-mysql-bootcamp-go-from-sql-beginner-to-expert/ - Course by ex-Galvanize instructor. beginner to expert.

Laravel

  • Diving Laravel - https://divinglaravel.com/ - A deep dive into laravel core, packages, and technologies by @themsaid

  • Advanced Eloquent - https://laracasts.com/series/advanced-eloquent - Sure, you've learned the essentials of using Eloquent in your applications, but do you really understand what's going on under the hood?

  • :octocat: unicodeveloper/laravel-exam - https://github.com/unicodeveloper/laravel-exam - A Laravel exam with questions from beginner to expert curated by @unicodeveloper

Git

  • Git flow - https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow - a git workflow that some companies follow to manage their deployments.

  • Git Game - https://www.git-game.com/ - The git-game is a terminal based game that teaches both new and advances users some pretty cool features of the git scm (source control management) system.

Webpack

  • webpack: The Core Concepts - https://webpack.academy/p/the-core-concepts - less than an hour long course on webpack fundamentals from core team member

Python

  • Algosaurus: http://algosaur.us/data-structures-basics/

Ruby

  • :octocat: Haseeb-Qureshi/Algorithms-Study-Group - https://github.com/Haseeb-Qureshi/Algorithms-Study-Group

Books

  • Learning JavaScript Data Structures and Algorithms - https://github.com/loiane/javascript-datastructures-algorithms

  • Cracking the Coding Interview (pdf, pdf alt)

  • :octocat: amilajack/reading - list of computer science readings with book pdfs - https://github.com/amilajack/reading - Reading List:

Algorithm visualization

  • Visualgo: https://visualgo.net/en

Articles

  • I just got a developer job at Facebook. Hereā€™s how I prepped for my interviews: https://medium.freecodecamp.org/software-engineering-interviews-744380f4f2af

  • How to write a great rĆ©sumĆ© for software engineers: https://medium.freecodecamp.org/how-to-write-a-great-resume-for-software-engineers-75d514dd8322

  • Why You Donā€™t Deserve That Dream Developer Job: https://codeburst.io/why-you-dont-deserve-that-dream-developer-job-60d5e5adb8d7

  • Top 8 Mistakes to avoid in Technical Interviews According to Data: https://blog.pramp.com/top-8-mistakes-in-technical-interviews-according-to-data-27d2572bda1f

  • Resource List: Getting hired at technology startups: https://notes.breakoutlist.com/resource-list-getting-hired-at-technology-startups-9f981518a0d9

  • Resource List: Figuring out what you want / your ā€œpurposeā€: https://notes.breakoutlist.com/resource-list-figuring-out-what-you-want-your-purpose-b7af89e2ba7

  • Triplebyte blog, How to pass a programming interview: http://blog.triplebyte.com/how-to-pass-a-programming-interview

  • Jeff Atwood, How to Hire a Programmer: https://blog.codinghorror.com/how-to-hire-a-programmer/

  • Joel On Software, The Guerrilla Guide to Interviewing (version 3.0): https://www.joelonsoftware.com/2006/10/25/the-guerrilla-guide-to-interviewing-version-30/

  • Coding Interview Tips, How to get better at technical interviews without practicing: https://www.interviewcake.com/coding-interview-tips

  • software engineer resume template: https://notes.breakoutlist.com/best-engineer-resume-template-uses-latex-14380b4a239f

  • Guide to interviewing your future manager before deciding where to work: https://notes.breakoutlist.com/guide-to-interviewing-your-future-manager-before-deciding-where-to-work-3b2eb3326793

More Questions

  • 50 Coding Interview Questions - https://www.byte-by-byte.com/wp-content/uploads/2019/01/50-Coding-Interview-Questions.pdf - "In this guide, Iā€™ve organized all of the interview questions weā€™ve ever covered on Byte by Byte into a convenient PDF for you to reference whenever you like. Over the years, Iā€™ve been careful to select only problems that are directly relevant to your interviews. This guide combines them all in one place and is completely free for you to download."

  • 500 Data Structures and Algorithms practice problems and their solutions - https://techiedelight.quora.com/500-Data-Structures-and-Algorithms-practice-problems-and-their-solutions - these are good because they are grouped by topic such as array, BST, Dynamic Programming etc

  • Project Euler - https://projecteuler.net/archives - The classic

  • Epic List of Interview Questions - http://katemats.com/interview-questions/ - a list of software engineer skills or areas that can be tested and evaluated in an interview context

  • :octocat: MaximAbramchuck/awesome-interview-questions - https://github.com/MaximAbramchuck/awesome-interview-questions - A curated awesome list of lists of interview questions.

Technical blogs šŸ’ø

This is tangentially related to interviews. Below is a list of companies that feature blog posts from guest authors. Blogging and teaching others can be a powerful way to comprehend new material, fine tune your writing skills, gain exposure and potentially even make money! If you have a technical blog open to new contributors please submit a PR

  • Scotch.io - this has been my go to source for web development tutorials for years. Code on the rocks

  • Snipcart - company interested in Vue.js, eCommerce, Javascript and the JAMstack. There is some really great writing and code samples on here

  • JScrambler - company interested in Javascript tutorials. I wrote a post for them on using Vue.js and Vuelog to make a static blogging app. Check out the full article here

Words of wisdom

Charlie Munger, Warren Buffettā€™s partner, has three rules for a career:

  1. Donā€™t sell anything you wouldnā€™t buy yourself
  2. Donā€™t work for anyone you donā€™t respect and admire
  3. Work only with people you enjoy