How and when did you get into programming? And into iOS?
Well, I graduated Civil Engineering. I always wanted to be an engineer and I loved sketching and drawing. But, once I graduated, the industry was in a bad shape. I spent 2 years doing energy certificates and I didn’t really enjoy it. My husband, however, had an IT degree and I always wondered about the work he did. Somehow he thought I might like programming, so I did an Intro to Programming on Coursera, built my first website with HTML and CSS and just loved it. That’s when I wrote my first line of code. It felt like drawing a floor plan, but instead of drawing lines in AutoCAD I was writing words that became lines. It sounds silly, but I never had programming in my school. I wish someone told me about it sooner.
Then I decided to enroll to University and got my CS degree. On my 2nd year my husband bought me my first 13” MBP. I fell in love with the idea of making apps for myself so I started learning Swift. Instead of just drawing floor plans, I was now the architect, the designer, and the construction worker. :D
So the Civil Engineering was high school or was that also college/university? And the reason for Swift was that you had an iPhone and wanted to build apps for it? 🙂
It was both. In Croatia, when you finish your 8-grade elementary school, you have to choose your “career path”. We basically have two types, one is more specific where you choose a field to specialize in and the second one is general, called gymnasium, where you learn everything, but nothing in particular. You take advanced math, literature, chemistry, biology classes and learn a little bit of everything. However, the caveat is that you don’t have a particular degree and cannot work in any specialized field, you have to go to University. Well, in the case of our IT field, you don’t need to go to University to be a developer, but other fields where specific certifications are required, you have to.
The education is a bit different in Croatia. In my case, I graduated for a Civil Technician and the logical path was to finish Civil Engineering.
Quite honestly, I don’t think anyone knows what they want to be at the age of 18. 😁
And Swift. I actually tried a little bit of C#, and had all sorts of different programming languages in my University. Mostly C++ and some Python and Assembly. C# just didn’t stick with me, and it being a Windows platform language... Well, I love my Apple ecosystem all the way. 😁
Swift just felt natural to me and I knew I wanted to be an iOS Developer from the moment I sideloaded my first app 😎
So after graduating University were you able to get iOS dev job right away? I assume you you were learning Swift/iOS mostly on your own? Or was there like a course at the University?
My University did not cover any mobile development at a time, so I learned Swift on my own. I took some online courses on Udemy and then after going through them I realized I just need to start writing some code instead of going through tutorials and everything will start to make sense. So I started making some basic apps and that really helped me to learn.
Few days after I graduated, I moved to Toronto. My husband was already here, working and waiting for me. So I was a new grad, freshly out of Uni, freshly out of Europe, coming to Canada and looking for a job. Moving to a new country, 7000 kilometers far from home was already hard enough. Not knowing how job hunting and the whole industry work here, another 😁
I then mostly spent my days job hunting, preparing for interviews, brushing up on my language skills and learning Swift. It felt like a full time job at a time. I applied to hundreds of job applications, some I was way underqualified for, but hey, nothing to loose there. I had a lot of failed interviews, until I received my first job offer. That was one year after I graduated. Funny thing is, I started applying for jobs not knowing how to parse a simple json. But I needed some interviewing experienced and those failed interviews really helped me in the end and I always learned something.
Oh and then I got lucky and was chosen to participate in raywenderlich’s iOS Bootcamp. That was exactly one year ago in May! That helped me accelerate my learning and fill in those gaps I had in my knowledge learning alone.
What was the RW Bootcamp structure like? I assume it wasn't in-person event?
No, it was fully online, and because it was during the pandemic, you couldn't have it in-person. Which is great really, because people from all around the world could apply and attend. We had an hour and a half classes every Monday and Thurday at 9:30 PM EST. Which was a perfect time for me and most of us in EST zone. But we also had some people coming in from Europe and joining every single class at 4 AM.
That's dedication! A lot of people were working a full-time job and then working on bootcamp classes and homework afterwards... Amazing folks!
As for the structure, we had Zoom meetings with our mentors 2 times a week, on Mondays we would get introductions to that week's topic and then get a few videos from raywenderlich.com's website to watch and learn. Then on Thursdays we would get a homework, which was usually to build an app that's using some of the new concepts we were learning that week.
And we also had breakout rooms, we were split in smaller groups of 10 people per 1 mentor, where we could talk about homework, or anything else we'd like. It was a lot of work, but it was also fun and a great experience!
Sounds great. I guess this really accelerated your progress?
Indeed it did. I think a lot of people who are self-taught developers struggle with this, with learning and not knowing if they are learning "correctly". You know? You go through a tutorial, you read a book and then if you're looking for a job, you read all of these requirements and programming concepts you not know well or some you even haven't heard about. And that's scary. Having someone guide you, feels good. It feels like you're on a right track.
A lot of people look for mentors these days. But, I'd say, you still need to struggle yourself a bit. Because some people get used to being told what to do, instead of finding their own way. And there's no wrong way, but you have to be open to admiting mistakes and upgrading your knowledge. Just because someone somewhere said you do it like that, it doesn't mean it's the correct way to do it. Programming is all about finding your own way. When you get a Jira ticket, no one will tell you what and how to do it. It's between you and how your Xcode feels that day.👾
Was there any topic in iOS/Swift that was difficult to grasp at first when learning?
Constraints in Storyboards? 🤪 I don't like them to this day. I wrap everything in Stack Views. Isn't that what they are for? 😂
I think Closures are a concept that was so hard for me to understand. I have been using them a lot recently and they are finally starting to make sense. But that's what usually happens with everything. You don't really understand, until you put it into practice and start using it. And there are a lot of concepts I still don't understand, but you know, there's only certain number of hours in a day
AutoLayout was pretty hard for me too.. I am curious what is your view on SwiftUI? Since it was already announced around the time you started really getting into iOS right?
Correct! I remember reading about SwiftUI when I started learning Swift. It was just announced. So I was doing a research that most people getting into iOS development ask themselves. Should I first learn UIKit or SwiftUI? And well, everything pointed out to the fact that UIKit will still be here for many years to come, so if you want to get a job, you should learn UIKit. And that’s what I did. I set aside SwiftUI completely for the time being. My first taste of it was during the bootcamp.
I loved it! I finally realized what all the fuss about it was. And coming from someone who worked in Storyboards and Auto Layout, I loved how simple it was to build your UI. Then I decided to learn more about it and start learning it. So now, when I know the basics of UIKit, I’m also learning SwiftUI. I work with SwiftUI when I write my articles and I’m going through 100 Days of SwiftUI right now. If I were to build my own project I’d definitely go with it.
What about SwiftUI at work? Sounds like the company isn't using it yet, are there plans to adopt it?
I work in consulting, so it's a bit different. We're an agency that works on client apps. Most of them already have an existing codebase that we have to use. If not, then we have to choose a perfect solution and stack for their needs. I don't think we've done any SwiftUI work so far. But I believe something will come our way sooner or later 😃
You have a magic wand... and can change one thing about iOS development. What?
Xcode. It can randomly crash for no apparent reason. On occasion, it doesn’t read Recent Projects. Some weird bugs pop here and there. I think it needs some refreshing. I realize that’s not an easy fix and kudos to all the people who work on getting it better and better for us! But a magic wand can do anything right?🪄😃
To move away from coding... What do you do relax?
During weekdays, after I finish work, I go for a long walk and then watch some series on Netflix.
On weekends I usually take a full day outside and go for some hiking. Toronto is really amazing for this! It’s full of forests and ravines spanning across the city. I love it! There are a lot of parks and I love to try different restaurants, so we’d usually take some take out food and just enjoy. And if I’m not doing that I’m playing some PC games with my husband and his brother. Recently, we’ve been playing Apex a lot. It’s really fun! And that’s what I do to relax. ☺️
Toronto sounds really awesome! Thanks so much for taking the time! Do you want to give someone or something a shoutout?
Yeah, it sure is! More for me, as I am from a small country in Europe, and I'm still taking all of this in. Even after two years of living here, I still look a tourist. I'm taking pictures of everything!😂
Oh I really enjoyed it. Btw, great idea on the format of this interview. It's really unique
Here's a picture I took with my iPhone 12 mini when I visited Toronto Islands last weekend. I can't get enough of the look at the skyline 🤩
I'd like to give shoutout to all the developers out there! Work is important, but you are more! Always put yourself in front, take breaks, and programming will become even more enjoyable! 👾😊