Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

The Cockney Rebel

macrumors 68030
Original poster
Nov 16, 2018
2,795
3,384
Hello all.

I’ve decided to give learning Swift a go.

I am a complete beginner, so can someone please recommend any good easy to follow books, or websites, or YouTube channels etc?

Thanks in advance.
 

casperes1996

macrumors 604
Jan 26, 2014
7,593
5,764
Horsens, Denmark
A complete beginner to Swift or to programming?

I can highly recommend Paul Hudson. He has made both books and YouTube videos as well as an app for learning Swift with easy daily challenges and such.
He mostly goes under the brand "Hacking With Swift"

For more general learning, Objects First With Java is a good way of getting into object oriented programming. It's, as per the title, obviously not Swift based but the mentality learned can be applicable to an OO style of writing Swift.

Apple's own documentation is also an excellent starting point. If you open Xcode and go to the Window menu you can open the Documentation viewer. There are some good guides, sample code, tutorials etc. There are also books by Apple on the iBoos Store about the Swift language, and the Playgrounds app has some good beginner stuff, though it's a bit slow and perhaps more aimed at kids.

It's important to note that programming is about a lot more than learning a specific language. It's learning a mindset, architectural constructs and a whole way of thinking. A lot of that is applicable across languages.
Just this past week I've written C, Java, OCaml, x86_64 assembly, Swift and a bash script. The syntax is different but once you think the right way going between languages isn't too difficult, really - like learning Norwegian when you already know Danish. You can usually read it out of the gate with no issues - writing it takes a bit to get into the spelling and grammar, but easy enough because you know roughly what you want to say and how to express it.

I'd also be happy to mentor you if you want, read and comment on code, talk to you about ways of solving problems, etc. You can always pm me here, my contact info is also on my website
https://www.theparallelthread.com/about.html (yeah - I haven't done a lot of work on the site)

Another non-Swift resource you will eventually want is the so-called Gang of Four. The book Design Patterns: Elements of Reusable Object-Oriented Software.

But that's for after you feel familiar enough with some language to write code without thinking about syntax and keywords and such; It's more a book about architecture.

For just learning Swift I can honestly think of no better resources than Paul Hudson and Apple's own material. Unless you can get Chris Lattner to teach you ;) (the original inventor of Swift)
 
Last edited:

The Cockney Rebel

macrumors 68030
Original poster
Nov 16, 2018
2,795
3,384
A complete beginner to Swift or to programming?

I can highly recommend Paul Hudson. He has made both books and YouTube videos as well as an app for learning Swift with easy daily challenges and such.
He mostly goes under the brand "Hacking With Swift"

For more general learning, Objects First With Java is a good way of getting into object oriented programming. It's, as per the title, obviously not Swift based but the mentality learned can be applicable to an OO style of writing Swift.

Apple's own documentation is also an excellent starting point. If you open Xcode and go to the Window menu you can open the Documentation viewer. There are some good guides, sample code, tutorials etc. There are also books by Apple on the iBoos Store about the Swift language, and the Playgrounds app has some good beginner stuff, though it's a bit slow and perhaps more aimed at kids.

It's important to note that programming is about a lot more than learning a specific language. It's learning a mindset, architectural constructs and a whole way of thinking. A lot of that is applicable across languages.
Just this past week I've written C, Java, OCaml, x86_64 assembly, Swift and a bash script. The syntax is different but once you think the right way going between languages isn't too difficult, really - like learning Norwegian when you already know Danish. You can usually read it out of the gate with no issues - writing it takes a bit to get into the spelling and grammar, but easy enough because you know roughly what you want to say and how to express it.

I'd also be happy to mentor you if you want, read and comment on code, talk to you about ways of solving problems, etc. You can always pm me here, my contact info is also on my website
https://www.theparallelthread.com/about.html (yeah - I haven't done a lot of work on the site)

Another non-Swift resource you will eventually want is the so-called Gang of Four. The book Design Patterns: Elements of Reusable Object-Oriented Software.

But that's for after you feel familiar enough with some language to write code without thinking about syntax and keywords and such; It's more a book about architecture.

For just learning Swift I can honestly think of no better resources than Paul Hudson and Apple's own material. Unless you can get Chris Later to teach you ;) (the original inventor of Swift)
Thank you so much, for such a detailed response.

It’s highly appreciated.

My research has also put Python on my radar. Apparently it’s a very good, and relatively easy language to learn?

Would you start with Java, Python, or just start with Swift? Thanks again, buddy.
 

casperes1996

macrumors 604
Jan 26, 2014
7,593
5,764
Horsens, Denmark
My research has also put Python on my radar. Apparently it’s a very good, and relatively easy language to learn?

Would you start with Java, Python, or just start with Swift? Thanks again, buddy.

Depends a bit on what your goal is I think. If your main goal is GUI-apps for iOS/macOS/otherApple - just start with Swift, honestly.
If your main goal is data analytics, automation, machine learning - jump into Python.
If your main goal is programming arbitrary machines, or server code, go into Java.

For learning programming more holistically I think no matter where you start, just starting with something is more important than what it is you start with; But I'd personally pick Swift or Java - that may just come down to me not being as familiar with Python though; I've only ever written a single, quite simple, program in Python to extract some metadata from a Matlab file and create a folder structure based on it, to then use with CreateML for Swift.

All options can be good though and once the mindset is there you'll be able to fairly easily pick up other languages; So your start should be more about what would make you feel more motivated initially than about the end destination :)
 
  • Like
Reactions: The Cockney Rebel

The Cockney Rebel

macrumors 68030
Original poster
Nov 16, 2018
2,795
3,384
Depends a bit on what your goal is I think. If your main goal is GUI-apps for iOS/macOS/otherApple - just start with Swift, honestly.
If your main goal is data analytics, automation, machine learning - jump into Python.
If your main goal is programming arbitrary machines, or server code, go into Java.

For learning programming more holistically I think no matter where you start, just starting with something is more important than what it is you start with; But I'd personally pick Swift or Java - that may just come down to me not being as familiar with Python though; I've only ever written a single, quite simple, program in Python to extract some metadata from a Matlab file and create a folder structure based on it, to then use with CreateML for Swift.

All options can be good though and once the mindset is there you'll be able to fairly easily pick up other languages; So your start should be more about what would make you feel more motivated initially than about the end destination :)
Thank you so much.

You explain things perfectly.

I think I’ll start with Swift, as I intend to code iOS apps. My dream being to travel the world, whilst coding on my journey!
 

casperes1996

macrumors 604
Jan 26, 2014
7,593
5,764
Horsens, Denmark
Thank you so much.

You explain things perfectly.

I think I’ll start with Swift, as I intend to code iOS apps. My dream being to travel the world, whilst coding on my journey!
Well thank you :)

I wish you all the best with your dream there; And as mentioned don’t hesitate to reach out if you’d like further assistance along the way :)
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.