Hey guys how y'all doing.
This is our second A.M.A. to date and seems like the last one you guys were quite fond of.
I got lots of messages on Twitter about how many pushups you're doing.
I try to beat my record which is not that hard to do.
To be honest but I'm glad that my ranting into the camera is helping somebody out there as long as it's
useful for one person then happy to keep doing this.
So it's a nother month.
And another A-MEI and lots of exciting things have happened between last month and this month.
So I was invited by the Cape Town government to go and give a talk about the sharing economy and how
technology can be used to improve adoption.
It was a really really interesting event actually full of really cool people but more importantly Cape
Town is incredible.
It's just such a beautiful city.
I was really shocked.
Like literally everywhere I look was just stunning.
And I'm so jealous of you guys who live in Cape Town and from the stats I can see that there's quite
a few too many students who are from South Africa.
So big shout out to you guys because you guys live in like one of the most beautiful places ever.
I mean I know there's problems but there's problems everywhere.
And to be honest it's not really that safe in London either.
And even I'm thinking about moving somewhere else.
I don't know yet where you have any good pointers any good locations that you're fond of.
Be sure to hit me up on Twitter at why you underscore Angela.
All right so enough about me let's talk more about A.M.A. questions.
So you guys have been really active on the A.M.A. questions and the team has sorted through a whole
bunch of new questions for me to answer.
And so the rest of my team are playing Portal 2 today they're just having a bit of afterwork fun but
this is also pretty fun to me.
So let's get started.
So the first question comes from Victor mansion.
Yeah I'm glad that in the last Amay I didn't get called out by anybody whose name that I mispronounced
and mangled in a horrible way.
So if I do get your name wrong I'm really sorry.
But the good British way is just to keep going and carry on.
Which is what I'm going to do.
So Victor has asked.
Hi Angela thanks for efforts.
A lot in keeping us moving forward on.
In your opinion how many hours should a developer spend weekly working on learning to become a successful
developer and to be acquainted with the latest technologies in the field e.g. 35 hours working or five.
I was learning.
OK so this is something that I have a really really strong opinion about.
So in my experience you need to spend about an hour a day at the minimum to keep up with new developments
new technologies.
You know web developer guys you know how many new frameworks gets release every week every month and
it's really tough keeping on top of things and based on the experience of my friends who work in large
tech companies.
You know you do get time for sort of R&D and learning but it's kind of in your own time.
And even if you're learning stuff or if the company is paying for it then it's usually something that
has to be related or directly related to what you're doing in your day to day job.
And this is something that we thought about really carefully when we set up our company when we started
employing people because it's really really important to get the company culture right from the beginning.
And it was my decision that everybody who works at our company is entitled to one hour and not just
any one else but your best one hour.
So that's first thing in the morning from 9:00 to 10:00 that hour is blocked out for learning and it
doesn't matter what you want to learn.
You know if you're an Iowa developer you can learn about developing for the block chain.
If you're a if you're a machine learning guy you can learn about augmented reality.
It really doesn't matter as long as it's something that you want to learn.
And you know you can dedicate that one hour of prime brain time to it.
And you know I think a lot of running a company is about finding really smart people who want to work
for you and keeping those smart people around and spot people tend to have a need to learn stuff and
you know you guys included.
Right.
Why are you enrolled on this course.
You know because you're curious and you're intelligent you want to further your own knowledge read further
the breadth or the depth of your own your own skill set.
So this is something that's really really fundamental and important to our company.
At the library and you know every employee no matter how important or how senior they are get this privilege.
And it's something that's really fundamental it's been there from the beginning and it's something that
I'm certainly going to continue going forward.
So what I recommend for you if you can try to spend an hour of your best brain time at least an hour
every day to learn something new and it doesn't even have to be programming related.
It can be design it can be.
What are the latest growth hacks.
But you know the main point I guess is to pick and choose when you learn because your hour after work
after dinner at maybe 9:00 p.m. is not going to be as effective as your one hour.
You know in the morning after you've just woken up and if you have the ability to dictate your own time
then I would recommend somewhere between 9 and 10 9 and 11 to do your learning.
But if you don't have the ability to do that if you work from 9:00 to 5:00 or whenever.
Then you kind of have to have the discipline to be able to wake up earlier and allocate your time wisely
so that you actually dedicate your good brain still functioning brain to learning rather than you know
at the end of the day when it's all kind of gone to mush.
That's the way with me anyways.
And so what I try to do in my day is that you know I have a threshold for work say if I'm able to operate
at a above 80 percent efficiency I know I sound like a robot by saying this but if I'm able to operate
my brain at more than 80 percent efficiency then I will dedicate it to creative work such as creating
new course content for you guys or you know learning new technologies if I'm able to achieve brain efficiency
above 50 percent then I'll do some more mundane tasks like answering e-mails and more signing this and
that kind of more boring stuff that doesn't require so much thinking.
If I'm at brain efficiency like less than 50 percent where I don't feel like I'm productive at all.
I won't actually work and that doesn't mean I'll go on Facebook.
Go on Instagram or procrastinate because that also takes a lot of energy to kind of hunt and gather
to go to these like endless swipe apps way you're actually using a lot of attention just to hunt for
that next exciting thing.
And it's it's kind of weird but it takes up a lot of effort if you actually think about it you don't
feel relaxed after you've scrolled through Facebook for 20 minutes.
You don't feel refreshed after going through read it for 20 minutes.
So if I'm at low brain efficiency I would rather rest.
So that could be anything from going for a walk outside or going to the gym or meditating.
Basically something that doesn't require any part of my logical brain it's more physical activity and
I find that helps me to reset.
So it's a bit like shutting down and restarting.
And I find that helps me a lot.
So what I would say is it's really important not just to think about how many hours you're learning
how many hours you're working on something but to also make it more granular think about what kind of
time am I dedicating to my learning and my dedicating my effective brain time.
Or am I dedicating my crappy brain time.
And to answer the other part of your question regarding how long should you work on programming problems
in order to become a better programmer.
It's also not as straightforward.
I have friends who you know work at large corporates as developers or CIS ops or basically anything
technical essentially.
And some people have incredibly creative and logically taxing jobs where they're being stretched and
they're being challenged on a daily basis.
But other people especially the more senior ones they kind of can probably do what they're doing at
their work with their eyes closed.
And so you know when you're talking about how many hours should you work on a on programming in order
to get more efficient then you have to work at problems or things that really stretch you.
Right.
I mean it's like you have to constantly try and chase that curve.
That sweet spot that's just a little bit above your competence and still having a little bit of challenge
so that you're not bored and you're constantly learning and growing.
All right.
So let's move on to the next one.
So this is from Simon Fitch and he says Hi Angela I got a quick e-mail for you.
Can you recommend a web site where we can practice beginner to intermediate swift coding examples slash
challenges.
Ok cool.
So for Simon and anybody else who has this question.
So I've seen this question come up a few times in the Q&A as well and it's a really really good question
because it's true.
You know whenever you learn about programming the instructors tend to always recommend you learn a little
bit every day and you know the effects will compound and you'll eventually become you know a programming
ninja.
Right but what exactly do you do every day.
How do you find these programming challenges that you can practice.
So I've got a few of my favorite resources.
So one is project oilor.
So this is a Web site where you can browse a whole bunch of different questions and you can sort them
by how many people have solved it.
So it's kind of like how difficult it is.
Right.
So the more people who've solved it then it's probably a good one to get started with.
And then if you look at the ones that are the most difficult where only a handful or 100 people have
actually solved it then that's really going to be a real challenge for you.
And the beauty of these problems is that the more the more algorithm orientated.
So you know you could pretty much answer these or solve them using any programming language you like
as long as you know them basically the fundamentals are all the same right.
So that's one thing.
Check out project oilor.
The other one I really recommend is something called Code fights.
And what you can do is you can sign up for an account and select your language.
Now I know it says Swift 3 but the change is between 3 and 4 are so minimal that this is really not
going to affect you.
So just choose a with three until they update us with four I guess.
And then you can browse through the arcade where you've got some relatively simple problems.
And the beauty of this Web site is that they have a whole bunch of tests.
So it's kind of like test driven development.
But it's more about the algorithms that you can create.
So what I recommend is that if you're more or less a beginner slash intermediate to start with their
arcade and work upwards.
And then once you get a little bit better and more familiar with algorithms to go for their challenges
and you can sort the challenges by difficulty and you can also view the solution after you've attempted
it as well.
So this is a really nice way of practicing daily weekly monthly and getting better at you know not just
algorithms but also things like UI in front end.
Now the final thing and probably the most important thing is of course to make apps.
You guys are on an app making course it's really important that you take the skills that you learn and
you actually apply it to a problem where I'm not specifically laying out you know the pathway because
this is essentially what you have to do whether if you become an independent developer if you want to
start a business or if you're going to work at a startup or work in a tech company you have to be able
to figure things out by yourself.
And throughout the course I've been laying down some of these fundamentals like how do you get the iOS
docs How do you read them.
How do you interpret them.
How can you find example code.
How can you find open source libraries and how do you go through stack overflow.
And you know you don't have to make anything difficult.
Just try and build something that we haven't built before.
Right.
Maybe build a time or like an egg timer or maybe build something that you need specifically.
So recently I've been reading a book by Ray Dalio who who is at the helm of one of the biggest and most
successful hedge funds.
And he was saying about how at Bridgwater they have this app internal app called the pain button.
And what you do is that whenever you experience pain be it emotional intellectual or you know or frustration
just to take out the habbe and log what that pain point was about so that you can come back to it and
develop processes or solutions or give feedback basically catching those pain points in the moment so
that you can deal with them later.
And I thought this was a really really good idea.
And I was browsing on the App Store and nobody seemed to have made this externally.
I know it's available to Bridgwater employees but you know it seems pretty useful for everybody else
as well.
So if anybody is looking for an easy app to make then this is pretty feasible I would recommend it.
And once you do make it let me know because I will be downloading it.
So look for pains or ways of scratching your own itch.
Any small problem that you have.
You can turn it into an app for practice.
It's a really great Web site I linked to in this A-MEI that's called I think 365 projects and it was
created by this lady who decided to make a new website every single day as practice to get better at
web development.
And I think this is a really good idea for app developers as well.
You know make a new app that takes maybe less than two hours.
Definitely feasible by the way.
Any sort of simple app that you can think of and make a new one every single day.
Right.
So you can look at her Web site for examples.
But some good ones are things like story cubes or a notepad or like a meditation music player.
And these are all really really feasible and definitely within your abilities as a beginner to intermediate
I guess developer.
All right.
So next question from Alberto Martinez.
So thanks for the video Angelas very nice to see you on screen.
Hello here I am again a question.
How many languages do you speak.
I mean both kind programming languages and real languages.
Ok cool.
So start with real languages is more tangible.
So I speak English obviously and I speak Mandarin Chinese fluently.
I can read and write in both languages pretty effectively.
So the crazy thing that people tend to ask me on Twitter is where my accent is from and I know that
it has distinct elements of an Australian accent.
But I have actually sadly never been to Australia.
So what I reckon is the deal is that sometimes when I watch something or when I talk to somebody extensively
then I tend to pick up on that accent and that that's just something that happens to me I don't know
why.
And I think part of the problem or the solution is that when I first moved to the UK when I was about
10 years old I moved with my parents here and they didn't really think about teaching me any English
before then.
So I was kind of just dropped into this unfamiliar world and you know I think you guys have been on
the course for long enough know that I'm incredibly sociable and I love talking to people and I love
interacting with humans but I am in this brand new country and I don't speak a single word not even
hello.
I don't even know how to say that much.
So it was pretty painful but it was actually pretty fast.
I would say I picked up the language in less than six months because you're young and because you know
there's not.
And because you don't really have anything else to do.
Right.
You just try to talk to people with sign language or when they point to the table and they say table.
You assume that's what they mean.
So I think that's probably one of the reasons why my accent is so fluid because I was never really taught
English properly mostly by feel like how a child would pick it up although they say that I was quite
old at age 10 or 11 to pick up a new language.
But here we are.
So and now I'm kind of sad that my parents didn't move.
Why don't you move to Spain why don't you move to Paris and then go to Germany moved to a different
place every year.
I could speak five languages but hey you know they decide to go to a really dreary country and here
I am.
So again if you have any suggestions for better places for Angela to move to please hit me up on Twitter.
I'm looking to crowdsource this solution.
And you know I do a lot of flying around already to talk at conferences.
So it doesn't really matter where I live anyways.
OK.
So other than English and Chinese I can also speak French and German.
I've been learning it for four or five years but they're still not really all that great or as good
as like I'd like them to be.
So.
So unfortunately I am nowhere near being able to do an amazing French or German anytime soon but I'm
working on it.
So rest assured it's going to happen one day.
So what about programming languages.
So the first language I learnt was Visual Basic using the very friendly looking Visual Studio.
And I think that was pretty easy to pick up on.
I think I had a really logical mind as a child and also strangely I think I was strangely disciplined
as a child.
I mean like the 11 year old Angela was not outside playing around.
She was like trying to build a video game for like five hours a day.
So that's what I did during my summer holidays.
And you know here we are so I can't complain.
So after Visual Basic I moved on to see because somebody told me that was a good foundation and that
person is probably just evil.
I don't know how many you guys have learned Steve but for a 12 year old it is really hard.
You know with pointers and everything.
I'm glad that I did it because it's like trial by fire and it gives you a really good basis for understanding
every other language because it's quite low level it's quite close to the metal.
So after C was C++ because I wanted to be able to build real video games not just like Brick Breaker.
And then after that was Objective-C.
So what I wanted to build iOS apps and of course then it was swift.
And then we launched this company and then some Cline's wanted to be able to have a Web site with their
apps.
So I had to pick up javascript putting a whole bunch of frameworks.
And I think you know in my experience learning one real language like knowing English and then being
able to speak German It's a far bigger jump than say knowing an object oriented language like a swift
and then being able to jump to Java.
It's way way easier because all the concepts are exactly the same.
And when you're programming you're not talking right you don't have to.
You don't have to be able to.
You don't have to convey your code in real time to somebody that's just crazy.
So you can look up things like you know what are delegates and protocols in Java.
Oh that's similar to these things called interfaces.
And this is how you write it this is the syntax.
And oh that looks really awesome.
And because you already know how it works and the abstract concept behind it then you're pretty much
good to go.
And it's just changing a bracket here.
Substituting a semi-colon for a space or you know it's really really way easier learning new programming
languages.
And I hope that if Swift is your first programming language and it's really really well suited to be
a first programming language if it is indeed the first thing that you've learned in programming I do
hope that you will go on to pick up other languages and be able to develop apps or websites or programs
in a whole bunch of different languages and you'll find that once you've mastered one language it's
really not that hard jumping to anything else.
I mean obviously conceptually programming languages can be placed into different camps.
So you've got a procedural object orientated and you know some of these new languages which are pretty
fancy but a little bit different.
At the end of the day all you're trying to do is use the machine's processing power efficiently.
Being able to communicate with the ones and zeros and get it to add subtract divide and do essentially
the same things.
So I remember there was this really good post on image where it says if programming languages were weapons
I'm definitely anti-gun.
But this is actually a really good post that arises what each programming language would be if they
were a gun.
So for example C would be an added issue rifle.
Old but reliable C++ is a set of nunchuck so powerful and impressive when wielded but takes many years
of pain to master.
And often you probably wish you were using something else.
So I don't know if you guys have played around with nunchaku but my God how many times you have to hurt
yourself before you actually understand how to use this thing.
C++ is very similar.
Perl is a Molotov cocktail is probably useful ones but few people use it.
Now Java is a belt fed 240 G automatic weapon where sometimes the belt has rounds sometimes it doesn't.
And when it doesn't during firing you get a null pointer exception the gun explodes and you die.
So we don't have that problem as badly in swift because of course we have optionals.
So if you're good with optionals then you shouldn't be getting this problem.
Skala is a variant of the 2:43 Java except the training manual is written in incomprehensible dialect
which many suspect is just jibberish.
Totally true.
I try to get into it once.
Not quite sure what happened there.
Javascript is a sword without hilt.
Oh my God.
If you go to javascript from Swift I can assure you that you will feel scared.
Like 50 percent of the time you're like wait I can I can do what.
That's allowed.
Wait a second.
I can go outside of my array and it doesn't break and it doesn't let me know what the hell.
So yeah.
Javascript.
Scary thing is the word and it Bash is a cursed hammer welded everything looks like a nail especially
your thumb.
So if you guys worked with the terminal and bash it.
Totally true.
Ruby is a ruby encrusted sword.
It's usually only used because of how shiny it is.
That's the impression I get as well.
C-Sharp is a powerful laser rifle strapped to a donkey when taken off the donkey.
The laser doesn't seem to work as well.
And Lisp is a shiv which comes in many forms.
Anyone who uses this is probably crazy and dangerous and I can kill everyone who I've met who uses Lisp
as their main language.
Pretty crazy.
And another really good one that I came across at some point was good.
The princess had to save the princess using a programming languages.
So for example you have javascript.
You spent hours picking libraries setting up Node and building up a framework for the castle.
By the time you finished with the framework the fault has been abandoned and the princess has moved
to another Tassell and the best part is when you get to the ends you have Ph.
P You have to rescue the princess in HP and you basically just give up and hang yourself.
So it's pretty funny.
A link to all of these things.
If you guys want to have a bit of programming humor to lighten your day.
So that was a pretty long answer to a really short question but I hope I've clarified a few things.
So next question Sneyd.
So completely random but as a former doctor I would love to know how you manage how you eat when you're
working long periods of time.
OK so here's an interesting story.
I was really drawn to the idea of Soilent.
So for those you guys who don't know it's meant to be nutritionally complete milk protein powder shake
basically and it was a really really cool idea.
You know like what if I could just sit there and code for 12 hours straight without having to spend
half an hour on making or securing food.
What if I could just like shake something up and do this for a week and build some grand project and
I'll make like the Angela block chain.
By the end of it.
Or something.
But the problem with it if anybody has tried it is that it tastes horrible.
It tastes like this is the best way I can describe it.
It tastes like somebody took a cardboard box soaked it in some old bathwater and then got a Vita Mix
and then blended it into a smoothie.
It taste like it basically tastes like that.
I've heard that they've improved their formulas but I just couldn't.
I had to check all of the ones I bought before and it was just it was just awful.
It was completely unpalatable so I have no association with them.
I'm not advertising or not advertising although I don't think that would be a very good advert.
But I thought it was awful.
So what else can you do.
What else can you eat too.
When you're working long periods of time so I am the proponent of high protein and low carbohydrate
intake just because I find that carbs give me carb coma and I can't concentrate as well and I can't
work efficiently for long periods of time so very often in the morning.
I tend to just start of my day with a can of sardines and throughout the day I have some protein shakes.
I'll probably end up having a proper lunch and a proper dinner.
But if I'm doing like a programming stint like where some project has to be finished or has been done
then I tend to do it during the night and I find that when it's dark I need to eat less.
I don't know if that's true for everybody.
And I tend to just stick to protein shakes which is probably not going to be terrible for a week but
it's probably a bad idea if you do it any longer than that.
But again I am not going to dish out any medical advice over the Internet.
Don't trust me on anything.
Always check your sources and ask your doctor.
But I think one of my biggest takeaways from this current year 2017 one of my most successful body hack
experiments has actually been quitting sugar.
So I came across this article.
Caramel was quote no and it seemed to present some really interesting facts and findings and so then
went on to ProMED did some research of my own and it seemed and it seemed like this idea of being off
not just refined sugar but most sources of sugar is probably quite good for you in terms of inflammation
and everything else.
So for the last I don't know like four or five months now I've been off sugar so I know it sounds really
crazy but sugar is a drug and I realized this when I first tried to get off it though previously I think
I would probably have granola in the morning which I thought was really healthy and then I would probably
have some chocolate around 11 o'clock some more chocolate around 3:00 and then probably have dinner
with some dessert like chocolate pudding.
You know some of those things are my favorites.
And then one day I decided just go cold turkey.
Basically just nothing no refined sugar no glucose dextrose fructose.
Lactose.
Everything was off the table.
Anything that ended in an O's either sugar was off the menu.
And quite honestly for the first two days I had physical symptoms like I felt flu and I felt like really
crap.
And you know I was just like really nervous for no reason.
I mean that.
And of course there is a reason because you know I've been used to dozing myself with sugar on like
six hourly basis and now I'm not eating sweet fruits.
I'm not eating anything with refined sugar.
And it was a pretty big jump.
I have to say.
But so I would say for the first week the first two days were the worst.
They were actually made me want to just to go back to normal.
And then three four five were kind of.
But then on the seventh day was when I woke up and I felt like as if these clouds in my head had just
cleared and I felt mentally sharp and I felt really really productive and just like a level of mental
clarity that I didn't have while I was on sugar I think or had very infrequently been previously what
I used to think it was just you know tired or stressed or irritated.
It was actually all sugar cravings that were doing it.
And I now recognize it because you know if I have any sugar you know a significant amount of it.
And then after about five or six hours predictably I would feel nervous because I'm ready for my next
dose.
And it is that crazy it's like it's cocaine or heroin.
It's probably more addictive than both.
But that has been my experiment sort of body hack wise.
Last year this year and it has been pretty dramatic.
I can say like I feel I feel more mentally alert.
I feel like I have more energy and I just generally feel like I'm performing at a higher at a higher
level than I used to when I was like full time on sugar.
So obviously this is not medical advice or anything but you know do your own research.
But I would say that it's it's it's an experiment that well-worth conducting even if you don't you know
don't cut out fruit or don't cut out milk.
But if you just cut out refined sugar for like two weeks you know and you can stick to it.
It's pretty interesting the results I would say it's worth a try.
OK so we seem to be stuck on the food theme here but this is from Jonas El home.
Hey Angela.
I'm in.
My only question is how many cups of coffee in a row can a person handle a day handle a day five or
ten cups from a doctor's point of view.
Thanks for a great set up and you are.
Ok cool.
So what kind of medical advice over the internet speak to your own doctor.
But when I've had to make targets that are pretty much unrealistic and I'm doing these crazy coding
stunts and I need coffee not really to stay awake.
But more like liquid motivation because it was just too daunting a task without it.
I've relied on an app that is called caffeine's and it looks really really unappealing in terms of UI.
They obviously have not done the design modules in my course but it was created by some professors at
Penn State University and it has a solid scientific backing to it.
So the way that it works is that you input how much caffeine you're consuming and the kind of estimated
based on your drink and your drink size and then you put some you know personal details like how much
you weigh etc. and they chart the half life decay of caffeine in your system so that once it falls below
a certain threshold they can actually notify you and tell you to drink more coffee so that you will
stay within that productive zone of caffeine Asian whatever it may be for you.
And I've played around with this app quite a while.
I started using it back way back in med school actually and it has been quite an interesting experiment
and journey to keep yourself within a certain band of Cafe nation for a day at a time.
Obviously you are to sleep at some point and your caffeine is going to get out of your blood.
But this was a cool experiment.
I think they have a free version with ads.
So you can check it out.
And if anybody wants to make this take on this project and build a better version with better us and
better UI then I will be your first downloader.
It is really useful for me but I just can't get over how ugly it looks.
So if anybody's looking for Project Here's one to not copy but be inspired by.
All right.
Cool.
So it is now getting dark in London and my team all look like they're ready to go to the pub.
So I think this is probably where we're going to call it a day for this month so next month.
I have a secret surprise for all of guys who are on the course and it's going to be pretty awesome.
And I know that it's going to make quite a few of you quite happy.
So keep your eyes out for an e-mail some point mid December.
I won't give any more away than that but it has been good chatting with you guys as always send your
A.M.A. questions in so you can comment below.
The announcement that I made for this video.
Or you can simply just add your question to the Q&A for this and main lesson so that's all from me and
I will hopefully see you next month.
Bye guys.