#1 The Swift Programming Language by Apple Inc.

There is no better FREE book for Swift on the whole internet. No matter which programming language you want to learn, always start with the official book. It explains the fundamentals of Swift in a very simple and concise way. Every page contains example code that you can play within Playground while you are reading it. Each page will make you love Swift more and more. Excellent book for getting you introduced to the syntax.

You can download the book from iTunes.

#2 Youtube channel

After you successfully read the official Swift book from Apple, the next step would be to watch some videos. And of course, the best place to do that is Youtube. Learning through videos can dramatically increase your knowledge. Let's see some channels and playlists that you can follow…

Swift

To find some good videos your search query should be something like “Learn Swift 3” or “Swift 3 tutorials for Beginners”.

AutoLayout

I suppose most of you will use Swift for iOS App Development, which means that you will need to gain knowledge in building the User Interface for the app. In other words, you need to learn how AutoLayout and Interface Builders work.

Using search queries like "autolayout xcode" or "xcode interface builder" can get you a lot of videos.

Watch out on your search queries

One other important thing is, when you are searching through Youtube, try adding the latest version of the language or Xcode version to get the latest results ("learn swift 3" - correct, "learn swift" - incorrect). You don't want to end up watching a Swift 2 tutorial.

Recommended for you: 5 daily habits to become a productive developer

#3 RayWenderlich

This site contains a LOT of tutorials for Swift. And not only that there is a lot, but also they are extremely detailed. Why do I use the word extremely? It's because you will visit a post for Arrays in Swift, and you will never have the need for another explanation of what Arrays are. The posts are high-quality, well-described and fun to read.

You can find the site here.

#4 Stackoverflow

This forum has become crucial among developers. The community here is so big, there is basically an answer to every question that you have.

But, it all can be a dead end for the user that use search queries wrong. You will become a better programmer when you will master your search queries. Let me demonstrate what I mean, by adding few examples…

Searching for “for loop” - this can give you results that are meant for python, javascript, c# developers;

“for loop” - this can give you results that are meant for python, javascript, c# developers; Searching for "for loop in swift" - gives you results in Swift, but doesn't know which version of Swift. It can give results in Swift 1 or 2 which are deprecated;

"for loop in swift" - gives you results in Swift, but doesn't know which version of Swift. It can give results in Swift 1 or 2 which are deprecated; Searching for "for loop in swift 3" - you will get correct results with this query as everything that you need is mentioned.

I advise you to take search queries seriously when you are a beginner or even an intermediate developer. This is what helped me the most in the beginnings. The web contains all the answers we need, just need to be asked properly.

#5 NSHipster

Another interesting site where you can find many Swift tutorials for free. There are a lot of contributors that write tutorials about Swift. If you are coming from an Objective-C environment, the code snippets in the posts support switching from Swift to Objective-C so you can compare how it is done there.

You can find the site here.

Conclusion

These are the 5 sources that I have used in the past (some I use today as well) that helped me learn Swift in a few weeks. However, only reading these sources won't be enough. You need to practice as much as possible while you read to speed up the process.

A little encouragement for the beginners… I am coding in many programming languages and by far this is the simplest I have ever used. That was Apple's idea. To create a language so everyone can learn it very fast and become a developer.

I would be really happy if only one of these points helped you, and made you a better developer or have shown you the path to becoming one. If you found this story helpful, please don't hesitate to share or ❤ to support. ✊