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