Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialMax Ramirez
iOS Development Techdegree Graduate 17,361 PointsHaving Trouble Here
So I have been learning how to code for a couple of weeks now and I just finished the Swift 3 Beginner Track. But the reason for this question, is I am seeing now that although I learned a lot, I am having trouble retaining the information I have learned. I am having issues being able to use what I learned with each other. For example, Pasan said after the course on building a simple iPhone app, to try to build a coin flip app. So far the only thing I've been able to do is remember how to make a button change a label from Heads to Tails randomly. I cannot seem to figure out no matter how many ways through functions and structs on how to use any of the knowledge up to that point to make the button also change the image from heads to tails or even display how many times I got heads or tails to different labels. I am having trouble figuring out how everything can work with one another. I've been through the enums and protocols courses and through looking at other examples of others who have built a coin flip application, they use enums and even protocols in such a way I could not do on my own. Is there any advice to how I can better practice or learn how to make everything in the beginner iOS track flow with one another. I am even tempted to switch from pro, to the tech degree as I am completely serious on doing iOS development full time because the thought of creating my own applications or games and launching them on the app store has been a goal/dream of mine for around 3 years now. Any help is greatly appreciated!
- Max
3 Answers
Greg Kaleka
39,021 PointsHi Max!
Working on your own projects (even dumb things like a coin flip app) is super important. You really won't retain much of what you learn by seeing it once. As you work on making that coin flip app, you'll need to refer back to the learning materials.
Don't worry about others' projects, other than what you can learn from them. If you see something that's done better than what you did, and you think you can implement it, go for it! There's no shame in copying as long as you understand what you're doing (note: avoid actually copy/pasting code. It's better to write it out yourself).
Until you get more confident, you shouldn't expect to do much coding without actively referencing the documentation, watching videos, etc. As you work through a project, take it piece by piece, and find resources that will help you tackle each piece. E.g. with your coin flip app, maybe you decide you need a coin struct that has a face property, and the face property should probably be an enum since it can only ever be two values. You'll probably want to watch a struct video again while you're working on it, and an enum video again. It's tedious at first, but eventually you'll have more and more corners of development that live semi-permanently in your brain .
Also don't worry about having a really simple implementation. E.g. you could probably create a flipable protocol, but in a tiny app like this, there's really no reason to. Does your app work? Great! You did it! Don't worry about having "elegant" or complex code.
Bottom line - you'll probably need to watch most if not all of the videos more than once :).
Looking forward to more responses here, but let me know if this is helpful!
Cheers
-Greg
s t
2,699 PointsHi, I am also learning Swift, I am nearing the end of the Learning Swift beginner track. I feel like I understand a lot of what Pasan is teaching but I am definitely not confident in the practical use of it just yet. I am hoping that as I move on to building some simple apps here that everything I am learning will begin to come together. I really enjoyed and found useful the few practice sessions that I found in the Library but definitely would like more of them. I keep worrying that I don't have the main concepts completely down, also I have had to search the community more than a few times to help me answer the objectives. The process is usually like this; I try the objective myself, rewatch/reread the videos, read the Swift guide, practice like crazy in a playground and if I still don't get it, I search the community and find or ask for the answer then go over it again in order to make sense of it as best I can. Again, I feel like there is a lot of information and I am not retaining or mastering it. Is this normal? I have been spending 1-3 hours a day for the last few months and there is no doubt that I have learned alot but I wonder if I will ever actually really get it!!!!
Max Ramirez
iOS Development Techdegree Graduate 17,361 PointsHello! For myself, I've learned a lot of the basic swift knowledge from Treehouse, but I have gone to youtube, various blogs, and have tried hands on projects. I've actually learnt how to use table views from youtube, not from Treehouse, but thats the point. With my experience so far I have been able to learn by building various features for an app hands on. I learn as I go. I am on the verge of being able to launch my very own app, and I haven't finished the treehouse content. There are a lot of other resources to study and learn from that are completely free, so be curious, learn from others. And if you want to comeback and tackle some Treehouse videos again. You'll feel much more confident. For myself I had an idea for an app, I then focused on what features did this app need or what did I want it to do. Then I just googled how to make these features, and then I combined all of these features and the basic knowledge I learnt form Treehouse. Now my app is making lots of progress everyday, and It feels amazing! I encourage you to give it a try. Also when it came to designing the UI, I went to youtube and found amazing content. I also learnt about cocoa pods, which helped me make a calendar easily. Google everything that comes to mind, tons of research. As they say, a little progress everyday adds up overtime!
Greg Kaleka
39,021 PointsI wonder if I will ever actually really get it!!!!
You will. It will take a long time and be hard. The challenge of learning programming is making it through the slog of not getting it. From what I've seen, read and heard, it seems like the best predictor of whether someone will eventually be "good" at programming is whether they have passion for it, because if you don't love it, you can't possibly stick with it through that slog.
Also, as a beginner, I have some bad news for you: Once you get through the initial slog to where you start feeling like you get it, you have the desert of despair to look forward to. The linked article is great, and highly recommended. Here's a chart from it:
Depending on where you are in the process, you may be in the desert of repair right now. Regardless of where you are, just remember that if you stick with it, you'll get there. You don't have to be a genius to be a programmer. You just have to love doing it.
s t
2,699 PointsHi Max & Greg,
Thanks for the tips Max, just curious if you had previous programming experience before building your app?
Hi Greg, just read the desert of despair article, found it to be both reassuring because I can totally relate and slightly depressing! I've stuck with it this long, and I enjoy it so I'm in it for the long haul.
Thanks again guys! I'll check in again soon.
Max Ramirez
iOS Development Techdegree Graduate 17,361 PointsMax Ramirez
iOS Development Techdegree Graduate 17,361 PointsThank You Greg! I appreciate this, I will go back more often and try to tackle this practice app after rewatching these videos and referring to the documentation, and just be patient with the process as it does get frustrating when the code flows in your mind one way but the complier shoots errors at your idea of making work ?. Thanks again!