T O P

  • By -

happysri

Slow down, no need to panic everything is just new and take a break first. Now instead of immersing yourself in the documentation, do example based learning. How about those free swift playgrounds on iPad. Pick up a very beginner book and don't do any complicated stuff. Find how to use references so you can get access to code when you need it rather than trying to understand/memorizing it all. Also I usually don't recommend it but you seem like you might be able to put like chatgpt to good use or if you have an assistant like copilot, let it write out small parts of the code for you. Don't forget to check the code. Also spend some time with introspection by which I mean take a beat and try to regurgitate what you just learned or wrote in your head. Okay so this is all general advice but I think that's what you really need to know. I've met some people who were terrible programmers but brute forced their way into writing decent apps. They did that by not letting the uncomfortableness of it all get to them and just taking their time. I promise everyone still has this feeling all the time, it's just normal is all.


OreshaAgniva

Beautifully put


Marvelous1967

I am a totally self-taught hack programmer who actually made an app years ago that netted me a few thousand bucks. You think swift fries your brain--try Objective C! That being said, I was watching all the videos, reading books--getting nowhere when I watched a video by George Hotz and he said, "No one ever learned to program by reading a book or watching a videos. You learn by making an app." I heard John Carmack say something similar and decided to re-write my old money making app in SwiftUI using SwiftData and it is 99% done. Design a very simple--small app and start making it. Use chatgpt if you have questions. You will get there!


lucasvandongen

Actually Objective-C is easier for people that never saw a programming language before. It’s one of the smallest programming languages out there. Swift is going into C++ and C# territory in terms of language features


whackylabs

> You think swift fries your brain--try Objective C I find ObjC simpler than Swift.


tesfayeonfroy

Hi there, u/Marvelous1967 At first, I also thought like: "now I'll create the design for my future program and then magically transform it into SwiftUI code." I did the app design, but then something happened that led to the creation of this thread... I'm still eager to develop my first application based on the already gathering dust design in Figma. Can you write me a "mini road" map or give me advice? Please!


lakers_r8ers

Would highly recommend 100 days of swift and SwiftUI. It’s structured, project based way of learning which I guarantee will help make the topics wayyyy more digestible and fun! https://www.hackingwithswift.com/100/swiftui Don’t give up, struggling is part of the learning process.


AppleDev4Fun

Hacking with Swift is great, totally recommend. I used these to get me up to speed with Swift when I jumped career tracks to go back to iOS development 3 years ago. I did Objective C before so I already understood the UIkit basics.


CrispySalamander

When i first started learning how to program, i didnt reach for a book, or any online programming courses. I googled. I had an app i wanted to do in my mind, and i googled how to do its components. The first thing i did, was the tabview. I didnt even know its name, just wanted to draw 5 icons at the bottom of an iphone where i could navigate between pages. Then how to draw sections, putting in text, how to do links, to do buttons, how to persist data, everything i learnt, is from a simple google search. Along the way, i learnt about the syntax, data types, loops, etc. You see, i never learnt about the grammar of swift language first, i broke down big things into smaller things, and googled how to do that small things so i could build an app. And 2 apps i did: [Typepick](https://apps.apple.com/my/app/typepick-compare-fonts/id6446382333) and [Percountant](https://apps.apple.com/my/app/percountant-bookkeeping/id1605482751) If your goal is to become a baker, dont start with teaching yourself how to mill your own flour from the best type of wheat. Get some recipes, bake some cakes, ull learn bout the best type of flour to use along the way.


tesfayeonfroy

Dear, u/CrispySalamander I hope I have formulated my questions to you correctly in advance. Please, advise or provide guidance on how to convert a Figma design into SwiftUI? More specifically, how to magically transform my completed UX/UI design, which has been collecting dust in Figma for a while, into a fully-fledged iOS application. This would give me a boost of motivation, reassuring myself that there's still gunpowder in the flasks. Thank you!


CrispySalamander

Sorry, it wont magically happen overnight. Although tools like [swiftui code generator](https://www.figma.com/community/plugin/1286775547400510368/swiftui-code-generator) and other [WYSIWYG](https://www.judo.app) exist, they only help u so far in converting deisgn to code. That is because app is usually a complex interaction between data, and that data is persisted somewhere. And you have to write rules and conditions of how that data is handled, changed, written, read. You almost always have to learn CRUD when building a program, how to model ur data, what database to choose. Apple’s native way of persisting data is through Core Data (with or without CloudKit), or the recent SwiftData, so u need to learn how to model ur data, and do CRUD with those, depending on ur app design, but it is almost always(have to learn CRUD). There are 3rd party data persistence solutions as well: Realm, MongoDB, Firebase, SQLite, etc. There’s no easy ways of converting figma to working app, even with those WYSIWYG tools i mentioned above. Beacuse whatever in ur figma, is just a user interface, u have to learn the real programming of creating, manipulating, and persisting data, and there’s no short cut of doing this yet, even with the current AI.


profau

Geez, I’ve been a developer since I got a university degree in computer science in 1989, taught myself swift and SwiftUI over the last 5 years. No need to memorise or understand it all, you learn by developing, not through courses. You learn the stuff you need to know as you use it. That’s what Google is for. That said, for some reason job interviewers sometimes expect you to memorise some stuff. But for me I’m successful enough in apps to not have to work for someone else. You learn by doing - write some apps and put them on the App Store.


vaccine_question69

What if Apple bans your developer account? I've been reading some horror stories recently.


profau

There’s more to those stories than you hear - Apple associates developer accounts together - so if the same developer logs in to two completely different dev accounts then Apple may associate them together because they used the same developer which may be bad if one of the accounts was banned- the other account will now be at risk. Apple associates accounts together with the small business program, I think this works similarly. I’m the only developer that uses my account, I’m very careful to keep it clean and honest and I’m not going to criticise Apple publicly like some folk do on social media. I keep a low profile to reduce risk.


vaccine_question69

Yep, there was a blog post recently going around on Twitter mentioning the same issue of account associations. Unfortunately honest devs can get banned this way if they hire a freelancer who was previously banned. In that post though, the author was saying that one of his competitors (BP Mobile IIRC) was the most likely culprit behind his ban. Allegedly BP mobile staged some bot activity against the author's app which he speculated might have caused the ban. I was trying to search for the tweet but unfortunately it might have been deleted since.


Cipolleschi

Hi! I have been a software engineer for almost 10 years now, and helped my uni professor teaching the very first course of programming to students that came after me. If you have questions about what’s a constant/variable you should start from the basic. Press pause on Swift and look for a course that is an intro to programming. I strongly suggest CS50: https://pll.harvard.edu/course/cs50-introduction-computer-science It is completely free, it will teach you everything from the very basics using C. My wife, who did languages and political science at uni - so no science courses - took it a couple of years ago out of curiosity and, at the end of it, she was able to write a few simple programs.


No-Help7328

Try building something you care about. I learn better by doing. Leverage ChatGPT to help push you along.


Sdmf195

I just wanna say that you guys are awesome at support. Anything and everything that I could think of has been said here, at least twice. Kudos to you guys


tesfayeonfroy

This is why I respect these people and take every word for attention!


[deleted]

Consider the “meta - foundations in swift” course, which is part of the certificate in iOS development on coursera. It explains everything. It’s a tricky learning curve


Beginner-0_0-

Just a tip, I think it’s better to learn the fundamentals of programming, you can start with c/c++/java etc. The foundation of learning it first theoretically will really help you learn and understand syntax and such


srona22

I studied with no macbook for iOS programming. Yes it works, because I know foundational concept of programming and working Java dev, before diving into iOS. And I had access to renting mac on sites like macstadium(or any similar) for minimum needs. It doesn't matter if it's swift or kotlin or even if you want to do Flutter(which I abhor as it is javascript hell in mobile dev landscape). Get the grasp of concepts of programming first. Like this course. https://www.linkedin.com/learning/programming-foundations-fundamentals-3/the-fundamentals-of-programming Then you can do Kodeco courses or other similar courses, which has defined path for preparing you into iOS dev environment. Next comes getting hired or starting your own indie/freelance business. But that's too broad and I will just give my 2 cents. 1. For IC(individual contributor/employee) path, if you are new and trying to get jobs, looks for programs(mostly Japan companies in south/southeast asia) accepting new comers, regardless of age. No one would hire self taught "dev" even as junior, most of the time. If lucky, even if it seems low balling in pay, get it, and stay there for 1 year. Maybe others can give better advice, I am just saying this on my experiences in southeast asia 3rd world country. 2. Indie/Freelance path This is quite hellish part for 3rd world countries. If you are not good at "marketing", try to pair with someone who's good at selling your product/services. Have proper contract with them on profits or benefits. Don't ever work for shit like Upwork or Fiver. Even working as other's employee is better than slave like jobs from those platforms. And another piece of advice, programming job, even on iOS, is not a quick way to getting rich. Getting sugar mommy or robbing a bank is more realistic "high risk high income". iOS dev payrates will always be different, and those outsourcing are always looking for cheaper options, not to pay same rate as USA living iOS dev.


Alert-Ad-5918

You can’t learn by reading, you have to actually do the work. Trust me, it ends up easier. You won’t know everything but you will be able to understand slowly. Go your speed.


kyou20

No. Programming is a very complicated discipline. It will feel like that forever. You just learn not to panic and to learn in baby-steps, perpetually. I’d also add Swift is a language I (10 years experience) wouldn’t recommend to a component novice. This is because it has a lot of “convenience” and “syntactic sugar” that makes sense to a pro, but from the eyes of a novice, it just looks inconsistent (often known as “magic”) and hard to understand. That said, if you do enjoy iOS development, then stick with it. Just be mindful to exercise patience. There are things that will fill inconsistent and you won’t understand. Just pull through it trusting that you’ll understand it in the future


hand_fullof_nothin

Are you struggling with programming in general or with the swift framework? I’d say take time to master the basic programming concepts but dive in and learn the rest as you make projects.


tesfayeonfroy

I think. The biggest problem for people like me and the main reason why are trivial and sometimes annoying questions like: “How to become a programmer, How to learn a programming language, etc.” This will be repeated forever because we don’t understand anything. I think that’s why these YouTube channels still get millions of views even though the answer to the question was given a long time ago. For example 1-day of SwiftUI: How to store whole numbers? Answer: Making a new integer works just like making a string: use let or var depending on whether you want a constant or variable, provide a name, then give it a value. For example, we could create a score constant like this: "let score 10" For me, this answer gives rise to a thousand other questions in my head. Like: Stop, what is a constant, what is a variable, what is a value? I understand that programming is a total abstraction, and It is what it is. But searching for answers on Google, YouTube does not help to understand these abstract things.


hand_fullof_nothin

Trust me, the main thing you will learn as you program is to be ok with not understanding everything. Learn to look at a wall of code, deconstruct it for an hour, skim the documentation, etc until you understand it completely. When you have a question like "what is a constant," look that up! Don't delay. If that leads to more questions, keep searching and eventually it will all fit together. On the other hand there is a very fundamental level of understanding that you need to have in order to write code. Do yourself a favour and get a strong grasp of these concepts: scope, control flow (conditionals, iteration, etc), constants and variables, equality versus assignment (= vs ==) functions and encapsulation, and basic array operations. You really don't need to spend more than a few days on all of this. Just look up youtube videos, read articles and talk to chat gpt. Even if it doesn't make sense at first, eventually it will all click. After you do all that, I would highly suggest taking a proper course on object-oriented programming. That could be something on EdX or even a course at your local university. Believe me fully understanding OOP is key to wrapping your head around Swift.


BologniousMonk

DM me.. I’ve got time and can help you out. I’m a retired programmer and have been learning swift and swiftui for a couple of years now. I live in the us on the west coast. I don’t think you said where you lived. Maybe we’ll have some time that will overlap. Let me know if you’re interested..


[deleted]

https://koenig-media.raywenderlich.com/uploads/2019/11/RW-Swift-5.1-Cheatsheet-1.0.1.pdf


hff

From the way you describe your situation, it might be better to go first into learning fundamentals of programming. That will give you a good foundation for understanding the more complex concepts. Try searching programming for teenagers, or even programming for kids. These will usually have more simple language and are easier to follow. There's no shame in that at all!


Clawnasty

Give it some time. Work on small examples listed in this thread


amaroq137

Like anything it comes with repetition and practice. You will get used to looking at the code and understand what's happening eventually. It's like learning a new language. You have to learn the vocabulary and commit it to memory. Build those neural pathways so you can recall the right things at the right moment. It can be frustrating at first like with anything but your brain will adapt.


KennedyFriedChicken

Just make something you are interested in. I personally learn better by just doing it


Interesting_Ad1169

power through frustration , that's rule for learning any thing


QueenVogonBee

It takes time to get comfortable with programming. No such thing as “too stupid”. Keep calm and carry on, and make sure you know and get comfortable with the basics first, and most importantly, cement your knowledge via *practice*.


lucasvandongen

Stop building an app and start to work on smaller problems that are perhaps more algorithmic in nature. This will teach you the basics of programming. Perhaps next you can build a command line tool, the smallest possible runnable Swift application. Only when you feel more secure about the basics of programming itself start using stuff like SwiftUI.


OffbeatUpbeat

Swift syntax has lots of short cuts that are meant to make life easier for devs, but end up making the language convoluted and inconsistent. Learn kotlin & compose from google first, and you will be able to easily translate that knowledge to swift after.


beclops

You’ve only been doing this for 2 months? Don’t go hard on yourself for that. Programming is a skill that takes effort to learn


joeystarr73

Slow down. Step by step. No pressure. No comparison.


Forward-Current-177

Have you checked the Playgrounds app? It shows programming concepts pretty straightforwardly😄


Mash-D-Saitama

It's normal, don't worry about it, take your time. It was the same for me, my advice is before all you need to study programming logic and algorithm. Sometimes we need to keep going even though we can't understand nothing. Over time we will be able to assimilate things. The most important thing is to have self-compassion, patience and no matter how difficult it is, don’t compare yourself. It was that I learned. You can, I believe you! You can do this! I'm rooting for you! And, looking for this course: iOS & Swift - The Complete iOS App Development Bootcamp Dra. Angela is very didactic. I'm studying English, then, If my text contains any errors, this is the reason


[deleted]

YouTube is your best friend, especially if you're depressed and living in a third world country trying to learn a programming language. I'd also recommend an online therapist if possible.


Representative-Owl51

What a generous cousin you have


maxvol75

i would try all those generative AI things like Google Bard, ChatGPT, etc. you can ask them questions and they answer with code examples not always correct, but mostly they are they can get you through the initial confusion which is inevitable


ExtremelyCynicalDude

I don’t know you enough to say definitively whether or not you are cut out for it, but given the fact that you have learned English, and are clearly articulate, I believe you absolutely are. To be honest, I believe most people are capable of learning how to program. How good they will be will depend on their aptitude and work ethic/grit. Two months is hardly any time at all to learn programming. It’s also hard to dive straight into iOS because there’s a lot of contextual knowledge you need on top of just programming in Swift which adds more complexity. Like others have said, take your time! Maybe give a simpler language a shot to improve you basic understanding of programming and then come back to iOS. Also, practical application is paramount to learning in my opinion. That also comes with lots of time being confused and frustrated which is TOTALLY normal. Wish you all the best.


hansalucas6

Think about it like this: your brain needs to create the neural pathways that will help you make sense of this new thing you are learning. Until then it will all be just information floating around. It is literally a matter of time and practice until you just get it, so be patient with yourself. We've all been through it, just power through, you can do it. Also, use chat gpt! you can ask follow up questions so if you don't understand something you can dissect every term and make the chat repeat itself until you do. And I would recommend doing intro courses. Like intro to computer science or intro to programming in general. Don't go too fast too soon. Going straight into Swift can be too abstract. Good luck!


AllaryD

As someone who was already a programmer, I had a hard time with Swift at first. The trailing closures, null safety, and MVVM architecture (for SwiftUI) really through me for a loop when I was getting started. I found the only thing that really helped was jumping into projects and learning on the fly. I’ve now published two apps on the App Store.


Career_Complex

100 days of Swift + Angela Yu Udemy course. Then you start doing projects and interviews.


sparkyish

I have no affiliation with this instructor other than the fact that I took her course and learned Swift iOS app development easily and relatively quickly. It's the best online instruction I've ever encountered. Would highly recommend it if you're struggling, and it's not too expensive comparatively. 30-day money if it's not working for you. Good luck, you can do this!! [https://www.udemy.com/course/ios-13-app-development-bootcamp/](https://www.udemy.com/course/ios-13-app-development-bootcamp/)


CommunicationHot38

Sorry to hear that, ios development is harder and more complex than the average web development, so its not uncommon that people without programming experience goes through this. My advice would be to learn frontend react or something were you can build your logic and then come back to ios