What you'll learn

  • Write code that runs faster,and use less memory
  • Prepare for a job interview

  • Learn Data Structure and how to apply these Data Structures on problems in Java

  • Learn algorithms analysis and implementation.

  • Learn problem-solving strategies

  • Learn how to find the complexity of code and algorithms


Section 11: NP Complete problems


Write code that runs faster,use less memory and prepare for Software Engineer Job Interview


  • No previous programming experience is required!I will give you a free Java course if you do not have programming experiences with any programming languages
  • You will need a computer running Microsoft Windows,or Linux,or a Mac running OS X.


This course prepared depending on my real Software Engineer job interviews experiences with Google, Microsoft,Amazon,and Snapchat.

In this course,you will learn how to Analysis algorithms like Sorting, Searching, and Graph Algorithms. And how to reduce the code complexity from one Big-O level to another level.Furthermore,you will learn a different type of Data Structure for your code. Also,you will learn how to find Big-O for every data structure,and how to apply correct Data Structure to your problem in Java.By the end,you will be able to write code that runs faster and use low memory.Also will learn how to analyze problems using Dynamic programming. 

We will discuss code complexity in Different algorithms like Sorting algorithms(Bubble, Merge, Heap,and quicksort),searching algorithms(Binary search,linear search,and Interpolation),Graph algorithms(Binary tree,DFS, BFS, Nearest Neighbor and Shortest path, Dijkstra's Algorithm,and A*Algorithm).and Data Structure like Dynamic Array,Linked List,Stack,Queue,and Hash-Table

Who this course is for:

  • Students who are interested in writing code that run faster and use less memory
  • People who want to apply for a job as a software engineer or software developer