O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Break Away: Programming And Coding Interviews

Video Description

A course that teaches pointers, linked lists, general programming, algorithms and recursion like no one else

About This Video

  • Learn more about C programming to crack hundreds of technical interviews
  • Programming interviews are like standard plays in professional sport prepare accordingly.

In Detail

Programming interviews are like standard plays in professional sport - prepare accordingly. Don't let Programming Interview gotchas get you down! Programming interviews differ from real programming jobs in several important aspects, so they merit being treated differently, just like set pieces in sport. Just like teams prepare for their opponent's playbooks in professional sport, it makes sense for you to approach programming interviews anticipating the interviewer's playbook this course has been drawn by a team that has conducted hundreds of technical interviews at Google and Flipkart. 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 explanations. Linked lists: Visualization, traversal, creating or deleting nodes, sorted merge, reversing a linked list and 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, and Points within a distance are some of the problems solved and explained.

Table of Contents

  1. Chapter 1 : Introduction
    1. Coding interviews are tough - but beatable 00:17:12
  2. Chapter 2 : Pointer and Arrays
    1. Introduction to pointers 00:20:00
    2. Pointer problems and arrays 00:13:35
    3. Pointer arithmetic 00:11:43
    4. Practice makes perfect - pointer problems 00:07:38
  3. Chapter 3 : Strings are just pointers at heart
    1. Working with strings 00:14:07
    2. Pointer as arguments to functions 00:09:39
    3. Practice makes perfect - string problems 00:19:24
  4. Chapter 4 : Linked lists can be fun!
    1. Pointers to pointers - bend your mind 00:10:28
    2. Pointers to pointers - reassignment and modification 00:11:14
    3. Get started with linked lists 00:17:17
    4. Warming up to - they get tricky quickly 00:16:20
    5. Cruising along - linked lists are fun aren't they? 00:19:00
    6. Autopilot - linked lists are easy after all 00:16:31
    7. Do not overlook the doubly linked list 00:10:03
  5. Chapter 5 : Bit Manipulation
    1. Bit Manipulation – I 00:10:08
    2. Bit Manipulation – II 00:08:39
    3. Useful Bit Manipulation Techniques 00:13:14
    4. Get And Set The Nth Bit 00:13:30
    5. Print And Count Bits 00:18:54
    6. Reverse The Bits In An Integer 00:10:11
  6. Chapter 6 : General programming problems - practice makes perfect
    1. Starting up - palindromes and points within a distance 00:18:17
    2. Play the Game Of Life and Break A Document Into Chunks 00:18:33
    3. Run Length Encoding And Adding Numbers Digit By Digit 00:19:46
    4. Sudoku Board Validation and Incrementing A Number In Another Number System 00:19:55
  7. Chapter 7 : Big-O Notation, Sorting And Searching Algorithms
    1. Performance and Complexity 00:16:02
    2. Big O Notation 00:15:59
    3. Big O Notation More Examples 00:19:12
    4. Sorting Trade-Offs 00:10:53
    5. Selection Sort 00:15:25
    6. Bubble Sort 00:14:42
    7. Insertion Sort 00:14:32
    8. Shell Sort 00:14:13
    9. Merge Sort 00:19:23
    10. Quick Sort 00:15:30
    11. Binary Search - search quickly through a sorted list 00:11:11
  8. Chapter 8 : Recursion and the recursive sense
    1. What is recursion - why is it so hard? 00:16:59
    2. Binary search - implemented recursively 00:13:22
    3. Find all subsets of a set 00:14:55
    4. Check whether 2 binary trees are the same 00:14:52
    5. Implement paint fill to color a region on screen 00:11:01
    6. Build A car Given Tasks And Dependencies 00:14:18
    7. Generate Anagrams Of A Word 00:16:35
    8. Help A Rat Find It's Way Through a Maze 00:13:01
    9. Place 8 Queens On A Board Safely 00:17:51
  9. Chapter 9 : Stacks And Queues
    1. Meet The Stack - Simple But Powerful 00:15:41
    2. Building A Stack Using Java 00:16:53
    3. Match Parenthesis To Check A Well Formed Expression 00:11:22
    4. Find The Minimum Element In A Stack In Constant Time 00:08:51
    5. Meet The Queue - A Familiar Sight In Everyday Life 00:14:11
    6. The Circular Queue - Tricky But Fast 00:19:45
    7. Build A Queue With Two Stacks 00:17:30
  10. Chapter 10 : Binary Trees
    1. Meet The Binary Tree - A Hierarchical Data Structure 00:13:03
    2. Breadth First Traversal 00:18:43
    3. Depth First - Pre-Order Traversal 00:14:35
    4. Depth First - In-Order and Post-Order Traversal 00:13:52
  11. Chapter 11 : Binary Search Trees
    1. The Binary Search Tree - an introduction 00:09:50
    2. Insertion and Lookup in a Binary Search Tree 00:17:00
  12. Chapter 12 : Binary Tree Problems
    1. Minimum Value, Maximum Depth And Mirror 00:12:14
    2. Count Trees, Print Range and Is BST 00:14:39
    3. Has Path Sum, Print Paths, Least Common Ancestor 00:14:50
  13. Chapter 13 : Heaps
    1. The Heap Is Just The Best Way to Implement a Priority Queue 00:17:16
    2. Meet The Binary Heap - It's A Tree At Heart 00:12:40
    3. The Binary Heap - Logically A Tree Really An Array 00:17:14
    4. The Binary Heap - Making It Real With Code 00:07:38
    5. Heapify! 00:19:33
    6. Insert And Remove From A Heap 00:16:35
  14. Chapter 14 : Revisiting Sorting - The Heap Sort
    1. Heap Sort Phase I – Heapify 00:19:31
    2. Heap Sort Phase II - The Actual Sort 00:17:43
  15. Chapter 15 : Heap Problems
    1. Maximum Element In A Minimum Heap and K Largest Elements In A Stream 00:15:54
    2. Merge K Sorted Lists Into One Sorted List Using A Heap 00:11:41
    3. Find The Median In A Stream Of Elements 00:16:05
  16. Chapter 16 : Graphs
    1. Introducing The Graph 00:15:40
    2. Types Of Graphs 00:07:21
    3. The Directed And Undirected Graph 00:14:29
    4. Representing A Graph In Code 00:08:09
    5. Graph Using An Adjacency Matrix 00:15:25
    6. Graph Using An Adjacency List And Adjacency Set 00:17:54
    7. Comparison Of Graph Representations 00:10:09
    8. Graph Traversal - Depth First And Breadth First 00:14:56
  17. Chapter 17 : Graph Algorithms
    1. Topological sort is an ordering of vertices in a graph where a vertex comes before every other vertex to which it has outgoing edges. 00:17:31
    2. Here is the code in Java to implement topological sort. 00:06:57
    3. Given a course list and pre-reqs for every course design a course schedule so pre-reqs are done before the courses. 00:13:02