Hi Guys welcome to our very first A.M.A. for the year to me iOS 11 course.
So we've been doing a few of these on other platforms and we thought it might be fun to get you guys
to ask them questions and do it here as well.
I hope you'll enjoy this.
I certainly had fun making this and in the future.
We're only putting out new announcements announcing for more Emmys.
So keep your eyes peeled for those announcements.
And if you have any questions for any future episodes then please put them there.
So let's tackle some of these questions.
We've had loads and loads of questions come in and I can only answer so many.
And my team has picked out some choice questions.
So for Aimee's we've chosen some questions that might apply to everybody.
So usually they're not specifically technical they're not about one specific bug or you know some issue
we're going to try and keep that within the Q&A section so that they're of maximum benefit for the students
who come across it.
But for these Aimee's ask me anything I'm really looking for questions that might appeal to everybody
or questions that are more generic.
So I'm ready.
Hope you're ready to let's get started for our very first round of you to me AM is so the first question
comes from Handel calendar.
I'm going to be murdering some names today.
I just I'd like to put that out there to begin with so I can speak a number of languages but names are
difficult sometimes.
So I apologize in advance.
So.
Hi Angela.
How you doing.
I've got two questions.
Are you looking for the new Star Trek television show and in other words are you a Sci-Fi fan.
And the second question is what strategies do you have for really soaking in programming concepts.
OK so let's tackle them one at a time.
So am I looking forward to the Star Trek show.
I have to say I've never really gotten into Star Trek.
I think the reason is because every time I saw it on TV it always seemed to me like it was a bunch of
people having a lot of meetings.
They were like a lot of meetings.
Every single episode.
And I just wasn't able to really get into it.
I'm a huge Sci-Fi fan.
But I've never really managed to get into Star Trek.
But I'm a huge fan of scifi as a genre and you know in the last few years we've seen some really really
great stuff come out.
My favorite movies are so things like x Makena the recent Bladerunner 2049 was also slow but good.
It was a slow burner but I really enjoyed it.
And oh my god a rival which is amazing.
Incredible.
So yeah definitely Sci-Fi fans don't know very much about Star Trek.
OK so the second question is about programming concepts and how do you really soak it in.
I guess so I think this is a really really good question.
And this is something that we talk about quite a lot in our in person bootcamps and I remember once
coming across a Reddit Amy with Elon Musk not so long ago where he answered this question about how
he learns things.
And I thought it was really really good.
So what he said was basically you know to look at knowledge as if it were this huge semantic tree I
think he called it.
And the idea is that you first tackle you know the trunk and the fundamentals right.
And then once you've understood all of that then you move on to the large branches than the smaller
branches and only then do you go on to learn about the things are the leaves the flowers the decorative
elements because it's very easy when you're learning anything to learn about the things that will impress
people.
And I've certainly been guilty of that myself too.
The problem is that when you learn these kind of superficial things that don't have any attachment to
a fundamental understanding the lives don't really have anything to hang on to.
And I think that was a really really good point that he made and I think it's a really good guiding
principle for learning anything not just programming.
So that's one point.
The other thing I would say is that with programming specifically you really got to start thinking about
making your own projects because you know you can do a lot of tutorials and you do a lot of challenges.
Or even algorithmic problems you can tackle all of that.
But until you start making things that you want to make your own projects that you sort of then you
know that's that's really the point when you make the big leaps when you start really making your knowledge
your own.
So one of the things I always urge our students in our in-person bootcamps is to go way is to learn
these skills but go away and think of some apps and something really simple that they want to make you
know that could be a time it could be a calculator or you know you might have some sort of spin on that.
Right like one of our students made an alarm clock that wakes you up one minute earlier every day so
that eventually after a month he would be able to reach his target wake up time of six o'clock.
So it's things like these that are not so difficult to make.
They're not something like you know Facebook with Twitter bolted on and so a little pinch of snapchat.
They're not those things.
And it's really important that when you first start building your own projects don't go nuts.
Don't start making something that's completely crazy or something that's really really complex because
inevitably you will come across you know the known unknowns and the unknown unknowns and you're probably
going to give up on it.
And you know certainly when I think back to when I first started doing iOS development there have been
so many projects that were really good and they were probably built quite well.
But I was too ambitious to start with and they always failed and they became too complex too unmanageable
too unwieldy and you inevitably end up giving up on them.
So don't do that really make a minimum viable product.
It doesn't have to be really flashy you know.
Doesn't have to be a Ferrari it could just be a kickboard it could just be a skateboard even just keep
it really really simple and make that one thing that works by itself and then add on or bolt on features
to it.
But if you have something that's incomplete and you're still working on features it's really really
disheartening when you end up getting stuck and when you have bugs and it's just it's not fun.
So my advice would be to make your own project make something really simple and just make it work.
And then from there on at the point where you can submit it to the App Store and then carry on working
on new features and bolt on things to it.
So that's a really really good way of not just learning how to program but really understanding everything
and you know along the way you're going to have to find out stuff you're not going to know how to do
everything and no course on you know on the planet is going to be out to teach you every single thing
right.
And I think certainly you know I've made a point of definitely not including every single API.
But the important thing is that once you understand where to look i.e. stack overflow or Google or Apple
documentation then you start embarking on a new journey I'm not just being a learner developer but being
somebody who is able to figure out your own problems and the next step really is just getting very very
good at googling.
Most great developers have a really essential skill that is good at googling knowing knowing what key
words to put in that will get you the relevant result and trawling through that and looking for your
solution.
That is a really really key skill to acquire.
So don't ever let anyone make you feel that you know looking something up is shameful it's really not.
I've worked in teams and certainly friends of mine work in teams as well where a stack of low is down
they just go to the pub have a drink.
It's not worth it.
That's just you know that's just an illustration of I guess the fact that programmers are lazy but also
that you know don't you don't have to reinvent the wheel you just have to find out how to use it and
how to put that wheel on and how to fix it.
So next question so this is from Glenn you dummy and he or she I guess there's not many clans who are
women anyways.
How do you suggest we go about getting a paying job doing this i.e. west of Ottman.
Well I feel pretty comfortable with swift I guess.
I know my skills are not get pro-level.
So in any entry level position would be fantastic suggestions.
Very much appreciated.
Thank you.
All right.
This is a really good question.
How do you get a job as a developer if you don't have any experience working as a developer.
Right.
So here's something slightly off topic but one of the things I realized is that recently I got really
into resistance training and my goals is to be able to do 10 chin ups and you know I don't know if you've
seen you know these arms and are not really the largest of guns out there but you know I'm determined
so I'm going to get there.
But one of the things I realized is that to be able to do more pull ups I tried you know doing more
arm related exercises trying to use various machines around the gym.
But at the end of the day to be able to get better at doing chin ups I realized that ultimately I just
have to do more chin ups.
And if you want to be have to do more pushups you just have to do more pushups and eventually you'll
get there and it's exactly the same with development to get better at development to become a pro developer.
You have to do more development and you have to do it in the context of you know maybe a job or collaborating
with other people in a team and all of the skills that you need to acquire by simply doing more of it.
So here's the dilemma How do you get a job as an Iowas developer.
If you don't have a portfolio and you don't have a track record that you can fall back on.
Well you've got to build it up right.
So one of the first steps I would recommend you Glen or anybody else who's interested in this topic
is to simply go onto Web sites freelance Web sites such as up work oDesk or even something like fiver
and just offer your services as an Iowa developer.
You're not going to make a lot of money from this.
You know I can say that for sure you know you're offering your services to build up your portfolio.
And the key thing though is that you're working with real projects you're working with real clients
and you have to work with real specs.
So even when you're not getting paid a lot but you're actually learning on the job which is really really
important.
So this is not a get rich quick formula.
This is very much a get rich really really slove formula.
But once you do have those skills once you've built those portfolio sites and you've got a good working
relationship with your client that you can rely on full reviews and testimonials then you're in a way
stronger position and you can leverage that to start charging more and more power until you get to the
point where you are proficient in Iowa Steve development or whatever it is that you can reach your you
know personal target amount that you want to earn.
So the first step is working really really hard for not a lot of money but for a lot of skills and a
lot of learning.
And throughout this journey you're going to come across clients who are really annoyed.
And also clients who are really awesome and people who have really really interesting projects that
you'll get to build and you can call your own.
And along the way you're going to come across hurdles that you're going to overcome and you'll learn
so much more and so much faster.
By doing this rather than just simply looking for a junior development role at a company.
So this is my recommendation.
Obviously you know it's your life and totally up to you.
But this is what I think is the best way of going about this.
All right let's go on to the next question from Roland.
Gavroche cool.
That was probably not it.
OK.
So high.
And when and how did you start learning iOS development.
I will also be a useful student from next week and wants to ask you how did you spend your time at UCL
and what would you have done differently.
Ok cool so Hi Roland and you have made a very wise choice in going to UCL it's a great university.
I'm sure you're going to have a fantastic time.
Everybody is really really cool really chill and really awesome.
Unlike some of the other London universities obviously there's a healthy bit of rivalry.
But it's I genuinely had a really really good time them although I think my experience will probably
be you different from yours unless you're also doing the same degree so I completed a medical degree
there while I was at UCLA.
So medical degrees are pretty much like nine to five jobs where you have to pay to work.
So it's slightly different from other people's student experiences where you just I just got drunk and
partied all the time.
But yeah it was it was really good.
So your first question was How did I get into iOS development and when and how I think.
So I first got into Iowa development in 2000 and 11 while I was at med school.
And the reason was because I really really really wanted to build this medical app that basically gave
you a whole set of symptoms and signs and you could test your diagnosis skills by using the app.
And that was the main motivation of why I wanted to learn iOS development.
But I mean having started learning to code when I was around 12 or 13 having that background in programming
certainly helped me pick up those skills.
So I think one of my first Games was a really really terrible implementation of it.
I'm almost afraid to look.
I have my own code just because I know that I'm going to really be very embarrassed but hey you know
I was 12.
What can I say.
So back then I was using Visual Basic and then I moved on to C++ because I wanted to make videogames
and using that background really helped me learn.
I was Trotman very quickly and certainly for you guys you know even though you're learning swift it
doesn't really matter because if you go away and you decide that you know you need another language
like Java or you know Haskell or whatever it is you'll you'll you'll realize that a lot of the foundations
that you've built up you know what we're talking about before the branches the trunk you have all of
that already because you already understand how variables work what data types are how methods were
quite how to pass how to pass how you can pass messages around.
And all these things will be there.
So you're just putting on those decorations those little you know Christmas baubles.
Right.
You don't have to learn everything from scratch.
And it's a lot quicker not easier for any future development ambitions you have.
So looking back on my student days one of the courses that really impacted me actually was I did a neuroscience
degree in addition to my medical degree.
And one of the courses within that degree was computational neuroscience and it was all about reinforcement
learning supervised unsupervised learning basically how we can use computers to simulate what we know
about the brain.
And it was so so fascinating.
And that really reignited my interest in computing and I.T. and technology and got me back programming
and you know really realizing something that I loved a long time ago as well.
So what I would recommend is that if youre taking a degree at university really go for courses that
have some breadth when you get out into the real world whether youre going to get a job or whether you're
going to work in startup.
Are you going to you know be a founder.
The thing that you realize is that you know getting an A or getting you know a hundred percent on one
of your tests don't matter as much as you think it does when you're a student.
But the things that matter in real life are you know your breadth of knowledge.
And university can be great at introducing you to things that you never even realized that you needed
to learn.
So you know a big part of putting together this course was putting together the curriculum of things
that I thought were really essential to you know somebody who's learning development on a journey to
becoming a developer.
So and then the tutorials were really built around all of those fundamental things that I wanted to
teach.
So at university it's a similar thing you have an expert you know your your professor who's putting
together this course based on things that they know are important which you might not have any clue
about.
And as great as online learning is and there are so many really amazing YouTube tutorials.
The thing that it falls down on is not building that curriculum for you.
And university is very good at doing that.
So I would cherish your time there so I'm sure many people won't agree with me on this but I would say
don't aim for perfection in your grades.
Just try to meet as many people as you can and have a great experience and learn a large breadth of
knowledge rather than trying to memorize everything and you know.
And for that and aim for that 100 percent or aim for those high grades.
I mean that's certainly something that I was tempted towards and I would say fell down on so.
All right so the next question is from Abhijit Rhody.
Abhijit I have a feeling that my team pulling some sort of prank on me by by selecting all the questions
that have very difficult to pronounce names.
All right.
So let's see what Abhijeet says.
OK.
Hey Angelo was your approach to learning new technology.
What do you do when you get stuck while learning new stuff.
What are some timesaving hacks you use while developing.
All right so that's a lot of questions.
Firstly is that working in tact means that you are constantly having to learn new things.
If you stay still technology does not and you will become outdated even if you are an 18 year old and
you know about the coolest technology.
You know I come across so many re-act native developers who you know became re-act native developers
a year ago and they're getting really cushy and really comfortable with that one technology and not
wanting to diversify all look at anything else.
The important thing is that you always have to be learning.
So what I try to do is try to consistently allocate an amount of time every single day for learning
something that I'm not comfortable with.
So for me because I have the luxury of allocating my own time from 9 a.m. So start of the workday to
11 a.m. is two hours are blocked out just for learning and then learning things.
I'm not good at and it's really really important to make yourself get into these uncomfortable situations
where you have to perform or you have to do something that you don't know very well or that you you
are not an expert in.
Right.
So for me that means getting up to date with new technologies.
For example recently our company collaborated with Amazon to build a Alexa tutorial.
So how you can use no genius to create Alexa skills and to build this entire thing for Amazon.
I basically had to brush up on a lot of stuff that I wasn't that comfortable with.
So I think you know the saying that if you don't learn you die it's it's really really true.
Maybe you don't physically die but your brain does.
And I see this with you know a lot of people you know they're always looking for the next relaxing thing
to do or you know the next holiday had to go on and there's nothing wrong with that.
But in order to improve and it all to get better you have to look for struggle and the more that you
struggle them better that you get.
And so one of the things that I look for in life constantly is a struggle you know where can I apply
myself that I'm not comfortable with.
And I also look for situations where people ask me to do something hey you know can you give this talk
to 3000 people.
It's tomorrow.
By the way.
And yeah it's recorded for posterity so.
So in these situations where you think to yourself oh my god I can't do that.
That's that's really that's awful I can't do.
No way.
Those are the moments where if you do say yes you stand to learn and gain the most.
All right so back on track.
What do you do when you're learning something new.
So the first thing I do is look for similarities to things that I already know.
So for example developing for hours on Lexa I was already pretty comfortable with no gas.
So it was more a matter of getting used to the API and the incredibly poor documentation.
But but finding the things I already knew meant that you know I could start hanging my branches onto
my trunks and hanging my tree and hanging my leaves onto my branches.
And this doesn't just apply to programming of course you know I was learning how to wakeboard.
I was I was looking at and remembering you know how similar this was to windsurfing which I already
knew how to do.
So look for those parts of the new skill which you already sort of have a little bit of.
For example if you already know French and you're trying to learn Spanish you know a lot of the words
are really quite similar.
And so if you first start by identifying those those parts that you already know in those parts you
really are comfortable with.
And the can use that to build upon and start extending into this new skill.
All right.
So the next question comes from Misha Espinosa.
I'd like to know your habits to stay productive What do you do and what do you avoid and how to implement
a system to stay focused.
OK so you have asked a question that is very close to my heart.
This is something I think about almost on a daily basis I'm trying to optimize my daily routines so
that I can be as effective as possible.
So one of the first things that you realize is that we are being distracted as you know people living
in 2000 2017.
We are constantly at the beck and call of notifications.
So you know I have an Apple Watch.
I have a phone.
I have my laptop which are all connected to the Internet and they all tried to ping me all the time
and people are always in demand of your time.
So you have to be really really almost militant about protecting that time and protecting your attention
span.
So what I do is when I'm working on something creative or when I'm programming I turn off all notifications
on my phone on my watch on my laptop if I'm doing a project and something I'm really comfortable with
say iOS development.
I will actually pull the plug on the Internet as well if I'm not testing or if I'm not using any services.
It just means that you get to protect that precious focus that you have and not have to spend your attention
on anything else.
So the other thing is definitely attention.
So I look at attention as you having a set number of blocks say you know it's like if you have $10 to
spend every day it's the same thing with attention you probably have 10 blocks of attention to spend
every day.
And if you waste that on things that are inconsequential like you know figure out what am I going to
eat in the morning or what am I going to wear.
Then you're really using up attention blocks.
Right.
And you have to be really really stingy with your attention in order to do stuff and be productive.
And you know be creative or do things that are worth bringing into the world.
So one of the things is that in the morning I don't choose what I wear.
I have a lot of shirts that are pretty much identical.
And I just pick out the I just pick out the same college shirt and I just pick out something that's
clean that pretty much looks the same as what I wore yesterday.
And I eat pretty much the same thing every single morning which is just a tin of sardines.
So high protein low carbohydrates good for focus.
And then that means that I've managed to get through the beginning of my day without having to make
any decisions at all.
And that helps me conserve my attention energy that I can use on creating app or thinking about how
to explain you know certain difficult concepts for you guys.
And it just means that you so much more purposeful with your attention rather than just you know wasting
it and giving it out everywhere.
All right so the next question is from Stephanie Kandel and she says Angela thank you so much for creating
this cause I was very excited to see a female teaching this class too.
That leads me to my question.
Do you face any specific challenges being a female in this industry.
Any encouragement or advice to women pursuing career as a developer.
Ok cool.
That is a really good question.
And I literally just flew back from Beijing a few days ago giving a talk to three dozen people on this
exact topic.
So I remember what I said about earlier on somebody asking you to do something tomorrow.
Yeah that was it.
But this is something that I get asked quite often.
And here is how I think about this problem.
So throughout life you will come across many rejections many bad things that happen to you people treating
you unfairly or people not giving you what you want.
You know you're not achieving the things that you want because you know there's somebody in your way
and you can interpret this in any way you choose.
So for example I've been to many interviews where I've been rejected as have everybody.
Right.
So that was a great story from Jack Ma the founder of Ali the Ali group.
It's like probably billionaire trillionaire whatever he is.
But he once applied for a job in the U.S. to work in KFC.
And I think out of 21 people who applied 20 got 20 people got the job and he was the one that did not.
So you can interpret any of these life kids or things that happened to you in any way you choose.
So I've been to a lot of interviews where I've been rejected and it's very easy and it's very tempting
to think about it in a way like oh you know it's because I'm a woman it's because I'm asian it's because
I'm not you know it's because I'm too young it's because I'm too old or a whole bunch of things.
But at the end of the day that doesn't help anybody that doesn't help you certainly.
You know I can't change my gender.
I can't change my age or my or my ethnicity at least not easily.
So why make it about that right.
I can honestly say that I guess I've been lucky or I guess the way that I see the world.
I've never felt discriminated in any job that I've ever done.
But I mean that doesn't mean I haven't had horrible bosses or haven't had people who've been mean or
people who've rejected me or you know denied me of things I wanted but I didn't make that about my gender
or my ethnicity or anything like that.
You know I I realized that sometimes I didn't get the job maybe because I wasn't suited.
And other times because maybe I was partying until 1:00 a.m. in the morning and I didn't have time to
prepare.
Right.
And in which case I don't deserve the job it didn't matter if I was a white male in my 40s I still wouldn't
have deserved that job.
Right.
So I think it's far more empowering to think about these problems or you know things that happened to
you that aren't desirable in a way that you can control.
Right.
I can control how much I prep for an interview.
I can control how hard I work to understand you know that business or you know for technical interviews
I can choose to spend more time and you know be the best up or polish up my portfolio.
All of these kind of things that are way more helpful than just you know thinking to yourself that it
might be because of something that you can't change.
But you know I'm not saying that there aren't problems in the world of course there are.
And you know we do have to tackle them using policy in all of these things.
But on a more personal level it's way more helpful if you choose to interpret these events in a way
that you can change and that is within your own control.
So my words of encouragement for any woman or man or child or anybody really going into development
is that you know look for commonalities that you have with people for example in our current company
we're way more divided by you know Android versus iOS or Mac versus PC or Rick versus Mauti than we
are.
You know by by our genders or colors it's because either we choose to interpret it that way.
So make your own choices it's your own stage you decide where you put the limelight and focus on things
that you can change well and things that you can't change.
All right so I've been coding for quite a while and there is literally no really left in the office
anymore.
So I will try and keep the show and I'll put some of these questions on the next Ammie.
But let's answer this last one from bàn Joel Elie Manco Manco.
That was not a bad attempt.
And what is your morning ritual.
All right so two in the morning.
This is an ideal day.
This is not every single day as much as I would love it to be something.
Sometimes things just happen in life sometimes.
I'm on a flight and I feel horrible.
So.
So the thing with morning rituals that people don't tell you is you know don't feel bad for missing
a few days or screwing up here and there.
It's the it's the trying that counts right.
So I wake up usually around 6:30 or 7 and the first thing I do is 10 press ups proper press ups.
None of this you know said a wingy girl press up stuff.
Stuff like proper press ups and that kind of gets the blood going and makes me feel a lot more awake
and less likely to go back in bed.
Right.
I think I think once you've got shoes on it's it's a lot harder to get back into bed.
So after that I meditate for about 20 minutes.
So that means I set a timer for 20 minutes during which time I try desperately to not think about what
am I going to eat what am I going to eat what am I going to eat.
Some days it is just like that.
And I can't help it by now.
If you guys have watched a lot of the videos in my course you'll realize I think about food a lot but
I also go to the gym a lot so it's ok.
There's always going to be islands in life right.
Everybody has to have something there into.
So I meditate for 20 minutes and so personally I do T.M. so transcendental meditation.
It seems to me like the one type of meditation where you don't have to believe in a lot of stuff.
So I find that quite helpful.
And I think over the years of meditating I've definitely found that you become a way more purposeful
person.
So it's very easy when you're aggravated by people such as certain clients you know that design I don't
know how I feel about this app.
I feel like it's not quite there yet.
I'm like OK I'm glad that you feel so much.
But anyways yes sometimes you are prone to automatic responses where you just get angry or get annoyed
or you know don't like what you're hearing.
But I think with meditation is far more it allows you to be outside your own body and look at yourself
doing these things or interacting with people and you know you sort of ask yourself like if I react
this way does it help me or does it hinder me.
Does it give me any benefit.
And usually the answer to all of these instantaneous instant gratification type of responses are lashing
out.
You know it's never really useful.
So meditation has been great for that.
So then after I meditate I try to do a little bit of gently about just you know just basically brain
dump any thoughts that I've got in my head.
It's very easy to be very in your head you know.
I try to put it down on paper and once it's on paper I can tell myself oh it's there you know I don't
have to worry about it anymore somebody else namely my notebook is taking care of the worrying for me.
And that usually takes about 10 15 minutes and then the next thing is I bring up medium or hacking news
or product hunt and look at what's happening in the world in terms of tech.
Look at some of the interesting tech news things that people have built new get up repo's just basically
News.
And I eat my can of sardines alongside that.
So that's basically my morning routine it obviously changes quite a bit.
I would love to be able to add a little bit more exercise to it but with current experimentation it
doesn't seem to have benefited me all that much.
So it's constantly in flux and.
And.
And certainly my morning routine this year has been different from last year and last but I'm constantly
trying to squeeze out that extra bit of productivity.
So if you guys are interested in it productivity hacks which I am hugely interested in I wrote this
article which I can link in this video to some of the hacks I found that were really really useful.
All right cool so my tummy is rumbling and I'm going to go and grab something to eat.
The office is now completely deserted.
Just myself talking to myself which everybody is obviously used to.
So I look forward to answering more of your questions in next month's Imay.
I'm going to be sending out the newsletter as well later perhaps this week or next week.
So keep your eyes peeled for that.
If you haven't signed up then go ahead and sign up for it.
It's full of terrible jokes that I've thought of as well as some of the articles I've read.
I've come across are really good in terms of I just want them programming app design.
Hold on.
Interesting stuff.
So if you have a question for the next A.M.A. then just go and find the most recent announcement.
And and your question there and I'll have a look at it and my team will pick out some choice ones that
maybe I haven't answered in this one for the next session but meanwhile I hope you guys are all doing
great.
Looking at the Q&A sections and looking at some of the things that you guys have been e-mailing me that
you've built.
I think everybody seems to be doing a great job and just want to say keep going.
I'm here for you in the Q&A section as well as on Ammi's and also in the newsletters I send out.
And you know don't get stuck Don't give up just keep going.
Or ask a question or go into a stack overflow.
And you know power through and you will eventually get there.
And I look forward to seeing more of all of you or some things that you guys have been building or are
going to build and publishing it and shouting all about it to all to everybody I know and all my students.
So good luck and I'll see you back in the course and maybe next month as well.
All right.
Bye guys.