|< Building a portfolio: should you ship an app or put code on GitHub?||How to do well at a Swift interview >|
Recorded – watch the full episode on YouTube.
What are your thoughts on iOS developers needing a computer degree in order to succeed?
John Sundell: There are so many different paths. I can tell you that I firmly believe that you do not necessarily need to have a computer science degree, because I don't have one.
So I do not have a degree, in fact I have only been to a university once in my life, and that was to give a guest lecture. And I don't say that to brag or anything, and I don't want people to misunderstand me here to say that you don't need an education, or you should never take an education, absolutely not, that's not what I'm saying at all. I'm just saying again, that there are so many different paths that you can take to achieve your goals, and all of them have trade-offs. And if you wanted to play this as a drinking game, that's another word you can add to the list, "trade-off."
"I'm just saying again, that there are so many different paths that you can take to achieve your goals, and all of them have trade-offs."
So, when I didn't go to like a university to get a CS degree, the trade-off of that, for me, was that I had to learn everything myself. I had to learn how to write apps, learn how to code everything myself. And I've been coding since I was a kid, so it came a little bit natural to me in that way. My dad was a programmer, I became a programmer, the apple doesn't fall far from the tree, et cetera, et cetera. So, when I started getting really serious about going into development and becoming a full-time developer, for me the trade-off there, since I didn't have that formal education, was that I had to spend so much time learning things on my own.
And one really interesting aspect of that was that I was very pragmatic naturally of my learning, like I always learn things that I need at that moment. So as I was building websites, which is what I started with, I was a back-end developer, as I was learning data structures and databases and things, I was learning that as I went.
"I think depending on which path you take, you have to be prepared to compensate."
And one really interesting thing that happened, was that at one point in my career, I was sitting with a coworker and we were discussing different search algorithms, and he mentioned the Big O notation. So he was like, “oh, if we take this path it will be like O(n), if we take this path, it will be like O(n²)." And I had never heard of the Big O notation before then, so I was like, “uh, what is this, what is this person talking about?” So I had to...when I came back home that day, I was Googling, “what is Big O notation?” and learning about that.
"You don't need to have a computer science degree, but it can be really helpful and it can be one way to achieve your goals."
I think depending on which path you take, you have to be prepared to compensate, because on the other end of the spectrum, you have a CS degree. And computer science degrees, as far as I know, are very theoretical. You're learning about the fundamentals of computer science, you're not learning the iOS SDK, so then you have to compensate for that, by actually learning the SDK and learning the APIs. And that's something that I didn't really have to compensate for, because that's how I learned. So, in my opinion, at least, you don't need to have a computer science degree, but it can be really helpful and it can be one way to achieve your goals.
There are also many new ways of getting an education as well. For example in Sweden, where I'm from, there is now a very, very popular trend of having these two or three year education programs, where a big part of that is spent at companies, actually working at companies. Hands-on, internships. Those have become really popular, because they provide a little bit quicker, easier way to get out into the workforce and to learn something rather than spending many, many years at university. And that's another trade-off there, that's another thing you can go for. So there are many different paths you can take.
Paul Hudson: A CS degree is just one of the many paths, it sounds like, but at the same time, if you aren't going to take that path, you are at least committing yourself to backfill the parts you would have learned in university. Like for you, the Big O notation. At some point, you think, “I’m going to hit this wall, I will learn it,” which you would have done at university, presumably, depending which of course you took, but you will do at some point yourself later on, on an ad hoc, as needed basis, basically.
John Sundell: And it's kind of funny, because a lot of the things that I tend to write about and that I'm interested in, are very computer science-related. So, I think I would have absolutely loved doing computer science, it's just that's not how things worked out for me in my life.
This transcript was recorded as part of Swiftly Speaking. You can watch the full original episode on YouTube, or subscribe to the audio version on Apple Podcasts.
SAVE 50% To celebrate WWDC23, all our books and bundles are half price, so you can take your Swift knowledge further without spending big! Get the Swift Power Pack to build your iOS career faster, get the Swift Platform Pack to builds apps for macOS, watchOS, and beyond, or get the Swift Plus Pack to learn advanced design patterns, testing skills, and more.
Link copied to your pasteboard.