I’ve been a full-time iOS developer for about five years now, and there’s a lot of stuff I’ve learned the hard way. So if you ever invent a time machine, please handover this list to my younger self – thanks!
If something weird is happening, it’s probably a multithreading issue
There are those weird bugs: They can’t be reproduced easily, they tend to behave slightly different every time and you have no idea, what’s going on. In most cases, that’s a very good indication for a multithreading issue. More specifically, you are performing some UI stuff besides the main thread. This can happen for example when you’re doing some network operations, but forget to jump back to the main thread before updating the UI with the new data. So if you encounter some of these weird bugs, double check whether there’s a multithreading issue or not.
Teaching is the best way of learning
Learning is both a long and interesting journey. And there are milestones where you think that you have understood something completely. In most cases, that’s not true though. I’ve learned that when I began writing blog posts. If you want to explain something to someone else, you realise very quickly whether you have really understood it or not. And most times, that’s not the case. So if you explain or teach something to someone else, you identify all the gaps in your knowledge so that you can fill those gaps. There are of course many ways to teach! And each way is perfectly fine for this process. So it doesn’t matter whether you write a blog post, record a video or explain it to a colleague. Each way of teaching will support your learning process.
Specialise in one platform, but look into others as well
It’s a much discussed question whether you should specialise in one platform or try to master multiple platforms. In my opinion, it’s the right choice to specialise. Only by choosing this way you will be able to become very good in one thing. If you try to learn anything, you won’t achieve mastery. And in the long run, mastery is very fulfilling and offers the best possibilities for your life.
But there’s one big misunderstanding out there: Specialising doesn’t mean to be ignorant about anything else! Instead, you should look into other stuff and you should think outside the box! For an iOS developer that means that you should install Android Studio and learn the basics about Android development. But you don’t want to become a master in it.
Enjoy the process of learning
We as humans tend to be very impatient when it comes to master something new: With the excitement about a new passion comes also the wish to knew anything about it immediately. That’s not possible though. Instead, mastering a complex topic like iOS development takes a lot of time. And we aren’t talking about weeks and month, but about years.
But that’s no reason to be frustrated! It doesn’t mean that it takes years to achieve the first results. It’s absolutely reasonable even for a complete beginner to be able after just a few weeks to create a very first small app. But to become really good – to really master it – you will need much more time. And in a way, this process never stops because there’s always something new to learn.
Practice is more important than theory
Theory is of course important. So yes, reading books and watching Youtube tutorials is a must. But it doesn’t have a lot of value until you are trying it out for yourself and until you practice it. So in the end the best way of learning app development is by developing apps. This may sound obvious, but it’s very easy to get caught in the theory because practice is hard. It confronts you with the reality and the things you cannot do yet. But it’s also the best way to change this.
Assume that the mistake is yours
You will face a lot of problems and bugs. It’s easy to say as an immediate reaction: “It’s the OS!”, “It’s the library!” or “It’s the server!”. And of course that can be the case. However, it’s not so unlikely that your code has a problem and you have overlooked the problem. And even if your code is working perfectly fine, it’s a good start to check that before blaming someone else.
Going to conferences has great value
At the beginning I thought that it’s not worth to go to conferences. I couldn’t be more wrong! In fact, there are several benefits: The most obvious one is of course that you can learn many things by listening to the presentations. But there is something, that has even more value: You will meet a lot of interesting people from all over the world – people, you would have never met in your life! And it’s really great to talk with people who have the same passion as you have. If you can afford it, going to conferences is also a great opportunity to explore the world. By attending conferences, I travelled twice to the USA and it was such a great experiences. I also highly recommend to attend the WWDC. I did this year and it was such a great experience.
Title Image: @ Nataliia K / shutterstock.com