Course Overview

Welcome to Learn Swift with Bob. You’ve made the right choice. You won’t regret the decision to embark the journey with me. Before you and I jump into the lessons, let us go through the prerequisites, table of content, and course expectation.

Note: Learn Swift with Bob is available on Udemy. If you wish to receive a discount link, you may sign up here.

Prerequisites

This course is designed for Swift intermediate. So, I won’t cover the basics. Please visit learnSwiftwithBob.com and go to prerequisites. You will find a list of items you are expected to know. There is a YouTube video for each concept, so if you ever get stuck, you can always learn and come back. In a nutshell, you should be already be familiar with switch, else-if, basic enums, function, and what it means to initialize properties.

Variables and Constants

  1. let imuttableName = "Bob"
  2. var muttableName = "Bobby"
  3. imuttableName = "SangJoon" // Error

Variable vs Constants

Conditional Statement

  1. if isBobHansome {
  2. print("He good")
  3. } else {
  4. print("That's okay")
  5. }

Conditional Statement

Array and Dictionary

  1. let countries = ["S.Korea", "USA", "Vietnam", "Malaysia"]
  2. let info = ["Name": "Bob", "Age": "20"]

Array and Dictionary

For-In Loops

  1. for _ in 1...100 {
  2. print("Repeat")
  3. }
  4. // "Repeat"
  5. // "Repeat"
  6. // ...

For-In Loop

Switch Statement

  1. switch number {
  2. case 1...10 :
  3. print("Your number is between 1 to 10")
  4. default:
  5. print("I don't know")
  6. }

Switch Statement

Function

  1. func returnName() -> String {
  2. return "Bob the Developer"
  3. }

Function

Intro to Enums

  1. enum Race: String {
  2. case asian
  3. case white
  4. case black
  5. case hispanic
  6. }
  7. Race.asian.rawValue // "asian"

Basic Enum

Object Oriented Programming

You should be familiar with initialization, property, method, and inheritance

  1. class Human {
  2. let name: String
  3. init(enterName: String) {
  4. name = enterName
  5. }
  6. func sayName() {
  7. print("Hi, I'm \(name)")
  8. }
  9. }

What is Object Oriented Programming

Inheritance

Initialization

Table of Content

There are 8 chapters in this course. From Chapter 1 to 4, you will get a firm understanding of Intro to Functional, and Protocol, and Object Oriented Programming. In Chapter 5, you will fully understand how objects are created and removed. In Chapter 6 and 7, you will learn how to create value oriented swift code along with protocols, generics, and enums. In the last chapter, you will acquire various advanced and hidden tips about the Swift programming language.

Course Expectation

Based on the Stack Overflow survey in 2016, Swift is considered as the second most loved language out of thousands. However, don’t let its readability and hype fool you. It’s a complex language inspired by many. Let us through the course expectation.

Be Skeptical

I’m a biased human being. I hope you do not trust me all the way. If you spot any practices that raise your eyebrows, make sure challenge me and come up with a better solution. Although I try to prevent that from happening through doing my homework, I encourage you to think outside of the box.

Be Proactive

You might have seen those red error messages on the left side. I expect you to figure out and search what the issue is. Copy and paste the error message on Google. Ask me questions. Do whatever it takes. Do not move on without knowing the cause and how you could prevent them from occurring in the future.

Learning Mentality

Learning is done by you, not me. I’m here to teach you how to catch fish. I’m going to show you how to use nets and fish rods. After this course, you are expected to use those tools on your own. You might cut yourself through sharp edges, but it’s just a part of your learning journey and becoming a stronger version of yourself.

Ideal Learning Stage

Let us through an ideal learning stage for the students.

Step Detail
The Why Each lesson should flow like a story. In the beginning, I start off with a problem statement. It consists of doubts and questions I personally encountered. For example, I would ask, what’s the purpose of using optionals? A problem statement organically leads to why we learn.
Application After having gone through the specific problem statement by showing new features and how to use them, I present how it applies to real-life situations.
Resources With additional resources and references, you may go further study on your own.
Visualization It’s your turn. I don’t believe in practice problems. We no longer live in a world where there are fixed answers. You visualize how the feature you’ve learned can be applicable for your future endeavor. Albert Einstein said, “Imagination is more important than knowledge”. Practice problems turn you into a machine. We have more than enough by the current education system designed to reduce cost for testing.
Test It’s time to put your visualization into practice. You should fail. That’s good. You are trying something new. “Failure is an option here. If things are not failing, you are not innovating enough” - Elon Musk