NEW: My new book Pro SwiftUI is out now – level up your SwiftUI skills today! >>

I'm having a hard time doing things by my self

Forums > 100 Days of SwiftUI

I'm new to the programming world, swift is the first language that i'm trying to learn. I'm on the 22nd and so far i've been understanding most of the things that are on the videos, somethings i have to watch more than once, but i'm doing ok.

The problem is, when i try to create something on my on, my mind just go blank and its like i dont know anything. I tried to recreate the guess the flag project, but if i dont consult on the original project, is almost impossible for me to do much.

So, is anyone here who experience something like that, is it normal in the beginning? If not, is there a way to improve? I just feel like i understand everything, but I dont really learn. And I really want to be a IOS developer

1      

Plain normal, I'd say. I've been in the same situation and so have many others.

Repetition is the key here. Most beginners won't be able to create an app - or even parts of it - from just viewing tutorials. You need to try and create things on your own, like you did, and if it didn't work in the first place (again, plain normal), look up to how do. Some things only once, some things you may have to look up three, four maybe even ten times. That way everything will sink in much easier.

One thing I couldn't imagine until I heard about it (I believe even Paul Hudson said so): Even experienced developers have to look up how certain things work all the time.

So keep calm and good look with your journey!

2      

Ricardo shares doubts we've all had before:

When I try to create something on my own, my mind just goes blank and it's like I don't know anything.

I have to agree with Pascal. Repetition is the key.

Biscuits πŸ₯― πŸ₯


My grandmother made the fluffiest biscuits. She could grab some flour, a chunk of butter, milk, a dash of salt, a shake of vanilla, and a few other ingredients and make delicious biscuits for 3, 9, or 20 people. Golden crust on the outside, heavenly clouds in the middle. She did this from memory. I'd try the same, and gronk up the ratios. Instead of fluffy biscuits, I'd make runny pancake batter. Or thick hockey pucks as hard as cement.

The difference, of course, was experience. To gain grandma-level πŸ‘΅πŸ½ experience, I had to make scores of biscuits, often ruining a batter and needing to start over. What helped me gain the experience was a hand written recipe!

I wrote down the measurements and made biscuits for breakfast each morning for weeks. To be honest, I ate scores of awful biscuits. After a while, basic biscuits were easy. And they started to taste great! Then I tried some variations, making numerous notes on the recipe for different textures or flavors. Before long, I didn't need the recipe card. But it was always available for reference.

Playgrounds πŸ› 🎑


I recommend you use playgrounds as your recipe book! It's easy to create multi-page playgrounds in Xcode. I recommend you put a different topic on a new page. Give the page a name, similar to naming a biscuit recipe.

One page could be recipes for sorting arrays.
Another page could be for useful array methods. Create examples and document them for future you.

One page could demonstrate the Picker user interface element. Another page could demonstrate how to implement gradients and drop shadows with a button.

Make lots of notes! Comments are just as important as the sample code! Write lots of comments to yourself! Explain what you're doing and help your future-self understand your code. Future You will be grateful!

Hint: when writing comments, explain the code to yourself using the Rubber Duck Technique 🐀

Practice πŸ‘©πŸΌβ€πŸ³ πŸ‘¨πŸΏβ€πŸ³


Now you need to practice in the kitchen! Grab a screenshot from a favorite application. Try to duplicate the Notes interface. Open the Contacts application on your iPhone and start entering a new friend. Duplicate that interface in Xcode. If you get stuck on how to add an SF Symbol to a button, before you get frustrated, check your πŸ“– recipe book. You should have a small, concise recipe for Making a Button with SF Symbols. The rest of the new contacts screen seems to use a Form. Don't remember how to create a view using a Form and Sections? Check your recipes! Sometimes you'll have to create a NEW recipe, but that's how you build experience. Soon you'll have a page in your playgrounds titled Favorite Buttons. You'll reuse that recipe over and over again.

I've shared a few recipes in these forums. Search for >playgrounds< and start adding these to your own playground. To get you started, here are a few that I've written for the forums.

See-> Initializing Structs
See-> Getting a Variable's Type
See-> Fun with Dictionaries
See-> Picker Examples

Keep coding!

3      

Hey, I can only agree with my earlier commenters and I wanted to provide you my experience, since I am an absolute beginner myself!

First of all, I am very interested in programming and tried the one or another thing with different programming environments and lanugages, although I've never really gotten into things that deep and only scratched the surface. The things I "programmed" or better to say, the things I tried, were only easy tasks like printing variables or calculating something, so I've got no experience that is really important to talk about.

Now I really found myself getting deep into Swift, especially SwiftUI! Keeping up with the 100 Day Challenge and also (and that is super important, in my opinion) trying to code some ideas myself, even though I don't have a clue how to. I am only on Day 7 and I am kind of impatient, so I watched some other tutorials on YouTube, that showed how to build an easy app. No explanation, no comments, just videos of people building apps and me copying one of them. Now I have an app, where the basics are functioning, without me knowing anything (It was just a List, where you can add data). Even though I did not know, what I programmed when copying the code, I now have a "Playground" App, where I can add things and remove things I found on the internet, like a NavigationBar or TextFields that change their value, and several other things just to try out and learn by doing. There is literally no function I implemented by knowing things, just googled it or saw it in other apps and then googled how to do it like they did.

You wont need to copy an app, you could also just try the different things seperated from one another, but it just feels good, to have a running system that works. Also it may not be the best solution for beginners (even though I am one myself) but it really works and now that I've tried dozens of different things, just to get one thing I found on the internet running in my app, I learned really much and could even code some things again without looking up!

Hope my experience helps you find your own motivation!

   

@Bnerd  

Practise, Practise, Practise Few points of advise from a rookie too:

  • Copy as much as you want, but make sure you understand how the code works.
  • Make comments in your code, not only it will help you when you will open an old project but helps for you to solidify your knowledge
  • Don't try fancy stuff unless you have covered the basics
  • Search on forums your blocking points, you will be amazed how many people faced the same before you.

1      

Thanks so much for all the comments and tips. I will keep going with a easy mindset now. I will try to learn without putting so much pressure, and keep praticting

   

@obelix thank you, I was getting a bit disheartened already but I've just gone back over the last few lessons and have been making my own notes using playgrounds. Things are beginning to make more sense now.

   

Hacking with Swift is sponsored by Play

SPONSORED Play is the first native iOS design tool created for designers and engineers. You can install Play for iOS and iPad today and sign up to check out the Beta of our macOS app with SwiftUI code export. We're also hiring engineers!

Click to learn more about Play!

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

Reply to this topic…

You need to create an account or log in to reply.

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.