Break Away: Programming And Coding Interviews

Video description

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.

What You Will Learn

  • Know how to approach and prepare for coding interviews
  • Understand pointer concepts and memory management at a very deep and fundamental level
  • Tackle a wide variety of linked list problems and know how to get started when asked linked list questions as a part of interviews
  • Tackle a wide variety of general pointer and string problems and know how to answer questions on them during interviews
  • Tackle a wide variety of general programming problems which involve just plain logic, no standard algorithms or data structures, these help you get the details right!

Audience

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 concepts.

About The Author

Loonycorn: Janani Ravi is a certified Google Cloud Architect and Data Engineer. She has earned her master's degree in electrical engineering from Stanford. She is currently in Loonycorn, a technical video content studio, of which she is a cofounder. Prior to co-founding Loonycorn, she worked at various leading companies, such as Google and Microsoft, for several years as a software engineer.

Table of contents

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

Product information

  • Title: Break Away: Programming And Coding Interviews
  • Author(s): Loonycorn
  • Release date: January 2018
  • Publisher(s): Packt Publishing
  • ISBN: 9781789130591