60 Day Learning Challenges for Campus Interviews
Do you want to prepare for your campus interview but do not know where to start? This guide is here to help you!
Sixty Days of free learning to get you started on the journey for your campus interview!
PS: This is version 1 focused on the basics. As we get feedback and forks, we would want to add advanced stuff.
Objectives for first 7 days
- What is coding/Programming?
- What are Programming languages?
- What is Object oriented Programming? which to choose? Java vs Python vs JavaScript?
- How to write a code or How to write basic hello world or calculator program?
- What are the steps you must follow to be a good programmer?
Day 1
Recommendations
- Getting Started with Java - https://courses.in28minutes.com/p/java-tutorial-for-beginner-in-250-steps
Day 2: The time to choose a language which you want to learn
- Getting Started with Java - https://courses.in28minutes.com/p/java-tutorial-for-beginner-in-250-steps
- Step-1: Introduction to java - Watch "Introduction" section of the course
- Step-2: Installing JDK and setup in your machine - Follow the steps mentioned in "Installing Java 9" section of the course
- Step-3: Let's Get started - Introduction to Java Programming with Jshell using Multiplication Table - Step 0 - Step 12
Day 3:
- Getting Started with Java - https://courses.in28minutes.com/p/java-tutorial-for-beginner-in-250-steps
- Introduction to Java Programming with Jshell using Multiplication Table => Step 13 - Step 22
Day 4
- Getting Started with Java - https://courses.in28minutes.com/p/java-tutorial-for-beginner-in-250-steps
- Introduction to Java Programming with Jshell using Multiplication Table => Step 13 - Step 22
Day 5
- Getting Started with Java - https://courses.in28minutes.com/p/java-tutorial-for-beginner-in-250-steps
- Introduction to Methods with Multiplication Table
Day 6
- Getting Started with Java - https://courses.in28minutes.com/p/java-tutorial-for-beginner-in-250-steps
- Introduction to Java Platform
Day 7
- A longer day!
- Getting Started with Java - https://courses.in28minutes.com/p/java-tutorial-for-beginner-in-250-steps
- Introduction To Object Oriented Programming
If you want to learn more about Java Programming and Jshell, We would recommend you to our complete course on Java from here- https://www.udemy.com/course/java-programming-tutorial-for-beginners/. This course will help you understand every concept of Java and Object Oriented Programming concepts.
Objectives for DataStructures & Algorithms
- What is an algorithm?
- What are Data Structures?
Topics to Explore
- Arrays & Strings
- Searching Algorthims
- Sorting Algorithms
- Linked Lists
- Stacks
- Queues
- Bit Manipulation
- Big O & Analysis of Time complexity
- Trees
- Graphs
- Hashing
- Greedy Algorithms
- Divide and Conquer Algorithms
- Dynamic Programming
Day 8
- Data Structures(16 mins video): https://www.youtube.com/watch?v=bum_19loj9A&list=PLBZBJbE_rGRV8D7XZ08LK6z-4zPoWzu5H&index=1
- Chapter-1.1: Arrays: Introduction to Arrays(20 mins Video):https://www.youtube.com/watch?v=pmN9ExDf3yQ&list=PLBZBJbE_rGRV8D7XZ08LK6z-4zPoWzu5H&index=2
- Arrays in Java and array operations (20 mins read): https://www.geeksforgeeks.org/arrays-in-java/
Day 9 - Let's Solve some problems on "Arrays"
- Find the number of zeroes(E): https://www.geeksforgeeks.org/find-number-zeroes/
- Program for array rotation(E): https://www.geeksforgeeks.org/array-rotation/
- Move all zeroes to end of array(E): https://www.geeksforgeeks.org/move-zeroes-end-array-set-2-using-single-traversal/
Day 10
- We suggest you to create an account on "HackerRank", because that is where we are going to have some practice.
- Time to solve some challenges on Arrays: https://www.hackerrank.com/interview/interview-preparation-kit/arrays/challenges
- Bonus- You can solve more problems on "Arrays" from here: https://www.youtube.com/watch?v=xtfj4-r_Ahs&list=PLqM7alHXFySEQDk2MDfbwEdjd2svVJH9p
Day 11
- Chapter-1.2: Strings - Strings Introduction(10 Mins Read): https://www.geeksforgeeks.org/string-class-in-java/
- Let's Solve some problems on "Strings":
- Reverse a string in Java(E)- https://www.geeksforgeeks.org/reverse-a-string-in-java/
- Compare two strings lexicographically in Java(E)- https://www.geeksforgeeks.org/compare-two-strings-lexicographically-in-java/
- Given two strings, find if first string is a subsequence of second(M)- https://www.geeksforgeeks.org/given-two-strings-find-first-string-subsequence-second/
Day 12
- Longest Common Subsequence(H) - https://www.geeksforgeeks.org/longest-common-subsequence-dp-4/
- Time to solve some challenges on Strings: https://www.hackerrank.com/interview/interview-preparation-kit/strings/challenges
- Bonus: You can solve more problems on "Strings" from the link below. These are few mostly asked questions on Strings in Many interviews. https://www.youtube.com/watch?v=U4yPae3GEO0&list=PLamzFoFxwoNigGUa4TRpRk-2SNaGhmypH
Day 13
- Chapter-2.1 - Searching Algorthims - Here we are going to learn about two most commonly used search algorithms, "Linear Search" and "Binary Search".
- Linear Search Introduction & program(10 mins read): https://www.geeksforgeeks.org/linear-search/
- Binary Search Introduction & Program(10 mins read): https://www.geeksforgeeks.org/binary-search/
- Let's solve some problems using search algorithms -
- Find the Missing Number(E)- https://www.geeksforgeeks.org/find-the-missing-number/
- Median of two sorted arrays of same size(E)- https://www.geeksforgeeks.org/median-of-two-sorted-arrays/
- Median of two sorted arrays of different sizes(M)- https://www.geeksforgeeks.org/median-of-two-sorted-arrays-of-different-sizes/
- Find all triplets with zero sum(M)- https://www.geeksforgeeks.org/find-triplets-array-whose-sum-equal-zero/
Day 14
- Time for solve some challenges on "Searching" - https://www.hackerrank.com/interview/interview-preparation-kit/search/challenges
Day 15
- Chapter-2.2 - Sorting Algorthims. Here we will learn about most commonly used sorting techniques.
- Selection Sort(10 mins read)- https://www.geeksforgeeks.org/selection-sort/
- Bubble Sort(10 mins read)- https://www.geeksforgeeks.org/bubble-sort/
- Insertion Sort(10 mins read)- https://www.geeksforgeeks.org/insertion-sort/
- Merge Sort(10 mins read)- https://www.geeksforgeeks.org/merge-sort/
- Quick Sort(10 mins read)- https://www.geeksforgeeks.org/quick-sort/
- Heap Sort(10 mins read)- https://www.geeksforgeeks.org/heap-sort/
That's enough for the day. Try to recollect & remember what you have learnt today.
Day 16
Let's solve some problems using sorting algorithms-
- Sort an array of 0s, 1s and 2s(E)- https://www.geeksforgeeks.org/sort-an-array-of-0s-1s-and-2s/
- Find whether an array is subset of another array(E)- https://www.geeksforgeeks.org/find-whether-an-array-is-subset-of-another-array-set-1/
- Sorting Strings using Bubble Sort(M)- https://www.geeksforgeeks.org/sorting-strings-using-bubble-sort-2/
- Count all distinct pairs with difference equal to k(M)- https://www.geeksforgeeks.org/count-pairs-difference-equal-k/
- Chocolate Distribution Problem(M)- https://www.geeksforgeeks.org/chocolate-distribution-problem/
Day 17
- We recommend you to create an account Leetcode(https://leetcode.com/)
- Time for solve some challenges on "Sorting"-
- https://www.hackerrank.com/interview/interview-preparation-kit/sorting/challenges
- Bonus Program- Maximum Gap(H)- https://leetcode.com/problems/maximum-gap/
Day 18
Time for Linked Lists
- Singly Linked Lists
- Doubly Linked Lists
- Circular Linked Lists
Chapter-4.1: Singly Linked Lists
- Introduction to Linked Lists(20 mins video)- https://www.youtube.com/watch?v=WwfhLC16bis&list=PLBZBJbE_rGRV8D7XZ08LK6z-4zPoWzu5H&index=5
- Linked Lists Insertion(10 mins read)- https://www.geeksforgeeks.org/linked-list-set-2-inserting-a-node/
- Linked List Deletion(10 mins read)- https://www.geeksforgeeks.org/linked-list-set-3-deleting-node/
Let's solve some problems using "Singly Linked Lists"-
- Write a function to get Nth node in a Linked List- https://www.geeksforgeeks.org/write-a-function-to-get-nth-node-in-a-linked-list/
- Delete a Linked List node at a given position- https://www.geeksforgeeks.org/delete-a-linked-list-node-at-a-given-position/
- Find the middle of a given linked list- https://www.geeksforgeeks.org/write-a-c-function-to-print-the-middle-of-the-linked-list/
Day 19
Chapter-4.2: Doubly Linked Lists
- Introduction to Doubly LinkedLists & Insertion(15 mins read)- https://www.geeksforgeeks.org/doubly-linked-list/
Let's solve some problems using "Doubly Linked Lists"-
- Program to find size of Doubly Linked List- https://www.geeksforgeeks.org/program-find-size-doubly-linked-list/
- Reverse a Doubly Linked List- https://www.geeksforgeeks.org/reverse-a-doubly-linked-list/
- Delete a node in a Doubly Linked List- https://www.geeksforgeeks.org/delete-a-node-in-a-doubly-linked-list/
- Rotate Doubly linked list by N nodes- https://www.geeksforgeeks.org/rotate-doubly-linked-list-n-nodes/
Chapter-4.3: Circular Linked Lists
- Introduction to Circular Linked List(5 mins read)- https://www.geeksforgeeks.org/circular-linked-list/
- Traversal of a Circular Linked List- https://www.geeksforgeeks.org/circular-linked-list-set-2-traversal/
- Deletion from a Circular Linked List- https://www.geeksforgeeks.org/deletion-circular-linked-list/
Let's solve some problems using "Circular Linked Lists"
- Split a Circular Linked List into two halves - https://www.geeksforgeeks.org/split-a-circular-linked-list-into-two-halves/
- Count nodes in Circular linked list - https://www.geeksforgeeks.org/count-nodes-circular-linked-list/
Day 20
LinkedLists is one of the most important topic asked in interviews. So, Let's practice them for 2 days.
- LL Practice Day-1 - Time for solve some challenges on "LinkedLists"- https://www.hackerrank.com/interview/interview-preparation-kit/linked-lists/challenges
Day 21
LL Practice Day-2 - Solve the following questions on Leetcode. Remember we created Leetcode on Day-17. Let's use it now.
- Palindrome Linked List(E)- https://leetcode.com/problems/palindrome-linked-list/
- Intersection of Two Linked Lists(E)- https://leetcode.com/problems/intersection-of-two-linked-lists/
- Remove Nth Node From End of List(M)- https://leetcode.com/problems/remove-nth-node-from-end-of-list/
- Rotate List(M)- https://leetcode.com/problems/rotate-list/
- Partition List(M)- https://leetcode.com/problems/partition-list/
- Reverse Nodes in k-Group(H)- https://leetcode.com/problems/reverse-nodes-in-k-group/