Podcast Search

Under the Radar

6: How to Become a Programmer

Select a time to play from there. The line being spoken is highlighted as the audio plays.

0:00:00Welcome to Under the Radar, a show about independent iOS development.

0:00:03I'm Marco Arment.

0:00:04And I'm David Smith.

0:00:05Under the Radar is never longer than 30 minutes, so let's get started.

0:00:09So today, as a little bit of a tie-in to the Hour of Code organization program that's being

0:00:19celebrated this week about trying to get people into programming, we thought it would be kind

0:00:23of an interesting episode to talk about our origin stories as developers, where we learned

0:00:30how to -- how we learned to program both originally, back whenever that was, and then probably

0:00:36also more specifically on Apple's platforms, on iOS and the like. Because it's a question

0:00:43that I get more often than -- you know, fairly consistently. I'll get a question from somebody

0:00:48who says, "I see that you're a developer. I like your work. How did you get there? How

0:00:52How would I, you know, where should I start?

0:00:55And it's, you know, I get enough of those that I thought it'd be an interesting place

0:00:59for us to just to talk about it and hopefully make it a little bit more accessible for,

0:01:05you know, coding isn't necessarily this big scary thing that you have to get into.

0:01:09I've actually been working with my kids who are four and six years old on basic programming

0:01:15concepts and so it doesn't have to be particularly scary.

0:01:18But it's something that, you know, I think if you don't know where to start, it can be

0:01:22kind of overwhelming. And so, you know, we can't tell you where you should start, but

0:01:25this is where we started. So, Marco, where did you first learn to program?

0:01:30So I was, as soon as I learned of just the concept of programming, and I don't remember

0:01:36when this was, but I was always very into technology and computers, even before I had

0:01:41a computer. And I didn't get a computer until the sixth grade, so I don't know what age

0:01:46that it was maybe 12, 13, something like that.

0:01:49And so before that, I would only have experience

0:01:53with friends' computers occasionally,

0:01:55which you get for like two seconds

0:01:56and you wanna play a game,

0:01:58and occasionally computers at school,

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

0:02:02that only had one room that had computers in it,

0:02:06and it was old Apple IIs that had been donated,

0:02:09and you could not do much on them

0:02:11except play Oregon Trail.

0:02:13So I knew of programming though,

0:02:15and I would get books out of the library that were also ancient, donated books that were

0:02:21like, "How to program in BASIC." And I used to sketch out programs on paper, you

0:02:28know, just like ten lines that didn't do anything, but I would just write down programs.

0:02:33I was trying so hard to program and couldn't do it because I didn't have a computer.

0:02:38Eventually I got a computer and I didn't even know how to program on the computer I

0:02:43I got like a Windows 3.1 PC and I had it for about a year I think before I ever knew that

0:02:50it came with QBasic in the DOS prompt area. I had no idea. I wasn't an expert in computers,

0:02:56I didn't even know how to find such things. And one day I had, back when they used to

0:03:01print source code in children's magazines to be like, "You type this into your computer

0:03:06and you can play a paper airplane game or something." There was a source code print

0:03:12out in, I think it was 321 Contact magazine, and they would do this every month, and I

0:03:18would just look at them and, "Man, someday I hope I can try these," but I had no idea

0:03:21how. And one month it had like a little sidebar in that article that said, "Here's how

0:03:26to do this on a Mac, do whatever on a PC, type in QBasic at the prompt." And I tried

0:03:33it and I was like, "Oh my god, I have BASIC on my computer. I've had it all this time."

0:03:41And from that point forward, I just started programming.

0:03:43I just taught myself through occasional ancient books

0:03:47in the library and mostly just trying stuff

0:03:50and looking into the QBasic help screens

0:03:52to look up functions that were available

0:03:54and how to use them and stuff.

0:03:56It basically went from there.

0:03:58Eventually, we had a friend of the family

0:04:01who was a programmer who eventually handed me down

0:04:05what was comparably ancient at the time,

0:04:08Visual Basic 1.0 for Windows.

0:04:10it came on I think two floppies, it was two or three floppies and

0:04:14you know he had long, this was like at the time when like 3.0 or 4.0 was actually

0:04:18available

0:04:18so version 1.0 was useless to a working programmer at that point

0:04:22so he just gave it to me, here kid, you know, try this

0:04:25I installed that on Windows eventually and learned Visual Basic

0:04:29and actually those same Visual Basic 1.0 disks

0:04:33I took to upstate New York that summer where my family went every summer

0:04:37on vacation, and I shared those disks with Casey Liss.

0:04:41And Casey was this other young teenager

0:04:46that I would play with up there and waste time with,

0:04:49and his dad had an IBM ThinkPad,

0:04:52and so we would waste time on his dad's ThinkPad

0:04:55using Visual Basic 1.0.

0:04:57And that's how I met Casey Liss.

0:04:59- There you go, and now he's a programmer too.

0:05:01- Exactly.

0:05:02So anyway, it just kind of built up from there.

0:05:05I was really self-taught in most concepts, most fundamentals, functions, control flow,

0:05:13things like that, basic GUI construction through Visual Basic. I didn't experience anything

0:05:21like the low-level languages like C or even web languages like PHP really until college.

0:05:27College taught me C through the curriculum. I majored in computer science, and then I

0:05:31I kind of picked up PHP on the side to do,

0:05:33like, you know, kind of fooling around on the web.

0:05:36And really just kind of became self-taught from there.

0:05:39Like, I learned more and more C through college,

0:05:42and then my first job after school

0:05:44was entirely written in C, so I learned a lot more C there.

0:05:48And then I always was kind of self-taught

0:05:50in web stuff and other stuff,

0:05:53and then eventually I got the job at Tumblr

0:05:54and became really, had to become really good at web stuff.

0:05:56So it's basically, like, I basically started from scratch

0:06:01kind of just like messing around as a middle schooler. I did it because I just kind of

0:06:07had to. It's one of those things like if you ask a writer like how did you learn to

0:06:12write? And I think a lot of them would just say, you know, A, I've been writing a lot,

0:06:17but B, like I just kind of have to write. Some people just have this inherent drive

0:06:21to do the thing they do and they just kind of have to do it. That's how I am with programming.

0:06:26I just have an inherent desire to do it because programming, and I tell people this whenever

0:06:32they ask me how to get started or what it's like or whatever, programming is incredibly

0:06:38boring and frustrating and obtuse to most people and you have to really love it.

0:06:46I do really love it and when you really love it, you see the good side of it which is the

0:06:51incredible feeling of joy and of pride when you build something from scratch. Like you

0:06:58create something out of nothing using nothing but time and the thing that you want to exist

0:07:05now exists. And that's an incredible feeling. It's incredibly satisfying. It's incredibly

0:07:11intellectually satisfying. And I just, I cannot get enough of that feeling. The problem is

0:07:16is that most programming actual time spent

0:07:19is not doing things that are that satisfying.

0:07:22Most of it is like kind of grunt work or debugging

0:07:26or just kind of moving stuff around,

0:07:29making a boring screen you don't feel like

0:07:31you need to make anymore like a login screen,

0:07:33Code Monkey reference, but most of it can be very tedious.

0:07:38So you have to love it enough during those good times

0:07:42to get you through the tedious times

0:07:43and the frustrating times, like if something's breaking

0:07:45and you can't figure out why.

0:07:47And some people just have that internal drive,

0:07:50and I definitely do, and I bet you do,

0:07:51but if you don't have that,

0:07:54I can imagine it would be pretty frustrating.

0:07:57Because, and the way you usually learn,

0:07:59the way I have learned,

0:08:00and the way I think most people I know have learned,

0:08:03you basically come to a point where you want to achieve

0:08:05some next thing in your programming experience

0:08:08or experiments.

0:08:10You want to achieve something, you have no idea how,

0:08:12so you just kind of like try,

0:08:14or maybe these days you search the internet

0:08:16and you hit a bunch of walls constantly

0:08:18and things don't work, things crash, things break,

0:08:22and you kind of stumble through

0:08:23until you figure out how it actually works

0:08:26and then you do it and then it finally works eventually.

0:08:28But the process of stumbling through and figuring it out

0:08:31can be pretty frustrating to a lot of people.

0:08:32So you have to feel that payoff at the end.

0:08:37That has to really matter to you.

0:08:39That has to really resonate with you

0:08:41if this is gonna be the kind of thing that you do.

0:08:43And if that's the case, that can usually alone be the driver to push you through the bad

0:08:48times and to really make you keep coming back to this as an activity.

0:08:51>>COREY Yeah.

0:08:52So I think my background started, I think, in QBasic, same as you.

0:08:58But I think we had a slightly—I always growing up always had computers around me.

0:09:02That was—I don't exactly know how my dad did it, but it was just something that I think

0:09:06he knew this was going to be important.

0:09:09and even perhaps at times that economically that was a pretty big ask. It's like as long

0:09:13as I can remember, we've always, I've always had a computer in my life, and it's like old

0:09:17Sinclair Spectrums, I think it was, where you loaded the programs off audio cassette tapes,

0:09:22like playing back from a tape deck. And like, I mean, it was a very different world, but

0:09:27it was always something that I was around, and I think he knew that that was something

0:09:31that was going to be important. And it's had a similar sort of experience where it's like,

0:09:35At some point, I became aware of QBasic.

0:09:39I remember the thing that had this very...

0:09:43When you think back on your youth, you often only have these few little flashbulb memories.

0:09:47But I remember when I first discovered in QBasic, one of the programs that came with

0:09:52it was an app called Gorillas, I think it was?

0:09:56Oh yeah, Gorilla.Bass.

0:09:58And it was just this really silly sort of app where you had these two gorillas that

0:10:04would throw bananas at each other.

0:10:05And that was the app.

0:10:07But I remember this very distinct memory of this moment where I realized that this text

0:10:14file in front of me created that app.

0:10:22The person who wrote it just sat down in a text editor just like I was at and put in

0:10:27all these commands in this order.

0:10:28I didn't understand half of what was going on, but conceptually they just wrote this

0:10:33thing and then this game that I can play and have fun with appeared. And I think for me,

0:10:39that was the spark that this is not -- programming isn't this thing that is completely inscrutable.

0:10:50That before that I'd only ever really seen the outside of it, where I'm interacting with

0:10:55the software that other people had made, and then it's like, "Wait, I can come in here

0:10:59and I can edit it. I'd horribly break the Gorillaz game. At some point, I'd better

0:11:06go back to the original version. But I had that feeling of sort of like when you get

0:11:11a toy, and I think some people's instinct is to want to take it apart and see how it

0:11:17works. And I think I eventually got that same kind of instinct around software, where I

0:11:24look at something and once the curtain had been pulled back and I was like, "Wait, this

0:11:30piece of software is behind the scenes just a series of text files. I wonder what those

0:11:36text files would look like. I wonder if I could write a set of text files that would

0:11:39create that same thing." And it just sort of grew from there. But there is definitely,

0:11:44I think, something to it where, in some ways, I think anybody could learn to program. I

0:11:50I went to a high school where it was mandatory that every student had to take computer science.

0:11:56It was one of the required courses that everyone had to do a basic computer science course.

0:12:02Some people, like myself, that was one of my favorite courses that year. I took it freshman

0:12:08year as early as I could so that I could open up all the advanced computer science classes

0:12:14later on in high school. But for some kids, it was their dreaded thing that they had that

0:12:19like, "Well, I gotta do it," or they'll try and squeeze it in some, you know, over

0:12:23the summer or all kinds of other ways to sort of just get through it.

0:12:27And for some people, though, I knew people who would go and do that class, and it was

0:12:31like, "Wow, this is awesome!

0:12:33I love programming!

0:12:34I didn't even think, like, I never thought of myself as a programmer."

0:12:37But when I actually got into it, like, they do.

0:12:39Some people, it was like the complete opposite.

0:12:41Like, they just found it really frustrating.

0:12:44And I think there is kind of this thing about programming, because in programming, you are

0:12:49You have no one to blame but yourself for a lot of things.

0:12:53The program is, other than OS bugs and things, what you wrote down is exactly what the app

0:13:00is going to do.

0:13:02And the number of times then that the app does something that you don't want it to

0:13:05do or in an unexpected way, and you look at it and you're like, "Huh, I guess I wrote

0:13:12the wrong thing, and it's doing exactly what I told it to do, but what I'm telling

0:13:15it is wrong."

0:13:17And that can be very frustrating for you, or it can be very encouraging and kind of

0:13:22stimulating to be like, "Can I do this better?

0:13:25How could I make this faster?

0:13:26How could I solve this problem in a newer or better way?"

0:13:30And if you kind of have a mind that loves that, then programming is extraordinarily

0:13:36satisfying because the core things that you need to start programming are, especially

0:13:43especially in the modern world, are very straightforward. You can do basic programming on probably any

0:13:51device if you wanted, on your phone, on your tablet, on a computer. There's a ubiquity

0:13:58there that if this is something that works for you, you could probably just dive into

0:14:01it and it won't even have to be. You or I discovering that we accidentally had QBasic

0:14:08on our Windows 3.1 computers back in the day.

0:14:14And whenever anyone asks me how they could get into programming, I always just say, "You

0:14:18just need to start."

0:14:21Whatever language, whatever platform, whatever it is that is most accessible to you, just

0:14:26start it and see if that works for you.

0:14:29See if you get a thrill out of the first time you ever do print line "Hello, world!"

0:14:35Run your program and it says "Hello, world!"

0:14:37that's exciting to you, then you're probably going to keep going. If you're like, "Huh,

0:14:41that's kind of boring," maybe it's not for you. It doesn't have to be for everybody.

0:14:45But there's something kind of thrilling about, like you said, starting with nothing. When

0:14:51I go to open up Xcode and I say "File New Project," and then a few hours later, something

0:14:57functional is appearing in the simulator.

0:14:59Well, for you.

0:15:00Okay, or a few hours, a few days, whatever.

0:15:03You could finish an entire app in like three hours.

0:15:06I don't know any other developer who works as fast as you do.

0:15:12We all have our skills.

0:15:15But however long it takes to get from filing a project to something working in the simulator,

0:15:20that process is really, like, there's just something really fun about that, where it

0:15:24didn't exist, and now it does.

0:15:25And it's doing this thing that I had in my mind and now exists in the world.

0:15:30I don't think there's that many other careers where you can have a professional desk job

0:15:35that has quite that same sense of creation.

0:15:38- As they're like, you know, you really,

0:15:40you kind of make it from nothing except time

0:15:43on your computer, and so you don't even need

0:15:45like special materials, any additional equipment

0:15:49that you didn't already have, like so many hobbies

0:15:51and creative fields require stuff and possibly money

0:15:56that, you know, to be spent on things,

0:15:58supplies, equipment and everything.

0:16:01And while programming does require a computer,

0:16:04you probably already have one. And it doesn't require a great computer, it just requires

0:16:09a computer. And almost all the software tools that are needed for programming, almost all

0:16:15of them are free. And in fact, if you want to go entirely free stuff, you can. So it's

0:16:22very pure in the sense that all you need is time and a will to do it. And if you have

0:16:29time and a will to do it. And you know, I've heard a lot of people say, people who are

0:16:34not programmers, a lot of people have said to me that they don't think they're smart

0:16:38enough to be a programmer. And the fact is, you don't need to be a genius to do it,

0:16:43you need to care. That's like, if you care about programming, you can be a programmer.

0:16:50There are a lot of people working in the field who are not total geniuses, and they're

0:16:55fine. I'm not even that good of a programmer. And you know, people who are listening to

0:16:59the show might assume that because you know one of us and you know our work, you might

0:17:04assume that we are great programmers. And I'm just a decent programmer, I would say.

0:17:10I would not say I'm a great programmer. I've seen the code of great programmers. I've

0:17:15seen what they make. I am not at that level. And it's fine. It doesn't really matter

0:17:20for the purposes of what I'm doing, the kind of products I ship and what I do for

0:17:24a living. It doesn't really matter that I'm not the great programmer level. It's

0:17:27So it really is very accessible. It's the kind of thing where really all you need is

0:17:34a will to do it and the time to do it. And those aren't necessarily easy for some people

0:17:38to get, but if you have those things, you can do it.

0:17:41Yeah, and the nice thing too, on that note, is that programming, I feel, you can tailor

0:17:48what you're doing to your personality and your intellect and your aptitude. Like, there

0:17:54There are many different types of programming that you can do that may appeal to you in

0:17:59a very different way.

0:18:01I know people—I remember when I went to college for computer science—some of the

0:18:05people there were just the ridiculous academic geniuses.

0:18:10The things that they were interested in were solving really complicated and nuanced algorithmic

0:18:15problems.

0:18:16Like, "How can I do these really crazy, sophisticated things in new and novel ways?"

0:18:23never really worked for me. The academic side of computer science never really appealed

0:18:26to me, like, "What's a faster way to sort a list?" That doesn't really appeal to me.

0:18:30And so I just intend--instead, I focus on pragmatic programming. I just want to make

0:18:37stuff, and how can I make it quickly? How can I make it simply? And that appealed to

0:18:42me, and so that's where I went. But it's a very varied field that you can probably find

0:18:48something that fits for you. Like, are you more graphically oriented in the design and

0:18:54visual side of things or the backend side of things? There's a lot of breath in the

0:18:59field to find something that sort of suits you. And the key is probably not pretending

0:19:05that you're someone you're not. You're not thinking, "Oh, programmers need to be stuffy

0:19:10and academic and worry about algorithms." Like, no, they could do whatever. I don't

0:19:16about algorithms hardly at all. That's not my job. My job is making apps. And only every

0:19:22now and then will involve inventing some kind of new algorithm to solve a problem.

0:19:26Yeah, and that's a good point too, pointing out that it is just such a big field. Nobody

0:19:32can keep up with all of the programming field because it's just too big. And it's bigger

0:19:37than you think because almost everything uses software these days. Almost every field has

0:19:42software. There's all the different levels at which you could work in software. It is

0:19:48so large, it's such a massive field, that if you are at all interested in being in it,

0:19:53there's probably a place where you fit very easily.

0:19:55Anyway, this episode of Under the Radar is brought to you by NSScreencast. Go to NSScreencast.com/headphones

0:20:02because I love their URLs. NSScreencast features short, focused screencasts on iOS development.

0:20:09Every week you're gonna find a new,

0:20:10fantastically produced episode that will help you

0:20:13build and enhance your development skills.

0:20:15Perfect sponsor for this episode.

0:20:17Now, they have all sorts of videos up there

0:20:19and these are great 'cause they're really like these

0:20:20like kinda bite-sized videos so it's not like they're like

0:20:23nine minutes, 10 minutes, 15 minutes, like it's not,

0:20:26these aren't massive time commitments each time.

0:20:29They're small chunks that teach you what you need to know

0:20:32and can help you keep your skills updated,

0:20:34can help you develop new skills.

0:20:36They're recently doing a series on Apple TV development now

0:20:38Now you can develop for Apple TV.

0:20:39So they have these three new videos

0:20:41about Apple TV development that I was looking at.

0:20:44These are great videos, really great.

0:20:46You can watch these videos on the web.

0:20:48You can also watch them on the Apple TV

0:20:50if you have the new Apple TV

0:20:51because they made their own tvOS app

0:20:53to kind of show off what they could do.

0:20:55And of course, you can watch the web stuff anywhere.

0:20:58So NS Screencast costs just $9 a month or $100 a year

0:21:03with team plans available too.

0:21:04And you can get 30% off your first month

0:21:06by signing up using our link,

0:21:08NSScreencast.com/headphones.

0:21:10These are great videos to learn development

0:21:13within the Apple world, you know, iOS, Mac, TV.

0:21:16This is the great videos for this world.

0:21:18NSScreencast.com/headphones.

0:21:21Thank you so much to NSScreencast for supporting this show

0:21:23and all of Relay FM.

0:21:24So I guess for the last few minutes,

0:21:27I wonder if maybe we can give specifics

0:21:29of like kind of where new programmers should start.

0:21:32If for some reason they're listening to this show

0:21:33and they aren't programmers yet,

0:21:35Where should they start?

0:21:37Like languages, tools, apps, I don't know.

0:21:39What do you think?

0:21:41- Yeah, so I think the first place to start,

0:21:45at least, it obviously depends a little bit on your age,

0:21:49and I get a lot of questions too about teaching your kids,

0:21:51and so I think I might start talking about

0:21:53a good accessible place to see if you,

0:21:56sort of programming is interesting to you.

0:21:59Like I've been teaching my kids programming

0:22:01using an app called Lightbot,

0:22:03which I'm sure we can have a link to in the show notes,

0:22:05which is all about, because programming at its core, like the first step that you have

0:22:11to understand is it's about creating a recipe of commands that you then issues, that you

0:22:18can then like you say run, and then something happens. And understanding the disconnect

0:22:23between the creation part and the action part. And so like the Lightbot's one of these,

0:22:30I mean, when I was a kid, it was Logo, I think it was, was sort of the app like this, we

0:22:36had a little turtle that you made move around the screen.

0:22:38But like this one, there's a little character who runs around and jumps, like you have to,

0:22:42you know, you're solving little programming puzzles, which my kids love.

0:22:45But like an app like that, it's something that will let you just understand that concept

0:22:50of, you create a set of recipes, and then you do something.

0:22:53And just like, programming at its core is about separating, like the direct input from

0:22:59the output because you have to write a program, compile it, and then run it in a way that

0:23:04the user will interact with your program, but the programming doesn't interact while

0:23:08it's running in the same way.

0:23:10That's a great place that I've found to start.

0:23:12There's a lot of apps like this.

0:23:13Things that you're going to think, I think Hopscotch is one I've heard about, a lot of

0:23:16people have had success with.

0:23:18Something like that is a great place to start for getting your head around that concept.

0:23:22And then once you sort of get there, you just kind of have to pick a language, a platform,

0:23:30something that makes sense to you. I recently had a friend who wanted to get into programming,

0:23:34and she was asking me, "What's the right place?" And I was like, "I don't know, it just depends

0:23:39on where you want to go." I think I ended up pointing her towards Ruby, which is a language

0:23:42I have a lot of familiarity with and I think works well. It's a fairly accessible language,

0:23:48And there's a great book called "How to Program, How to Code," which I'll have a link in the

0:23:53show notes to, that I pointed her to.

0:23:55It's a really nice methodical, just like, this is how control flow works, what an if

0:24:00statement is, what a for loop is.

0:24:03And the thing that you also have to understand when you're first learning out, or starting

0:24:07out in learning, is the details of that language are only sort of important.

0:24:12They're important for where you use a language.

0:24:15Like you can't write apps for one platform in all languages, there's usually some kind

0:24:22of specialization.

0:24:24But generally speaking, once you understand the concepts, that's 90% of the battle.

0:24:32And then the last 10% is just learning the nuances of each platform.

0:24:36At this point, when one day I eventually learn Swift, I don't expect the difficulty to

0:24:43understand Swift conceptually. It's just going to be understanding the

0:24:48nuances and the approaches that it prefers. Once you wrap your head

0:24:52around the basics, like the basics haven't changed since I was like 11

0:24:57years old in writing apps in QBasic. At its core, programming is just having

0:25:02variables that you put things into and then you have conditional statements to

0:25:07determine which path to go down and then you have some kind of looping mechanism

0:25:10to keep doing things over and over again.

0:25:13And once you wrap your head around that,

0:25:15like that's programming,

0:25:16the rest is just all the details

0:25:19that are actually relevant for your platform.

0:25:22- Yeah, and I will say, to expand on one thing you just said,

0:25:25not every language can be used to write every kind of app,

0:25:29and I think people always ask,

0:25:31what language should I start with?

0:25:33And the answer is, because, as we talked about earlier,

0:25:35because programming is so dependent on your own motivation

0:25:40and interest to push through the hard stuff

0:25:43and to get to something that you want,

0:25:45I think you have to work backwards and say,

0:25:46well, what kind of apps do I wanna make?

0:25:49And so if you, or what do I wanna program?

0:25:52So if you want to program something like an iPhone app,

0:25:55then what language can you use to make iPhone apps?

0:25:58Well, there's all sorts of weird tools you can use

0:26:00to cross-compile different languages,

0:26:01but the language you should be using

0:26:02to write an iPhone app in today is probably Swift.

0:26:05So I would say like, take whatever outcome

0:26:08you want to have, work backwards from that

0:26:12to determine what language would be

0:26:14the most appropriate language for that.

0:26:16And you might have to ask people like us if you don't know,

0:26:18but for iOS apps, it's Swift.

0:26:21Today, if you're gonna learn from scratch,

0:26:24today you're learning Swift.

0:26:25And so that's how you pick.

0:26:27You don't pick a language first and then decide,

0:26:30oh, I wanna actually make an iOS app out of this.

0:26:33Because the easiest way to learn is to have

0:26:36a specific, simple and achievable outcome that you want to make, like a specific kind

0:26:42of app you want to make. Let's say, "Oh, I want to make a really simple game," or

0:26:48something like that. Something specific that you want to construct that is doable for a

0:26:52beginner programmer, that will keep you motivated to learn, to keep going. And so then work

0:26:58backwards and learn whatever language and tools are required to make that happen in

0:27:03the most straightforward way.

0:27:04Yeah, because in my experience the only like the best way to learn is to start making something

0:27:09It doesn't matter what it is. My first iOS app was a tip calculator

0:27:13that was awful and it never shipped, but that's how I learned and

0:27:17I don't think I would have been able to learn if I didn't have something tangible that I was trying to accomplish

0:27:23When I was trying to be like, well, how would I display a number onto the screen?

0:27:28How would I make a button? Like if you don't have something that's motivating you to ask those questions

0:27:33You're never gonna get over that first hump of actually sitting down.

0:27:38Reading a book is great, but sitting down in front of a text editor is where programming

0:27:44really starts.

0:27:47Every new technology or new language or new anything I've learned in programming has

0:27:52been because there was something specific I wanted to achieve, and that was the way

0:27:56to get it.

0:27:57All right.

0:27:58- All right, well I think that's it for today's show.

0:28:01And you know, I hope if you don't already,

0:28:04that you get out and try programming

0:28:06and see if it's for you.

0:28:08- Yeah, that would be very satisfying to us

0:28:10if people actually tried it, that'd be awesome.

0:28:13Anyway, thanks a lot for listening.

0:28:15Please recommend us on Overcast, tell a friend.

0:28:18Also our network, Real AFM, just launched memberships

0:28:21where you can, if you'd like, you can optionally

0:28:23give money directly to the shows that you enjoy

0:28:25or to every show on the network.

0:28:27So if you wanna do that, check it out.

0:28:28And yeah, thanks a lot for listening

0:28:30and we'll see you next week.

0:28:32[ Silence ]