|< Tips for getting your first job in software development||Is the iOS community getting more diverse? >|
Recorded – watch the full episode on YouTube.
What's your advice to get someone a competitive edge, to really help them stand up in the back a little bit and get that first entry level iOS developer role?
Mayuko Inoue: I think it goes back to networking. Literally building a relationship with somebody at that company, I think is going to be invaluable because when people are looking at resumes and cover letters and doing interviews and stuff, they're basically just trying to figure out who are you exactly? What do you bring to the table? What kind of person are you? What skills do you have? But if you have someone on the inside who already knows who you are, I think that gives a big edge because you know people, you know better. I guess this is really obvious, but you know who and you don't know who you don't know.
Paul Hudson: Well, I always think of that Donald Rumsfeld quote about there being unknown unknowns and known unknowns.
Mayuko Inoue: Yes. I am more likely to ask someone I know to do something than someone I don't know to do something for me. If you can reach out and it's not just network, but really builds a meaningful relationship with. I think when I say reach out and network and stuff, it's not just about two emails where you're just like, "Hi, I'm this person. I want this job. Can you answer these questions? Thanks." Then, they reply, "Hey, here's your answers. Goodbye. See you never."
Instead of that, it's really like just build a relationship, get to know each other a little better, get to know someone's career path. What did they go through? What are their interests? What do they like and dislike about their job? Get to know what their other interests and hobbies are as a whole human being, I think. I think it's one of the beautiful things about being in development of getting to know other people in that way, and that can really help with employment.
"I am more likely to ask someone I know to do something than someone I don't know to do something for me. If you can reach out and it's not just network, but really builds a meaningful relationship with."
Paul Hudson: I think when you walk into an interview, you've given them your resume, and said you've got 10 years of Swift and 20 years of iOS and 50 years, whatever it was, whatever you invented together. Right? Because they don't know how well your resume reflects what you actually do. This is you describing yourself.
Even if it is very, very close, you've been very honest, and you're very good at self-awareness, which is hard, you might totally freeze up during an interview. You might struggle and flunk the interview, because it's very difficult. If you can get to know someone over coffee or breakfast or whatever it is, even informal mentoring, it gives you a much better foot in the door because they now see you in your natural habitat as it were. This is who you really are over time because it's very easy to talk your way through an interview, to basically say, "Yeah. I basically invented Swift." Whatever. With confidence and fast talking you can get through any interview very quickly if you want to. But to really know someone and what they are capable of, even if they're chronically shy or struggling in the interview, that takes a relationship. It takes time, experience, and trust as well.
"My first real internship, my first real job, I got through relationships that I had built."
Mayuko Inoue: 100%. My first real internship, my first real job, I got through relationships that I had built. The first internship where I did any amount of programming was because I worked basically as an assistant. It was an academic division at my school. I worked as an assistant to this person. I knew that in the summers they have internships, and I worked there for a whole year part-time as a student just filing papers and doing manual labor. Then, when it came time for the internship, I said, "I was interested," and they were like, "well, we know who you are. We know what your work ethic is like. We know that you're eager to learn. We know that you're doing this in school."
I didn't even actually have to interview for that position because they just gave me a spot in the internship program. Similarly, for my job too, I got that job because of the internship, but I got that internship because I knew someone on the inside who I went to school with, I had classes with and he just graduated before me. I was like, "could you put in a good word for me because you know who I am," and he did that. I got that job because I was vouched from the inside that I can do this. I think the power of getting to know other people in development, you never know what's going to happen. I think building those relationships, not just to get what you want, but also to just broaden your horizons can be really powerful.
They've got their internship done. They're ready to apply for an entry-level job and they come down to one of the, I find personally, the hardest things you could imagine doing apart from the interview itself, which is writing a really good resume that isn't too competent or too hyper-motivated perhaps, put it that way.
I'm really passionate about every kind of resume, but also isn't too self-deprecating. Certainly a problem that we have in the UK where we don't like to use positive words about ourself. We'd like to be quite downplaying ourselves, which confuses my American friends no end. What advice do you have for someone who's trying to put together a great resume? Is it list experience at well-known companies? Or show a variety of skills? Or something else?
"80% showing what you can do and what you have done and bragging about your past accomplishments."
Mayuko Inoue: I feel like this works pretty well: having a good balance between like 80% showing what you can do and what you have done and bragging about your past accomplishments. And that doesn't have to mean saying “I am so good at this, or I am competent at that.” It can really just be objective without necessarily needing to feel like you're bragging. You can say you wrote this unit test suite for this app that had 2% coverage, and now it has 40% coverage, which has now reduced the bug backlog by 50% because we've increased our quality. That's a very objective thing, like regardless of how you feel about it or not, it happened.
And so I think 80% of it is talking about that – what are the things you have done? If a robot was to see your accomplishments and what you've done in your career, what would they say? No emotions attached.
And then I think another 20% of it, which I think really comes through in the cover letter, is talking about whether you’re excited about this job. What are your passions? What are your interests? Because everyone wants to hire someone who gives a second thought – you want to hire someone who would do a good job and cares about their job. Right?
So I think it's a balance of that. And if I had to go any which way, I would lean more heavily on talking about your past experiences. Because if you get the interview then you have so much time to talk about how hyped you are about a job – there will be a time for that, no doubt. I think it's about being able to talk about it with an objective lens, and one really good way to do that is to hand your resume to people that you trust and who know you really well. I did this for my brother actually – he's looking for a job right now and he listed out all of this stuff, but I was like, “dude, you've actually done way more than this.”
"It's hard to see yourself objectively. But if you get a second opinion, third, fourth, fifth opinion even, about like how others would see you and how others have seen your work, it can really help to strengthen your resume and cover letter."
I know that because I've seen you, and I know exactly what you did. So here are the things that I think you should talk about because I think that it's worth bragging about. And so we worked together to embellish his resume a little bit and I think it's eons better than what it was before. But he might not have come up with that because he's in his own head. He's done those things. It's hard to see yourself objectively. But if you get a second opinion, third, fourth, fifth opinion even, about like how others would see you and how others have seen your work, it can really help to strengthen your resume and cover letter.
Paul Hudson: It is hard to see yourself in that way, which is why you should find someone who does – someone who likes you. A few years ago, I applied to become a chartered engineer, which is a professional qualification in the UK. You've got to prove your experience in a long essay amongst other things. And not part of that is about writing code – it's about whether you’ve supported others. Have you mentored others? Have you got an eye on the environment? Have you got an eye on revenue concern? It took me a long time to write a 20-page document, and it was hard because I hadn't really kept good track of my accomplishments, if that makes sense.
We normally build stuff then move on and forget about it – we go to the next thing, then the next thing, and so on, and our job basically becomes a lot of next things backed up by years and years just going by. So for me it came to sitting down and saying, well, what have I done? Oh yeah. I remember that from last year or whatever it was. And actually you have a stack of big things to talk about if you have a very kind sister who can sit down and give you a kick to remind you how great you are, or a friend or colleague, whoever it is – someone who can be open and honest about your achievements in a way you otherwise perhaps wouldn't.
Mayuko Inoue: I think what you said about being able to remember what you've done is probably one of the hardest parts. One good way to solve that is, once you're done with a project or you've reached a milestone and you do feel like bragging about it, write it down somewhere and keep a record of it. Even if it ends up being five pages long, when it comes down to like crafting your resume at some point, while you're looking, you can actually pick and remember at least what you’ve done.
I always try to do that right after a job, because I feel like I just don't remember anything that happened any later. You forget all the technical details. You forget all the little things that happened here and there. But in fact, some of those details can really make a difference. Obviously getting a job is one point of it, but it can be invaluable to have that kind of list of data points about who you are and what you've done.
"It's like writing documentation about yourself."
Paul Hudson: And writing it down matters. Even if you think it's only a tiny thing, write it down because every job is different. You might find the job you're applying for and realize some tiny thing you did is exactly what they're looking for. So take note and if you don't need it, fine – better to have it and not need it than realize you really need that thing and you didn't write down the numbers or the experience.
Mayuko Inoue: It's like writing documentation about yourself, which I know is boring and no one wants to do it. It's like if someone was to read you, what would it say? What can you do?
Paul Hudson: I think you may have put people off there a little bit, talking about writing documentation!
Mayuko Inoue: Oh no! Bad analogy.
Paul Hudson: We talk a lot about architecture and similar or coding tests even on whiteboards. It gets intense in interviews because sometimes they want you to explain your past experience in detail, sometimes they want you to reverse this binary tree on a whiteboard if you're in a particularly nightmarish company, or perhaps just confidently talk to them about yourself and your experience, whatever it happens to be. If a listener here is going for an interview soon and is trying to prepare for something, what would you suggest they spend more time working on trying to improve ready for the big day?
Mayuko Inoue: I think part of an entire interview process is that they're trying to look at you from many angles, holistically speaking. This might not sound great, but I think it's important to prepare for all of it!
"I feel like I'm over-preparing so things that I will do is brush up on my past experiences, making sure that when they look through my resume, I can eloquently say all the things that I have worked on."
Paul Hudson: It's that easy. Just do all of it.
Mayuko Inoue: Just do all of it – that's how you do it. You just do all of it. But you know, preparing for the technical interview part is really important obviously. It's one of the hardest parts of the interview, but also if you pass the technical interview with flying colors, but the behavioral interview doesn't go that great, then that can easily end in a no offer. And so I think being able to demonstrate your ability across the board is important that's why I say all of it.
Although when I go and prepare for interviews, I prepare for each of those different areas to an extent until I feel like I'm over-preparing, so I will brush up on my past experiences, making sure that when they look through my resume I can eloquently say all the things that I have worked on, and I hit all the points that I wanted to. Doing that is like a chunk of work. And then once I'm done with it, call it done.
There's not really anything else to do. What I've done is what I've done. If I embellish it and talk about it more it'll sound like it's fake. So I call it done there.
Paul Hudson: The words you use there, I want to pick at this briefly because it was exactly right – it’s exactly how I feel. Hit all my points – go into the interview in your mind thinking “I’ve got it. I'm great at networking.” Really hit those points, obviously with proof behind it, evidence from your experience, and ideally coding ability, but go with a clear purpose in mind. These are things I know I'm good at. And if I don't mention those, I’ll be really annoyed myself afterwards.
Mayuko Inoue: Exactly. It's like have a three-prong essay prepared – for this point, here are the three things that I can talk about, and then also just prepare your mind for if they go deeper. Just a lot of for me is just recalling memories. And so if I can input those memories, put it into the cache of my brain, and know it's there. It's warmed up. It's like I've pulled it out of the back storage way back in my brain that's been collecting dust.
"You put all of the important tools that can fit into your toolbox, but you don't bring your whole entire garage with like every tool that you have."
For the technical part, I think it's important to brush up on fundamentals. So if you're going for a general interview data structures, algorithms, obviously. If you're going for iOS stuff, study up on UIKit, how to table views, collections view, works, Swift string manipulation, APIs, all the kind of basic stuff. Right?
And then I think some folks like to go on LeetCode. Some folks like to use Cracking the Coding Interview. But to me it's not about putting all the things that you know into your brain. You put a certain amount. You put all of the important tools that can fit into your toolbox, but you don't bring your whole entire garage with like every tool that you have. You just bring like a little carry on of things that you need to do most of the things in an interview. And then after that, I think it's just practice.
So instead of going on LeetCode and solving algorithmic questions, I think it's more valuable to sit down with a friend and ask them to interview you, because at the end of the day, when you're interviewing you're not trying to prove to a computer that you can do work – you're trying to prove to a human that you can do the work.
How to tell a human and how to communicate to another person what you're thinking through, how you're solving the problem, pseudocode, whiteboarding, all of those are also skills, and I think by doing that, it can heavily increase the chances of being able to get that job. Because I don't think interviewers expect you to know everything. Every iOS interview that I've been in, when I start to get stuck on something like AVFoundation, they aren’t sitting there thinking I don't know how to do this one thing about changing bit rates and stuff. Instead they're like, “it's fine, we don't expect you to know this. We get it. Just pretend that there is some API and then move forward.” Because the important part is not whether you have memorized everything in the book. Instead, it's whether you know how to solve problems that you've never seen before. So I think that's the most important part. Study all of it, but study it meaningfully.
Paul Hudson: Study it well.
Mayuko Inoue: No pressure.
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.