Hey guys,
I really want to give this my best shot.
I've been researching Swift and this seems like the best place to start?
I found this book, but it was released in 2014 so it seems extremely out of date:
Computers & Internet · 2014
books.apple.com
Is there a list of books made by Apple that people can purchase?
What can people recommend for me?
Thank you for any advice!
I want to note that the book you link is **not** out of date. 2014 was the initial year of release but the book has been updated throughout the years. It lists Swift 5.7 which is the latest stable release (5.7.1)
Paul Hudson and his books/website HackingWithSwift is an excellent resource. - he's also on YouTube under his name Paul Hudson, with infrequent but high quality uploads. He's also made an app for learners called Swift Unwrapped.
I want to tell you this though; And I've said this to many before you too - Don't try and "learn to make apps" or "Learn to code for Mac/iPhone" or similar. Go into this with the mentality of "I want to learn to program".
The mentioned Swift Playgrounds app is not only available for iPad. It can be gotten for macOS as well and having a keyboard is very recommended. You might have that for an iPad too, in which case use whichever version you want, but if you don't stick with the Mac version. Or just jump straight into Xcode.
Playgrounds can be slow at times since it's made to be approachable by even kids.
Swift is a good place to start, especially if Apple is your focus, but I also want to emphasise that language doesn't really matter. Mentality does. A good programmer can pick up a new language extremely quickly.
Do not only focus on learning Swift. Focus on learning fundamentals. Algorithms, data structures, architectural designs and patterns.
Don't set too high goals too fast. Set yourself an absolute minimal task at first. "I want to make a program that you give two numbers and it outputs the sum!" - Maybe first implement that in a way where it reads the inputs with the program invocation from the list of arguments, like
./myProgram 2 4
// outputs 6 here
Then maybe remake it in such a way that it reads the inputs interactively while it's running
./myProgram
2
4
// 6
Learn from several different sources. Don't just read books, tutorials, watch videos - do all of those and do challenges and projects. Both ones you set yourself and ones you find. There's algorithm exercise websites like LeetCode, CodeWars,e tc. that have fun gamified programming challenges, and the aforementioned Swift Unwrapped does a similar thing at a language level for Swift in a very beginner-friendly way.
If you want I also offer you my Discord. Whenever time permits I will be glad to answer questions in a more live-chat form, look over any code you want reviewed, help with the learning process and generally offer whatever guidance I can on programming. My contact information is available on my website