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.
- 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?
- Getting Started with Java - https://courses.in28minutes.com/p/java-tutorial-for-beginner-in-250-steps
- 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
- 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
- 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
- Getting Started with Java - https://courses.in28minutes.com/p/java-tutorial-for-beginner-in-250-steps
- Introduction to Methods with Multiplication Table
- Getting Started with Java - https://courses.in28minutes.com/p/java-tutorial-for-beginner-in-250-steps
- Introduction to Java Platform
- 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.
- What is an algorithm?
- What are Data Structures?
- 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
- 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/
- 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/
- 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
- 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/
- 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
- 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/
- Time for solve some challenges on "Searching" - https://www.hackerrank.com/interview/interview-preparation-kit/search/challenges
- 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.
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/
- 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/
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/
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/
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
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/