1. Start using the app

If you’ve already accepted a job or started working, this goes without saying. But if you’re interviewing at a company, it’s equally important to have knowledge of the app you are potentially gonna work on. Try also to use it as a user would, and go through some edge cases — maybe you’ll think of a few ideas on how to improve the app. In my case, I would be researching what movie to watch, watching some trailers, find out where to watch it by searching or using current location, redeem my voucher code and finally buy my discounted movie tickets and go to the cinema. This helped me not only understand the product much better (especially from a users point of view), but also the codebase I was gonna work on.

2. Get a mentor

…if possible. I didn’t get assigned a formal mentor, but naturally started being supervised by a senior in our team from the very beginning. We have frequent code reviews and monthly meetings about my development and area of focus, and it is someone who follows my progression and gives me feedback. This is crucial in the beginning, as it can be super hard to evaluate your own progression and decide what to focus on — especially when you’re just starting out!

3. Make a plan

- and create well defined, clear goals. Learning can get overwhelming without a plan — especially when the list and resources seems infinite. Make objectives and a timeline, and ask for feedback on your progression and the work you’re doing. One thing that has helped me tremendously is the creation of a Trello board with an outlined technical path specific to iOS engineering.

Some of the iOS specific part of my personal technical progression Trello board

4. Learn when to ask for help

It’s important to learn how to find answers yourself and not rely on others to be able to do your work. Therefore I will suggest to always try and solve any problems on your own before asking for help. However, if you’ve been trying to find a bug for 30+ minutes, or if a specific concept just doesn’t click, it’s of course relevant to ask someone for help — and you should definitely do so. But learn how to find the balance of using your resources in the best possible way, without abusing the fact that someone with way more experience sits right next to you. It might not always be the case.

5. Communicate!

If you’re not able to complete the task you’ve been assigned within the agreed time frame, let the relevant people know and work out a new plan together. Also, be vocal in sprint planning meetings and be part of estimating tickets — especially the ones you’re gonna work on. It’s important to be honest about your own abilities, and it is your responsibility to let your team know if you’re having doubts and concerns about a certain timeframe for a piece of work. But don’t worry — it should be expected that you will be working much slower for at least the first 3–6 months in your first job as a developer.

Me (middle) with two of my colleagues; Mihai and Connie, building a watch app

6. Do code reviews

Get involved in other people’s code; do code reviews and ask your colleagues to walk you through their code. I have learnt a lot from just seeing how more experienced developers solve problems and have them explain their ways of working to me. Make sure that you will have enough time to go through complex code with the person who wrote it, so that you understand it for later. Also try and get seniors to review your own code with you and get verbal feedback on your work instead of just comments on Github. And lastly, pair program — this may not always be possible, but it’s in my opinion one of the best ways to learn.

7. Find your own learning approach

The internet is flooded with all kinds of learning resources, which at times can be a bit overwhelming. Books, blogs, podcasts and video courses of all types are everywhere, and it can be difficult to know what to pick and where to start. The thing is, there is no ‘best’ path. Some people learn better by reading, others by doing video tutorials. However, I am going to share three of the resources that helped me the most learning iOS development, and that I would recommend to anyone on the same path:

Developing iOS 11 Apps with Swift

- Popular iOS course from Stanford University. This has been the best resource for learning the basics of iOS development for me. Don’t skip the ‘homework’.

- Popular iOS course from Stanford University. This has been the best resource for learning the basics of iOS development for me. Don’t skip the ‘homework’. The Swift Programming Language

- This is Apple’s own book about Swift, and I would recommend it to anyone trying to grasp the language. It’s also a useful way to look up specific concepts.

- This is Apple’s own book about Swift, and I would recommend it to anyone trying to grasp the language. It’s also a useful way to look up specific concepts. Ray Wenderlich

- Has a great collection of in depth video tutorials of almost all Swift and iOS related topics. For me, the subscription to the site is well worth the price, and it is my go-to resource when I have to learn about something new.

8. Start a project

…sooner rather than later! Chances are you already have one or more small projects under your belt, and if so — great! But if not, it would probably be a good idea to start one. It is, by far, the best and most fun way to learn. Don’t worry if it’s an idea that has been made a thousand times before such as a weather-app, you will still learn a ton and have something to be proud of afterwards. I kept postponing starting a project because I felt like I had to create something super complex, unique and useful. And I didn’t feel like I was ready for that. But the thing is, there’s always gonna be more you can learn before starting on your own app. So how about learning them along the way? Ask your company if you can get some time, maybe weekly, to work on it. It should be in your employer’s best interest that you learn fast, and this is one of the best ways of doing so, so don’t be afraid to ask.