I thought I would cover what the prerequisites are for learning programming in Swift for iOS app development in a straight forward manner. And as I am now just beginning to create a module “course” based on an app I’m currently developing that will be for a straight-up beginner, I’m just going to put this all in here, the direction and rough preview of how I’m going to structure it in this post.
Now a lot of the stuff I plan to cover are things that I am practicing, conversations I’ve had with programmers at work and outside of work, etc. - my goal is to provide what I wish I had when I first started learning app development.
Now I have done countless tutorials, signed up for and completed online courses and all that hoopla, so there are a lot of pet-peeves that I have. I’m going to give it to you straight - I don’t want to waste your time by stroking my huge ego or using fancy techie terms. There will be no jargon, no BS!
Programming is challenging and there are no shortcuts - so don’t let anyone tell you any different. As a budding programmer that was struggling with learning how to think like one, here’s what I am going to provide to any newcomer who finds me on Youtube or decides to do any of the modules that I plan to release:
- I’ll give you a recipe upfront. - I don’t want to waste your time and have you work through a whole, flippin’ tutorial to only find that it doesn’t help you at all until after you’ve completed it or your not sure what you’ve learned/done. You don’t bake a cake this way, so why should you learn to code this way. I will present what I will cover up front: from the prerequisties, to code used, to frameworks, references, resources, technologies, etc. - the BIG PICTURE before I go through any tutorial. It totally up to YOU if you want to read through it, practice, learn, or follow it. Feel free to modify any part of it. Time is flippin’ precious!
- No magic box sh!t. I will NOT, I repeat, NOT give you a starter project to upload just to implement one feature. I’ll build a project either from scratch or reference one that I have built before in another tutorial (with links and code provided). Practice makes perfect.
- No gamification tactics. - Gamification is for video games! This tactic will only give you a false sense of accomplishment and doesn’t encourage experimentation. I don’t like it, so I just won’t do it. I’d rather you get that sense of accomplishment from completing a fully functioning line of code or app because you built it. There will be no participation trophies given out. Suck it up, buttercup!
- I will cover Unit Testing & Test-driven development(TDD) from the VERY beginning. Why? Less typing more problem solving! AND because absolutely NOBODY covers it! Unit testing your code makes sure what you are programming actually works from the get-go, plus writing comments everywhere is just stupid as hell, especially if you have to review what you coded months ago!
Are you STILL HERE & READING this post!?
Hot damn! I didn’t scare you away and you really do want to level up! Well then - Let’s start learning how to code and program in Swift 5, here’s how to get started:
First, Get acquainted with the Swift language and put in some practice in. If you don’t know what Swift is, here are some references and resources to practice it.
Download that Swifty 5
- Download Swift 5
- If you have a Mac, just go to the App Store and download Xcode.
- If you have Linux, just follow the instructions in the Swift.org website to install on Ubuntu.
- If you have a PC, partition that biatch and run a virtual instance of Ubuntu 18 then install Swift.
- OR START RIGHT NOW, here’s an online Swift Editor to give the language a go right in your browser.
- Download Xcode to complete the modules that I will be releasing soon.
SUPER DUPER TIPS for BUTTERCUPS
- PRACTICE MAKES PERFECT - Create your own examples of the what you learn as you go through Swift’s Language Guide. Practice coding in Swift and watch as many YouTube videos as needed to get familiar with the language.
- STUDY LIKE YOU ARE GOING TO TEACH - Take detailed, written notes for parts of the language that you find difficult to understand. (Write them as though you have to teach someone about it).
- GET COMFORTABLE WITH DOING INTERNET SEARCHES - If you aren’t comfortable with doing internet searches now, you will be. You’ll find most your questions about the language will have been already asked and answered just by Duckduckgoing or Googling what your questions are or errors you encounter.
- EMBRACE THE SUCK! You can’t seem to figure out how to implement a framework, wonder why you can’t get data to pass through or just don’t know how to code a closure. You will get frustrated. Your sanity will be tested. You’ll wonder if you are an idiot. You will have some bad days (and sometimes weeks). Just keep at it. Persevere. Challenge the critics, real and imagined.
- If you are super stuck in the suck zone = ASK FOR HELP!- Reach out to others on social media. The developers that are pretty active on Twitter and YouTube are usually super friendly and helpful. There is no such thing as a stupid question.
- FINALLY, FIGURING SH!T OUT IS REWARDING AF!Trust me, every time you fix a bug or figure out out how to do something challenging, you will have a lot of “YES!” moments: That feeling is like sweet manna from heaven!
Let’s do this!