Coding 101 64 (Transcript)
Net casts
you love from people you trust. This is Twit. Bandwidth for Coding 101 is
provided by Cachefly.com
Father Robert Ballecer: This
episode of Coding 101 is brought to you by Harry’s. For guys who want a great shaving
experience for a fraction of what you’re paying now go to harrys.com. Get $5
off your 1st purchase by entering the code c101 when you check out.
Today on Coding 101 it’s a wild card episode with Todd Perkins. Plus a super special guest announcement.
Hello and
welcome to coding 101! It’s the Twit show where we let you into the wonderful
world of the Code Warrior/Code Monkey. I’m Father Robert Ballecer and joining
me today in studio is our very own Lou Maresca. Lou thank you
very much for coming up.
Lou Maresca: Thanks
for having me. I appreciate it.
Fr. Robert: Now we
get to say something super special. We normally call you our super special
guest co-host. We’ve been doing that for what, 2 months now?
Lou: Yes.
Fr. Robert: But
there have been a few movements here at Twit and we wanted to keep the magic
going so we could make the announcement that Lou Maresca is becoming the
official co-host of Coding 101. Congratulations.
Lou: Thank you. I’m super excited.
Fr. Robert: You do
realize now that this means you have to do all the work?
Lou: I know.
Fr. Robert: Enjoy.
We are incredibly happy to have Lou on board. It’s nice to have someone who’s
actively engaged in programming to be part of the show. Lou has been with us
since before episode 1. He was actually part of our beta episode. He was our
first Code Warrior. You’ve come back…in fact you’ve probably been on at least
40% of the episodes of the show. You are no stranger to our audience.
Lou: Definitely not.
Fr. Robert: Well Lou
let’s go ahead and jump right in as we normally do with a little bit of news.
Now this first one I think you are uniquely suited to help us figure out what’s
going on. In the new version of C Sharp – that’s C Sharp 6.0 they’ve added a
new no propagation operator which is just a question mark. Tell me, why did
they do that, what does it do and is it something you’re going to use?
Lou: So they actually have multiple
names for it. 1 is called a no conditional operator, they have many different
names. Basically if you’ve ever written a piece of software, especially around
objects or classes you have to do a lot of no checking. 1 thing is if you don’t
actually create an instance of an object and then you try to use some of the properties
in that object it will fail and say no and you’ll get a no reference exception.
So this little tiny question mark has the ability to do that automatically. So
what it’ll do is it’ll do a no check and then it will actually turn no rather
than exception if it’s actually no. So like for instance if I don’t create an
instance of a person object and try to access their age or height it will fail
and say no reference but what this little operator will do is it will say
instead of throwing an exception it will return a no. This way I can do a no
check and say ok it returned a no, I should probably create an instance of it
before I access it.
Fr. Robert: Ok now
Lou it sounds interesting and it’s a good idea. It’s definitely something that
people are going to be doing all the time so that’s good but I will also hear
people saying that this is just sprinkling sugar. This is one of those things
that yes it comes in handy but if you get too used to having it in a particular
language then you kind of forget how things actually work when you program in a
different language. What’s your take, is this just
sugar or is this something that will stay for the long haul?
Lou: It’s a nice thing to have
because it doesn’t blow your code. So what you’ll notice is as you’re coding
with big, big, pieces of software you do tons of no checks all over the place
and some people forget to do it and then you have big problems. You’ll see a
lot of if statements, if “if” is no then do this, if not no then do that. So
this operator will reduce the code size, the code blow. But another thing is
there are some problems with it too, you could forget that you are doing it
which means that…also if you’re using it against value types; like for instance
integers or doubles or any of these value types, if you use it it’s what they
call boxing it into an object which creates more and more memory blow in your
application in order to return what they call a knowable type. So this way you
can return an int knowable version of that type. So the key to that is it’s
bloating your software, it’s blowing the memory for your software. That also
increases the lifetime of the object and there’s lots of other problems.
Another thing is you can also have multiple inline properties, for instance
let’s say I had a property called extremities on a person object and also 1 of
the properties on an extremity is the legs or the arms and I wanted to access
those so it’s an inline sub-property. Those sub-properties… you might have a
bunch of question marks in line all the way down and then you don’t really know
which ones of those are actually no so you’ll just return no and you’ll say ok
which one was no? I don’t know so you get confused. There’s a lot of bad things that can happen but as long as you’re paying attention to
what you’re doing you should be ok. Really the main thing is just to reduce the
code size.
Fr. Robert: Before
the question mark, before they actually gave us a dedicated operator for this
how would you check for that statement?
Lou: You would just do an “if”
statement and then you would do the object and then the dot and the property.
So let’s say person, object, dot, height and then you say equal, equal, no?
That’s the way you check to see if it’s no. If it is then you do something,
let’s say you create an instance of it, new height object or if it’s not equal
to no then I can go and access the height and do something with that height
information. So that’s usually the main pattern to check to see if it isn’t no
and then go and get the value from it.
Fr. Robert: It’s a
little bit sugary but at the same time you should be doing this every single
time you should be checking to see if a value is no before you work on it. So
good, bad, what’s your take?
Lou: I think it’ll be a good
pattern to follow if as I said you don’t over use it. Any time you over use
something it gets confusing for the person actually reading the code. And
somebody who’s debugging into the code that’s another thing. If you see
multiple in lines of these question marks you don’t really understand which
ones are returning no. So sometimes it gets confusing but if you have 1 level
deep of an object and its properties then I’d say it’s ok to use it and go
ahead and do it.
Fr. Robert: Or as
Bleep-Blurp in the chat room says; what are your
intentions with my variable Sir?
Lou: That’s right, that’s basically
what we’re talking about.
Fr. Robert: Alright
let’s go ahead and move on to something else. This came out of last week’s
episode. We talked a little bit about Docker, specifically that Microsoft was taking a new approach to Docker. They’re
wrapping it into their virtualization solution. So you can go between Hyper and
Docker without really thinking about it. But we had a bunch of people write in,
probably 2 dozen people either in email or in Twitter or in the G Plus group
who actually wanted to know a little bit more about Docker. They hadn’t heard
about Docker, they hadn’t used Docker and sometimes I forget that not everyone
is keeping up on the latest and the greatest from the Data Center. So I thought
maybe we could just have a little chit-chat about what Docker is and what it’s
not because 1 of the things that people were propagating on the group was “oh
it’s just virtualization. It’s just VM, we’ve done VMs. We both know it’s not.
Docker is very much not a VM. They kind of function the same way in that you
can package something but the difference between a Docker - a container, and a
VM is that a VM contains a full operating system. You spin it up, it is a
virtual machine. It’s just as if you had bare metal you were running an
operating system on and then you run services on top of that. Whereas a container is super lightweight. It strips away all
that OS stuff, all that abstraction. You can’t run it on bare metal, basically anything that’s running Linux should with
the right hooks be able to support a container. So they do the same thing kind
of but definitely not the same. Right, that’s my take.
Lou: Yes. What people forget is
that Docker is more of a tool kit, it’s a way for you
to create a distribution engine for your VM. For instance if you create an
instance of Linux and you want to have other people contribute to that, Docker
is the way to do that. It lets you kind of add to the operating system, add an
application and then commit that change to Docker and then people who spin up
the VM later will actually see the change, whatever you may have added or some
other application that you wanted on there. That’s kind of the key, it’s a distribution engine more.
Fr. Robert: Esol in the chat room brings up a very good point and this
is kernel talk but VM essentially what you’re doing is you’re splitting the
hardware. You’re going down to the bare metal whereas with Docker you’re
actually splitting the kernel. But it splits the kernel in a way that you can
have completely self-sufficient, self-contained independent containers. They
don’t have to have anything to do with each other unless you actually want them
to, unless you want the services to communicate with one another. Some of the
things that I’ve learned about Docker because it is fantastically efficient and
it is fantastically effective and mobile; I can take a Docker container that
I’ve written and run it on my Sinology Nas and I can also run it… We’ve got a
list of some of the different services that it’ll work on. It will work on
Amazon Web Services, it will work on Microsoft Azure, it will work on Google Cloud Platform, Open Stack Nova, and Open SVC – Salt
Vagrant Chef and about a dozen others. So that ability to sort of write it once
and basically push it private, public, Cloud, premise or whatever it’s going to
be it’s a powerful very attractive way. But it’s also light weight. It’s very
light weight, very portable and very highly distributable.
Lou: It’s funny because even the
syntax around it, committing things to it is very similar if you’ve ever used Git before for your code repository where you’re committing
and pulling things down and pushing things up, the Docker engine and its tool
kit is very similar to that so you can push changes to a VM through Docker
using that push and pull and pull the changes down and push the changes up. So
it is kind of neat and that’s really where the power of Docker comes in as
well.
Fr. Robert: The
reason we bring this up is we will be doing a few projects and a few modules in
the very near future where you can write your apps as a container which
actually really eases how you deploy them. In fact we’re going to be bringing…I
can’t talk about that. I just realized that. We may be bringing in a sponsor
that specializes in you taking services and spinning them up.
Lou: I think that sounds good to
me.
Fr. Robert: That’s
all I can say.
Lou: I’ll go with that.
Fr. Robert: Now when
we come back we’re going to speak with Todd Perkins. He’s a self-taught
programmer. A master of iOS. We want to bring him back, we want to bring him in to the Coding 101 family
because we know we’ve been a little remiss in iOS. We’re 60 plus episodes and
we haven’t done anything for iOS.
Lou: Yes I love iOS, I want to get into it deep.
Fr. Robert: We’re
going to go there for you but before we go there I thought it might be a good
time to talk about the sponsor for this episode of Coding 101 and it’s Harry’s. Now Lou let me ask you; how do you shave? Do
you have an electric razor, do you like the steel?
Lou: I’ve tried all types. My hair
grows so fast that I’ve tried the electric, I’ve tried everything.
Fr. Robert: This is
like 3 weeks of growth for me. Not so fast for me but fast for you.
Lou: Yes very.
Fr. Robert: But it’s
funny because the very 1st shaver I ever got was electric and I
thought it was great. But then when I started shaving, actually shaving I kind of liked that feel. It’s not just something you do.
It’s kind of something you experience.
Lou: Right.
Fr. Robert: The
problem is I’ve at least found is that the experience gets marred by what I
have to do to shave. My love, my personal favorite is going to a super market
and seeing all the blades locked away behind some gate because they’re made out
of gold. Some kind of uranium or something. You get
treated like a criminal. Well folks you don’t have to do that if you’ve got
Harry’s. Now Zack is going to show you what a Harry’s kit looks like. It is a
premium piece of kit. It allows you to have a smooth shaving experience again
and again and again. Now let’s admit it, shaving can’t be fun unless of course
you make it fun, unless of course you make it part of the experience and that’s
what Harry’s is all about. They give you the tools, the lotions, the cream to
make it not just something you do for personal hygiene but something that you do
for personal health. I don’t want to spend hundreds on razors and bother going
to the store so I use Harry’s to get all of my supplies delivered to my door.
They give us high quality razors at about half the prize of those big brand
blades. Now they make all their own razors in their own factory in Germany.
They engineer them for sharpness and high performance. Harry’s ships them for
free to your front door and because they make and ship their own blades Harry’s
is a more efficient company which translates into factory direct pricing.
Harry’s guarantees your satisfaction. In each kit you get a razor with a handle
that looks and feels great, 3 razor blades and foaming shave gel. The starter
kit, the Truman is an amazing deal and you get all of it for just $15. I’ve
been using Harry’s for a while now. It gives me a clean, close and comfortable
shave and I love the look and the feel of the set. I’ve got to tell you I also
love the price. Harry’s costs half as much as the razors at the store like
Gillette or Fusion and they also have a new after shave moisturizer that
protects and hydrates my skin. Here’s what we want you to do. We want you to
turn shaving into an experience. Go to Harrys.com and get $5 off your purchase
with the code c101. That’s Harrys.com and enter the code c101 at checkout. That’s right, Harry’s for a close shave and we thank
Harry’s for their support of Coding 101.
We now
welcome to the show a man I’ve been wanting to talk to
for a while. Mr Todd Perkins. Todd
thank you very much for being on Coding 101.
Todd Perkins: Hello.
Lou: Welcome.
Fr. Robert: Todd,
it’s interesting because if someone were to look at the work, the corpus of
your work online they… I think they would notice 2 things. First is that you
are very heavily invested into iOS. That’s your ballywood, that’s your
expertise. The second is you are a self-proclaimed, self-taught programmer.
Todd: Yes.
Fr. Robert: Tell me
a little bit about that. Tell me why did you get into computers and computer
science?
Todd: Well if you want the long
story… I guess it’s not that long. When I was a kid in elementary school my dad
was a programmer and he used to give me logic puzzle books and he taught me an
appreciation for math. Fast forward to about 10 years I was in a punk rock band
and I was into cartoons and I got a hold of Flash and my brother who was also
in the band asked me to do our website with Flash and so I learned really basic
kind of build in Flash programming with Flash 5 and then from there I got a job
doing graphic design, mostly Photo Shop work. Then I got asked to teach Flash
and in teaching Flash they asked me to teach Action Script and so I had to
learn Action Script. Then I got a job with Lynda.com and that’s pretty much the
whole story.
Fr. Robert: Now Todd
I have to say this is definitely the first origin story for programming that
we’ve ever heard that involved the words punk rock. That seems a little
different. That’s definitely in your favor. That’s a unique set of qualities
there. Let me ask you. You seem to be speaking from a different generation of
programmers because you started with something that’s very visual. Flash is
very UI oriented, you designed a UI, you make it beautiful where as my old
programmers, old fart programmers typically started with you do functionality
first and then the UI is something you staple on at the end. Tell me a little
bit about that, tell me about growing up with Flash.
Todd: Well I was just always into
cartoons and everything. I didn’t think of myself as a mathematical guy. I
thought of myself as a creative guy. I always wanted to make cartoons and be
like a comic artist and stuff so I got really into just creating stupid
animations with Flash. I was also into video games and so it felt like Flash was just a natural progression from going to cartoony
stuff and to making it interactive and everything. So that’s kind of what
propelled me into programming; a desire to convert my animations into simple
games and stuff.
Lou: So Todd since you’ve kind of
learned yourself and you’re kind of self-taught how did you learn your craft?
What language did you start with and over the years how did you learn different
languages and so on.
Todd: I started with Action Script
which is the language that’s used in Flash and this was maybe 15 years ago or
so and from there I got a job teaching Flash and then the same people wanted me
to teach Dream Weaver. It was kind of an Adobe product type of thing. So I
would teach Dream Weaver and I had to be an expert in HTML and CSS and Java Script
etc. That’s how I got into those web languages. When I started working for
Lynda.com they had me do a lot of Flash stuff and kind of like I do iOS now I
did Flash back then. This was about 6 years ago. I
would do all Flash stuff and then they had me start breaking out into Java and
then really into iOS mostly.
Fr. Robert: You’ve
really made your living in the web languages. That’s your bread and butter,
that’s where you were formed and that’s where your skill set really lies.
Todd: Yes that’s where my background
really is. I spent the last 3-4 years mostly doing iOS but until then it was
mostly web languages, pretty much all web languages.
Fr. Robert: I do
have to ask because with such a background in Flash and Action Script iOS
doesn’t seem so natural of a transition especially with what happened between
iOS and Flash. What pushed you in that direction? Web languages could pretty
much go anywhere but you have really – at least now, you’ve settled into the
iOS groove. Why from Flash to iOS?
Todd: I think what you said what
happened with Flash and iOS that’s kind of what pushed me into iOS. Since then
Flash has kind of become less popular and so there’s been less of a demand for
it and again I’ve always been interested in making games and in 2008 with the
introduction of the App Store and everybody’s making games and talking about
how easy it is to get into that in iOS I really wanted to learn how to do that.
So a desire to make games combined with a need for my work in teaching iOS
pushed me in that direction. So it seems weird but it was actually kind of
natural and there was a time there where Adobe had just introduced creating iOS
games using Flash and so that was kind of the gateway into making full-fledged
iOS Apps.
Fr. Robert: Ok so
we’ve got 2 people here who were actually programmers during the whole Flash…
I’m not going to call it debacle but… where you had, it was a very strange time. This was not that long ago that
browsers all supposed Flash, all the Multi Media stuff was out in Flash.
People thought that’s what you need if you want rich content but you had a
cadre of elite programmers, especially people who were doing iOS who were
saying Flash is a hog. Flash is horrible, Flash will kill your grandmother.
Todd let me start with you. Where were you? Here you are, you grew up with
Flash and now you’re hearing if you want to continue in iOS you’ve got to stick
this dagger into the heart of Flash.
Todd: It was weird. I actually was
making a living off of Flash at the time pretty much exclusively so I would teach
Flash in my video trainings, I’ve written a few books in Flash. I had just
published a Flash Bible and then as Flash is kind of dying out I guess we could
say we come up with this revelation where people are just realizing that Flash
is a hog like you said. Since then it has kind of been dying out and so yes it
was a weird transition but I think as a programmer you have to adapt or you
don’t survive and I chose to adapt.
Fr. Robert: Lou let
me ask you that. We now know that Flash was a hog and yes at the time, at the
moment it happened I was like oh stupid Apple, come on, everything is Flash.
Why wouldn’t I want Flash, give me at least the option
to have Flash and then eventually even Android went in the same direction. Why
did we put up with it so long or was it just there was no other option?
Lou: I think it was just the age of
virtual machines. The Silverlight came out, Java had
its virtual machine so a lot of Java programming would be before Flash. I think
that was kind of the age they thought oh well if we can build a whole bunch of
add-ons to the browser where the browsers fall short that’s kind of the key. So
I think that was where that was at the time. Apple was kind of brave because
Flash was so big they said you know what, we want raw native power and we’re
not going to add onto the browser. We want raw native power. We want people to
be able to build native apps for our platform so that’s what they did.
Fr. Robert: Both of
you, you remember this. We’re going to go off the rails for just a second. We’re
getting the geek nostalgia. When all of this was happening what I found
fascinating was all these old wounds got opened up because people started
talking about yes that’s right, that’s what you get Adobe for not doing such
and such for the Mac way back when. It was hilarious because the drama was
playing out as if this is Apple being malicious to someone that they felt
wronged them decades ago; where the programmers I know
were saying no, we got to do this. There’s not as much power on my mobile
device as my lap top, I can’t afford to have 100% usage to play an add. Did you experience that Todd? When did you make the
transition and say ok I’m going to ditch Flash because I do want to do iOS.
Todd: It was really after kind of
around the time that Adobe started releasing the error stuff and they started
to get into desktop publishing and making iOS stuff. It really just felt like –
I just got the vibe that Flash was dying out and I would see it used less and
less on the web and iOS was growing in popularity or at the time it was growing
a lot. It was right around that time and it just seemed like Flash was just
trying to do too much and it didn’t really have an identity.
Fr. Robert: You bet
on the right horse. That feels good right?
Todd: Yes it does.
Fr. Robert: Because
I know some people who stayed with Flash to the bitter end and even now they’re
only starting to give up which is sad. Let me ask you about this. This is the
discussion that we’ve had on this show every once in a while where we talk
about programmer versus coders and it’s a very specific question that exists
basically only in Coding 101. We’ve heard from a couple of people that anyone
who will put in the work can become a coder. You can figure out syntax and you
can figure out what goes where and you can copy examples and you know how to
solve certain problems because you’ve seen them before and you know what kind
of logic tree you need in order to solve the problem. But then there’s another
type of person and that’s the programmer. The programmer actually comes up with
innovative thought, can do things that the coder can’t do and has abilities
that you can’t teach, they just kind of happen. They’ve got that passion for
problem solving. Where would you stand on that?
Todd: On the existence of the idea
or what kind of programmer am I?
Fr. Robert: No, this
is the first day. We’re not going to go there but what I mean is do you think
there is that separation? Do you see it? Because you’ve
taught a lot. Do you see people who just, they pick it up and then they
exceed you, they go past what you taught them and some
people who can only do what they’ve been taught.
Todd: Yes, definitely. I think there
is like you were saying the coder – kind of the robotic or mathematical kind of
brain kind of thinking, just doing the work and the programmer requires a more
creative brain. I think that can be taught I think if somebody wants to become
that kind of developer then it’s definitely possible but I think it does
require the passion and it requires caring about building something cool.
Fr. Robert: Describe
something that you built that you thought was cool and tell me about the
process that went into it. So like from the time that you came up with the idea
to figuring out what actually needs to go into it, the resources that you have
to gather and then final execution. What does it look like when you’re
developing?
Todd: Well the 1st thing
that came to mind when you were saying that is just a game that I built and 1
of the more recent ones I built. It’s called 8 bit baseball and I had a team
and we decided to go with a pixel art style, kind of a retro feel and there is
something exciting about writing code when you’re working on a team and you’re
all building something together. With the games that we make I kind of get to
be the leader of the team – the Leonardo of the Ninja Turtles if you will.
Planning out how all the game play elements are going to work and writing the
code and kind of guiding our artists along the way and everything. It’s
awesome. It’s a really cool experience and it feels more like creating art than
it does robotically creating a machine or something like that.
Lou: Todd when you teach what do
you look for in your students? What impresses you, what’s something that could
really change your mind about a student when they start working?
Todd: I like people who just come in
with a desire to learn new stuff and who don’t have the chip on their shoulder
of feeling like they already know everything and can’t learn anything new. I’ve
ran into people all across the spectrum in teaching at different places and
different people and everything and those people that are just humble enough to
accept that they don’t know everything, those people are awesome to teach.
Fr. Robert: You must
run into it because this is your industry. You must run into the old grizzled
battle scarred command line programmers who did something way back when and now
they’re trying to learn something that’s a bit more visual, a bit more
oriented. What’s the most difficult thing, and this is an expansion on Lou’s
question. What’s the most difficult thing to get them to understand?
Todd: I think it’s difficult to get
people to understand that they just don’t know everything. I’ve had kind of
arguments when I’ve been teaching which is super awkward because I’m teaching a
public class and one of the students kind of wants to pick a verbal fight with
me and disagree on something and say well that’s not how we do it in this
language.
Fr. Robert: Ok I’m
going to go off the rails here. Pick your favorite fight. I so want to hear
this because I’ve had this happen to me before. What’s a fight that someone
just dug their heels in on saying no you’re wrong, that’s not how you do it,
this is the way you do it.
Todd: Really the guy wasn’t wrong,
it was just he wouldn’t accept that I was doing it in an appropriate way I
guess you could say. But this is the one that sticks out. I was showing how to
add interactivity for a button in Flash and Action Script and I was saying this
is the code that you write, you set the on release property to a function and
he was like why don’t you just overwrite it in the sub class? I was like that’s
pretty much what we’re doing right here. With Action Script in Flash you’re not
always looking at the super class and he was really adamant that we needed to
overwrite it in the sub class and just wouldn’t accept that that’s what I was
doing. I just politely said ok we’re good, we’re going to move on but he seemed
pretty bothered like I didn’t know what I was talking about.
Fr. Robert: You run
into that, that’s a problem. I can imagine that happening around the table
every day.
Lou: Sometimes it’s a religious
thing though and people just do different things in different ways. Like for me
I like to put in line comments versus comments above the line and people kind
of blow up about that and say oh you’re adding more code to the line. There’s lots of little tiny things as small as that and even
as big as like you’re saying – over riding functionality. You’re going to have
those wars all the time, especially with the people who know what they’re
doing.
Fr. Robert: By the
way Todd I’d just like you to know that in the chat room you’ve sparked the
mindless code monkey fight… so congratulation.
Todd: Yay!
Fr. Robert: Well
done Sir, well done.
Lou: Todd I actually noticed that
you’ve… I did a little bit of recognizance on your background, your history and
I notice you kind of gravitated more towards game development. Why do you think
you’ve done that?
Todd: I’ve always liked games since the
80’s. You know the Mega Man 2’s and etcetera. I still play games today and am
super passionate about gaming and I just want to be able to make, eventually
something really cool that has an impact on a huge amount of people.
Lou: Do you think you grab more
people when you build games of all ages or just a certain age set?
Todd: I think the best thing to do
is just build something that you love and that you’d want to play. For me
sometimes I want to play the really mature games and sometimes I want to play
the Fart App games… you know the really immature goofy stuff. I think both can
be very rewarding as long as you approach the right audience and don’t try to
mix things that shouldn’t be mixed.
Fr. Robert: Todd I
want to get your thoughts on this. I was at a developers conference probably
about 4 months ago and I was listening to this female programmer speak and she
was saying especially in the visual age where everything GUI first – everything
has become a game. If you’re doing an app right, if you’re doing any program
right there has to be game elements, in other words there has to be rewards for
certain actions. They have to be able to notice that something good has
happened. This was her long winded way to say that everyone needs at least a
little bit of game development in them. You have to understand how to get
people to continue to participate with the process that you set down before
them. The example she gave was perfect. It was an Indy game – Super Meat Boy.
Lou: I love that game.
Fr. Robert: I love that
game, it’s so much fun but she explained how there are no instructions what so
ever. There’s no tutorial, there’s no manual that comes with the game. It’s
just that in the first 5 minutes of picking up this game because you will
naturally try to do certain things you will learn all the controls very
quickly. She said that’s how I try to design my apps even when they’re not
games. Is that something that you’re starting to see in people who are making
apps?
Todd: Yes definitely. I think it’s a
legitimate approach. I personally need that if I’m going to use an exercise app
– some kind of mental reward, a mental cookie if you will for running or eating
right or something like that. I love that idea and I think it’s… Maybe it’s not
necessary but if you want your app to be successful and you want people to get
addicted to it then you want to have those addictive qualities that games can
have.
Fr. Robert: Right.
Todd let me ask you this. We do want to invite you back to be a code warrior.
We haven’t done anything for iOS. Of course we’re going to want you to come in
actually show our audience how to start developing for iOS but before we get to
that because that’ll take a while; what are some of the nuggets of knowledge
that you can offer because obviously you’ve been in this game for a long time
and you’ve made that transition into iOS, you’ve consciously decided that you
want to develop for that platform. What are some of the things that you think
people can avoid, like first mistakes that they can avoid and then some things
that they should do as they prepare themselves to actually program for iOS. In
other words what kind of knowledge can you give to our audience?
Todd: As far as mistakes that you
can avoid, that’s a hard one. Coming into iOS for me I tried to think of it
kind of like Java or Action Script and it’s really not like that. What I would
do honestly right now is – you’ve heard Apple talk about Swift if you watched
WWDC last year. I would hold off on Swift. If you’re going to get into iOS I
would start with objective C and the reason for that is not majorly but Apple
changes Swift every couple of months and it’s to the point where when I record
a course I have to go back and change almost the entire thing because of code
that Apple has added. 1 of those things is kind of like the question marks that
you guys were talking about earlier with checking for no and everything. They
had that in Swift but they change it every couple of months how they’re going
to implement it. So I would say Swift feels like a beta language right now. So
if you’re going to learn iOS start with objective C definitely. Maybe Swift
will be in a few months after the next WWDC, maybe it’ll be ready for prime
time. For right now I’d stick with objective C. That’s the first thing. That’s
really mostly what I have for specific iOS but if you want general programming
tips I can give those as well. So if you’d like to hear those.
Fr. Robert: Yes
please.
Todd: I think of a story, there was
a guy that emailed me a year ago and I don’t get these all the time. I get
these like once every 5 years or something but this guy wrote me an email and
he told me that I changed his life. He was like your tutorials have been so
awesome and helped me out and he ended up not knowing programming at all and he
went to getting a job as a programmer and becoming a senior developer just over
the course of a year or 2. So I think if you’re new getting into programming
understand that it’s not too late for a career change because this guy did it
and for me personally I went from knowing no programming what so ever to
writing a book on programming in just a couple of years. So I give that advice,
definitely learn how to use Google. If you have a problem somebody else has had
that problem before so look it up. I imagine you guys have probably talked
about this a lot in this pod cast but that’s a big one for me is using Google
and just don’t stop learning because you never know when your language can
become irrelevant and if I wouldn’t have continued to pursue other languages
then I would be out with the dinosaurs with Flash.
Lou: Super good advice. So we
talked a little bit about iOS and how you said Swift is kind of a beta language.
Do you find that even switching between the different versions can sometimes
require you to transition? Does your knowledge transition or do you have to
learn a lot of new things even when developing for iOS?
Todd: In the versions of iOS it stays
pretty much the same. Obviously there’s going to be new APIs and that kind of
stuff but usually the bread and butter is not much different. Occasionally a
method call will have a new name or it’ll create an object in a slightly
different way but usually that’s insignificant and pretty easily handled.
Fr. Robert: Todd I
do want to take a little time to talk about Lynda because Lynda is where you
now live, that’s where your work goes, that’s where your lessons can be found
and “full disclaimer”, hopefully everyone who watches this show knows Lynda is
sometimes an advertiser on Coding 101. They are not this episode. We just
wanted Todd on and he happens to work for Lynda. Could you tell us a little bit
about the philosophy that goes into taking your lessons and turning them into
something online? Because I’ve taught in person and it can be daunting to try
to turn that into an online lesson where you think everyone is going to be able
to follow along with what you’re saying without actual interactivity.
Todd: Yes, I think it’s a little bit
– might be like for you like doing a podcast, you just imagine that there’s people there listening to you when they aren’t.
That’s what I do too. So yes it’s definitely different. If I’m teaching a class
I can make jokes, I can use my body language and pretend to be a robot or
something like that which I know sounds ridiculous right now but in context it
totally works and it’s a useful teaching tool. You don’t get that same feedback
and in a class when somebody has a question you can pivot and focus on that.
Maybe you’ve missed needs for the whole class and you forgot to and you can
adjust when somebody asks a question in class. Whereas when I’m talking to my
computer all alone I have to anticipate what questions people might have and
answer them without them ever being asked. It’s definitely more difficult but
it’s also fun too. It’s a challenge.
Fr. Robert: Absolutely. Todd Perkins, he is a self-taught programmer, a guru of iOS. We do
want to thank you for being on this episode of Coding 101. We are going to have
you back. If you agree we definitely want to have you back to be the code
warrior in an actual programming module on the show. Would you be interested in
an invite.
Todd: Definitely yes.
Fr. Robert: I think
our audience has been clamoring for a while. Now the funny part is, the message
that we’ve been getting is that they want us to teach Swift and Lou and
yourself have both told me not yet. So this is good.
Todd: You can learn Swift but just
know that it is going to change.
Lou: It is a great language too.
It’s actually really well…
Todd: Yes I love it, I love Swift.
It’s just not going to be the same in a few months from now.
Fr. Robert: Let the
other guy program in Swift and you come in in a year when everything is settled
and fully baked and you’ll be much happier. But we’ll bring you in for
Objective C because our folks do want to start programming for iOS. Even if
you’re not an iOS user it’s a good skill to have and let’s be honest it’s where
the money is. Ok I’m being perfectly honest right now right?
Lou: Yes.
Fr. Robert: I mean
Lou should I be programming for Windows?
Lou: No. There’s a lot of things free on Windows though.
Fr. Robert: That’s
true. I’m sorry Todd, could you please tell us where people can find you. Of
course they’re going to find out on Lynda. So I could give my standard pitch,
they’ll find your courses step by step, they’ll be able to find transcripts,
they’ll find your videos. If they’re interested they should at least go check
them out but where else can they find Todd Perkins?
Todd: You can find me AskTodd on Twitter.
Fr. Robert: There we
go. Todd Perkins, he will be our future code warrior. For now he is our code
guru and Sir, we salute you. Folks we know that this was a lot. This was a wild
card episode. Remember we’re sort of cleansing the pot. We did a little bit of
programming and then we bring in people that we’re interested in. We’re going
to try and do this often. We want to show you people who actually have
experience in the field that you’re trying to get into. That’s pretty much what
Coding 101 is all about. But we do have a super special module coming up for
you. We will be talking about Ruby and Ruby on Rails so if you do want to start
getting into web programming, visual side of programming as Todd started off
with you’re going to want to stick around. Now again in case you weren’t here
for the start of the show we did have that super special guest co-host
announcement that Lou will no longer be the super special guest co-host. He is
the official co-host of Coding 101 and seriously Lou it’s about freaking time.
You’ve been on this show so often.
Lou: I don’t want to get rid of my
title though. I really like that super special guest co-host…
Fr. Robert: It won’t
fit in your lower 3rd; actually that’s the real reason why we asked
Lou to come on because we can’t put it…it’s expensive to have all that spaced
used up in the tri-caster. But where can people find you?
Lou: You can always find me on
Twitter. LouMM as well as all my daily work at Microsoft www.crm.dynamics.com
Fr. Robert: Don’t
forget that you can find all of our back episodes on our show page. Just go to
twit.tv/coding101 or /code, it all goes to the same place. You’ll find previous
episodes, previous modules if you want to catch up on C or C sharp or PHP or
maybe you want to look at the episodes that we did for Python. You can find it
all there, just download it. We make it easy for you to get; along with links
for code. Now we’ve been having a lot of issues the last couple of weeks. I’m
not sure why the code is not going up. It’s probably because I programed that
part of the site and I think I broke it. I’m going to fix it. While Lou’s here
I’m going to fix it so you can make sure that you can get all the code so you
can follow along with the assets. Also don’t forget that you can follow me on
Twitter. Go to twitter.com/padresj. That’s @padresj. If you go there you’ll find
out what we’re going to be doing before each episode of Coding 101 as well as
being able to suggest guests and topics for future episodes of Coding 101.
Don’t forget that we do the show live every Monday at 2:30 PM Pacific time. You
can go to live.twit.tv and find out what we do pre-show, post-show, what
happens during the show, what gets cut out of the final version and as long as
you’re watching live please jump into the Twit TV chatroom at irc.twit.tv. We
like to read your comments, we like to hear your questions, we like to relay
them across to our guests and we can’t do that unless you join us. Until the
next time I’m Father Robert Ballecer.
Lou: I’m Lou Maresca.
Fr. Robert: And our
TD is Zach – Eskimo Zach and this has been Coding 101. End of line!