The Wayback Machine - https://web.archive.org/web/20200523091626/https://github.com/codeghoul/mission-fang
Skip to content
An Elaborate Study plan to get placed into Great Companies. From Interview Prep to Projects. Inspired by @jwasham.
Java
Branch: master
Clone or download

Latest commit

Latest commit 2a36c55 Mar 9, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
java
javascript
python
.gitignore
LICENSE
README.md

README.md

Mission F.A.N.G

An Elaborate Study plan to get placed into Great Companies. From Interview Prep to Projects to System Design, I'm gonna delve deep. Come with me, it's gonna be an adventure.

Table of Contents

What

A multi-month study plan for going from a noob to first class software engineer for a large company.

Target Jobs/Positions :

Why

I've always been an underacheiver and more often than not I've had excuses for it. I know stuff but haven't been able to use it effectively. I wanted to break free of this endless cycle of underacheiving and self-pitying. This is my attempt to break this cycle and I expect to be a changed man after I'm done with this little project of mine.

Some links for when self doubt kicks in :

How

How to use it

If you want to use :

Create a new branch so you can check items like this, just put an x in the brackets: [x]

Fork a branch and follow the commands below

git checkout -b progress

git remote add jwasham https://github.com/codeghoul/mission-fang

git fetch --all

Mark all boxes with X after you completed your changes

git add .

git commit -m "Marked x"

git rebase codeghoul/master

git push --force

If you want contribute :

I will be sharing contributing guidelines later.

More about Github-flavored markdown

Language For the Interview

I'll be using:

  • Java
  • JavaScript
  • Python

I'll need to be very comfortable in the language and be knowledgeable.

More about choices:

Video Resources

I'll add relevant video resources with the content itself. Other video resources I'll list here.

I'd appreciate your help to add free and always-available public sources, such as YouTube videos to accompany the online course videos.

Book List

The list of books I'm gonna use:

I'll be adding language specific books, system design books etc.

Flash Cards

During my GRE Preparations I found flashcards to be of great utility. Here's a list of flashcard I'll be using:

Note on flashcards: The first time you recognize you know the answer, don't mark it as known. You have to see the same card and answer it several times correctly before you really know it. Repetition will put that knowledge deeper in your brain.

The Plan

Each day I'll take one subject from the list below, watch videos about that subject, and write an implementation in:

  • Java
  • JavaScript
  • Python
  • and write tests to ensure I'm doing it right, sometimes just using simple assert() statements

Why I would code in all of these?

  • Practice, practice, practice, until I'm sick of it, and can do it with no problem (some have many edge cases and bookkeeping details to remember)
  • Make use of built-in types so I have experience using the built-in tools for real-world use (not going to write my own linked list implementation in production)

I may not have time to do all of these for every subject, but I'll try.

My Practice Code:

I don't think I need to memorize the guts of every algorithm.

I'll write code on a whiteboard or paper, not a computer. Test with some sample inputs. Then test it out on a computer.

Prerequisite Knowledge

Prerequisite Knowledge

Algorithmic complexity / Big-O / Asymptotic Analysis

Algorithmic complexity / Big-O / Asymptotic analysis

Nothing to implement here.

Might need discrete mathematics knowledge.

Data Structures

You can’t perform that action at this time.