BEN BARKETT

Hello! I'm Ben Barkett: an aspiring Software Developer and graduating senior with degrees in Computer Science and Economics.

What It's Like Learning Swift as a Beginner

With so many resources online, it's easier than ever to learn new skills, especially when it comes to coding. However, I found that the sheer amount of information out there often led to me being unsure about which resources to follow. I'm going to outline some of the resources I utilized when first starting out, as well as the ones I personally found the most helpful. This is by no means a comprehensive guide. There are many good resources out there, and I regularly used only a few. Futhermore, I'm still learning Swift! While I wouldn't still classify myself as a novice/beginner, I'm certainly still in the intermediate skill level. I understand the basics of the Swift language, but I still have a long, long ways to go in terms of learning the in's and out's of the language. But anyways, here are my thoughts.

Apple Documentation

It feels natural to start with the documentation provided by Apple themselves. This was the first place I looked when trying to learn Swift, but outside of their official "The Swift Programming Language" book I did not lean on the Apple docs very much when first learning. As I continue though, I find myself using them more and more to learn how to use various frameworks and APIs, but Apple's developer documentation does not have the best reputation (exhibit a, exhibit b). It stinks that Swift doesn't have more robust official documentation, but I'm hopeful that it will get better with time as the language continues to mature.

Online M.O.O.C.s

There really seems have been a massive explosion in the popularity of MOOCs (Massive Open Online Courses) over the last few years. Among the big players, I hear about 3 the most: Udemy, Udacity, and Coursera. There are also sites like Skillshare and Masterclass, but as far as I'm aware they don't have as much content for mobile development as the 3 I listed. Out of those three, Udemy is the only one I've actually tried. Both Udacity and Coursera look like great resources due to the depth they seem to provide, however that comes at more of a cost. Personally, as a college student who had other coursework and obligations to worry about, I liked that I could purchase the Udemy course outright (for a much lower price), and work through it on my own time, without feeling bad if I took breaks from it or had to put it on the back-burner. If I had more time and money, or there was more pressure to learn Swift quickly, then I think a site like Udacity or Coursera might have been better.

Speaking on the Udemy course itself for a moment, I quite liked it! The iOS 13 & Swift 5 Bootcamp was my first real dive into learning Swift and iOS development. If you're an absolute beginner and looking for something that will help you dip your toes in the water, I can highly recommend this course. It assumes you don't already know a programming language and starts at the beginning. Personally, I found myself skipping some of the early lessons because I did already have experience with coding, but as the course went on, it picks up in difficulty. It's regularly on sale for anywhere from $10-20 and at this price, it's kind of a no brainer. A bunch of content, and good simple explanations.

There is also the Stanford CS193p course on YouTube if you're looking for a course that feels like a college lecture (because it is one). This course has been around for a while, and I remember it always being one of the top courses back in the days of iTunes U. While I haven't watched the whole course, I've certainly watched individual lectures and I'm a big fan of Professor Hegarty's teaching style.

Other Online Resources

Arguably my favorite part of the Swift community is that there is a dedicated group of developers making high quality educational material for other developers. Especially in the absence of really robust resources from Apple themselves, it's super encouraging to see other websites try to pick up some of the slack. My favorites are Hacking with Swift, Swift by Sundell, and Ray Wenderlich. I remember using Ray Wenderlich years ago back in middle school when I first tried to learn iOS development, and it was awesome to see how much the site has grown since then. They have great guides and courses, and they even cover many other areas of mobile development besides just Swift, so if you're looking to branch out into cross-platform and Android development, Ray Wenderlich has plenty of resources on that.

Much in the same vein, Hacking with Swift is written by Paul Hudson and this man has probably been the single most helpful person I've found in learning Swift. HWS is very well written, and so much of the content is free and available on platforms like YouTube. Beyond the free stuff, there's Hacking With Swift+ which gets you access to all sorts of intermediate and advanced content on the site. HWS+ also includes access to Hudson's "The Ultimate Portfolio App" course, which I'm currently working through, so stay tuned for my thoughts on that as I work through it. Paul has also written a number of books about Swift and developing for all of Apple's different platforms. My favorite part is that when you purchase one, you get updated content for free in the future when new version of Swift or various OSes are released.

Swift by Sundell is another site I've been reading a lot of recently. Written as a weekly blog, John Sundell does an excellent job writing about different aspects of the Swift language in a way that is easily readable for someone of any skill range. He also has a podcast and video series which I find more casual but, if you're looking to really immerse yourself in the Swift community, are worth checking out.

If you're into Reddit, there's always r/Swift and r/iOSProgramming! I found both of these communities to be very helpful for keeping up with the latest of what's going on in both communities. It's also a great place to both ask and find answers to questions you may have about the process, especially as a beginner. The iOS Programming subreddit also has an extensive FAQ for any beginners looking for quick answers to their questions. Honestly, if there's another service or course out there that I don't cover in this post, there's a very very good chance you can find someone else's opinion about said service on the subreddit.

Last, but certainly not least, is a YouTube channel which I've only recently discovered: Kilo Loco. Kilo has some great tutorials on his channel about how do a variety of things in Swift including the basics, as well as topics like SwiftUI, Vapor, Core Data, Networking, and many more. I find his videos very easy to watch, entertaining, and very helpful. In fact, I first found Kilo Loco while researching how to build a website using Swift, and I found his tutorial on using Publish. Without that tutorial (and John Sundell's Publish in the first place), this website would probably not exist.

Conclusion

In my opinion, the biggest key to starting out as a beginner is just picking a tutorial series or course, and sticking to it. In all honesty, I don't think there's very much difference in most beginner-focued courses, especially if you already have some programming experience. They're all going to teach you the basics of the Swift language, how to use XCode, and how to write basic apps. The biggest part is that no matter what you choose, you stick with it. Whether it's a little progress every day, or sitting down for a few hours on the weekend, regular practice is always the best way to develop new skills. From there, the path to learning iOS development is largely yours to choose. Pretty much every Swift developer out there will recommend working on your own pet projects, which I certainly agree with. I find if nice to have something I'm interested in to work on when I want.

When it comes to actually getting a jobs and internships doing Swift development, your milage is certainly going to vary from mine. I got pretty lucky and was able to land an internship for the fall semester 2020 after spending the summer learning Swift. Now, there's a few major caveats here. One is that I originally connected with the company through my college's career center. I am lucky enough to go to a school with a very involved career center, and they've been a large help to me in finding opportunities to apply to. Second is that the company I interned for is a small web marketing company, so I'm not claiming that you only need three months of learning to land an internship position at a big tech company. That being said, I believe that if you are genuinely interested in learning Swift and you put forward the effort, you will not have too hard of a time finding an internship. Especially when it comes to companies that hire developers but are not necessarily "tech" companies (retailers, marketing agencies, etc.) I've found that you don't need to know every data structure under the sun, or be able to invert a binary tree in order to get your foot in the door there.

Even though I talked about all the places I learned (and am still learning) how to code in Swift, there are still many more out there. If you're just starting out in Swift, I really recommend checking out any of the places I link to in this post, but I am by no means saying this is all there is. In fact, if there are any sites/services/courses that I don't talk about here, but you have personal experience with, feel free to write me and I'll append this post with your thoughts!

Thanks for Reading!

Tagged with: