My name is Wayne Whitehead and I am currently a third-year student studying Application Development while interning at immedia, and I wanted to share my experiences with you. I have always been an avid fan of technology, which was one of my motivations to begin the journey through app development.

I have come across many different programming languages through my course as well as through external factors such as immedia, and through immedia I have gained experience that I could never have reached through my university course. They have taken me in as a software development student and are working with me to grow me into an experienced application developer across multiple platforms.

Android to iOS
This Photo is licensed under CC BY-SA-NC

I began my journey here at immedia in January when I joined them for their annual #SummerSchool program, thereafter I was invited to come back and attend a deeper product immersion program in February. It was at this point where I found out immedia’s desire to help students grow into fully capable developers. I was then asked to join them for a Head Start internship to learn from several of their more experienced developers, which is where I find myself now. I started working with the team on the Android side, because this was the only experience that I had from college. Since then I have been granted the opportunity to learn iOS app development, which is where we find ourselves at the point of writing this blog post.

Challenges

Any new task comes with limitations, hardships, and challenges that will have to be overcome. At the time of drafting this article one of the major challenges I had to lockdown. Going through the process of starting a job at any company has its difficulties and learning curves, but for me this was worsened by the challenges inflicted by the Coronavirus. Working remotely was tough at first – discovering how the company works, communicating with other employees, learning how to complete the tasks assigned to me – but after a couple weeks of hard work and dedication, it felt like I was a part of the team working effortlessly alongside my co-workers.

Next step in acclimatising myself to my place within immedia was to transition from the Android team to the iOS team after 2 months. This came with its own set of difficulties. I had no experience in Swift or any iOS development up until this point in my life, so I had to take on the challenge of learning a whole new platform to be able to make the switch. The first problem comes with working from home. This is because I did not have any immediate access to a MacOS device, which is crucial for iOS development. I now had the trouble of making trips to the office during lockdown. This was a little bit daunting at first as the virus was still new and nobody was sure about how bad this was all going to be. Fast forward to a couple of weeks later and I find myself comfortably working behind my iMac in the office.

Learning

iOS12 & Swift
This Photo is licensed under CC BY-SA-NC

There are many different approaches to learning a new language and developing on a new platform. I started by following YouTube tutorials on features that I wanted to be able to make but I found myself not really learning much but just copying code across. I then, with the advice of my colleagues, followed an online course to help guide my learning experience. The course I chose was the iOS 13 App development bootcamp which can be found on Udemy. I found myself understanding the distinctive features that Swift and Xcode had easier. I was also learning more effectively and gaining better experience. I found it more helpful to have a feature explained to me and then after understanding, trying to practice implementing that feature. Now that I have mostly completed this course and understand most of the basic concepts in Swift and iOS, I find myself following feature specific online tutorials again.

Some great links to help you on your journey:

It was not all sunshine and rainbows, there were times when I wanted to pull my hair out. Within any software development environment, you will find your IDE giving you problems – Xcode is no different. But if you take the time to understand Xcode properly, you may also find yourself wasting less time on IDE errors. This tutorial helped me a lot in understanding Xcode’s unique features.

Conclusion

After all the challenges faced in trying to learn iOS, I can say that I am happy that I journeyed this path. In South Africa currently, there is a high demand for iOS developers, and I am thrilled to have this skill and to start making even more contributions within immedia. I have found myself already using my newfound development skills to help lighten the workload of my co-workers. I have enjoyed the process of learning all the ins and outs of what it takes to become an iOS developer and I am excited to see where I can take this.