PodSearch

Under the Radar

Under the Radar 6: How to Become a Programmer

 

00:00:00   welcome to under the radar a show about

00:00:02   independent iOS development I'm Marco

00:00:04   Arment and I'm David Smith under the

00:00:06   radar is never longer than 30 minutes so

00:00:08   let's get started so today as a little

00:00:11   bit of a tie-in to the hour of code sort

00:00:15   of I don't know what you call a

00:00:16   organization program that sort of being

00:00:19   celebrated this week about trying to get

00:00:20   people into programming we thought it

00:00:23   would be kind of an interesting episode

00:00:25   to talk about our origin stories as

00:00:29   developers where we learned how to wear

00:00:31   how we learn to program both originally

00:00:34   back whenever that was

00:00:35   and then probably also more specifically

00:00:37   on Apple's platforms on iOS and the like

00:00:41   because it's a question that I get more

00:00:44   often than I know if so fairly

00:00:46   consistently I'll get a question from

00:00:47   somebody who says I see that you're a

00:00:50   developer I like your work how did you

00:00:52   get there how would I you know where

00:00:54   should I start and it's you know I get

00:00:57   enough of those that I wanted to be

00:00:58   interesting place it for us to just to

00:01:00   talk about it and hopefully make it a

00:01:02   little bit more accessible for you know

00:01:05   coding isn't necessarily this big scary

00:01:07   thing that you have to get into I've

00:01:09   actually been working with my kids who

00:01:11   are four and six years old on basic

00:01:14   programming concepts and so it doesn't

00:01:16   have to be particularly scary and so but

00:01:19   it's something that it's you know I

00:01:20   think you don't know where to start it

00:01:21   can be kind of overwhelming and so if

00:01:23   you know we can't tell you where you

00:01:25   should start but this is where we

00:01:26   started so Marco where did you first

00:01:29   learn to program so I was soon as I

00:01:32   learned of just the concept of

00:01:34   programming and I don't I don't remember

00:01:35   that when this was what I was always

00:01:37   very into technology and computers even

00:01:40   before I had a computer and I didn't get

00:01:43   a computer until the sixth grade so I

00:01:45   don't know what a excited is maybe

00:01:46   they're 12 13 something like that yeah

00:01:49   and so before that I I would only have

00:01:53   experience with friends computers

00:01:54   occasionally Lucchino you get for like

00:01:56   two seconds and you want to play a game

00:01:57   and you know occasionally computers at

00:02:00   school but I went to a pretty poor

00:02:01   elementary school that that only had one

00:02:04   room that had a computers in it and it

00:02:06   was old Apple twos and that had been

00:02:09   donated and you could not do much on

00:02:11   them except play Oregon Trail

00:02:13   so I I knew of programming though and I

00:02:15   would get books out of the library of

00:02:17   that like that were you know also

00:02:19   ancient donated books that were like how

00:02:22   to program in basic and I used to like

00:02:25   sketch out programs on paper that and

00:02:28   you know just like ten lines it didn't

00:02:30   do anything but I would like just write

00:02:32   down programs like I was trying so hard

00:02:34   to program and couldn't do it

00:02:36   I didn't have a computer eventually i I

00:02:38   got a computer and I didn't even know

00:02:40   how to program on the computer because I

00:02:43   got like a Windows 3.1 PC and I had it

00:02:46   for about a year I think before I ever

00:02:48   knew that it came with Q basic in the

00:02:52   DOS prompt area I had no idea good I

00:02:54   didn't I I wasn't an expert in computers

00:02:56   I didn't even know how to find such

00:02:57   things and and one day I had back when

00:03:01   they used to print source code in

00:03:02   children's magazines to be like he typed

00:03:05   this into your computer and you can you

00:03:07   know play a paper airplane game or

00:03:09   something they there was a source code

00:03:12   printout in I think it was three to one

00:03:14   contact magazine and they would do this

00:03:16   every month and won and I would just

00:03:19   look at that man someday I hope I can

00:03:20   try these but I had no idea how and in

00:03:22   one month it said they had like a little

00:03:24   like sidebar in that article that said

00:03:26   here's how to do this on a Mac do

00:03:28   whatever on a PC type in Q basic at the

00:03:31   prompt and I tried it and it I'm like oh

00:03:34   my god I have basic on my computer I've

00:03:38   had it all this time and from that point

00:03:42   forward I just I just started program I

00:03:44   just taught myself through occasional

00:03:46   ancient books in the library and mostly

00:03:49   just trying stuff and looking into the Q

00:03:51   basic help screens to like look up

00:03:53   functions that were available and how to

00:03:55   use them and stuff it basically went

00:03:57   from there eventually we we had a friend

00:04:00   of the family who was a programmer who

00:04:02   had like who eventually handed me down

00:04:05   what was comparably ancient at the time

00:04:07   Visual Basic 1.0 for Windows came on I

00:04:11   think to floppies it was two or three

00:04:12   floppy and you know he had long this was

00:04:15   like at the time when like 3.0 or for

00:04:17   print it was actually available so

00:04:19   version 1.0 was useless to a working

00:04:21   programmer at that point so he just gave

00:04:23   to me here to your kid you know try this

00:04:24   I installed that on Windows of

00:04:27   and learn visual basic and actually

00:04:30   those same visual basic 1.0 discs I I

00:04:33   took to upstate New York that somewhere

00:04:35   where my family went every summer on

00:04:37   vacation and I shared those discs with

00:04:40   Casey Liz and Casey was this this other

00:04:45   like you know young young teenager that

00:04:47   I would play with up there and waste

00:04:48   time with and his dad had had an IBM

00:04:51   ThinkPad and so we would waste time on

00:04:54   his dad's thing pad using Visual Basic

00:04:56   1.0 and that's how I met Casey Liz there

00:04:59   you go and now he's a programmer -

00:05:01   exactly so anyway it just kind of built

00:05:05   up from there I was really self-taught

00:05:07   in the in like you know most concepts

00:05:10   most fundamentals you know functions

00:05:12   control flow things like that basic GUI

00:05:16   construction through visual basic and it

00:05:19   wasn't well I didn't experience anything

00:05:21   like the low-level languages like C or

00:05:23   even web languages like PHP really until

00:05:26   college college kind of taught me see

00:05:28   like through the Couric through the

00:05:29   curriculum and make it a computer

00:05:30   science and then I kind of picked up PHP

00:05:33   on the side to do like you know kind of

00:05:34   fooling around on the web and really

00:05:36   just kind of became self-taught from

00:05:38   there like I learned I learned more and

00:05:41   more see through college and then my

00:05:43   first job after school was entirely

00:05:44   written in C so so I learned a lot more

00:05:47   C there and then I always was kind of

00:05:49   self-taught in web stuff and other stuff

00:05:53   and eventually got the job at tumblr and

00:05:54   became really had to become really good

00:05:55   at web stuff but so it's basically like

00:05:58   I basically started from scratch kind of

00:06:01   just like messing around as a middle

00:06:03   schooler I did it because I just kind of

00:06:07   had to it's one of those things like

00:06:09   like if you ask a writer like how did

00:06:11   you learn to write and I think a lot of

00:06:14   them would just say you know a I've been

00:06:16   writing a lot but be like I just kind of

00:06:18   have to write some people just have this

00:06:21   inherent drive to do the thing they do

00:06:22   and they just kind of have to do it

00:06:25   that's how I am with programming I just

00:06:27   have an inherent desire to do it because

00:06:30   programming and I was I tell people this

00:06:32   whenever they ask me like how to get

00:06:33   started or what it's like or whatever

00:06:35   programming is incredibly boring and

00:06:39   frustrating and

00:06:40   juice to most people and you have to

00:06:44   really love it and I do really love it

00:06:47   and when you really love it you see the

00:06:49   good side of it which is the incredible

00:06:52   feeling of joy and of pride when you

00:06:57   build something from scratch like you

00:06:58   create something out of nothing

00:07:00   using nothing but time and the thing

00:07:04   that you want to exist now exists and

00:07:06   that's an incredible feeling it's

00:07:09   incredibly satisfying it's incredibly

00:07:11   intellectually satisfying and I just I

00:07:14   cannot get enough of that feeling the

00:07:16   problem is that most programming actual

00:07:18   you know time spent is not doing things

00:07:21   that are that satisfying most of it is

00:07:22   like kind of you know grunt work or

00:07:25   debugging or you know just kind of

00:07:28   moving stuff around making making a

00:07:29   boring screen you don't feel like you

00:07:31   need to make any more like a login

00:07:32   screen code monkey reference but you

00:07:34   know it most of it it can be very

00:07:37   tedious so you have to love it enough

00:07:40   during those good times to get you

00:07:42   through the tedious times and the

00:07:43   frustrating times like if something's

00:07:45   breaking and you can't figure out why

00:07:46   and some people just have that internal

00:07:49   drive and I definitely do and I bet you

00:07:51   do but if you don't have that I can

00:07:54   imagine it would be pretty frustrating

00:07:56   because and the way you usually learn

00:07:58   leap the way I have learned and the way

00:08:01   I think most people I know have learned

00:08:02   you basically come to a point where you

00:08:04   want to achieve some some next thing in

00:08:07   your programming experience or

00:08:08   experiments you want to achieve

00:08:10   something you have no idea how so you

00:08:12   just kind of like try or maybe these

00:08:14   days you search the internet and you hit

00:08:16   a bunch of walls constantly and things

00:08:19   don't work things crash things break and

00:08:21   you kind of stumble through until you

00:08:23   figure out how it actually works and

00:08:25   then you do it and then it finally works

00:08:27   you know eventually but that the process

00:08:29   of stumbling through and figuring it out

00:08:30   can be pretty frustrating to a lot of

00:08:32   people so you you have to you have to

00:08:35   feel that payoff at the end that has to

00:08:37   really matter to you that has to really

00:08:39   resonate with you if it's if this is

00:08:41   gonna be the kind of thing that you do

00:08:42   and if that's the case that can usually

00:08:45   alone be the driver to push you through

00:08:47   the bad times and to really make you

00:08:49   keep coming back to this as an activity

00:08:51   yeah I think my my back

00:08:54   and started I think in in qbasic same as

00:08:57   you but I think we had a slightly like I

00:08:59   always growing up always had computers

00:09:01   around me like that was I I don't

00:09:04   exactly know how my dad did it but he

00:09:05   was just something that I think he knew

00:09:07   like this was going to be important and

00:09:09   even perhaps at times that economically

00:09:11   that was a pretty big ask it's like as

00:09:13   long as I can remember we've always I've

00:09:15   always had a computer in my life and

00:09:17   it's like old Sinclair spectrums I think

00:09:19   it was where you loaded the programs off

00:09:21   audio cassette tapes like playing back

00:09:23   from a like a tape deck

00:09:24   nice and like it was a very different

00:09:27   world but it was always something that I

00:09:28   was around I think he knew that like

00:09:30   that was something that was going to be

00:09:32   important and like it said a similar

00:09:34   sort of experience where it's like at

00:09:35   some point I became aware of qbasic and

00:09:38   I remember the thing that like the they

00:09:41   have this very like wonder you know when

00:09:43   you think back when your youth you'll

00:09:44   often only have it like these few little

00:09:45   like flashbulb memories and I remember

00:09:48   when I first discovered in QBasic one of

00:09:51   the liked programs that came with it was

00:09:53   an app called gorillas I think it was oh

00:09:56   yeah gorillas dot bass yeah and it was

00:09:59   then it was just think this really silly

00:10:01   sort of apt where you had these two

00:10:03   gorillas that would throw bananas at

00:10:05   each other and like that was that was

00:10:06   the app but I remembered that this very

00:10:09   distinct memory of this moment where I

00:10:11   realized that this text file in front of

00:10:14   me created that app that it would like

00:10:20   and all the person who wrote it just sat

00:10:23   down in a text editor just like I was at

00:10:25   and put in all these commands in this

00:10:28   order and like I didn't understand half

00:10:29   of what it was going on but conceptually

00:10:32   like they just wrote this thing and then

00:10:34   this a make this game that I can play

00:10:36   and have fun with appeared and I think

00:10:39   for me like that was the spark that like

00:10:41   this is not like programming isn't this

00:10:45   sort of this this thing that is

00:10:47   completely in like inscrutable that I've

00:10:50   only had before that I had only ever

00:10:52   really seen like the outside of it where

00:10:54   I'm interacting with the software that

00:10:56   other people had made and then it's like

00:10:57   wait I can come in here and I can edit

00:10:59   it and you know I've like I'd horribly

00:11:00   break gorillas the gorillas game and you

00:11:05   know it's like at some point all right

00:11:06   well best they'd better go back to the

00:11:07   original version but

00:11:08   I had that feeling of like it's like

00:11:10   sort of like when you get a toy and

00:11:11   you're it's I think some people's

00:11:13   instinct is to want to take it apart and

00:11:16   see how it works and I think I

00:11:19   eventually got that same kind of

00:11:20   instinct around software where I would

00:11:24   look at something and I'd start once I

00:11:26   had sort of once the sort of the curtain

00:11:28   had been pulled back and I was like wait

00:11:29   this you know this piece of software is

00:11:31   a behind the scenes just a series of

00:11:33   text files I wonder what those text

00:11:36   files would look like I wonder if I

00:11:37   could write a set of text files that

00:11:39   would create that same thing and it just

00:11:42   sort of grew from there but it's there

00:11:44   is definitely I think something to it

00:11:45   where like in some ways I think anybody

00:11:48   could learn to program you know like I

00:11:50   went to a high school where it was

00:11:52   mandatory that every student had it

00:11:54   takes the computer science and it was

00:11:56   like one of the like required courses

00:11:59   that everyone had to do a basic computer

00:12:00   science course and some people like

00:12:03   myself like I mean that was like like

00:12:06   one of my favorite courses that year

00:12:08   like I took it freshman year I see early

00:12:09   as I could so that I could open up all

00:12:12   the advanced computer science classes

00:12:13   later on in high school but for some

00:12:16   kids it was like their dreaded thing

00:12:18   that they had that's like well I got to

00:12:20   do it or that like Ryan squeeze it in

00:12:22   some you knows over the summer or all

00:12:24   kinds of other ways to sort of just get

00:12:26   through it and for some people though I

00:12:28   knew people who would go and do that

00:12:30   class and it was like wow this is

00:12:32   awesome I love programming I didn't even

00:12:34   think like I never thought of myself as

00:12:36   a programmer but when I actually got

00:12:38   into it like they do some people it was

00:12:40   like the complete opposite like they

00:12:41   just found it really frustrating and I

00:12:44   think there is kind of this thing about

00:12:45   programming because in programming you

00:12:48   are you have no one to blame but

00:12:50   yourself

00:12:51   for a lot of things like the the program

00:12:54   is other than like OS bugs and things

00:12:56   like when you crew what you wrote down

00:12:58   is exactly what the app is going to do

00:13:00   and the number of times then that you

00:13:03   the app does something that you don't

00:13:05   want it to do or in an unexpected way

00:13:07   and you look at it and you're like huh

00:13:08   it's like you know huh I I guess I wrote

00:13:12   the wrong thing and it's doing exactly

00:13:14   what I told this do but what I'm telling

00:13:15   it is wrong and that can be very

00:13:18   frustrating for you or it can be very

00:13:19   you know encouraging and

00:13:22   kind of stimulating to be like can I do

00:13:24   this better how could I make this faster

00:13:26   how could I do solve this problem in a

00:13:28   newer or a better way and if you kind of

00:13:31   have a mind that loves that then

00:13:34   programming is extraordinarily

00:13:36   satisfying because the core things that

00:13:40   you need to start programming are

00:13:42   especially sort of in the modern world

00:13:45   are very bit are very you know

00:13:47   straightforward like yeah you can do

00:13:49   basic programming on probably any device

00:13:52   if you if you wanted you know on your

00:13:54   phone on your tablet on your on a

00:13:56   computer like there's a ubiquity there

00:13:58   that if this is something that works for

00:14:00   you you could probably just dive into it

00:14:02   and they won't even have to be like you

00:14:03   are you know you're I sort of

00:14:04   discovering that we accidentally had

00:14:06   QBasic lately lurking on our windows you

00:14:10   know Windows 3.1 computers back in the

00:14:12   day like and whenever I anyone asks me

00:14:15   like how they could get into programming

00:14:17   I always just say it's like you just

00:14:18   need to start you just need to whatever

00:14:21   it whatever language whatever platform

00:14:22   whatever it is that you would be like is

00:14:24   most accessible to you like just just

00:14:26   start it and see if Oh see if that works

00:14:28   for you like see if you get a thrill out

00:14:31   of the first time you ever do you know

00:14:33   print line hello world run your program

00:14:35   and it says hello world like if that's

00:14:38   exciting to you then you're probably

00:14:40   going to keep going if you're like huh

00:14:41   it's kind of boring maybe it's not for

00:14:43   you it doesn't have to be for everybody

00:14:44   but it's if there's something kind of

00:14:47   thrilling about like you said taking

00:14:49   like starting with nothing like when I

00:14:51   go to open up Xcode and I say like file

00:14:53   new project and then like a few hours

00:14:55   later like something functional is

00:14:58   appearing in the simulator well for you

00:15:01   okay or a few hours a few days whatever

00:15:03   you can finish an entire app in like

00:15:05   three hours sure I don't know any other

00:15:08   developer who works as fast you know we

00:15:11   all have we all have we all have our we

00:15:14   have our skills but however long it

00:15:16   takes to get from foundry project to

00:15:17   something working in this emulator that

00:15:20   process is really like there's just

00:15:22   something really fun about that where it

00:15:24   didn't exist and now it does and it's

00:15:25   doing this thing that I had in my mind

00:15:28   and now exists in the world that I don't

00:15:30   think there's that many other careers or

00:15:33   you can have a professional desk

00:15:35   job that has quite that same sense of

00:15:37   creation as they like you know you

00:15:40   really you kind of make it from nothing

00:15:41   except time on your computer and so you

00:15:44   don't even need like special materials

00:15:47   any additional equipment that you didn't

00:15:49   already have like so many hobbies and

00:15:52   creative fields require stuff and and

00:15:55   possibly money that you know to be spent

00:15:57   on on things like supplies equipment and

00:16:00   everything and while programming does

00:16:02   require a computer you probably already

00:16:04   have one and it doesn't require a great

00:16:07   computer it just requires a computer and

00:16:10   and you can get and almost all the

00:16:13   software tools that are needed for

00:16:14   programming almost all of them are free

00:16:16   and and if you and in fact if you want

00:16:18   to go entirely free stuff you can so

00:16:21   it's it's very pure in the sense that

00:16:24   like all you all you need is is time and

00:16:27   and a will to do it and if you have time

00:16:30   and a will to do and you know I've heard

00:16:32   a lot of people say people who are not

00:16:34   programmers a lot of people have said to

00:16:36   me that they don't think they're smart

00:16:38   enough to be a programmer and the fact

00:16:41   is you don't need to be a genius to do

00:16:43   it you need to care that's it like if

00:16:45   you care about programming you can be a

00:16:49   programmer there are a lot of people

00:16:51   working in the field who are not total

00:16:53   geniuses and they're fine I'm not even

00:16:57   that good of a programmer and you know

00:16:58   people who are listening to the show

00:16:59   might assume that because you you know

00:17:02   one of us and you know our work you

00:17:04   might assume that we are great

00:17:06   programmers and I'm just a decent

00:17:09   programmer I would say I would not say

00:17:10   I'm a great programmer I've seen the

00:17:13   code of great programmers I've seen what

00:17:15   they make I am NOT at that level and

00:17:17   it's fine it doesn't really matter for

00:17:20   the purposes of what I'm doing the kind

00:17:22   of products I shipped and what I do for

00:17:23   a living it doesn't really matter that

00:17:25   I'm not like the great programmer level

00:17:27   you know it's fine so it really is very

00:17:29   accessible it's the kind of thing where

00:17:32   really all you all you need is a will to

00:17:34   do it and the time to do it and those

00:17:36   you know those aren't necessarily easy

00:17:38   for some people to get but if you have

00:17:39   those things you can do it yeah and the

00:17:42   nice thing too I'm on that note is that

00:17:44   programming I feel

00:17:47   you can tailor what you're doing to your

00:17:50   personality and your intellect and your

00:17:52   aptitude like there are many different

00:17:55   types of programming that you can do

00:17:58   that may appeal to you in a very

00:17:59   different way like I know people made

00:18:02   some that I remember going to have when

00:18:03   I went to college for computer science

00:18:04   like some of the people there were just

00:18:06   the ridiculous academic geniuses that

00:18:09   like the things that they were they were

00:18:11   interested in we're like solving really

00:18:12   complicated and nuanced algorithmic

00:18:15   problems like how can I do these these

00:18:17   really supply crazy sophisticated things

00:18:20   in new and novel ways like that never

00:18:24   really worked for me the academic side

00:18:25   of computer science never really

00:18:26   appealed to me like what's a faster way

00:18:28   to sort a list like that doesn't really

00:18:29   appeal to me and so I just intend I

00:18:31   instead I just I focus on pragmatic

00:18:34   programming like I just want to make

00:18:37   stuff and how can I make it quickly how

00:18:39   can I make it simply and that appealed

00:18:42   to me and so that's where I went but

00:18:43   then it's like it's a very varied field

00:18:46   that you can probably find something

00:18:48   that fits for you like are you more

00:18:51   graphically oriented and like the design

00:18:54   and visual side of things or the backend

00:18:56   side of things like there's a lot of

00:18:58   there's a lot of breadth in the field so

00:19:00   you find something that sort of suits

00:19:02   you and the key is probably not

00:19:05   pretending that you're someone you're

00:19:06   not

00:19:07   you're not thinking oh I the programmers

00:19:09   need to be like stuffy and academic and

00:19:11   worried about algorithms like no they

00:19:14   could do whatever like I don't think

00:19:16   about algorithms hardly at all that's

00:19:17   not my job my job is making apps and had

00:19:20   very only rare only every now and then

00:19:22   will involve like inventing some kind of

00:19:24   new algorithm to solve a problem yeah I

00:19:27   mean and that's a good point too like

00:19:28   pointing out that it's it is just such a

00:19:29   big field you know that nobody can keep

00:19:33   up with all of the programming field

00:19:35   because it's just too big and it's

00:19:37   bigger than you think is almost

00:19:38   everything uses software these days

00:19:40   almost every field has software there's

00:19:43   all the different levels at which you

00:19:45   could work in software I mean it is so

00:19:48   large it's such a massive field that if

00:19:51   you are at all interested in being in it

00:19:53   there is probably a place where you fit

00:19:54   very easily anyway this episode of under

00:19:57   the radar is brought to you by NS

00:19:58   screencast go to NS screen

00:20:00   calm slash headphones belie love their

00:20:03   URLs and a screencast features short

00:20:06   focused screencast on iOS development

00:20:08   every week you're going to find a new

00:20:10   fantastically produced episode that will

00:20:12   help you build and enhance your

00:20:14   development skills perfect sponsor for

00:20:15   this episode now they have all sorts of

00:20:18   videos up there and these are creeks is

00:20:20   there really like these like kind of

00:20:21   bite-sized videos so it's not like the

00:20:22   early you know nine minutes 10 minutes

00:20:24   15 minutes like it's not these aren't

00:20:26   massive time commitments each time there

00:20:29   are small chunks that teach you what you

00:20:31   need to know and it can help you keep

00:20:33   your skills up daily can help you

00:20:34   develop new skills they have their

00:20:36   recently doing a series on Apple TV's

00:20:37   development now can that you can build

00:20:38   for Apple TV they have all they have

00:20:40   these three new videos about Apple TV

00:20:42   development that I was I was looking at

00:20:43   these are great videos really great you

00:20:46   can watch these videos on the web you

00:20:48   can also watch them on the Apple TV if

00:20:50   you have the new Apple TV because they

00:20:51   made their own TV iOS app to kind of

00:20:53   show off what they could do and of

00:20:55   course you know it's you can watch web

00:20:57   stuff anywhere so in a screencast costs

00:21:00   just 9 dollars a month or a hundred

00:21:02   dollars a year with team fans available

00:21:04   too and you can get 30% off your first

00:21:05   month by signing up using our link and

00:21:07   as screencast.com slash headphones these

00:21:10   are great videos to learn development

00:21:13   within the Apple world I you know iOS

00:21:15   back TV this is the great videos for

00:21:17   this world and as screencast calm

00:21:20   headphones thank you so much to NS

00:21:22   screencast for supporting this show and

00:21:23   all of real afm so I guess for the last

00:21:26   few minutes I want I wonder if maybe we

00:21:28   can give specifics of I kind of where

00:21:30   new programmers should start it for some

00:21:32   reason that listening to the show and

00:21:33   they aren't programmers yet where where

00:21:36   should they start with like languages

00:21:37   tools apps I don't know what do you

00:21:40   think yeah so I think the first place

00:21:44   start at least in its its it obviously

00:21:48   depends a little bit on your age and I

00:21:49   got I get a lot of questions too about

00:21:50   teaching your kids and so I think I

00:21:52   might start talking about a good way to

00:21:54   a good accessible place to see if you

00:21:56   sort of programming is interesting to

00:21:58   you like I've been teaching my kids

00:22:00   programming using an app called

00:22:02   light-bot which I'm sure we can have a

00:22:04   link to in the show notes which is all

00:22:07   about cuz programming at its core like

00:22:09   the first the first step like that you

00:22:11   have to understand is this a bet it's

00:22:13   about like

00:22:14   creating a recipe of commands that you

00:22:17   then issues that you can then like you

00:22:19   say run and then something happens and

00:22:21   understanding the disconnect between the

00:22:25   creation part and the action part and so

00:22:29   like the light light BOTS one of these

00:22:30   there's I mean I mean when I was a kid

00:22:32   it was logo I think it was was sort of

00:22:35   the app like this we had a little turtle

00:22:36   that you made move around the screen you

00:22:38   like this one there's a little character

00:22:40   who runs around and jumped like you have

00:22:41   to you know you're solving little

00:22:43   programming puzzles which my kids love

00:22:45   but like an app like that it's something

00:22:47   that will let you just understand that

00:22:49   that concept of you create a set of

00:22:51   recipes and then you do something and

00:22:53   just like programming at its core is

00:22:55   about separating like the direct input

00:22:59   from the output because you have to

00:23:00   write a program compile it and then run

00:23:02   it in a way that like the user will

00:23:04   input interact with your program but

00:23:06   their programming doesn't interact while

00:23:08   it's running in the same way that's a

00:23:10   great place that I found to start like

00:23:12   there's a lot of apps like this things

00:23:13   that you're going I think hopscotch is

00:23:15   when I've heard about had a lot of

00:23:16   people have had success with like

00:23:18   something like that is a great place to

00:23:20   start for getting your head around that

00:23:22   concept and then once you sort of get

00:23:25   there you just kind of have to pick a

00:23:28   language a platform something that makes

00:23:30   sense to you I recently had a friend who

00:23:33   wanted to get into programming and she

00:23:35   was asking me like what's the right like

00:23:37   what's the right place it's like I don't

00:23:38   know it just depends on where you want

00:23:39   to go I think I ended up pointing her

00:23:41   towards Ruby which is a language I have

00:23:43   a lot of familiarity with and I think

00:23:44   works well it's a fairly accessible

00:23:47   language and there's a great book called

00:23:49   how to think it's how to program how to

00:23:50   code this is a link in the show notes to

00:23:53   that I pointed her to it's a really nice

00:23:55   like methodical just like this is

00:23:57   whatever Wow control flow works like

00:23:59   what an if statement is what a for loop

00:24:02   is and the thing that you also have to

00:24:05   understand when you're first learning

00:24:06   out or starting out and learning is the

00:24:08   details of that language are only sort

00:24:11   of important they're important for where

00:24:14   you use a language like you can't write

00:24:17   in what you know you can't write apps in

00:24:20   for one platform in all languages

00:24:22   there's usually some kind of

00:24:23   specialization but generally speaking

00:24:25   once you understand the context

00:24:27   it's that's that's the crew that's

00:24:30   like--that's 90% of the battle and then

00:24:32   the ten good last 10% is just learning

00:24:34   the nuances of each platform that at

00:24:36   this point if I you know when one day I

00:24:38   eventually learn Swift I don't expect

00:24:41   the difficulty b2b understand like Swift

00:24:45   conceptually it's just going to be

00:24:46   understanding the nuances and the

00:24:49   approaches that they it prefers once you

00:24:51   get wrap your head around the basics

00:24:53   like the basics haven't changed since I

00:24:55   was like 11 years old in writing apps

00:24:58   and QBasic like at its core programming

00:25:01   is just having variables that you put

00:25:03   things into and then you have

00:25:06   conditional statements to determine

00:25:08   which path to go down and then you have

00:25:09   some kind of looping mechanism to keep

00:25:11   doing things over and over again and

00:25:14   once you wrap your head around that like

00:25:15   that's programming the rest is just all

00:25:17   the details that are actually do you

00:25:20   know relevant for your platform yeah and

00:25:22   and I will say you know to expand on one

00:25:24   thing you said not every language can be

00:25:28   used to write every kind of app and I

00:25:29   think people always ask you know what

00:25:31   language should I start with and the

00:25:33   answer is you know because as we talked

00:25:35   about earlier because programming is so

00:25:36   so dependent on your own motivation and

00:25:40   an interest to push through the hard

00:25:42   stuff and to get to something that you

00:25:44   want I think you have to work backwards

00:25:46   and say well what kind of apps do I want

00:25:48   to make and so if you or what are on a

00:25:51   program so if you want to program

00:25:53   something like an iPhone app then what

00:25:56   language can you use to make iphone apps

00:25:58   well there's all sorts of weird tools

00:25:59   you can do so cross-compile different

00:26:01   languages but the language you should be

00:26:02   using right on iphone app in today is

00:26:04   probably Swift so I would say like you

00:26:07   know take whatever whatever outcome you

00:26:08   want to do you want to have work

00:26:11   backwards from that to determine what

00:26:13   language would be the most appropriate

00:26:15   language for that and you know you might

00:26:17   have to ask people like us if you don't

00:26:18   know but like for iOS apps it's Swift

00:26:20   you know that's that today if you're

00:26:22   know if you're gonna learn from scratch

00:26:23   today you're learning Swift and so

00:26:26   that's how you pick it you don't you

00:26:27   know you don't pick a language first and

00:26:29   then decide oh I want to actually make

00:26:31   an iOS app out of this you know yeah

00:26:33   because the easiest way to learn is to

00:26:35   have a specific simple and achievable

00:26:39   outcome that you want to me

00:26:41   like a specific kind of app you want to

00:26:43   make let's say oh I want to make a

00:26:45   really simple like you know game or like

00:26:47   it's something something like that like

00:26:48   something specific that you want to

00:26:50   construct that is doable for beginner

00:26:53   programmer that will keep you motivated

00:26:55   to to learn to keep going and so then

00:26:58   work backwards and learn whatever

00:26:59   language and tools are required to make

00:27:01   that happen and in in the the most

00:27:03   straightforward way yeah because in my

00:27:05   experience the only like the best way to

00:27:07   learn is to start making something it

00:27:09   doesn't matter what it is my first iOS

00:27:12   app was a tip calculator that was awful

00:27:15   and it never shipped but that's how I

00:27:17   learned and I don't think I would have

00:27:19   been able to learn if I didn't have

00:27:21   something tangible that I was trying to

00:27:23   accomplish when I was trying to be like

00:27:25   well how would I display a number onto

00:27:27   the screen how would I make a button

00:27:29   like if you don't have something that's

00:27:31   motivating you to ask those questions

00:27:33   you're never going to get over that

00:27:35   first hump of actually sitting down like

00:27:38   reading a book is great but sitting down

00:27:40   in front of a you know in in front in

00:27:42   front of a text editor is where

00:27:43   programming really starts yeah and that

00:27:45   I have every every new technology or new

00:27:48   language or new anything I've learned in

00:27:51   programming has been because there was

00:27:53   something specific I wanted to achieve

00:27:55   and that was the way to get it all right

00:27:58   well I think that's it for today's show

00:28:00   and you know I hope you look if you

00:28:03   don't already that's you know you get

00:28:05   out and try programming and see if it's

00:28:07   for you yeah that would be very

00:28:09   satisfying to us if people actually

00:28:11   tried it that'd be awesome anyway thanks

00:28:14   a lot for listening please recommend us

00:28:16   on over cast tell a friend also our our

00:28:19   network relay FM just launched

00:28:20   memberships where you can if you'd like

00:28:22   you couldn't optionally give money

00:28:24   directly to the shows that you enjoy or

00:28:25   to every show on the network so if you

00:28:27   want to do that check it out and yeah

00:28:29   thanks a lot for listening and we'll see

00:28:31   you next week