UPGRADE YOUR SKILLS: Learn advanced Swift and SwiftUI on Hacking with Swift+! >>

Struggling with the transition from studying the basics (day 1-15) to app building (day 16+)

Forums > 100 Days of Swift

I thought I was progressing fairly pain-free with the 100 days of swift course (closures aside...) until I started Day 16, and continued to 17 (where I am now). But now it all just seems a blur.

I understood the individual concepts in isolation in the tests, but when it comes to Xcode, it is just a mish mash. Classes, view controllers, all the terms such as viewDidLoad(), cellForRowAt are rather meaningless in the context of the Storm View app. For example, the problems with using instantiateViewController(), which returns a UIViewController when we want a DetailViewController, resulting in us using typecasting. It just means absolutely nothing to me. All these view controllers etc are going above me. Plus, this is just a very very basic app, and is making me question whether it is worth dedicating so much time to something that I may never fully understand.

Does anyone have any tips to get a grip on this, whether that's additional reading, etc?

Many thanks to those who read this!

5      

Keep going at it and it will get better. Revisit earlier stuff (the basics), do the same things twice, thrice, etc. Repetition is key, at first it is all new and daunting, but by repeating you will get a grasp on things. I myself have done all of HWS and Swift on Sundays, some beginner courses and a Intermediate course, and while I could follow along perfectly (eventually), I now struggle building an app all on my own. It's all part of the process ...

5      

You know, in the beginning when I started learning Swift(a year ago), I thought the same, there was too much things happening around, and when needed to create just a table view you had to do so much steps, but after a while, after creating dozens of table views and other things, things started to come together, and it stopped to seem so hard, of course I'm still learning and don't understand a lot of concepts, and tricks, but I know that its just a matter of time and I will get it, so I suggest to continue, don't rush, re-read or re-create the same things, take other online tutorials that are shown from other perspective (this helps me a lot), and you will get it :)

4      

Hacking with Swift is sponsored by Essential Developer

SPONSORED Join a FREE crash course for mid/senior iOS devs who want to achieve an expert level of technical and practical skills – it’s the fast track to being a complete senior developer! Hurry up because it'll be available only until April 28th.

Click to save your free spot now

Sponsor Hacking with Swift and reach the world's largest Swift community!

Thanks both for replying. Greatly appreciate it!

@Sangsom - You're right, it's just getting used to all the terms, and being familar with the process. i'm going to redo the content of day 16 and 17, and make detailed notes on what each key does, e.g. all the controllers and their requirements etc, so I can refer back to them going forward. The 100 days will probably turn out to 200 days by doing that, but i don't think i'll be able to learn much otherwise! I also need to make better use of Apple's iBooks going forward (the Swift 5.2 book and the app development with Swift book). I've been told they are useful, but seem rather lengthy....

3      

@Caleb  

@josephw

  • Yes, take your time.
  • Do NOT measure yourself or your capacity to learn Swift based on the "100 days" schedule.
  • Always keep your longer-term goal in mind. Everyone wants to be a coder in 3 months, 6 months, whatever. Just be a coder today. And tomorrow. And the next day. A good goal would be that 5 years from now, you will not have taken a break from learning some code (even a little code) for longer than a few days. Imagine that!
  • In the short-term, consider mixing in the "Learn to Code 1 & 2" puzzle games from the Swift Playgrouds app (available for Mac & iPad). I have found that these give a very practical understanding of what the code is actually doing and how it works. It's likely too basic for you in the first chapter or two, but you can get through those in under an hour, trust me.

Each day, I spend some time in each of three areas:

  1. Review Swift language learning (first 15 days)*
  2. Complete some lessons in Swift Playgrouds.
  3. Work on some tutorial.

For the tutorials, I don't try to learn 100% of what they are teaching, but in the other two I do. You have to consider that tutorials are trying to give you "the bigger picture" and provide motivation (and a little learning through doing). They have to include some complex things in the tutorial, not for you to learn, but just to make their app work in the end. Allow yourself to think "Okay. I don't get that thing, but I'll make a mental note of it's name and idea. I'm sure I'll run across it again."

*from #1. Use the review quizes! Also, there's a free iPhone/iPad app that has this same 15 day material in it called "Unwrap". It has a "Practice" section with lots of short, great practice exercises. You should be doing these daily for the next 6-12 months, in my opinion.

5      

@CalebBasinger

Thanks for your response. I will have a go at the 'Learn to Code' parts 1 and 2 over the next few days, and take on board some of your other suggestions.

4      

You can also try Paul's "Unwrap" app which is free and very good and you can learn anywhere without a computer.

https://www.hackingwithswift.com/unwrap

3      

@Caleb  

@NigelGee

I agree about the Unwrap app. I mentioned that at the end of my post. The Review exercises are exceptionally good at helping me learn the Swift language and syntax.

3      

@NigelGee and @Caleb, is there a way to see the correct answer if you get a question in the daily challenge wrong? Some of them don't say the correct answer if you get stuck, or get it wrong. Seems a big limitation of the app if i don't know what the correct answer should be 75% of the time....

3      

@twostraws  Site AdminHWS+

@josephw The daily challenges are just random selections from the Practice tab – if you want to see where you went wrong, you should use that.

4      

@twostraws Thanks Paul, good to know!

3      

My suggestion is not to try and finish each day's lesson in one day. Spend as much time as you need. Don't move from one typed-in command to the next without fully understanding what's going on, well, as fully as you can for the stage you're at. If you Option-Click class names, methods, etc. in Xcode, it will pop open a window with additional information. Read all of it. Command-Click'ing will get you to actual definitions of what you click on. For example, you can view all of the methods of a class. If you come across any Swift keywords you don't remember the purpose of, look them up before continuing - I think this is critical because now you are going to see them in context and looking them up will burn the info into your mind. Take notes on the things you know you'll need to be reminded of; you can read mine here. During days 1-15, it was all passive learning. You have to remember that now it's active learning.

This is the way I'm doing it - only on Day 16 but I'm feeling good. I think it's going to take me 4 days to complete Day 16. As long as I spend time on it every day, I don't care how long it takes. Hopefully I can quicken my pace after Day 17. I'm also going to write blog posts for everything I learned while digging around. You can find that here.

3      

@josephw I don't have much to offer by way of advice, but just wanted to say that you're not alone, I'm in the same boat.

I'm on day 22 of the 100 days, but it has actually taken me 34 days to get here (some of which were several hours, not just one). I'm not in a rush, so this isn't a problem for me. You get there when you get there right?

Once I got to the projects I started to, as some folks said above, alternate in other resources. To be honest, for the projects I also have to re-watch/ re-read all the material in order to do the challenges at the end. But it does go a lot faster the second time through.

One good resource too is the swift documentation itself. I've been using that to look up the various viewControllers, methods, built-in objects etc and while it's not the most fun to read, it does a decent job of filling in some of the gaps.

So the real question is... how we get a 100 Days of Swift virtual study group going?

3      

@Caleb  

@ekcorso

The best way to organize a study group that would go through the material (relatively) together would be to use the Hacking with Swift Slack workspace, and create a new channel for your specific group that's working together.

https://hackingwithswift.slack.com/#/

3      

Hi @josephw,

I used to be on the same boat here. Today is day 88. for me, and if a guy like me can go that far - ANYONE can. Of course, I still struggle with lots of things - but this is the way it's supposed to be! Every MINUTE that you put into learning Swift won't be wasted, trust me. There is one rule that I apply to every day, and sometimes I even say it out loud:

DON'T WORRY, JUST LEARN.

Don't waste your time analyzing which parts of UIKit will be useful for you, and which not. Whatever you do, don't bring yourself down with any grim visions - now you are HERE, and it's all about learning stuff.

It's OK to fail. It's OK to get frustrated when things don't go your way. It's OK to be tired with it all once you realize you've been sitting and tinkering with your code, without making even a step forward (in this particular case, it may seem like you haven't learnt anything, but that's not true - as Paul mentioned many times, we FAIL, and that's when we learn something). But this struggle gets us all SOMEWHERE - and that place alone is worth all the hassle.

3      

My first TableView took me so much time to get working I still cannot believe it. I believe I have already spent more than 1000 hours developing iOS apps and I am still making silly mistakes...

So enjoy the process. You will get there :-) And folks on this forum and elsewhere will be surely happy to help.

3      

Hacking with Swift is sponsored by Essential Developer

SPONSORED Join a FREE crash course for mid/senior iOS devs who want to achieve an expert level of technical and practical skills – it’s the fast track to being a complete senior developer! Hurry up because it'll be available only until April 28th.

Click to save your free spot now

Sponsor Hacking with Swift and reach the world's largest Swift community!

Archived topic

This topic has been closed due to inactivity, so you can't reply. Please create a new topic if you need to.

All interactions here are governed by our code of conduct.

 
Unknown user

You are not logged in

Log in or create account
 

Link copied to your pasteboard.