Hello everyone and welcome to yet another episode of ask Angela anything and you guys have spoken and
my team have selected some pretty choice questions.
I would say and I'm really excited to be have to answer them in todays episode.
So as you may notice today is a very special episode because I am hailing from Nairobi in Kenya and
as you can see it is absolutely beautiful out here and there's just birdsong and monkeys running around.
So gone are the traffic sounds and the usual London pollution of my office.
I hope today will be a scenic change to brighten your day.
So once you are ready let's get started.
Now the first question is from there at the golf.
This shouldn't be called Ask Angela anything it should be called Angela.
Murdering people's names.
So there I ask.
Do you have any advice for somebody who's looking to start freelancing.
All right so you may or may not know but I learnt how to code when I was younger and I have been programming
on the side for many many years but I actually trained to be a medical doctor.
So during that time and during med school I spent a lot of time freelancing.
So I hope I'm more than qualified to answer this question for you.
The first thing I would say is that don't jump in don't.
You know despite what people say don't just dive into freelancing quit your job tell your boss that
he's a dick and then just go and you know try and find a job that's really bad.
Even though the traditional image of an entrepreneur is somebody who likes take risks that's actually
really not true.
If you think about Richard Branson when he started Virgin Atlantic he didn't just go out and you know
buy lots of planes.
In fact he actually least a plane from Boeing to get started.
And that meant that if it was successful then great he could continue doing this.
But if it failed then he could just give it back and his investment wouldn't suffer.
So don't quit your job straight away.
Instead what you should do is try to figure out what spare time you have during the week and try to
carve out about 15 hours per week that you're going to dedicate to building a pet project.
Now the important thing about this pet project doesn't really matter what you build but what matters
is that has to be useful to at least one person so that one person can be you.
It can be your wife it can be your pet.
It doesn't matter.
But it has to be useful it can just be a hello world application or something that you use to learn
about a particular API for example.
Now once you've done that and you've deployed it onto either the web or if you're building an app then
obviously on to the app stores then you've started building a portfolio.
And this is going to be a great thing that you can show everybody potential employers or potential clients
that this is what you're capable of.
So this is the beginning.
So now at this stage you are spending 15 hours a week building your pet project and once you've started
doing this the next step is to carve out another 12 to 15 hours.
Now nobody said that this was going to be easy.
Freelancing is not easy.
Nothing that's worth doing is easy in fact.
Now you're on to step two and you're carving out 1000 hours per week which you're going to spend working
on other people's projects.
So you're going to be freelancing on small gigs.
So the best place to start I recommend is a Web site called fiver and I'll include the links in the
resources section of this episode.
But basically it's a Web site where somebody can get a job done for maybe five to $20.
Now the important thing here is that you're not here to make money you're here to get skills and you're
here to learn about the world of freelancing just as you probably wouldn't let a surgeon operate on
you if they haven't had any experience before.
As a freelancer or as a web developer or an app developer People need to be able to see what you've
done in the past how you were able to work with clients and have people who can give you good testimonials
that kind of stuff is really really important in your career as a freelancer.
So the first step I recommend is getting started with small things on fiber and don't take on projects
that will take you any longer than a week to start with.
And another place you can look at is a place called oDesk and up work and you could start building up
your profiles on those Web sites and start answering to some of the requests and again don't go for
something ambitious even though you know the larger projects obviously pay more.
The important thing here is still about getting experience.
So you're looking for projects that basically larger freelancing firms or agencies don't really want
to take up.
So these are things like bug fixes or things like update rates or maintenance or small improvements.
Not going to make you a millionaire but it will start earn new money and along the way you will gain
really really valuable experience.
So that's what it's all about.
Now once you've been working with a couple of clients some of them if they enjoyed working with you
because you are communicative and I can't stress enough how important it is to be able to communicate
well with your client as a freelancer it's probably the one thing that will make or break your career.
Give your clients regular updates to show them what you've done and explain what it is that you're doing.
It's really important that they understand how much work you're doing and also how you're trying to
do a really great job for them.
So as you do this you will start to build up a client list people who will ask you for other things
that they want done as well and you will get word of mouth.
And as this goes along you'll end up with a list of clients who will give you jobs who will give you
good reviews or testimonials or be able to act as a reference for you for future jobs and with your
portfolio.
Remember those 15 hours a week that's going towards those pet projects.
That's going to be building your portfolio and with the experience that you're getting with your clients
and that's going to help you network and getting more people interested in getting you to work for them.
And now at this stage congratulations you're a freelancer you've made it.
And from this point on we're going to start to work on larger and larger projects perhaps collaborate
on some projects with other programmers.
But as always the first part is hardest.
And once you've gotten over those hurdles you will be on your way to becoming a fully fledged and hopefully
a really really in-demand freelance web developer or app developer.
So I wish you the best of luck there.
And I hope you have an awesome time as a freelance developer.
All right.
So on to the next question.
This is a question from Amit Singh and he asked What does your daily shuttle look like.
OK so the first thing is I'm going to say that what I'm about to tell you is probably an ideal day.
I travel a lot because I give talks.
So for example right now I'm in Nairobi because I'm giving a talk.
So this is the daily shuttle of a day where I'm based in London and I don't have anything special planned
for the day.
So I think one are the previous AMAA I talked about my morning routine so I'm not going to cover that
part.
If you're interested have a look at one of the previous ones and you'll find the answer there.
But I'm going to start from about nine o'clock which is where I tend to start work.
So for the first hour and a half of the day so 9:00 until 10:30 I spend on learning stuff.
Now this sometimes becomes one hour sometimes two hours.
It's really dependent on what I'm trying to do.
I want to be able to have enough time so that I haven't just gotten started and I have to switch to
another task but I'm more of a morning person.
I'm very alert and I'm very alert during the mornings and I'm capable of doing the most creative work
during that time.
So that's the time period that I tend to allocate to learning new things.
So for example this morning I spent learning and digging more into self-named web drive them because
I had written a pell script from God knows how long ago.
Which basically I'm not even sure I should share this with you but it's a script that basically renews
my library books automatically So once it gets to two days before the due date then it will print my
books without me having to do it because I'm terrible at remembering things unless it's in my calendar.
So that was a hack that I wrote a while ago but there's a lot of people who've been asking me how to
do it.
And rather than teaching them Perl which is just like torture I thought it might be a good idea to teach
people how to use the Leneen web driver for example I'm using it to book the gym classes that I tend
to go to.
And also I'm trying to get it to renew the books that I have in the library.
So that's what I was doing this morning but it could be anything really it's basically something new
that you want to learn and you should dedicate a block of time when you want your best to do it.
Now that tends to be the morning for most people but I know that there's a lot of night owls.
So it could be that for you maybe that's you know 12 midday.
But basically spend an hour and a half during your best time to learn something.
I think that's really really worthwhile.
Now after that blog I tend to do more creative work.
So hi again high brain demands kind of work.
So that includes things like developing new lesson plans for you guys.
And also working on also working on new curriculum or working on a development project those are things
that require a high cognitive function which I tend to have less and less of.
As I go towards the end of the day.
So that's the morning basically done.
And then maybe I'll spend about half an hour on lunch and try to eat.
I'm trying to eat something that's not so carb heavy so that I can stay awake during the afternoon and
then I would normally go for a walk for maybe 30 minutes to an hour.
And very often in our company we tend to do walking meetings.
So we'll just take the whole team and we'd walk and talk and hash things out because I find that when
people are sat down in a meeting room everything is very slow.
And I think when you're walking I've long legs and I tend to set the pace.
So I think when everybody's walking really fast they seem to get out of breath and need to talk really
fast which I really like.
So try to mold your environment to suit your highest productivity.
Then after the walk I tend to work on some slightly less cognitively demanding tasks.
For example video editing or meetings with clients and those kind of things.
And then finally from 4 o'clock to 5 o'clock is my e-mail time and that's the only time during the day
when I check my email so I find that with notifications it's very much a pulling process.
You're being pulled by the world into whatever needs they have or whatever demands they have.
But it's much better for you to decide when you want to check email or when you want to address issues
from other people.
So essentially you can protect yourself just by switching off notifications.
And in fact my phone probably stays in airplane mode for a good.
So I usually switch off airplane mode at 1:00 p.m. and I tend to switch it back on around 6:30 or 7
p.m. so I'm not even really testing the battery life of the iPhone because it's only getting switched
on for maybe six hours a day.
But it does help me get a lot of -- done.
Which is the important part.
Right.
So after about five o'clock I tend to wind down or you know finish off the things I need to finish off
and just see if anybody else in the team needs any help or anything like that.
And then I would probably have dinner around 7:00 I guess.
And then after dinner what I do depends on again my cognitive abilities.
So when I have basically no cognitive abilities then I would maybe play video games or or watch something.
You know how you have HP.
This is when like HP his or mental points are at like minimum one of my favorite games I'm playing at
the moment is called Super hot soup.
And the idea is basically that as you move Time moves with you.
So I can't really do it justice.
I recommend just checking it out on YouTube but it's a really cool game.
I'm really enjoying it.
If I have slightly more cognitive capabilities then I'll probably read a book.
Usually nonfiction up to about nine o'clock and then after 9:00 it's only fiction.
And if I have a lot of brainpower left then I like to play a game of Go.
I don't know how many guys have ever played this game.
And it's called baduk in Korean and it's called waiti in Chinese.
But it's a fantastic game and it's so simple in terms of the rules and yet it's so complex in terms
of all of the moves that you can make.
So that's something that I recommend though so I know that this whole answer has been pretty much centered
around how much cognitive capability I have.
I think I'm making myself sound a lot like a robot if.
Battery life why do this if Ramm load do that.
I have I don't come across as a robot but yes.
So that's pretty much my daily schedule.
If you have any product of hacks or you know something that you do in your daily schedule that you think
is really awesome has really helped you then please do either hit me up on Twitter.
So asked you why you underscore Angela or comment below or in the Q&A section and let me know I'm always
open to new ideas.
All right so the next question comes from Pascal Jaime here.
I really hope that was a good enough pronunciation.
I tried really hard and he asked What do you think about cross-platform versus native development.
I have a lot of ideas on this because I get asked this question pretty much on a daily basis from students.
But it's a really good question because there's a point in time where I would have said I don't even
think about cross-platform.
It's just not worth it.
Just stick to native development and your golden but actually you know more and more so these days especially
with new technology new frameworks like ract native.
It's actually not so bad.
Now let's just talk about some of the pros and cons.
OK.
So the pros of native development is that is the gold standard.
Basically if you're a large company flush with cash you're going to be going down the native route no
questions asked.
It is the best still hands down.
Other pros include that it's fast if you need animations if you have graphics in your app then you probably
should stick to native when you're using something that's really graphics intensive then the cross-platform
apps do show other things are things like you have access to exclusive API.
For example things like push notification or if you want to tap into health kits on the iPhone then
those modules are generally not available at least not easily through cross-platform means.
And the other thing is that if you're watching this video then you're probably taking my iOS swift course
and you would know that there's a lot more resources for native development than for crossplatform.
There are more people who are able to answer your questions on stack overflow.
More results for your queries on Google and even the Apple developer form to help you.
So there's a lot of help out there.
If you are going down the native route compared to cross-platform.
Now the biggest con for going down the native route is that if you want an Android app you need a complete
rewrite.
There is basically zero reusability of your code and of your UI designs.
So it's painful.
It's expensive and it's time consuming and you will notice that most apps will launch on iOS first before
they go down the Android route.
And even if they are on both platforms new features tend to come out on iOS first.
It's just a resource constraints that most people have.
Even large companies like Snapchat you'll see that features come to us first.
So it's expensive because time equals money.
And it's.
And you need a lot more developers.
A large development team more people to manage more people to pay.
It's just more expensive.
And the other thing is that if you yourself already have a good command of a particular language that's
not swift or Java say you are a web developer and you know javascript or say your dot net guy and you
know all about C shop if you're using cross-platform tools for example phone app accelerator or Cordova
then you can use those existing skills that you have and all you need to know is learn about the modules
the frameworks the API is and that's a lot less painful than picking up a new language from scratch.
Although I would argue that you know as developers we basically signed up to lifelong learning.
There's probably a new javascript framework every single week as far as I can tell.
And it's cool it's fun.
I really enjoy learning new things.
But if you don't then that can also be quite a big downside of Native.
Now the sort of halfway point or in between is something like that native which is a framework that's
open source but it has a dodgy licensing and it was created by Facebook.
Now the great thing about Riak native is that it offers a lot of the native features and it allows you
to use a language that you're familiar with to code both Android and iOS.
It has a whole bunch of modules that cuts down your development time because you can use them across
Android and iOS.
Now it's not completely developed once and deploy everywhere because it has that native aspect but it
gets pretty close to it.
Now the downside of stagnated.
Probably the biggest one is that there are some really essential features that I think that modules
lack.
For example if you want to do something that's actually pretty standard on native iOS I found that you
actually can't do it very easily without creating custom code which means that you need to know about
Swift and you know about Native Doleman.
Anyways it's kind of the way the icy rock native is that if you are an existing iOS with developer who
wants to build apps both for Android and Aiwass you can use rehang native and do it more quickly.
It's not really the use case for somebody who doesn't really know anything about Swift or us to just
pick up and we have to develop for Android and iOS.
The other thing to remember is that because it is developed by Facebook and it has this weird license
so you guys might have noticed that the most permissive license is the MIT license.
That's basically just do whatever you want with this code.
But Facebook has a weird licensing on both react and react native and what it means is if at some point
in the future your company that uses reactor ract native decides to sue Facebook they can revoke your
license to use the framework.
So in most cases none of us have to worry about suing Facebook it's just that's just the level of success
that we don't need to worry about until we get there.
But if you are cautious and you know especially with everything that's been going around about Facebook
lately I don't know.
It's I think is definitely a con for me anyways putting inclusion I would say that it really depends
on the project that you want to build whether you should choose crossplatform or native development.
And you know you really have to assess in a case by case scenario it's really there's no blanket rule.
There have been projects where I've used Riak native to quickly create Android and iOS apps.
There have been times where I've stayed very very far away from any sort of cross-platform and stuck
to good old native development.
Figure out what the project is all about and look at the pros and cons of both and assess on which one
will be better that way.
So a tagged on question from Pascal is are there any helpful tools that you use that makes a developer's
life easier.
And yes I'm all about the tools.
All about the tools but the tools.
This also should answer your third question which is when can we expect new music videos from myself
or the lone not brewery and that is never I am never ever ever again making a music video for those
guys who don't know.
Great for those guys who do know and have watched my rap music video about app development.
I apologize for polluting your eyes.
It was a bad attempt and anybody who knows me knows I can't sing for -- so I'm sorry.
And it's never going to happen again.
So.
But I do have helpful tools.
One of my favorite Web sites is product hunt and that's probably the first place I go to for inspiration
to see what new products there are.
If you haven't seen it check it out.
It's absolutely awesome.
But out of my top tools I've selected for first one is an app called duet and what it allows you to
do is it allows you to set up a separate screen for your laptop or desktop using your iPad or even your
iPhone and that basically allows you to have a jewel screen or in my case a triple screen and once you
have experienced the joys of Jewel screening you will never go back again.
I promise you and this is probably the cheapest way of giving it a going.
You can reuse your existing hardware basically and it's just an amazing experience.
It's a really good app and I really really recommend it.
The next one is Alfred and many you guys especially if Im watching if you've been watching my Cheetos
for a long time you would have noticed that I use Alfred pretty much religiously and a lot of you ask
me why not just use Spotlight.
It does the same thing right.
It doesn't.
It really doesn't.
It's first the much much faster indexing because it's selective indexing and it doesn't go through your
entire Mac.
And the other thing is that it tends to pull up more relevant results.
You have queries that you can put in there like find which opens the folder or open which opens a particular
file that you have but give it a go and you will never look back.
I promise you as well.
The next one is momentos so you might have seen it again in my videos.
It's a chrome plug in that I have which shows a new beautiful image of somewhere in the world that I
should probably be traveling to.
Every time you open a new tab but it also has a To Do List Bilton has the weather the time and allows
you to focus on one particular task for the day which I find really helpful.
So it's a free plug in just you know try it give it a go and see if you like it.
And the last thing I wanted to and the last thing I'm going to talk about is something called a cheat
sheet which is this amazing piece of software that gives you a cheat sheet of all the shortcuts in which
ever application you are in.
So if you hold down the command button it will just show you a list of cheat sheets wherever you are.
And it's really really cool.
Now the last one I'm going to talk about is not really a good tool but it's just something I found in
product that I thought was hilarious.
It's called canned e-mails and it has canned breakup e-mails it has emails to clients.
I've never yet sent one of these because I'm just too scared that somebody else has seen this Web site
but it's pretty hilarious and I recommend you checking it out.
So the sun is starting to go down around here and I'm probably going to go and grab something to eat
because I haven't eaten for a whole two hours now.
But I hope you guys had fun with me in Nairobi in this episode of ask Angela anything and if you have
any questions for the next episode then be sure to leave it below.
This video on or on one of the new announcements that I make on a regular basis so I have you guys are
having a great time where ever you are and that's all from me.
I'll see you next time.
Joe.