Giter Club home page Giter Club logo

campus-interview-guide's Introduction

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

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:

Day 4

Day 5

Day 6

Day 7

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

  1. Arrays & Strings
  2. Searching Algorthims
  3. Sorting Algorithms
  4. Linked Lists
  5. Stacks
  6. Queues
  7. Bit Manipulation
  8. Big O & Analysis of Time complexity
  9. Trees
  10. Graphs
  11. Hashing
  12. Greedy Algorithms
  13. Divide and Conquer Algorithms
  14. Dynamic Programming

Day 8

Day 9 - Let's Solve some problems on "Arrays"

  1. Find the number of zeroes(E): https://www.geeksforgeeks.org/find-number-zeroes/
  2. Program for array rotation(E): https://www.geeksforgeeks.org/array-rotation/
  3. Move all zeroes to end of array(E): https://www.geeksforgeeks.org/move-zeroes-end-array-set-2-using-single-traversal/

Day 10

Day 11

Day 12

Day 13

Day 14

Day 15

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-

  1. Sort an array of 0s, 1s and 2s(E)- https://www.geeksforgeeks.org/sort-an-array-of-0s-1s-and-2s/
  2. 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/
  3. Sorting Strings using Bubble Sort(M)- https://www.geeksforgeeks.org/sorting-strings-using-bubble-sort-2/
  4. Count all distinct pairs with difference equal to k(M)- https://www.geeksforgeeks.org/count-pairs-difference-equal-k/
  5. Chocolate Distribution Problem(M)- https://www.geeksforgeeks.org/chocolate-distribution-problem/

Day 17

Day 18

Time for Linked Lists

  1. Singly Linked Lists
  2. Doubly Linked Lists
  3. Circular Linked Lists

Chapter-4.1: Singly Linked Lists

Let's solve some problems using "Singly Linked Lists"-

  1. 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/
  2. Delete a Linked List node at a given position- https://www.geeksforgeeks.org/delete-a-linked-list-node-at-a-given-position/
  3. 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

Let's solve some problems using "Doubly Linked Lists"-

  1. Program to find size of Doubly Linked List- https://www.geeksforgeeks.org/program-find-size-doubly-linked-list/
  2. Reverse a Doubly Linked List- https://www.geeksforgeeks.org/reverse-a-doubly-linked-list/
  3. Delete a node in a Doubly Linked List- https://www.geeksforgeeks.org/delete-a-node-in-a-doubly-linked-list/
  4. Rotate Doubly linked list by N nodes- https://www.geeksforgeeks.org/rotate-doubly-linked-list-n-nodes/

Chapter-4.3: Circular Linked Lists

Let's solve some problems using "Circular Linked Lists"

  1. Split a Circular Linked List into two halves - https://www.geeksforgeeks.org/split-a-circular-linked-list-into-two-halves/
  2. 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.

Day 21

LL Practice Day-2 - Solve the following questions on Leetcode. Remember we created Leetcode on Day-17. Let's use it now.

  1. Palindrome Linked List(E)- https://leetcode.com/problems/palindrome-linked-list/
  2. Intersection of Two Linked Lists(E)- https://leetcode.com/problems/intersection-of-two-linked-lists/
  3. Remove Nth Node From End of List(M)- https://leetcode.com/problems/remove-nth-node-from-end-of-list/
  4. Rotate List(M)- https://leetcode.com/problems/rotate-list/
  5. Partition List(M)- https://leetcode.com/problems/partition-list/
  6. Reverse Nodes in k-Group(H)- https://leetcode.com/problems/reverse-nodes-in-k-group/

campus-interview-guide's People

Contributors

in28minutes avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.