Cracking the Coding Interview

All knowledge is available on the web. All you need is a mentor to guide you to it.

"Learning to code and building your portfolio is good. But not enough to get you that developer job. You need to learn the basic CS concepts that almost every interviewer will ask you about. Programming Interviews can get tough and tricky. In this track I'll walk you through the most common interview concepts to make sure you're 100% prepared. I'll see you inside :)" Mohamed Elgendy

About this track

About me:

Hi, my name is Mohamed Elgendy. I'm the author of Grokking Deep Learning for Computer Vision book. I'm currently heading the engineering efforts at Synapse,  a leading AI company that builds proprietary computer vision applications to detect threats at security checkpoints worldwide. 

 

What is this track about?

Being a good programmer has a surprisingly small role in passing programming interviews. To be a productive programmer, you need to be able to solve large, sprawling problems over weeks and months. Each question in an interview, in contrast, lasts less than one hour. To do well in an interview, then, you need to be able to solve small problems quickly, under duress, while explaining your thoughts clearly. This is a different skill.

The good news is that interviewing is a skill that can be learned. And like anything else, prepare and practice make you better. The Programming Interview track goes through all common interview concepts to make you 100% ready to answer coding interview questions.

What will you learn:

  • Common CS Interview Concepts
  • What is Algorithms and how to design and analyze their behavior (Asymptotic Notation)
  • Pointers: Memory layout of pointers and variables, pointer arithmetic, arrays, pointers to pointers, pointers to structures, argument passing to functions, pointer reassignment and modification - complete with visuals to help you conceptualize how things work
  • Strings: Strings, Character pointers, character arrays, null termination of strings, string.h function implementations with detailed explanation
  • Linked lists: Visualization, traversal, creating or deleting nodes, sorted merge, reversing a linked list and many many problems and solutions, doubly linked lists
  • Bit Manipulation: Work with bits and bit operations
  • Sorting and searching algorithms: Visualize how common sorting and searching algorithms work and the speed and efficiency of those algorithms
  • Recursion: Master recursion with lots of practice! 8 common and uncommon recursive problems explained. Binary search, finding all subsets of a subset, finding all anagrams of a word, the infamous 8 Queens problem, executing dependent tasks, finding a path through a maze, implementing PaintFill, comparing two binary trees
  • Data Structures: Understand queues, stacks, heaps, binary trees and graphs in detail along with common operations and their complexity. Includes code for every data structure along with solved interview problems based on these data structures
  • Step-by-step solutions to dozens of common programming problems: Palindromes, Game of Life, Sudoku Validator, Breaking a Document into Chunks, Run Length Encoding, Points within a distance are some of the problems solved and explained
  • Know how to approach and prepare for coding interviews

This track is best suited for:

  • New engineering graduate students who are interviewing for software engineering jobs
  • Professionals from other fields with some programming knowledge looking to change to a software role
  • Software professionals with several years of experience who want to brush up on core CS concepts

Track at a glance

Lessons 24
Commitment 5 hours of study
Language English
Mentor Response Time 4 Hrs.
Student Reviews (267)

Curriculum

  • Readings/Downloads Lesson 1: Things you need to know before we start
  • Video Lesson 2: Top programming languages to learn in 2017
  • Video Lesson 3: A Roadmap to a Front-end, Back-end or a Full-stack Developer
  • Readings/Downloads Lesson 4: Foundational CS Concepts
  • Video Lesson 5: What is an Algorithm?
  • Video Lesson 6: Sorting Algorithms
  • Quiz Lesson 7: Sorting Challenges
  • Video Lesson 8: Linear and Binary Search
  • Readings/Downloads Lesson 9: Asymptotic Notation
  • Readings/Downloads Lesson 10: Let's write some code
  • Video Lesson 11: More on Asymptotic Notation
  • Video Lesson 12: Big O Notation and Time Complexity
  • Quiz Lesson 13: Practice makes perfect - Big O Exercise
  • Readings/Downloads Lesson 14: Recursive Algorithms
  • Video Lesson 15: Data Structures
  • Graphics Lesson 16: Data structure types
  • Video Lesson 17: Data Structures: Arrays vs. Linked Lists
  • Readings/Downloads Lesson 18: Stacks and Heaps
  • Video Lesson 19: Hash Tables
  • Video Lesson 20: Bit Manipulation
  • Video Lesson 21: How can one be well prepared to answer data structure/algorithm questions in interviews?
  • Video Lesson 22: How to teach yourself to code and get a job
  • Video Lesson 23: Downloads and Cheat Sheets
  • Readings/Downloads Lesson 24: Extra Resources
product manager

Learning at Mowgly

We believe that all knowledge is available on the web. All you need is a mentor to guide you to it. Tracks are not traditional online courses. A track is a series of videos, tasks and readings that are put together by industry experts to guide you to master your topic.

Learn with Mentors

Mentors are here for you to guide you throughout your education journey. Enroll in a course and start chatting with your mentor instantly.

Learn with others

Never get stuck. Whatever problem you have, someone in this world can fix it. Join our community of mentors and tech experts who are ready to share their expertise and provide career mentorship through our private chatting channel.

Learn From Anywhere

Online educational courses that you can learn from your computer, tablet or phone to give you the flexibility to learn at your own pace.