There's theory and there's practice. It's great to have the knowledge to of how to do things, however, it's meaningless without application - a particular context. You can learn all the ins and outs of a programming language, but in a real life situation, not know what to use and when to use it to solve the problem quickly.
Learning in context allows you to build a knowledge-base that you can carry onto the next similar application. It will allow you to start solving a new similar problem and will help you identify the missing pieces in your knowledge and quickly fill the gaps.
I'd like to highlight two types of contexts:
Resolving a very specific problem and looking for a specific solution.
Having an idea or a broad/conceptual problem to solve and looking for possible approaches.
How are they different?
1. Resolving a specific problem
When you have a specific problem you know what to look for and what kind of solution to expect. At least approximately. You'll be able to use this context after you build your foundation. An example could be, you already know how to make espresso. Now you want to learn how to make cappuccino!
Every next project you'll be working on will expose this kinds of situations where you will need to learn new things based on the knowledge you already have but not enough to resolve a problem at hand.
For example, you already created an application that played audio, now you need to create one that plays video. The solution will not be the same, but you've got a good start.
Completing this course will bring you to closer to this level - when you will have enough knowledge to stand on!
2. Having an idea
On the other hand, when learning something new, using broad contexts are the most useful. At this stage we don't know what we don't know, therefore cannot look for a specific solution. You come up with a challenge and learn little by little to solve it.
So, as beginners with Swift, what's our learning context?
Since we've already started with espressos and cappuccinos...
A coffeeshop challenge - SmartBean
There's a lovely coffeeshop you frequent every morning on your way to the office. It's a small shop that, in your opinion, makes the best coffee and tasty pastries. It has a relaxed atmosphere and a friendly owner, Jenny, who enjoys chatting with you when it’s not too busy.
She's always delighted to hear you love her shop, and, occasionally shares her dreams, plans and challenges in growing her business.
She wants to expand this location, buy more equipment, hire more people, contact local producers to source a greater variety of baked goods for her customers and maybe explore new types of coffee. There's a lot she needs to take care of and she's barely finding time to do the research and perform the necessary calculations.
So, why not to help her?
We'll call our project SmartBean. It will assist Jenny to solve the calculation problems she comes across while preparing to grow her business.
Let's see what we can do!