Ready for a new challenge?

 

If you are preparing for your next technical interview, testing your knowledge and understanding of Swift interview questions is vital. The computer science lab provides the opportunity to solve code challenges and collaborate with other iOS developers in a virtual whiteboard setting.

 
 

overview

Each week, students collaborate with other developers to solve Swift interview questions in a virtual (whiteboard) setting. A great complement to the book, each mock interview session emphasizes introducing new questions that deal with algorithms, Swift syntax and iOS design patterns.

How it works

Each week we focus on a particular code challenge or system design concept to review and potentially solve. Think you know the answer? You’ll be invited to share your coded solution with myself and fellow iOS developers during our weekly online session. New to Swift or just starting out? No worries, the collaborative nature of the lab will allow to learn valuable tips and techniques from other developers, allowing you to jumpstart your own learning.

 

Getting Started

First, register for the free no-obligation starter session that works for your schedule. Once complete, continue as a paid continuing student and learn more content based on your timeframe. There is no expiration to the lab as new topics or code challenges are presented in each session. As a continuing student, you'll also be added to our exclusive Slack group, where you'll receive source code and discuss questions anytime with myself and fellow developers.

enhance your skills

While the iOS Computer Science Lab’s primary goal is to prepare developers for technical interviews, it’s also used by existing developers looking to improve their skills. On average, most students continue to use the lab long after their original technical interview goals, allowing them to learn something new and stay connected with like-minded developers on an ongoing basis.

 
 

Whether through take-home code assignments, live presentations or interactive code challenges, the goal is to provide you with new and exciting content each week. While the following list isn't exhaustive, successful students have developed the following skills:

Basic Structures

  • Strings, Arrays and Lists - Level I

  • Strings, Arrays and Lists - Level II

  • Stacks & Queues

  • Hash Tables, Dictionaries and Sets

Essential Swift Syntax

  • Swift Optionals

  • Swift Closures

  • For Loops & Control Flow

  • Generics: Level I: Type Conformance & Constraints

  • Generics: Level II: Protocol-Oriented Programming

Tree-Based Structures

  • Binary Search Trees: Level I - Introduction

  • Binary Search Tree: Level II - Traversals & Tree Balancing

  • Binary Search Tree: Level III - Code Challenge

  • Trie Algorithms: Level I - Introduction

  • Trie Algorithms: Level II - Code Challenge

Ideas & Concepts (Ways of Thinking)

  • Dynamic Programming - Memoization

  • Greedy Algorithms

  • Big-O Notation

  • Recursion

  • Divide & Conquer

Advanced Structures

  • Binary Heaps: Level I - Introduction

  • Binary Heaps: Level II - Code Challenge 1

  • Binary Heaps: Level II - Code Challenge 2

  • Graph Theory: Introduction

  • Graph Theory: Breadth-First Search

  • Graph Theory: Topological Sort

  • Graph Theory: Dijkstra’s Shortest Path

  • Graph Theory: PageRank Algorithm

  • Blockchain Networks: Concepts & Design

  • Blockchain Networks: Code Implementation

system design

Being able to describe, plan and analyze popular services is also important aspect to the interview process. In the lab, we’ll cover how to design the following in Swift:

  • URL Shortener

  • Parking Lot

  • Robotic Vacuum

  • Deck of Cards

  • Call Center

  • Chat Server

 
 

Q: How does your computer science lab work? Is this a lecture, video, or email course?

A: Each week, you’ll collaborate with myself and other iOS developers to learn new topics or complete code challenges in a virtual (whiteboard) setting. For each meeting, emphasis will be placed on introducing new questions that deal with Swift syntax, iOS Design Patterns and algorithms.


Q: Can I learn the same content through your book?

A: Participation in the lab will allow you to interact with real people in a live setting. Specifically, it provides an opportunity to apply what you’ve learned and explain your thought process to others. These skills are essential in mastering the technical interview process. 


Q: What is the course duration?

A: To get the most from the science lab, it’s recommended that students plan dedicate at least eight (8) weeks to the program. On average, most students continue to use the lab long after their original technical interview goals, allowing them to learn something new and stay connected with like-minded developers on an ongoing basis.


Q: Will I be required to write code in front of other developers? What if I don’t know the answer?

A: You will have the opportunity to write code, just as you would in an interview. But unlike a technical interview, the group will help you if you don’t know the answer. Developers at all levels can gain practical experience solving technical questions working in a group. Benefits include seeing how to implement concepts that may be vaguely familiar, or being exposed to new/alternative coding techniques. In general, all participants are encouraged to contribute their ideas.


Q: I’m a relatively new developer but need to learn this content. Is this lab for me?

A: Yes! As a new developer, the lab will provide ongoing, practical ways to implement concepts you may be learning through books or other resources. Class size is also limited to maintain high participation and engagement.


Q: What topics do you cover?

A: All code challenges are geared towards iOS developers. As outlined in the program syllabus, each session covers new topics or code challenges as they relate to Basic Structures, Language Syntax, Tree-Based Algorithms and Advanced Data Structures.


Q: is this a free service?

A: Your first session is always free and requires no financial obligation. You only need an email address to start. After attending that session, new content and code challenges are provided to paid continuing students.


Q: How many sessions are included in the computer science lab? Is there an expiration?

A: Continuing students will be invited to meet weekly at a designated date and time. There is no expiration to the lab as new code challenges will be presented each session.


Q: I’ve taken your free lab session and it was great. How do I sign up as a continuing student?

A: Fabulous! Just contact us and we’ll be in touch.


Q: is this “paired programming”?

A: No :-) Since the goal is to practice for technical interviews, each student should focus on developing complete answers on their own. However, we are a friendly group that encourages the sharing of ideas.