Skip to content
 
 

Repository files navigation

Coding Interview University

Choose a Programming Language

C# / C++

Si motivé : Pyhton

Books for Data Structures and Algorithms

  • C# in Depth
  • C++ Quick Tour
  • Head Design Pattern First => Pendant Data Structure
  • Algo Part 1-4 => Even More Knowledge
  • Algo Part 5
  • Programming Interview => Parallele à Data Structure
  • Cracking the code => Apres Algo Part 5
  • C# PRO => RoadMap
  • Game Dev Pattern => Si toujours besoin

Extras

  • C++ pro? equivalent? (necessaire?)
  • Refacto ??

This book will form your foundation for computer science.

Just choose one, in a language that you will be comfortable with. You'll be doing a lot of reading and coding.

C++

Your choice:

Interview Prep Books

I bought both of these. They gave me plenty of practice.

Don't Make My Mistakes

1. You Won't Remember it All

2. Use Flashcards

Mark as known after 10 times

3. Do Coding Interview Questions While You're Learning

  1. Learn a Subject
  2. Do 2-3 questions for the subject
  3. Move to the new subject
  4. Do Question for the new question
  5. Do question for the old subject

Coding Question Practice

  1. Problem Recongnition
  2. Gathering Requirements
  3. Come up with Big-O
  4. Test solutions

Sites :

Algorithmic complexity / Big-O / Asymptotic analysis

Data Structures

More Knowledge

Trees

Sorting

As a summary, here is a visual representation of 15 sorting algorithms. If you need more detail on this subject, see "Sorting" section in Additional Detail on Some Subjects

Graphs

Graphs can be used to represent many problems in computer science, so this section is long, like trees and sorting were.

Even More Knowledge


Final Review

This section will have shorter videos that you can watch pretty quickly to review most of the important concepts.
It's nice if you want a refresher often.

Additional Books

These are here so you can dive into a topic you find interesting.
  • The Unix Programming Environment
    • An oldie but a goodie
  • The Linux Command Line: A Complete Introduction
    • A modern option
  • TCP/IP Illustrated Series
  • Algorithm Design Manual (Skiena)
    • As a review and problem recognition
    • The algorithm catalog portion is well beyond the scope of difficulty you'll get in an interview
    • This book has 2 parts:
      • Class textbook on data structures and algorithms
        • Pros:
          • Is a good review as any algorithms textbook would be
          • Nice stories from his experiences solving problems in industry and academia
          • Code examples in C
        • Cons:
          • Can be as dense or impenetrable as CLRS, and in some cases, CLRS may be a better alternative for some subjects
          • Chapters 7, 8, 9 can be painful to try to follow, as some items are not explained well or require more brain than I have
          • Don't get me wrong: I like Skiena, his teaching style, and mannerisms, but I may not be Stony Brook material
      • Algorithm catalog:
        • This is the real reason you buy this book.
        • This book is better as an algorithm reference, and not something you read cover to cover.
    • Can rent it on Kindle
    • Answers:
    • Errata
  • Write Great Code: Volume 1: Understanding the Machine
    • The book was published in 2004, and is somewhat outdated, but it's a terrific resource for understanding a computer in brief
    • The author invented HLA, so take mentions and examples in HLA with a grain of salt. Not widely used, but decent examples of what assembly looks like
    • These chapters are worth the read to give you a nice foundation:
      • Chapter 2 - Numeric Representation
      • Chapter 3 - Binary Arithmetic and Bit Operations
      • Chapter 4 - Floating-Point Representation
      • Chapter 5 - Character Representation
      • Chapter 6 - Memory Organization and Access
      • Chapter 7 - Composite Data Types and Memory Objects
      • Chapter 9 - CPU Architecture
      • Chapter 10 - Instruction Set Architecture
      • Chapter 11 - Memory Architecture and Organization
  • Introduction to Algorithms
    • Important: Reading this book will only have limited value. This book is a great review of algorithms and data structures, but won't teach you how to write good code. You have to be able to code a decent solution efficiently
    • AKA CLR, sometimes CLRS, because Stein was late to the game
  • Computer Architecture, Sixth Edition: A Quantitative Approach
    • For a richer, more up-to-date (2017), but longer treatment

System Design, Scalability, Data Handling

You can expect system design questions if you have 4+ years of experience.

Additional Learning

I added them to help you become a well-rounded software engineer, and to be aware of certain
technologies and algorithms, so you'll have a bigger toolbox.

Additional Detail on Some Subjects

I added these to reinforce some ideas already presented above, but didn't want to include them
above because it's just too much. It's easy to overdo it on a subject.
You want to get hired in this century, right?

Video Series

Sit back and enjoy.

Computer Science Courses

Algorithms implementation

Papers

LICENSE

CC-BY-SA-4.0

About

A complete computer science study plan to become a software engineer.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors