/CodePath-Alumni-Professional-Interview-Prep-Course

My code solutions and other materials for the November 2017 - Febuary 2018 CodePath Alumni Professional Interview Prep course -- see the README for descriptions and links

Primary LanguagePython

CodePath Alumni Professional Interview Prep Course, November 2017 - January 2018

My situation: I already completed the July/August 2017 version of your Alumni Interview Prep Course, including doing the two Refdash interviews and continuing on to interview at Facebook. When Nathan and Tim posted to the CodePath Slack about this new "beefed up" eight-week version of the course, I asked whether part II of the new class would work as a part II followup class for the shorter version I had taken. Nathan said yes, that it would, and Tim asked if I would also be willing to participate in part I of the new class as a mentor.

So I'm going to be a mentor in part I of the class, and a regular student in part II. You can see links and descriptions for my work below:

Prework

As I said in my InterviewBit profile gif, I've actually been using InterviewBit off and on since March (though I still have a ways to go before reaching Code Ninja status). My profile is https://www.interviewbit.com/profile/Tachyon

Checkpoint 1

Checkpoint Level 1 is just a multiple-choice question on time complexity, not a coding problem, but this repo includes a screenshot of it with my answer:

Checkpoint 2

Checkpoint 3

For some reason my profile is showing Level-Ups for Levels 1, 2, 4, and 5, but not 3, even though among other things I did the Checkpoint Level 3 prework problems below. Here also is a screenshot of the Checkpoint Level 3 screen.

Checkpoint 4

Checkpoint 5

HackerRank Calibration Test

I took the HackerRank Calibration Test on November 13, and finished five of the six questions -- on one hand I assume you should have received my results by now, but on the other hand I never received an email confirmation after submitting it, whereas with the HackerRank tests I took during the July/August session, I did receive confirmations.

Tasks Before Session 1

As shown in this GIF, I've already completed almost all the Arrays and Strings problems on InterviewBit (mostly in Python, but I've started doing Java versions of some of them as well):

My InterviewBit Arrays solutions so far:

My InterviewBit Strings solutions so far:

Assignment 1

As I mentioned above, I had already completed almost all of the Arrays and Strings problems on InterviewBit in Python, but I did four more Java versions for this assignment:

And here's a GIF of my InterviewBit Arrays and Strings topic pages:

When I went to take the HackerRank "CodePath Interview Prep - Unit 1 Test", I got the message "You have already taken this test as Tané Tachyon on Jul 15, 2017. You can't login to a test that you have already completed." See the "My situation" description at the beginning of this README for an explanation of that.

Tasks Before Session 2

As shown in this GIF, I've already completed almost all the Hashing and Linked Lists problems on InterviewBit:

My InterviewBit Hashing solutions so far:

My InterviewBit Linked Lists solutions so far:

Assignment 2

As I mentioned above, I had already completed almost all of the Hashing and Linked Lists problems on InterviewBit in Python, but I did eight more Java versions for this assignment:

And here's a GIF of my InterviewBit Hashing and Linked Lists topic pages:

When I went to take the HackerRank "CodePath Interview Prep - Unit 2 Test", once again I got a message about how I had already taken this test last summer and "can't login to a test that you have already completed" -- see the "My situation" description at the beginning of this README for an explanation of that -- so as directed by Patricia in Slack, I took the test as tachyon+alt@tachyonlabs.com instead of tachyon@tachyonlabs.com, and you should have the results.

Tasks Before Session 3

As shown in this GIF, I've already completed most of the Trees problems, all but two of the Binary Search problems, and all but one of the Heaps and Maps problems, on InterviewBit (mostly in Python, but I've started doing Java versions of some of them as well):

My InterviewBit Trees solutions so far:

My InterviewBit Binary Search solutions so far:

My InterviewBit Heaps and Maps solutions so far:

Assignment 3

As I mentioned above, I had already completed most of the Trees, Binary Search, and Heaps and Maps problems on InterviewBit in Python (plus some in Java), but I did six more Java versions for this assignment:

And here's a GIF of my InterviewBit Trees, Binary Search, and Heaps and Maps topic pages:

When I went to take the HackerRank "CodePath Interview Prep - Unit 3 Test", once again I got a message about how I had already taken this test last summer and "can't login to a test that you have already completed" -- see the "My situation" description at the beginning of this README for an explanation of that -- so as directed by Patricia in Slack, I took the test as tachyon+alt@tachyonlabs.com instead of tachyon@tachyonlabs.com, and you should have the results.

Tasks Before Session 4

As shown in this GIF, I've already completed most of the Backtracking problems, and all of the Bit Manipulation problems, on InterviewBit (mostly in Python, but I've started doing Java versions of some of them as well):

My InterviewBit Backtracking solutions so far:

Modular Expression, Reverse Link List Recursion, Subset, Combinations, Combination Sum II, Subsets II, Letter Phone, Generate all Parentheses II, NQueens, Permutations, and Gray Code.

My InterviewBit Bit Manipulation solutions so far:

Assignment 4

As shown in "Tasks Before Session 4" above, I had already completed most of the Backtracking problems on InterviewBit, all the Bit Manipulation problems on InterviewBit in Python, and all but two of them in Java. So now I've done two more Backtracking problems in Python, and Java versions of those last two Bit Manipulation problems:

And here's a GIF of my InterviewBit Backtracking and Bit Manipulation topic pages:

When I went to take the HackerRank "CodePath Interview Prep - Unit 4 Test", once again I got a message about how I had already taken this test last summer and "can't login to a test that you have already completed" -- see the "My situation" description at the beginning of this README for an explanation of that -- so as directed by Patricia in Slack, I took the test as tachyon+alt@tachyonlabs.com instead of tachyon@tachyonlabs.com, and you should have the results. One interesting thing (to me, anyway) is that while I usually use Python for whiteboarding/programming challenges because it's a very fast/easy/terse language to write, on the second problem I kept getting what was apparently a stack overflow on one of the test cases. I tried putting in some kinds of special casing to head off some of the ways this could happen, but it didn't help. Then I thought I would try submitting in Java instead, because I had the idea that Java might have a larger stack size limit than Python, and my Java version passed all the test cases just fine. So even if I generally find Java fine for Android but clunky and overly verbose for programming challenges, with this it scored some points with me in addition to for me. :-)

Tasks Before Session 5

My InterviewBit Graphs solutions so far:

And here's a GIF of my InterviewBit Graphs topic page:

Assignment 5

I completed four more InterviewBit Graphs problems:

And here's a GIF of my updated InterviewBit Graphs topic page:

I took the "CodePath Interview Prep - Unit 5" test on January 28, so you should have received it.

Tasks Before Session 6

I've done four Dynamic Programming problems on InterviewBit so far:

And here's a GIF of my InterviewBit Dynamic Programming topic page:

Assignment 6

I did eleven more Dynamic Programming problems on InterviewBit:

And here's a GIF of my updated InterviewBit Dynamic Programming topic page:

I took the "CodePath Interview Prep - Unit 6" test on February 4, so you should have received it.

Assignment 7

Assignment 8

I still have a lot of work to do on completing my Android Topic Questions Google Doc, I will continue to update it in the days to come.